若该文为原创文章,转载请注明原文出处。
Hi,大家好,我是忆枫,今天向大家介绍一个单片机项目。
智慧消防监控系统,是用于检测火灾,温度,烟雾的监控系统。以 stm32单片机为核心外加 MQ-2 型半导体电阻式雾敏感器件的火灾报警器,实现声光报警、 OLED显示,故障自诊断、 浓度显示、 报警限设置、及APP远程监控,控制等功能。是一种结构简单、 性能稳定、 使用方便、 价格低廉、智能化的火灾报警器, 具有一定的实用价值。
智慧消防监控系统结构框图如下图所示,系统以单片机为核心,配合外围电路共同完成:
1、烟雾浓度显示
通过oled显示可燃烟雾的浓度值, 并且可以切换到设置状态, 通过按键设置或者更改报警限值, 以便于用户或检测人员随时观测烟雾浓度及更改报警限。
2、温湿度传感器
使用的是DHT11 数字温湿度传感器,一款含有已校准数字信号输出的温湿度复合传感器,内部由一个 8 位单片机控制一个电阻式感湿元件和一个 NTC 测温元件。MCU通过单总线协议,读出DHT11的温度和适度。
3、WIFI模块
MCU和APP是通过WIFI实现远程控制的,使用的是ESP8266,MCU通过AT指令和ESP8266交互,服务器采用阿里云,通信协议为MQTT.
整体功能是,通过按键设置阈值,OLED显示时检测烟雾,火焰,温度等,当检测到火或温度,烟雾达到预设值,通过声光方式,报警提示,并自动联动水泵开关,通过WIFI实时上传数据到阿里云,APP实时检测各个传感器及蜂鸣器,水泵等状态,也可以远程控制水泵,蜂鸣器等。
APP开发使用的是App inventor开发,是一款可视化编程环境,采用搭积木的方式快速建立应用程序,并且可以结合AI伴侣,极其便利的在手机上进行测试和应用。
APP界面
初始化
initSysTick();
initADC(); // ADC初始化
initUART(); // 串口1初始化
initUART2(); // 串口2初始化,ESP8266
initLED(); // LED初始化
initKey(); // 按键初始化
initRelay(); // 继电器和蜂鸣器初始化
initDHT11(); // 温湿度传感器
initIIC(); // I2C初始化
initOLED(); // OLED初始化
initNVIC(NVIC_PriorityGroup_2);
定时采集温湿度
void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3, TIM_IT_Update) == SET)
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
if(++n > 10)
{
n=0;
DHT11_data = readDHT11();
device.Humidity = DHT11_data >> 8;
device.Temperature = DHT11_data & 0x00FF;
toggleLED();
}
}
}
数据采集实时显示
/*数据采集显示*/
if(++i>3)
{
i = 0;
showNumber(40,2,device.Humidity,DEC,3,FONT_16_EN);
showNumber(40,4,device.Temperature,DEC,3,FONT_16_EN);
showNumber(80,4,set_temperature,DEC,3,FONT_16_EN);
showNumber(40,6,device.Lux,DEC,4,FONT_16_EN);
device.Lux = getConvValueAve(10,1000);
}
如有侵权,或需要完整代码,请及时联系博主。