基于温湿度和烟雾传感器的火灾检测系统设计

基于温湿度和烟雾传感器的火灾检测系统设计

  • 一、硬件介绍
    • 1、单片机STM32F103ZET6
    • 2、MQ-2烟雾传感器
    • 3、DHT11数字温湿度传感器
    • 4、高电平触发有源蜂鸣器模块
    • 5、ESP8266
    • 6、MB-102电源模块

本来想把软硬件写在一起,但后来发现内容比较多,我写起来比较花时间,读者看起来应该也挺累,索性拆开来,软件部分后续补充。
说明:题目只是完成基本的功能,精度并不高。

一、硬件介绍

基于温湿度和烟雾传感器的火灾检测系统设计,顾名思义,需要温湿度传感器——选用DHT11,烟雾传感器——选用MQ-2,核心为STM32单片机,整理以下内容,一是梳理所做题目内容,二是给处理相关题目却没有思路的朋友们提供一个可行的方案。

1、单片机STM32F103ZET6

STM32F103ZET6是一种嵌入式—微控制器的集成电路(IC),是由ST(STMicroelectronics,意法半导体)公司开发的 STM32 F1系列的其中一种,最高72MHz工作频率。

  • 满足串行单线调试(SWD)和JTAG接口——可以使用J-LinkST-Link烧录程序,当然也可以使用USB调试软件例如FLYMCU——不需要专门的仿真器,后续有时间再更新相关内容,基础的使用并不复杂;
  • 多达8个定时器,本次使用了TIMER3,设置系统ADC采样函数执行间隔时间
  • 系统时间定时器,一种简单的,24位写清零、递减、自装载同时具有可灵活控制机制的计数器,可以用来设置程序的延时函数
  • 5个USART接口,本次使用了其中三个,分别是:
    • ①USART1(PA9_TX,PA10_RX):输入、输出、打印串口,用于与上位机传输数据,同时输出ESP8266上传信息的反馈;
    • ②USART2(PA2_TX,PA3_RX):使用PA2引脚对应的ADC123_IN2采集烟雾传感器AO端口输出的模拟信号,需要注意此时电源模块和单片机的地一定要接在一起,即共地,否则输出电压属于“无根浮萍”并不准确;
    • ③USART3(PB10_TX,PB11_RX):作为ESP8266的驱动串口,也是传输的串口,WiFi模块与TX、RX端交替连接,实现单片机→WiFi→ONENET云端的连接。

2、MQ-2烟雾传感器

烟雾传感器的接线如图1所示,采用直流DC 5V 供电,电流在150mA 左右,DO输出为TTL数字量0和1 (0.1和5V ),AO输出为范围输出,相对无污染时在为0.1-0.3V ,高浓度电压4V 左右。基于温湿度和烟雾传感器的火灾检测系统设计_第1张图片

图1 烟雾传感器接线图

基于温湿度和烟雾传感器的火灾检测系统设计_第2张图片

图2 烟雾传感器外观图

需要注意传感器通电后,需要预热20S左右,测量的数据才稳定,因为内部有电热丝,传感器发热属于正常现象,但如果烫手就不正常了。

3、DHT11数字温湿度传感器

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性,包括一个电阻式感湿元件和一个NTC测温元件,输出为单线制串行接口。购买的模块商家已封装为3针单排引脚(原为4针单排引脚),参数如表1所示。

表1 DHT11温湿度传感器参数
名称 数据 名称 数据
湿度测量范围 20%-95% 湿度测量误差 ±5%
温度测量范围 0℃-50℃ 温度测量误差 ±2℃
工作电压 3.3V-5V 尺寸 3.2cm * 1.4cm

需要注意,DHT11总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号,主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高(上拉电阻——无需焊接基本电路,已集成),时序如图3所示。
基于温湿度和烟雾传感器的火灾检测系统设计_第3张图片

图3 温湿度传感器时序图

基于温湿度和烟雾传感器的火灾检测系统设计_第4张图片

图4 温湿度传感器外观及接线图

部分DHT11模块商家已封装为3针单排引脚(原为4针单排引脚),不影响使用。

4、高电平触发有源蜂鸣器模块

出于使用方便的考虑,选用有源蜂鸣器模块,采用S8050三极管驱动,工作电压3.3V -5V ,当I/O口输入高电平时,蜂鸣器发声。
有两点需要明确的地方:
(1)无源蜂鸣器内部不带震荡与源,所以如果用直流信号无法令其鸣叫必须用2K~5K的方波去驱动它,声音频率可控,可以通过程序控制“播放”音乐;而有源蜂鸣器当I/O口输入高/低电平时,蜂鸣器就会发声,控制起来很方便;
(2)如果只是购买的蜂鸣器本身,而非模块化产品,则需要驱动电路,如图5所示,因为蜂鸣器本身需要的电流是比较大的。
基于温湿度和烟雾传感器的火灾检测系统设计_第5张图片

