基于STM32物联网WiFi火灾烟雾自动灭火报警器Proteus仿真+代码+报告+视频
火灾烟雾自动灭火报警器proteus
基于STM32物联网WiFi火灾烟雾自动灭火报警器
本设计包含proteus仿真+程序代码+设计报告+讲解视频
一、开发环境
仿真图:proteus 8.17
程序编译器:keil 5
编程语言:C语言
设计编号:C0135
二、主要功能
-
烟雾采集传感器选用MQ-2监测环境烟雾浓度;
-
采用火焰传感器监测环境火光;
-
温湿度采集使用DHT11数字传感器;
-
显示设备使用OLED,可以在屏幕上显示实时烟雾浓度值、温湿度值,火焰检测状态、安防监测状态以及报警阈值等信息;
-
报警模块则采用蜂鸣器和LED灯组成,烟雾浓度超过阈值、温度超过阈值,监测到火光,设防状态下监测到人体红外信号触发报警。蜂鸣器会鸣叫报警,灯光闪烁;
-
设计采用3个按键作为操作输入设备,可以用来调整温度、烟雾报警阈值和关报警器;
-
烟雾浓度超过阈值、温度超过阈值,监测到火光会触发继电器工作,模拟洒水灭火;
8.通过WIFI模块ESP01S将数据实时上传至物联网云平台,可以通过手机APP查看温湿度、烟雾检测值、火焰状态、设防状态等;Proteus仿真没有ESP-01元器件,使用串口模拟。
主要硬件设备:STM32F103C8T6、MQ-2烟雾传感器、火焰传感器、ESP-01S、OLED显示、继电器、DHT11温湿度



资料下载链接:
KEY_C0135 STM32物联网WiFi火灾烟雾自动灭火报警器
链接: https://pan.baidu.com/s/1TN4Mcx-oDv1gaRBRsNQgUg?pwd=wgr3
提取码: wgr3
以下为本设计资料展示:
三、仿真设计
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。


四、程序代码
程序是用keil5 mdk版本打开的,如果打开有问题,核实下keil的版本。程序有注释可以结合讲解视频理解。
/*
************************************************************
* 函数名称: main
*
* 函数功能:
*
* 入口参数: 无
*
* 返回参数: 0
*
* 说明:
************************************************************
*/
int main(void)
{
DHT11_Data_TypeDef DHT11_Data;
unsigned short timeCount = 0; //发送间隔变量
unsigned short set_timeCount = 0; //设置状态刷新状态
unsigned char *dataPtr = NULL;
uint8_t smog_lock=0;
// uint8_t security_lock=0;
Hardware_Init(); //初始化外围硬件
Fan_Set(FAN_OFF);
Beep_Set(BEEP_OFF);
Relay_Set(RELAY_OFF);
#if 1
ESP8266_Init(); //初始化ESP8266
// UsartPrintf(USART_DEBUG, "Connect MQTTs Server...\r\n");
OLED_Clear(); OLED_ShowString(0,0,"Connect MQTTs Server...",16);
while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT"))
DelayXms(500);
// UsartPrintf(USART_DEBUG, "Connect MQTT Server Success\r\n");
OLED_ShowString(0,4,"Connect MQTT Server Success",16); DelayXms(500);
OLED_Clear(); OLED_ShowString(0,0,"Device login ...",16);
while(OneNet_DevLink()) //接入OneNET
{
ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT");
DelayXms(500);
}
#endif
UsartPrintf(USART_DEBUG, "Connect MQTT Server Success\r\n");
OneNET_Subscribe();
Display_Init();
Led_Set(LED_OFF);
SystemCoreClockUpdate();
UsartPrintf(USART_DEBUG, "system_clock:%lu Hz (%.2f MHz)\r\n", SystemCoreClock, SystemCoreClock / 1000000.0);
// temp = DS18B20_GetTemperture();//读取温度传感器
smog=MQ2_GetData_PPM(); //读取烟雾传感器
Fire_read(); //读取火焰传感器
temp=humi=25;//初始化
while(1)
{
if(++timeCount >= 50&&set_sta==0) //发送间隔2.5s
{
// temp = DS18B20_GetTemperture();
// DHT11_Read_Data(&temp,&humi);
if(DHT11_Read_TempAndHumidity(&DHT11_Data) == SUCCESS) {
humi = DHT11_Data.humi_int;
temp = DHT11_Data.temp_int;
}
UsartPrintf(USART_DEBUG, "temp=%d--humi=%d\r\n",temp,humi);
Fire_read();//读取火焰传感器
Hc_sr501_read();//读取人体红外热释电传感器
UsartPrintf(USART_DEBUG, "Security_Status=%d\r\n",Security_Status);
smog=MQ2_GetData_PPM();
if(smog>9999){smog=9999;}
UsartPrintf(USART_DEBUG, "VOL----%.2f\r\n",smog);
OneNet_SendData(); //发送数据
timeCount = 0;
ESP8266_Clear();
if(Status_Change){
Status_Change=0;
Display_Init();
}
}
if(DHT11_Read_TempAndHumidity(&DHT11_Data) == SUCCESS) {
humi = DHT11_Data.humi_int;
temp = DHT11_Data.temp_int;
}
Fire_read();//读取火焰传感器
Hc_sr501_read();//读取人体红外热释电传感器
smog=MQ2_GetData_PPM();
if(smog>9999){smog=9999;}
dataPtr = ESP8266_GetIPD(0);
if(dataPtr != NULL){
OneNet_RevPro(dataPtr);
}
if(set_sta){
if(key_ctrl){
OLED_Clear();
key_ctrl=0;
UsartPrintf(USART_DEBUG, "OLED_Clear\r\n");
}
}else{
if(key_ctrl){
Display_Init();
key_ctrl=0;
UsartPrintf(USART_DEBUG, "Display_Init\r\n");
}
}
Refresh_Data();
/***利用smog_lock进行自锁操作,避免重复无效控制,超阈值后,
只执行一次,实现蜂鸣器可以被手动按停,
直到降到阈值以下,才解锁,进入下轮阈值检测***/
if(((smog>smog_th)||(Fire_Status==0)||(temp>temp_th))&& smog_lock==0)
{
smog_lock = 1;
Fan_Set(FAN_ON);
Beep_Set(BEEP_ON);
Relay_Set(RELAY_ON);
// Led_Set(LED_ON);
}
if(((smog<smog_th)&&(Fire_Status!=0)&&(temp<temp_th))&&smog_lock==1){
smog_lock=0;
Fan_Set(FAN_OFF);
Beep_Set(BEEP_OFF);
Relay_Set(RELAY_OFF);
// Led_Set(LED_OFF);
}
if(set_arm&&Security_Status){//安防检测单独做蜂鸣器动作
Beep_Set(BEEP_ON);
Led_Set(LED_ON);
}
if(smog_lock && (timeCount>25)){
Led_Set(LED_ON);
}else{
Led_Set(LED_OFF);
}
DelayMs(10);
}
}

程序流程图:

五、设计说明书
16250字,内容包括硬件设计、软件设计、结论等。

六、资料清单&下载链接

资料下载链接:
链接: https://pan.baidu.com/s/1TN4Mcx-oDv1gaRBRsNQgUg?pwd=wgr3
提取码: wgr3
更多推荐

所有评论(0)