【零知ESP8266教程】快速入门12-火焰报警器制作

本文介绍了一种使用零知ESP8266开发板和火焰传感器制作简易火焰报警器的方法。通过红外三极管对火焰的敏感性,当检测到火焰时,LED灯将亮起以发出警告。文章详细描述了所需工具、硬件连接方式及代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此后的分享,我们都会加入一些新的电子元素,都可适用于零知开发板的。这些电子元素的加入是为了方便我们更加深入的去了解电子世界,更多地在于日后我们在做项目的时候,可以清晰的了解各个部件的机能和作用。将这些简单的元素综合起来,就可以完成一个小项目,类似之前分享中的抢答器model的制作。若是有感兴趣的小伙伴,可以直接关注零知实验室官网,分享你的电子作品,共同学习,共同进步哦。

本次的作品,我们使用到的新元素——火焰报警器。
火焰报警器主要是利用了红外三极管对火焰非常敏感的特点,在有火焰的情况下,红外接收管根据火焰亮度就会转化为电平的高低变化,从而检测到火焰发生。下面我们就制作一个简单的火焰报警器,当有火焰发生的时候,我们的LED灯会亮起来,提醒火焰发生。
一、工具原料
电脑,windows系统
零知ESP8266开发板
micro-usb线
LED灯一个
220Ω 电阻1个
火焰传感器1个
10kΩ 电阻1个
面包板一个+若干跳线

二、硬件连接
在这里插入图片描述

在这里插入图片描述

三、方法步骤
1、打开零知实验室软件开发工具,然后新建项目,输入以下代码:

/**
*    文件: 火焰报警器.ino      by 零知实验室([url=http://www.lingzhilab.com]www.lingzhilab.com[/url])
*    -- 零知开源,让电子制作变得更简单! --
*    时间: 2018/06/26 15:23
*    说明: 
**/
  
int port = A0;//连接火焰传感器
int led = 0;//连接LED报警的脚
  
int value = 0;//测量的模拟数值
  
// the setup routine runs once when you press reset:
void setup() {
    // put your setup code here, to run once:
  
        pinMode(led, OUTPUT);//初始化LED灯
        Serial.begin(9600);//设置打印的波特率
}
  
// the loop routine runs over and over again forever:
void loop() {
    // put your main code here, to run repeatedly:
  
        value = analogRead(port);
        Serial.println(value);//打印出来便于调试
          
        if(value > 50)//这个值要根据实际情况进行调整到最佳,根据串口打印得到的数据来调整
        {
                digitalWrite(led, LOW);//打开LED,进行报警
        }
        else{
                digitalWrite(led, HIGH);//关闭led
        }
          
        delay(500);//延时一会儿,这里是为了串口打印便于观察,实际的时候要把这个延时去掉或者延时很小的一段时间
}

2、按照之前的方式先【验证】,然后【上传】到开发板中。

四、成果展示
上面步骤成功完成后,我们就可以看到预期的结果了。在这里我们没有火焰的测试条件时候,可以用红外遥控器模拟一下,按下红外遥控的一个按键的时候发送红外信号,对着火焰传感器按下遥控按键,可以看到LED灯亮了,并且串口工具中可以看到读到模拟数值比较大,在真实场景下可以用打火机灯去验证一下,数值同样有明显的变化!
在这里插入图片描述

效果视频:点我传送观看嘞