图5 蜂鸣器驱动电路

驱动电路中可以看见使用了三极管2N3904(模块一般使用的是S8050)、二极管1N4148W:
(1)三极管放大电路,根据三极管放大公式集电极电流IC=βIB,放大倍数一般80~100,根据需要自行调整,关于放大电路后续有时间再整理,不理解的话可以查阅模电相关资料,该驱动电路的目标就是使得流经蜂鸣器的电流在700mA以上;
(2)二极管则是用来完成瞬时大电流的泄流,蜂鸣器是有电感电路的(或者说它可以看作电感器件),那么在断电的瞬间U=L*di/dt,dt很小,造成的结果就是回路瞬时电压(电流)非常大,故需要并联一个二极管。
基于温湿度和烟雾传感器的火灾检测系统设计_第6张图片

图6 高电平触发有源蜂鸣器模块

5、ESP8266

ESP8266-01S模块采用TENSILICAL106 32位微控制器,外围总线兼容UART/SDIO/SPI/12C/ADC/PWM等,工作电压3.0V-3.6V,工作电流的平均电流80mA,工作温度-40℃-125℃。
注:5V其实也可以使用,不过发热严重,如果电源不稳定,可能导致ESP8266-01S模块损坏,还是推荐使用3.3V供电。
支持三种模式:AP\STA\AP+STA共存模式,可烧录安信可通用官方固件,包含简洁高效的AT指令,开发更简单,常见指令见表2,本次应用实例如图7,图8为调试完成后实际的接线图。

表2 常见AT指令
指令 描述
AT 测试AT启动,返回OK
AT+RST 重启模块,返回OK
AT+CIPMUX 启动多连接,返回OK/Link isbuilded;mode:0、单路连接模式;1、多路连接模式;只有当连接都断开后才能更改,如果开启过server需要重启模块
AT+CIPMODE 设置模块传输模式,返回OK/Link isbuilded;mode:0、非透传模式1、透传模式。
AT+CWJAP 加入AP,返回OK或ERROR;ssid:接入点名称;pwd:密码最长64字节ASCII。
AT+CIPSTART 建立TCP连接,返回OK/ERROR/ALREAY CONNECT;id:连接的id号0-4;type:TCP/UDP;addr:远程服务器ip地址;port:远程服务器端口号
AT+CIPSEND 发送数据,返回,换行返回》,ERROR/SENDOK;

模块初始化时可以使用下图7所示指令。
基于温湿度和烟雾传感器的火灾检测系统设计_第7张图片

图7 串口调试助手(XCOM)调试时发送指令

本次使用的指令如下,将模块设置为透传模式:

1、AT+RST             
2、AT+CWMODE=1  
3、AT+CIPMUX=0
4、AT+CIPMODE=1
5、AT+CWJAP="CHEN","13086374192" 
6、AT+CIPSTART="TCP","183.230.40.33",6002
7、AT+CIPSEND

初学者不懂“透传”没关系,网上一大堆定义,知道设置好透传模式,可以传输数据就行了。
基于温湿度和烟雾传感器的火灾检测系统设计_第8张图片

图8 ESP8266-01S接线图(已完成烧录)

说明:ESP8266-01S的烧录方式网上有不少资料,可以查阅、借鉴,后续有时间再整理。

6、MB-102电源模块

MB-102电源模块基本参数:

  • 兼容5V/3.3V,输入电压为6.5-10V(直流)或使用升压线接USB供电,输出时3.3V/5V可通过跳线帽选择
  • 限大输出电流<700mA(实际测试中,供电电流在1.1A左右);
  • 上下两路独立控制,可切换为0V、3.3V、5V;
  • 板载的两组3.3V/5V直流输出插针带自锁开关指示灯;
  • 稳压芯片采用AM1117-5.0和AM1117-3.3V,MB-102电源模块,模块内部电路如图2-11所示。
    - 需要注意:
    • 模块输入6.5V~10V,如果输入5V得不到5V电压,稳压芯片输入输出时有电压差,将导致无法工作,但如果只用3.3V,5V输供电时可以得到3.3v稳定电压,实物外观如图2-12所示。
    • 前面已经提过,供电时注意与单片机共地,否则不管是烟雾传感器MQ-2模块还是温湿度传感器DHT11模块,输出的数据属于“无根浮萍”并不准确。
      基于温湿度和烟雾传感器的火灾检测系统设计_第9张图片
图9 MB-102电源模块内部电路原理图

原理图源自使用手册,从图9可以看出,内部主要由5V、3.3V稳压(降压)芯片构成,所以在配置电源时也可以采用三节18650电池,经LM2596S、AMS1117等降压芯片降压后构成5V、3.3V电源供电,当然也需要考虑降压后供电电流是否足够,可以查看DATASHEET(数据手册)获取相关数据,一般来说是满足的。

你可能感兴趣的:(物联网,单片机,stm32)