项目一:基于stm32的阿里云智慧消防监控系统

若该文为原创文章,转载请注明原文出处。

Hi,大家好,我是忆枫,今天向大家介绍一个单片机项目。

一、简介

       智慧消防监控系统,是用于检测火灾,温度,烟雾的监控系统。以 stm32单片机为核心外加 MQ-2 型半导体电阻式雾敏感器件的火灾报警器,实现声光报警、 OLED显示,故障自诊断、 浓度显示、 报警限设置、及APP远程监控,控制等功能。是一种结构简单、 性能稳定、 使用方便、 价格低廉、智能化的火灾报警器, 具有一定的实用价值。

二、系统设计

 智慧消防监控系统结构框图如下图所示,系统以单片机为核心,配合外围电路共同完成:

  • 信号采集
  • 温湿度,浓度等显示
  • 上下限显示,及状态显示
  • 声音及闪烁报警
  • 按键输入,上下限设置
  • 水泵等控制
  • APP通信

1、烟雾浓度显示

通过oled显示可燃烟雾的浓度值, 并且可以切换到设置状态, 通过按键设置或者更改报警限值, 以便于用户或检测人员随时观测烟雾浓度及更改报警限。

2、温湿度传感器

使用的是DHT11 数字温湿度传感器,一款含有已校准数字信号输出的温湿度复合传感器,内部由一个 8 位单片机控制一个电阻式感湿元件和一个 NTC 测温元件。MCU通过单总线协议,读出DHT11的温度和适度。

3、WIFI模块

MCU和APP是通过WIFI实现远程控制的,使用的是ESP8266,MCU通过AT指令和ESP8266交互,服务器采用阿里云,通信协议为MQTT.

整体功能是,通过按键设置阈值,OLED显示时检测烟雾,火焰,温度等,当检测到火或温度,烟雾达到预设值,通过声光方式,报警提示,并自动联动水泵开关,通过WIFI实时上传数据到阿里云,APP实时检测各个传感器及蜂鸣器,水泵等状态,也可以远程控制水泵,蜂鸣器等。

三、APP实现

APP开发使用的是App inventor开发,是一款可视化编程环境,采用搭积木的方式快速建立应用程序,并且可以结合AI伴侣,极其便利的在手机上进行测试和应用。

APP界面

 

四、MCU部分代码

 初始化

  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);
    }

五、板子及APP

 

如有侵权,或需要完整代码,请及时联系博主。