功能介绍:采用stm32单片机作为主控CPU,采用MQ2传感器采集烟雾浓度,采用MQ4传感器采集可燃气体浓度,采用dht11传感器采集温湿度,当烟雾浓度或者可燃气体浓度超过阈值(可以程序里面进行随意设定),蜂鸣器会进行报警提醒,并且OLED显示相关数据,通过WiFi模块(ESP8266)将数据上传到onenet云平台,可以远程进行查下相关数据,程序有中文注释,新手容易看懂,文末有资料分享:
下面是实物演示视频和相关实物图片
64-基于stm32单片机烟雾可燃气体温湿度检测上传Onenet云平台(程序+原理图+元器件清单全套资料)


下面是程序部分展示(程序有中文注释,新手容易看懂)
void Hardware_Init(void){NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级delay_init(); //延时函数初始化Usart1_Init(115200); //串口1初始化为115200Usart2_Init(115200); //串口2,驱动ESP8266用LED_Init(); //LED初始化}void Net_Init(){ESP8266_Init(); //初始化ESP8266while(OneNet_DevLink()) //接入OneNETdelay_ms(500);LED = 0; //入网成功}int main(void){unsigned char *dataPtr = NULL;unsigned short timeCount = 30; //发送间隔变量u32 sgp30_dat;LED_Init();BEEP_Init();Q1=BEEP=IN1=IN2=1;Hardware_Init(); //初始化外围硬件Net_Init(); //网络初始化OLED_Init();OLED_ColorTurn(0);OLED_DisplayTurn(0);OLED_ShowString(0,0," TEMP:",16); OLED_ShowString(70,0,"C",16);OLED_ShowString(110,0,"%",16);OLED_ShowString(0,32," MQ4:",16);OLED_ShowNum(50,32,000,3,16); OLED_ShowString(80,32,"PPM",16);OLED_ShowString(0,48," MQ2:",16);OLED_ShowNum(50,48,000,3,16); OLED_ShowString(80,48,"PPM",16);OLED_Refresh();DHT11_Init();Adc_Init();while(1){delay_ms(10);timeCount ++;// printf("\r\n***************************** 串口测试 *****************************\r\n");if(timeCount >= 30) //发送间隔{OneNet_SendData(); //发送数据timeCount = 0;ESP8266_Clear();}dataPtr = ESP8266_GetIPD(0);if(dataPtr != NULL){OneNet_RevPro(dataPtr);}
程序打开办法:特别注意:下载资料包以后一定要先解压!!!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

下面是原理图,采用【AD】altium designer打开,文件中有安装包


下面是资料包里面包含的相关文件展示

STM32单片机检测数据上传Onenet云平台
该博客介绍了基于STM32单片机的环境数据检测系统。采用MQ2、MQ4、DHT11传感器分别采集烟雾、可燃气体浓度及温湿度,超标时蜂鸣器报警,OLED显示数据。通过WiFi模块将数据上传到Onenet云平台,程序有中文注释,文末分享全套资料。
3559

被折叠的 条评论
为什么被折叠?