可以检测温度、烟雾浓度、天然气浓度、火焰、是否有人,将温度、烟雾浓度、天然气浓度显示在OLED屏幕上,过WiFi模块上传到手机APP,温度、烟雾浓度超过阈值,可以声光报警和语音模块提示,APP提示,打开窗户和通风扇降温和通风,天然气浓度超过阈值同样可以报警可以打开窗户和通风扇,关闭天然气阀门,出现火焰可以报警,打开窗户和通风扇,并且断电和洒水灭火,若无法灭火则通过gsm模块发短信到119灭火。基于STM32的家用火灾报警系统设计 可以检测温度、烟雾浓度、天然气浓度、火焰、是否有人,将温度、烟雾浓度、天然气浓度显示在OLED屏幕上,过WiFi模块上传到手机APP,温度、烟雾浓度超过阈值,可以声光报警和语音模块提示,APP提示,打开窗户和通风扇降温和通风,天然气浓度超过阈值同样可以报警可以打开窗户和通风扇,关闭天然气阀门,出现火焰可以报警,打开窗户和通风扇,并且断电和洒水灭火,若无法灭火则通过gsm模块发短信到119灭火。基于STM32的家用火灾报警系统设计 可以检测温度、烟雾浓度、天然气浓度、火焰、是否有人,将温度、烟雾浓度、天然气浓度显示在OLED屏幕上,过WiFi模块上传到手机APP,温度、烟雾浓度超过阈值,可以声光报警和语音模块提示,APP提示,打开窗户和通风扇降温和通风,天然气浓度超过阈值同样可以报警可以打开窗户和通风扇,关闭天然气阀门,出现火焰可以报警,打开窗户和通风扇,并且断电和洒水灭火,若无法灭火则通过gsm模块发短信到119灭火。
最新发布
03-29
<think>嗯,用户之前已经问过关于基于STM32的火灾报警系统设计的问题,现在又详细描述了更复杂的需求,包括多个传感器、OLED显示、WiFi和GSM模块,以及各种报警和联动控制。看起来用户可能是在完善毕设或者项目设计,需要更全面的解决方案。 首先,用户的需求明显比之前更复杂,新增了天然气浓度检测火焰检测、人体存在检测,还有联动控制比如开关窗户、通风扇、关闭阀门、断电、洒水,以及通过GSM发送短信给119。这些功能需要多个模块的协同工作,硬件和软件的复杂度都提高了。 接下来,我需要考虑用户可能的背景。用户可能还是学生,正在做毕业设计或者课程项目,对嵌入式开发有一定了解但经验不足。之前的建议已经涵盖了基础入门和简化方案,现在需要更详细的模块分解和实现步骤,以及如何整合这些复杂的功能。 用户可能遇到的挑战包括多传感器的数据采集和处理、多模块的通信(WiFi、GSM)、联动控制的执行机构(如电机控制窗户、继电器控制风扇和阀门)、以及系统的实时性和可靠性。此外,软件方面需要处理多任务,比如同时处理传感器数据、更新OLED显示、与手机APP通信、执行报警逻辑等,可能需要RTOS来管理任务。 需要提醒用户注意硬件选型,比如选择数字输出的传感器以减少ADC的使用,或者使用成熟的模块简化开发。同时,在软件架构上,建议使用状态机或者FreeRTOS来管理不同的任务,确保系统的响应速度。另外,安全方面,比如关闭天然气阀门和断电,可能需要使用继电器模块,但要确保电路设计正确,避免高压部分干扰微控制器。 还要考虑成本问题,用户可能需要一个经济实惠的方案,推荐常用的模块如ESP8266用于WiFi,SIM800L用于GSM,以及常见的传感器型号。同时,代码复用和库的支持可以节省开发时间,比如使用现有的OLED库、WiFi库和GSM库。 最后,测试环节也很重要,用户需要分阶段测试每个模块的功能,再进行系统联调,确保所有功能协同工作,特别是在紧急情况下的可靠性,比如火焰检测触发洒水系统和短信报警的及时性。需要提醒用户注意法律和安全标准,确保设计符合相关法规,比如GB4717-2005的测试要求。 总之,用户需要一个全面、详细且可行的设计方案,涵盖硬件选型、软件架构、模块集成、安全措施和测试步骤,同时兼顾成本和开发时间。需要将复杂的功能分解为可管理的部分,逐步实现,并提供学习资源和调试技巧,帮助用户顺利完成项目。</think>以下是针对您需求的**家用火灾报警系统设计方案**,包含硬件选型、软件架构及实施要点,采用模块化分解方式便于分步实现: --- ### 一、系统架构设计 ```mermaid graph TD A[STM32F407] --> B[传感器阵列] A --> C[执行机构] A --> D[通信模块] B --> B1[温度传感器DS18B20] B --> B2[烟雾传感器MQ-2] B --> B3[天然气传感器MQ-4] B --> B4[火焰传感器KY-026] B --> B5[人体红外HC-SR501] C --> C1[步进电机开窗器] C --> C2[继电器控制风扇] C --> C3[电磁阀控制器] C --> C4[水泵+电磁阀] C --> C5[声光报警器] C --> C6[语音模块SYN6288] D --> D1[ESP8266 WiFi] D --> D2[GSM模块SIM800L] D --> D3[OLED显示屏SSD1306] ``` --- ### 二、关键模块实现方案 #### 1. 多传感器融合检测 - **数据采集策略** - 温度:DS18B20单总线协议(时序要求严格,需精确延时) - 燃气:MQ-4模拟量采集(需ADC校准,公式:$$C_{ppm}=k \cdot (V_{out}/V_{cc})^{m}$$) - 火焰:KY-026数字输出(通过比较器设定阈值) - 人体检测:HC-SR501信号线检测(上升沿触发中断) #### 2. 联动控制逻辑 ```c // 燃气超标处理函数示例 void GasHandler(float concentration) { if(concentration > 1000) { // 单位ppm HAL_GPIO_WritePin(VALVE_GPIO_Port, VALVE_Pin, GPIO_PIN_RESET); // 关闭阀门 HAL_GPIO_WritePin(FAN_GPIO_Port, FAN_Pin, GPIO_PIN_SET); // 启动风扇 StepperMotor_Rotate(180); // 开窗180度 SYN6288_Speak("检测到燃气泄漏"); } } ``` #### 3. 通信模块配置 | 模块 | 协议 | 接口 | 关键代码 | |------|------|------|----------| | ESP8266 | MQTT | USART3 | `AT+CIPSEND=0,15` 发送JSON数据 | | SIM800L | SMS | USART2 | `AT+CMGS="119"\r` 发送报警短信 | | OLED | I2C | I2C1 | `SSD1306_ShowString(0,2,"Temp:25.6C",16)` | --- ### 三、软件设计要点 #### 1. 多任务处理方案 - 采用FreeRTOS创建任务: ```c xTaskCreate(vSensorTask, "Sensor", 128, NULL, 3, NULL); xTaskCreate(vCommTask, "Communication", 256, NULL, 2, NULL); xTaskCreate(vControlTask, "Actuator", 192, NULL, 4, NULL); ``` #### 2. 报警优先级设置 1. 火焰检测(最高优先级,立即触发灭火) 2. 燃气泄漏(次优先,关闭阀门) 3. 温度/烟雾(常规报警) --- ### 四、硬件选型建议 | 模块 | 推荐型号 | 参数 | 单价 | |------|----------|------|------| | 主控 | STM32F407VET6 | 168MHz, 512KB Flash | ¥45 | | WiFi | ESP-12F | 802.11 b/g/n | ¥15 | | 燃气阀 | ZCLF-20 | DC12V, 接口G1/2 | ¥68 | | 水泵 | MH-SM3V | 3V微型水泵 | ¥25 | --- ### 五、安全防护设计 1. **电气隔离** - 强电控制部分使用光耦隔离(如TLP521-4) - 继电器模块选用JQC-3FF-S-Z(触点容量10A 250VAC) 2. **失效保护** - 看门狗电路设计(MAX706R) - 关键状态EEPROM存储(AT24C02) --- ### 六、开发路线图 1. **第一阶段(1周)** - 完成传感器数据采集(串口输出原始数据) 2. **第二阶段(2周)** - 实现OLED显示+WiFi通信(APP显示基础数据) 3. **第三阶段(3周)** - 完成执行机构控制(重点调试步进电机时序) 4. **第四阶段(1周)** - 系统联调与压力测试 --- ### 七、成本与性能指标 | 项目 | 指标 | |------|------| | 检测范围 | 温度0-100℃ (±0.5℃), 燃气0-10000ppm | | 响应时间 | <3秒(从检测到报警触发) | | 待机功耗 | <5W(休眠模式) | | 总成本 | ¥320-400(视执行机构选型) | 建议优先使用PlatformIO开发环境,其库管理器可快速集成`Adafruit_SSD1306`、`PubSubClient`等开源库,大幅降低开发难度。火焰检测建议增加滤波算法: ```c #define FIRE_DETECT_TIMES 5 // 连续5次检测火焰才确认 uint8_t fire_count = 0; if(FLAME_PIN_READ){ fire_count++; if(fire_count >= FIRE_DETECT_TIMES) FireHandler(); }else{ fire_count = 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值