基于STM32的森林火灾报警系统设计与实现
创作时间:
作者:
@小白创作中心
基于STM32的森林火灾报警系统设计与实现
引用
CSDN
1.
https://blog.csdn.net/lihuadetongzhuo/article/details/146459435
本文介绍了一个基于STM32的森林火灾报警系统,该系统能够实时监测森林环境中的烟雾浓度、温度、湿度等参数,并在检测到异常时发出声光报警。系统通过无线通信模块将数据发送至手机APP,实现远程监控。文章详细介绍了系统的硬件组成、工作原理和代码实现,适合对嵌入式系统和物联网应用感兴趣的读者参考学习。
实现功能
- 实时监测森林环境中的烟雾浓度、温度、湿度等参数
- 当检测到的烟雾浓度超过设定阈值时,系统立即发出声光报警
- 通过按键设置检测参数,如烟雾浓度阈值、报警温度等
- 采用OLED屏幕实时显示烟雾浓度、温度、湿度等数据
- 检测到明火或环境异常时,通过蜂鸣器发出报警
- 将检测数据通过无线通信模块发送至手机APP,实现远程监控
主要元器件
- 主控芯片:选用STM32单片机,负责数据采集、处理和输出控制
- 烟雾传感器:采用MQ-2型烟雾传感器,实现对森林环境中烟雾浓度的检测
- 温湿度传感器:采用DHT11温湿度传感器,实时监测环境温湿度
- OLED显示屏:用于显示烟雾浓度、温度、湿度等数据
- 声光报警模块:用于发出报警信号
- 无线通信模块:采用WIFI,实现与手机APP的数据传输
- 按键模块:用于设置检测参数
系统工作原理
系统以STM32单片机作为主控制器,结合DHT11、MQ-2和火焰传感器,构建了一个高效的森林火灾检测系统。通过DHT11传感器实时监测温湿度,MQ-2传感器检测空气中的烟雾浓度,火焰传感器则用于检测火焰的存在,确保对森林环境变化的全面感知。
系统通过这些传感器数据的实时采集与处理,能够及时发现异常情况,帮助管理人员进行预警和应急响应。为了便于管理人员实时查看森林环境状态,系统采用OLED液晶显示屏呈现温湿度、烟雾浓度等关键数据,使监控变得直观易懂。
同时系统采用ESP8266 WiFi模块实现无线通信,将实时采集到的数据传输至远程平台。通过与手机APP的连接,管理人员可以在任何地方通过APP查看数据和接收预警信息,实现远程监控。
系统还具备灵活的报警设置功能,管理人员可以根据森林环境的实际需求设置烟雾浓度的报警阈值。当烟雾浓度超过设定值或火焰被检测到时,系统会触发蜂鸣器进行声音报警,并通过APP向管理人员发送预警提示。此功能有助于及时发现火灾隐患,提高森林防火工作效率,减少火灾带来的损失。
代码实现
STM32代码采用C语言,标准库编写,软件是keil5,代码都有详细注释,看不懂可以截图问我
#include "stm32f10x.h"
#include <stdio.h>
#include <string.h>
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "OLED.h"
#include "IO_Init.h"
#include "bsp_adc.h"
#include "DHT11.h"
extern __IO uint16_t ADC_ConvertedValue[NOFCHANEL];// ADC1转换的电压值通过MDA方式传到SRAM
float light,mq135,fire;
u8 mq135_set=30,fire_set=40;
u8 fire_sta;
u8 app_check() //手机APP的指令控制
{
u8 app_key;
app_key=0;
if(USART1_RX_STA>5){
delay_ms(50);
if(strstr((const char *)USART1_RX_BUF,"GPIO0=0")){
app_key= 1;
}
if(strstr((const char *)USART1_RX_BUF,"GPIO0=1")){
app_key= 2;
}
if(strstr((const char *)USART1_RX_BUF,"GPIO0=2")){
app_key= 3;
}
if(strstr((const char *)USART1_RX_BUF,"GPIO0=3")){
app_key= 4;
}
if(strstr((const char *)USART1_RX_BUF,"GPIO0=4")){
app_key= 5;
}
USART1_RX_STA=0;
memset(USART1_RX_BUF,0,sizeof(USART1_RX_BUF));
}
return app_key;
}
void key_deal()
{
u8 key;
key = Key_Scan(); //按键处理
if(key==0){
key = app_check(); //没有按键按下就处理APP数据
}
if(key==1){
}
if(key==2){ //阈值增加
if(mq135_set<99)
mq135_set++;
}
if(key==3){ //阈值减少
if(mq135_set>10)
mq135_set--;
}
}
int main(void) //主函数
{
u8 str[60],i,time=50,Flag=0;
SystemInit();
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 2组中断分组
Beep_Init(); //蜂鸣器初始化
Beep = 0; //测试蜂鸣器
OLED_Init(); //OLED初始化
Beep = 1; //关闭蜂鸣器
usart1_Init(115200);//串口1,ESP8266 WIFI
usart2_Init(115200);//串口2,调试用
Esp8266_AP_Init();//ESP8266初始化为AP模式,会产生一个热点,WIFI,123456789
ADCx_Init(); //ADC模拟量采集引脚初始化
Key_Init(); //按键引脚初始化
while(1)
{
key_deal(); //按键的处理判断
delay_ms(100);
if(time++>10) //10次100ms就是1s一次
{
time=0;
fire = 100-ADC_ConvertedValue[0]/40.95; //ADC数据换成火焰监测数据
mq135 = ADC_ConvertedValue[1]/40.95-1; //ADC数据转换成气体数据
get_temperature_and_humidity(); //温湿度数据
//间隔发送手机APP数据,不能发太快
if(Flag){
Flag=0;
i= sprintf((char *)str,"%.0fW%.0fW%.1fW%dW ",temp,humi,mq135,fire_sta);
UsartPrintf(ESP8266_USART,"AT+CIPSEND=0,%d\r\n",i);
}
else{
UsartPrintf(ESP8266_USART,(char *)str);
Flag=1;
}
}
//报警逻辑处理,数据异常蜂鸣器报警
if((fire_sta)||(mq135>mq135_set))
{
Beep = !Beep;
}
else
Beep = 1;
//以下是显示逻辑部分
OLED_printf(0,0,"Temp:%.0fC ",temp);
OLED_printf(0,2,"Humi:%.0f%% ",humi);
OLED_printf(0,4,"MQ:%4.1f%% %2d%%",mq135,mq135_set);
if(fire>fire_set)
fire_sta = 1;
else
fire_sta = 0;
if(fire_sta==1)
OLED_printf(0,6,"Fire ");
if(fire_sta==0)
OLED_printf(0,6,"NO Fire ");
}
}
原理图/PCB
原理图和PCB都使用立创EDA绘制,对新手较为友好。可以导出为AD格式的文件
热门推荐
创业板注册制审核流程探析
板蓝根——一种药用植物的全面解析(了解板蓝根的来源、成分和功效,保障健康生活)
鲅鱼的功效与食用指南:营养价值、功效作用及注意事项全解析
承载式和非承载式的区别,非承载车身碰撞就报废吗?
承载式 vs 非承载式车身:核心差异与适用场景全解析
新车试驾应该注意事项
加州“鬼湖”130年后重现,吞没近10万英亩农田
如何激发中职学生的诗歌创作潜力?
购买私人NAS时,如何选择合适的文件系统
冠心病猛如虎!正确走路方式让中老年人突围,全方位攻略必看
劳务合同和劳动条件
费祎是什么人?他的一生对蜀汉有哪些贡献?
缠论中的“走势中枢”详解:交易智慧的核心概念
如何在WPS中使用模板提高效率
江苏双一流排名“大调整”,东大第2,南理工跌至第4,南农第7
跑步机爬坡 vs 慢跑:哪个更燃脂又不伤膝?交替训练法详解
八字排盘为何各不相同 八字预测为何如此精准
未婚怀孕相关法律问题解答
高筋面粉与低筋面粉的区别?
中筋面粉和高筋面粉有什么区别?中筋面粉可以代替高筋面粉吗?
脾虚会导致衰老和肥胖?中医教你这样调理
常吃花生的人有福了!3个显眼的好处,你一定要知道
压力管理高效指南:告别焦虑,重拾幸福人生
什么是产后抑郁症,有哪些症状
美国留学生在北大的生活与学习体验
医保药品耗材追溯信息查询功能上线
交通新规则对日常出行有哪些具体影响
深圳地铁开通运营20周年展邀您来打卡
AI赋能数学教学,“双百行动”培育师资新力量
百会穴按压疼痛的原因及处理建议