【单片机毕业设计选题24047】-基于阿里云的工地环境监测系统

news/2024/10/18 18:27:57/

系统功能:

基于STM32完成

主机(阿里云以及oled屏显示位置一):烟雾检测,温湿度检测,噪声检测,且用OLED屏显示,设置阈值,超过报警(蜂鸣器)。

从机(位置二):烟雾检测,温湿度检测,噪声检测,收集数据且用主机oled屏显示。

阿里云:主从机信息阿里云显示

两路继电器(只有主机端有):默认打开系统就有一个继电器吸合,烟雾检测超过了阈值,

则第二继电器吸合。

系统分为主机端和从机端,主机端主动向从机端发送信息和命令,从机端

收到主机端的信息后回复温度,湿度,烟雾浓度,噪声值等信息。

主要功能模块原理图:

电源时钟烧录接口:

单片机和按键输入电路:

传感器采集电路:

继电器输出电路:

功能定制链接

系统主要功能模块代码

初始化代码:

  /* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();MX_USART2_UART_Init();MX_USART3_UART_Init();MX_ADC1_Init();/* USER CODE BEGIN 2 *///uart2打开接收中断HAL_UART_Receive_IT(&huart2, (uint8_t*)&uart2RecBuff, 1);//uart3打开接收中断HAL_UART_Receive_IT(&huart3, (uint8_t*)&uart3RecBuff, 1);  InitOled();InitOledDisp();//初始化ESP8266ESP8266_Init();  HAL_Delay(100);OledFill(0x00);     //全屏熄灭   RELAY1_ON();/* USER CODE END 2 */

系统控制代码;
 

//系统信息更新void SystemControl(void){static uint8_t updateCnt = 0;static uint8_t dht11Cnt = 0;   //更新阿里云数据   updateCnt++;   if(updateCnt>=SYSTEM_UPDATE_INTER){updateCnt = 0;Aliyun_SendData();}//更新DHT11温湿度数据dht11Cnt++;if(dht11Cnt>=DHT11_UPDATE_INTER){dht11Cnt = 0;if(DHT11ReadData()==0)  //DHT11温湿度读取OK{;}}  ReadSensorVal();}

阿里云上报系统数据:

//====================================================================//     函数名称:    Aliyun_SendData//     函数功能:    发送数据//     入口参数:    需要发送的数据//     返回参数:    无//     说明:            //====================================================================void Aliyun_SendData(void){char pubTopic[512];sprintf(pubTopic, "AT+MQTTPUB=0,\""PUB_TOPIC"\",\""JSON_FORMAT"\",0,0\r\n", masterTemp, masterHumi, masterMQ2, masterVoice);Usart2_SendString((unsigned char *)pubTopic, strlen((const char *)pubTopic));}

此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。

各功能模块资料:


http://www.ppmy.cn/news/1474452.html

相关文章

Python: 分块读取文本文件

在处理大文件时,逐行或分块读取文件是很常见的需求。下面是几种常见的方法,用于在 Python 中分块读取文本文件: 1、问题背景 如何分块读取一个较大的文本文件,并提取出特定的信息? 问题描述: fopen(blank.txt,r) quot…

mupdf加载PDF显示中文乱码

现象 加载PDF显示乱码,提示非嵌入字体 non-embedded font using identity encoding调式 在pdf-font.c中加载字体 调试源码发现pdf文档的字体名字居然是GBK,估计又是哪个windows下写的pdf生成工具生成pdf 字体方法: static pdf_font_desc * load_cid…

echarts使用自定义图形实现3D柱状图

先看下效果吧 实现思路 使用graphic创建并注册自定义图形。根据每组的数据值,得到一个对应的点,从点出发用canvas绘制一组图形,分别为 顶部的菱形 const CubeTop echarts.graphic.extendShape({buildPath: function (ctx, shape) {const c1…

bqplot教程:在Jupyter Notebook中进行交互式数据可视化

文章目录 介绍1.1 数据可视化的重要性1.2 bqplot库的概述安装和快速入门 安装和导入2.1 安装bqplot使用pip安装使用conda安装 2.2 导入必要的库示例:导入并使用bqplot创建简单图表 数据集准备3.1 导入数据集使用 pandas 导入 CSV 文件使用 pandas 导入其他格式的数据…

ubuntu系统下使用gelsight

一、背景 创建 conda create -n gelsight python3.8 conda activate gelsight cd GelSight/gsrobotics-main/demos/marker_tracking/ python3 mean_shift_marker_tracking.py ModuleNotFoundError: No module named ‘numpy’ pip3 install numpy ModuleNotFoundError: N…

2024机器遗忘(Machine Unlearning)技术分类-思维导图

1 介绍 机器遗忘(Machine Unlearning)是指从机器学习模型中安全地移除或"遗忘"特定的数据点或信息。这个概念源于数据隐私保护的需求,尤其是在欧盟通用数据保护条例(GDPR)等法规中提出的"被遗忘的权利…

Rust开发环境搭建

Rust开发环境搭建 环境 rust: 1.79.0(2024-06-13)1. Rustup下载器在线安装 windows: https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe unix: curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh2. R…

【NLP学习笔记】transformers中的tokenizer切词时是否返回token_type_ids

结论 先说结论: 是否返回token_type_ids,可以在切词时通过 return_token_type_idsTrue/False指定,指定了True就肯定会返回,指定False,不一定就不返回。 分析 Doc地址 https://huggingface.co/docs/transformers/main…