基于stm32的物联网OneNet火灾报警系统

1 系统功能介绍

本设计是一个基于 STM32F103 单片机 的物联网火灾报警系统。通过 WiFi 模块接入中国移动 OneNet 平台,实现数据的远程传输与监控,结合多种传感器对火灾相关环境参数进行检测。当检测到异常时,系统将触发声光报警,并通过云平台上报告警信息,使用户能够通过互联网实时掌握情况,从而有效预防火灾的发生。

系统主要功能如下:

  1. 温湿度检测
    系统利用温湿度传感器对环境温度和湿度进行实时监控,一旦温度超过设定阈值,则可能表明存在火灾隐患,需要及时告警。

  2. 火焰检测
    借助火焰传感器识别火焰信号,当检测到可见火焰时,立即触发报警,并将信息上传至 OneNet 平台。

  3. 声光报警
    当环境参数异常或火焰出现时,系统立即启动蜂鸣器发出报警声,并通过 LED 闪烁进行视觉提示,从而提醒现场人员注意。

  4. 数据上传与远程监控
    STM32 通过 WiFi 模块将实时采集的温湿度、火焰状态等数据上传至 OneNet 云平台,用户可以通过网页或 APP 查看数据,并接收火灾报警通知。

  5. 远程可扩展功能
    系统可进一步扩展,例如远程控制消防设备、智能联动排风扇或喷水装置,从而提升火灾防护水平。


2 系统电路设计

2.1 STM32 最小系统电路

核心控制单元为 STM32F103C8T6,该芯片具有 ARM Cortex-M3 内核,主频 72MHz,具备丰富的外设资源和低功耗特点,非常适合物联网应用。
最小系统包括:

  • 电源模块:通过 AMS1117-3.3 稳压芯片为系统提供稳定的 3.3V 电源;
  • 时钟模块:外接 8MHz 晶振,通过内部 PLL 倍频至 72MHz;
  • 复位电路:上电复位和按键复位,保证系统稳定运行;
  • SWD 下载接口:方便调试与程序烧录。

2.2 WiFi 模块电路

系统采用 ESP8266 WiFi 模块,其特点是低成本、低功耗,并且支持 TCP/IP 协议栈。

  • 接口方式:串口 UART(TX、RX、GND、VCC);
  • 电源:3.3V;
  • 功能:与 OneNet 平台进行数据通信,实现传感器数据上传与报警信息推送。

2.3 温湿度传感器电路

温湿度检测模块可选择 DHT11/DHT22,通过单总线协议与 STM32 通信。

  • 温度检测范围:050℃(DHT11),-4080℃(DHT22);
  • 湿度检测范围:20%RH ~ 90%RH;
  • 接口:单总线,数据引脚接入 STM32 GPIO;
  • 功能:实时监控环境温湿度,用于判断火灾风险。

2.4 火焰传感器电路

火焰传感器采用红外接收管,对火焰特征波段(700nm~1100nm)敏感,输出模拟电压。

  • 接口:模拟量输出,接入 STM32 的 ADC 通道;
  • 功能:当检测到火焰光谱时,输出电压发生变化,由单片机判断是否触发火灾报警。

2.5 蜂鸣器与 LED 电路

  • 蜂鸣器电路:采用有源蜂鸣器,直接受 STM32 GPIO 控制,发生火灾时发出响亮报警声。
  • LED 电路:采用高亮度 LED 作为报警灯,由 GPIO 控制点亮与闪烁,配合蜂鸣器形成声光报警系统。

2.6 显示电路(可选)

若需要本地查看数据,可接入 OLED 或 LCD1602 显示屏,通过 I2C/SPI 或并口与 STM32 通信,用于显示实时温湿度和火焰状态。


3 程序设计

系统软件设计采用 模块化结构,主要分为:主程序框架、传感器采集、数据处理与阈值判断、报警控制、WiFi 通信及 OneNet 平台交互几个部分。


3.1 主程序框架

#include "stm32f10x.h"
#include "wifi.h"
#include "sensor.h"
#include "buzzer.h"
#include "led.h"
#include "onenet.h"

int main(void)
{
    SystemInit();
    Sensor_Init();
    LED_Init();
    Buzzer_Init();
    WIFI_Init();
    OneNet_Init();

    while(1)
    {
        Sensor_ReadAll();      // 读取温湿度和火焰信号
        OneNet_UploadData();   // 上传数据到云平台
        Control_Process();     // 判断阈值并执行报警
        Delay_ms(1000);        // 1s 周期
    }
}

3.2 传感器采集程序

温湿度读取:

void Sensor_ReadAll(void)
{
    temperature = DHT11_ReadTemp();
    humidity = DHT11_ReadHumi();
    flame_value = ADC_ReadChannel(FLAME_CHANNEL);
}

3.3 阈值判断与报警控制

void Control_Process(void)
{
    // 温度超过阈值报警
    if(temperature > TEMP_THRESHOLD || flame_value > FLAME_THRESHOLD)
    {
        Buzzer_On();
        LED_Flash();
        OneNet_SendAlert();   // 上传报警信息
    }
    else
    {
        Buzzer_Off();
        LED_Off();
    }
}

3.4 蜂鸣器与 LED 控制程序

void Buzzer_On(void)
{
    GPIO_SetBits(GPIOB, GPIO_Pin_5);
}

void Buzzer_Off(void)
{
    GPIO_ResetBits(GPIOB, GPIO_Pin_5);
}

void LED_Flash(void)
{
    static uint8_t state = 0;
    if(state)
        GPIO_SetBits(GPIOC, GPIO_Pin_13);
    else
        GPIO_ResetBits(GPIOC, GPIO_Pin_13);
    state = !state;
}

3.5 WiFi 通信与 OneNet 平台交互

系统通过 ESP8266 串口 AT 指令与 OneNet 交互,使用 MQTT 协议上传数据。

数据上传函数:

void OneNet_UploadData(void)
{
    char data[128];
    sprintf(data,"{\"temp\":%d,\"humi\":%d,\"flame\":%d}",
            temperature, humidity, flame_value);
    ESP8266_Send(data);
}

报警信息推送:

void OneNet_SendAlert(void)
{
    char alert[64];
    sprintf(alert,"{\"alert\":\"FIRE_WARNING\"}");
    ESP8266_Send(alert);
}

4 总结

本设计实现了一个 基于 STM32F103 的物联网火灾报警系统,系统功能涵盖环境检测、火焰检测、声光报警以及云端数据上传。其主要特点如下:

  1. 实时检测:通过温湿度和火焰传感器,实时掌握环境参数;
  2. 声光报警:当异常发生时,蜂鸣器与 LED 提供即时报警提醒;
  3. 远程监控:利用 ESP8266 WiFi 模块将数据上传至 OneNet 平台,用户可远程查看与接收火灾报警;
  4. 系统扩展性强:可增加更多传感器或与消防设施联动,实现更高层次的智能防火。

该系统具有实现成本低、部署方便、应用广泛等优势,可应用于家庭、仓库、办公室等场所,为火灾预警提供可靠的技术支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点灯师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值