一、项目简介
在当今社会空气环境污染很严重,我想要设计一个空气环境质量检测系统。空气环境质量检测主要是针对该区域内空气中的甲醛、颗粒物、臭氧、挥发性有机物VOC等气体进行检测,通过检测采集数据进行上传到阿里云,进行监控和警示。
本项目是基于STM32F103C8T6完成了空气质量检测系统,传感器M702采集甲醛、二氧化碳、PM2.5、PM10、TVOC的浓度和温湿度;甲醛、二氧化碳、PM2.5、PM10、TVOC的浓度和温湿度通过wifi模块周期性上传到阿里云物联网平台,能够实时更新数据;1.77寸TFT彩屏提供显示功能,能够显示甲醛、二氧化碳等浓度和温湿度。
二、项目说明
- 设计中用到规定厂商的元器件介绍
主控MCU选用ST的STM32F103C8T6
wifi选用ESP的ESP01S.
空气质量检测系统的核心功能如下:
1.实时监控室内环境信息,如甲醛、二氧化碳、PM2.5、PM10、TVOC浓度和温湿度;
2.实时检测环境信息并将其信息显示在TFT屏上,也可通过WIFI传至云端;
3.环境信息可通过WIFI上传至阿里云物联网平台显示。
三、方案设计
1.系统硬件方案
空气质量检测系统以STM32F103C8T6主控芯片组为核心,由M702七合一空气质量检测模块、TFT显示模块、ESP01SWIFI构成。
本项目的主要框图如下
2.模块介绍
2.1.STM32F103C8T6
1. 详细解释:
- STM32F103C8T6是意法半导体(STMicroelectronics)公司推出的一款微控制器芯片,采用了ARM Cortex-M3内核架构。
- - 它具有丰富的外设资源,包括多个通用目的I/O引脚、串口通信接口、定时器、模数转换器(ADC)、SPI、I2C等,可满足各种应用需求。
- 芯片内部还集成了闪存存储器和RAM,用于存储程序代码和数据。
- 它支持多种通信协议和总线,如CAN、USB、Ethernet等,可方便地与其他设备进行通信。
2. 参数规格:
- 32位ARM Cortex-M3内核,主频可达到72MHz。
- 闪存存储器容量为64KB或128KB。
- RAM容量为20KB。
- 支持多种外设接口,如GPIO、USART、SPI、I2C、ADC等。
- 支持多种通信协议和总线,如CAN、USB、Ethernet等。
- 工作电压范围为2.0V至3.6V。
3. 应用领域:
- STM32F103C8T6广泛应用于各种嵌入式系统和物联网(IoT)设备。
- 它可以用于工业自动化控制、家用电器控制、智能家居系统、电动工具、医疗设备、安防系统等领域。
- 由于其丰富的外设资源和通信接口,它也常用于各种传感器节点、无线通信模块、机器人控制等应用场景。
2.2.M702七合一传感器
M702七合一传感器模块是一款高性价比的数字串口输出传感器模块,采用UART串口电平输出模式,集CO2,甲醛,TVOC,激光粉尘PM2.5,PM10颗粒物,温度,湿度于一体。它可对所处环境进行实时全面的检测,具有良好的稳定性非常方便客户使用。
应用领域:
● 酒店房间空气质量监控
● 农业大棚,户外养殖场所环境监控
● 新风换气系统
● 空气净化器,空调
● 空气质量监测设备
● 厨卫换气控制系统
● 智能家居设备
特点:
● 同时输出二氧化碳.甲醛.TVOC.PM2.5. PM10.温度.湿度共七组数据
● 灵敏度高,数据稳定
● UART 输出模式
● 温度精确到0.1℃,湿度精确到0.1%
● 每2秒自动通过UART信号输出七组传感器监测数据
规格参数:
类 别
| 测 量 分 辨 率 | 测 量 范 围 | 测 量 精 度 |
CO2 | 1ppm | 400ppm~5000ppm | ±25% |
CH2O | 1ug/m3 | 0ug~1000ug/m³ | ±25% |
TVOC | 1ug/m3 | 0ug~2000ug/m³ | ±25% |
PM2.5 | 1ug/m3 | 0ug/m3~999ug/m³ | ±10% |
PM10 | 1ug/m3 | 0ug/m3~1000ug/m³ | ±10% |
Temperature | 0.01℃ | -40℃~100℃ | ±0.3℃ |
Humidity | 0.04% | 0~100% | ±3%RH |
物理接口 | XH2.54母座 | ||
输出数据 | UART | ||
工作电压 | 5.0±0.2VDC | ||
工作电流 | ≤80mA | ||
预热时间 | 2分钟(只有CO2,CH2O和TVOC需要预热,其它参数上电即显示) | ||
工作温度 | 0℃~50℃ | ||
工作湿度 | ≤95%RH | ||
外形尺寸 | 62*49*15mm(L×W×H) | ||
使用寿命 | 5年(空气中) |
注意:模块输出的CO2值和CH2O值均为TVOC的等效值,客户购买和使用时请注意。
UART 接口定义:
接口
| 名称 | 功能 |
1 | 5V | 接电源 5V |
2 | GND | 电源地 |
3 | N/A | 悬空 |
4 | TXD | UART 数据输出脚 |
串口数据流格式:
波特率
| 9600bps |
数据位 | 8 位 |
校验位 | 无 |
停止位 | 无 |
通信协议:
字 节
| 名称 | 说明 |
B1 | 帧头1 | 固定值 3Ch |
B2 | 帧头2 | 固定值 02h |
B3 | 数据 | eCO2 高字节 |
B4 | 数据 | eCO2 低字节 |
B5 | 数据 | eCH2O 高字节 |
B6 | 数据 | eCH2O 低字节 |
B7 | 数据 | TVOC 高字节 |
B8 | 数据 | TVOC 低字节 |
B9 | 数据 | PM2.5 高字节 |
B10 | 数据 | PM2.5 低字节 |
B11 | 数据 | PM10 高字节 |
B12 | 数据 | PM10 低字节 |
B13 | 数据 | Temperature 整数部分 |
B14 | 数据 | Temperature 小数部分 |
B15 | 数据 | Humidity 整数部分 |
B16 | 数据 | Humidity 小数部分 |
B17 | 校验和 | 校验和 |
说明:校验和B17等于:B1+B2+······B16的值,取低8位。
当温度的数据 B13 的bit7=1 时, 代表是负温度,B13 的bit7=0 时,是正温度。例如,当 B13=9Bh 时,此时 bit7=1, 表示是负温度,此时实际温度就是-27℃;如果 B13=1Bh,此时bit7=0,代表是正温度,此时实际温度就是 27℃。
2.3.1.77寸TFT彩屏
SPI通讯,采用中景园电子代码。
2.4.WIFI
采用ESP01S烧录MQTT透传AT固件。
四、具体功能介绍
1.M702模块的数据读取
M702连接示意图
2.MQTT
1. MQTT协议简介
MQTT协议全称是Message Queuing Telemetry Transport,翻译过来就是消息队列遥测传输协议,它是物联网常用的应用层协议,运行在TCP/IP中的应用层中,依赖TCP协议,因此它具有非常高的可靠性,同时它是基于TCP协议的<客户端-服务器>模型发布/订阅主题消息的轻量级协议,也是我们常说的发送与接收数据,下面我们来初步了解一下mqtt相关的名称与功能。
MQTT通信模型
MQTT 协议提供一对多的消息发布,可以降低应用程序的耦合性,用户只需要编写极少量的应用代码就能完成一对多的消息发布与订阅,该协议是基于<客户端-服务器>模型,在协议中主要有三种身份:发布者(Publisher)、服务器(Broker)以及订阅者(Subscriber)。其中,MQTT消息的发布者和订阅者都是客户端,服务器只是作为一个中转的存在,将发布者发布的消息进行转发给所有订阅该主题的订阅者;发布者可以发布在其权限之内的所有主题,并且消息发布者可以同时是订阅者,实现了生产者与消费者的脱耦,发布的消息可以同时被多个订阅者订阅。
MQTT客户端的功能:
1.发布消息给其它相关的客户端。
2.订阅主题请求接收相关的应用消息。
3.取消订阅主题请求移除接收应用消息。
4.从服务端终止连接。
MQTT 服务器常被称为 Broker(消息代理),以是一个应用程序或一台设备,它一般为云服务器,比如BTA三巨头的一些物联网平台就是常使用MQTT协议,它是位于消息发布者和订阅者之间,以便用于接收消息并发送到订阅者之中,它的功能有:
1.接受来自客户端的网络连接请求。
2.接受客户端发布的应用消息。
3.处理客户端的订阅和取消订阅请求。
4.转发应用消息给符合条件的已订阅客户端(包括发布者自身)。
五、对本大赛的心得体会
首先非常感谢FastBond第三季大赛这次参赛的机会。本次设计大赛学习到了很多东西,对云平台的连接有了更深入的了解,同时对STM32F103单片机的内核以及控制有了充足的认知,希望能完成挑战部分。