APP下载

基于STM32的家居环境监测系统的设计

2017-07-20茅天阳赵亮

物联网技术 2017年7期
关键词:云端甲醛串口

茅天阳++赵亮

摘 要:为了实现对家居环境中温度、湿度、甲醛、PM2.5、PM10等环境参数的实时监测,文中设计并实现了以STM32开发板为核心,凭借外部搭建的传感器网络进行数据采集,并通过LCD屏幕显示环境数据的家居环境监测系统,该系统测量精度高,具有较好的移植性和易用性。可通过GPRS通信模块将检测仪表连入云服务器,并可在远端PC或移动电话上实时查看,从而节省了现场采集数据的时间并有效避免了有毒气体对人体的伤害,具有较好的实时性、经济性和安全性。

关键词:STM32开发板;甲醛;CO;PM2.5;传感器;GPRS;云服务器

中图分类号:TP273.5 文献标识码:A 文章编号:2095-1302(2017)07-0-04

0 引 言

进入21世纪以来,中国经济飞速发展,城镇化道路建设步伐加快,人们在室内活动的时间增多,因此对室内环境的要求也越来越高,人们的办公及居住空间逐渐增大,室内装修也更加频繁。室内空气污染物主要来源于装修材料挥发的甲醛、苯等有害物质,可导致呼吸道疾病,长期慢性吸入低浓度甲醛可导致持续性头痛、失眠、无力、心悸等;还会引发皮炎,过敏者甚至会出现麻疹[1-3]。此外,对于办公场合,研究表明,良好的室内空气质量可有效提高工作人员的工作效率[4-6]。因此人们需要对自己的生活环境有一个实时了解,家居环境监测系统应运而生,用户只需上电启动,仪器即可监测环境参数,并把相应结果实时显示在屏幕上,同时还设有云端服务功能,可及时把一定周期内的数据上传云端,随时随地供分析使用。

1 系统方案设计

1.1 系统设计需求

基于STM32单片机开发板设计了一款家居环境监测系统,要求达到轻便、实时准确监测多项环境参数如温度、湿度、甲醛、CO、PM2.5、PM10等。监测系统应具有实时显示功能,把相应参数传输至液晶屏幕,且该系统具有数据上传云端功能,可把一定周期内的数据按时间节点上传到云端服务器,并通过手机App随时随地查看数据,以便数据的提取和分析。该系统的主要特点为可准确、方便地测量多种有害气体,可连入云端,体积小,方便携带和使用。

1.2 系统总体框架

根据设计需求分析,系统整体结构分为数据采集模块,流程控制和数据处理模块,LCD液晶显示模块,数据输出模块。

1.2.1 数据采集模块

数据采集利用STM32自带的ADC转换通道对甲醛、CO气体传感器进行采样;利用STM32对DHT11温湿度传感器输出的单总线数字信号进行采集;利用STM32的串口对SDS01PM2.5/PM10传感器输出的数据进行接收和解析。

1.2.2 流程控制和数据处理模块

该模块是监测仪的核心部分,包括对采集的数据的转换处理,对各硬件系统的初始化,串口初始化等。

1.2.3 LCD液晶显示模块

該模块主要负责把监测到已经处理的数据在液晶屏幕上实时显示出来,且显示实时时钟。

1.2.4 数据输出模块

该模块负责将监测到的实时数据通过GPRS模块实时上传到云端服务器,以便查看。系统结构图如图1所示。

2 系统硬件设计

2.1 主控芯片

本次设计采用STM32系列芯片,该系列产品具有价格低、功耗小、性能高等特点[7]。主要应用在嵌入式开发领域,如智能家居,医疗设备等。该芯片含有48 KB SRAM、256 KB Flash,2个基本定时器,4个通用定时器,2个高级定时器, 2个DMA控制器(共12通道),3个SPI,2个I2C,5个串口,1个USB,1个CAN,3个12位ADC,1个12位DAC,1个SDIO接口及52个通用IO口[8-10]。

2.2 液晶显示模块

本系统采用2.8寸TFT-LCD模块以ILI9320控制器为其驱动芯片,ILI9320液晶控制器自带显存。模块可显示字母、数字符号、中文。本设计通过STM32的普通IO口模拟8080总线来控制TFT-LCD的显示。

2.3 传感器选型

2.3.1 DHT11温湿度传感器

DHT11温湿度传感器是一款集温湿度测量于一体的数字传感器。该传感器多用于需要采集温度或者湿度的数字化监控系统中,具有较高的准确性和稳定性。传感器包括一个电阻式测湿元件和一个NTC测温元件。DHT11与单片机之间能采用简单的单总线进行通信,只需一个I/O口[11]。因此该产品具有响应速度快、抗干扰能力强、性价比高、纯数字化信号输出等优点。DHT11数字湿温度传感器有四个引脚,其硬件接口电路如图2所示。

2.3.2 MQ-7 一氧化碳传感器

一氧化碳传感器选择MQ-7。该传感器可检测含有一氧化碳的混合气体,是一款应用于低成本领域的气体传感器[12]。一氧化碳传感器接口电路如图3所示。

2.3.3 ZE08-CH2O甲醛传感器

ZH08-CH2O甲醛模组是一款通用型、小型化的电化学式甲醛传感器。利用电化学检测甲醛原理对空气中的甲醛进行探测,具有良好的选择性。该模组内部有温度传感器,可自行进行温度补偿,达到更高的准确性。

2.3.4 PM2.5/PM10传感器

SDS01是一款专业的,一致性好,精度高的PM2.5传感器。传感器输出的数据与官方单位一致,均为μg/m3。上电后数据即可输出,使用简单。同时该传感器还具有快速的场景变换响应,可满足精确、高效率的检测需求。

2.4 GPRS模块

GPRSDTU (Data Terminal Unit)的全称为数据传输单元,是一种物联网无线数据终端,利用公用运营商网络GPRS网络为用户提供无线长距离数据传输功能。USR-GPRS232-710采用工业级嵌入式处理器,内嵌TCP/IP协议栈。为用户提供高速、稳定可靠,数据终端永远在线,可多种协议转换的虚拟专用网络。支持AT命令配置,支持短信配置和APN配置功能。

3 系统软件设计

3.1 主控程序

主控程序的第一个功能便是初始化相应硬件设置,如LCD、LED初始化,串口初始化,ADC初始化,RTC时钟初始化等。其次是对采用时间的控制和数据处理,及控制LCD屏幕输出与GPRS上传云端。系统总程序流程如图4所示。

系统首先调用编写好的初始化程序进行初始化,初始化内容包括LCD初始化、ADC初始、DMA初始化、串口初始化、RTC时钟初始化;其次是自检,查看RTC时钟和硬件DHT11是否初始化成功,若不成功则退出;自检结束后显示时钟和一些需要显示的固定标志;通过时钟控制系统每5 s采样一次,并在采样完成后处理数据;将处理后的数據实时显示到LCD屏幕上;最后每隔1 min将数据通过串口传输到GPRS模块中,GPRS模块再把数据上传至云端。

3.2 数据采集程序

3.2.1 CO、甲醛气体数据采集程序

本系统使用两种气体传感器,分别为甲醛传感器与CO传感器,这两者均输出电压信号,使用STM32自带的ADC采样输入,需要三通道输入,且本系统需连续采样,故选择ADC扫描模式输入。采样程序流程图如图5所示。

采样流程首先应初始化ADC,配置输入通道和转换时间,其次配置DMA通道、输入输出目标地址及缓冲区大小。然后由软件启动ADC转换,再通过DMA把数据存储到数组中,之后关闭ADC转换,将数组数据转存到对应数据存储单元中。判断是否到达下一次转换时间,若到达则再次软件开启ADC转换,重复上述过程,若没到时间则等待,直到下一次转换时间到,再重复上述过程。

3.2.2 温湿度数据采集程序

主机发送开始信号后,延时20~40 μs后读取DHT11的回应信号,读取时总线电平为低,则说明DHT11已响应,而DHT11发送响应信号后,把总线电平拉高,即为准备发送数据,每一位数据传输开始都是低电平。若读取响应信号时为高电平,则说明DHT11无响应。

串口通讯数据帧见表1所列。DHT11数据采集流程如图6所示。

3.2.3 PM2.5、PM10数据采集程序

由于SDS01使用串口发送数据,所以需要确定通讯协议。本系统设定的串口波特率为9 600,数据位为8,无校验位,停止位为1。传感器一次传输的数据帧共10字节,由报文头、指令号、数据、校验及报文尾构成。

SDS01先开启对应串口并使能串口接收中断,当接收到的数据为0xAA时认为数据帧开始,并把之后的数据存入数组中暂时保存;当接收到0xAB时,认为数据帧发送结束,此时对存入数组的第2~7字节求和,若与校验和字节的数据一致,则认为成功发送一帧数据,并把相应的数据显示到液晶屏上。SDS01数据采集流程如图7所示。

3.3 液晶驱动程序

本系统使用的TFT-LCD由STM32的普通IO口模拟8080总线来控制显示,并将ILI9320控制器作为其驱动芯片。模块的8080并口读/写应先根据要写入/读取的数据类型设置RS为高(数据)/低(命令),然后拉低片选,选中ILI9341,之后根据要求置RD/WR为低。硬复位和初始化序列只需执行一次即可。画点先设置坐标,写GRAM指令与颜色数据,然后在LCD上就可看到对应的点显示写入的颜色。

3.4 GPRS模块配置及数据传输

3.4.1 Yeelink

物联网逐渐进入我们的生活,方便我们随时随地查看远端设备的运行状态并对其进行控制,Yeelink提供了一个很好的云端服务器平台。该系统采用Node.js语言提供传感器接入服务,实现了数据超大并发接入;在解决数据存储问题方面,Yeelink使用Hadoop分布式处理框架,针对传感器数据在时间上具有的连续性,数据插入时速度相对恒定,数据需要快速取回等特点,做了相应优化工作,使得系统能够稳定健壮的提供数据存储服务;在数据获取方面,Yeelink使用基于RESTful架构的开放API体系,通过统一的Web Service,使用户在取回和管理自身传感器数据时的界面更加友好简单,可使用各种语言实现客户端系统。设备通过网络连接到Yeelink服务器,上传本地检测数据,电脑或手机可访问设备数据。

3.4.2 GPRS模块配置

打开与该GPRS模块配套的配置软件USR-GPRS-DTU-V2.3.4.924,在配置界面中选择工作模式为数据透传模式,该模式下可实现串口设备与服务器平台之间的数据通讯;目标IP为42.96.164.52,端口号为80,这是Yeelink的云服务器所在IP,之后的数据包都要发向该端口;设置心跳时间为60 s,心跳包格式为0x50,0x44,心跳包是由GPRS模块发送给串口的数据,串口接到心跳包数据后开始上传传感器数据。

3.4.3 数据包传输流程

发送给Yeelink的数据包需要采用HTTP协议和JSON格式,具体格式如图8所示。

其中,DEVICE_ID,SENSOR_ID,APIkey均在注册后由网站分配获得;length是发送内容的长度,即图中最后一行所包含的字符数;数据打包在图中“22”所在位置。设备可根据返回的数据判断是否发送成功。在GPRS数据上传的流程中,先初始化串口并开启串口接收中断,当接收到GPRS模块发送的心跳包时,认为可上传数据;主控芯片将数据打包,并依次发送至服务器,每个数据包发送完后需得到服务器响应后才能发送下一个数据包。具体流程如图9所示。

图9 GPRS通信流程

4 系统组装及数据测试

该系统可采用LCD显示屏实时显示数据,设计界面上三行分别显示年份、时间、星期;下面依次显示温度、湿度、一氧化碳、甲烷、甲醛的测量数据。传输程序及原理图准备完成后,即完成了对系统的组装工作。

系统组装完毕后,在室内条件下对其进行各项数据测试,并在液晶面板上显示实时监测数据。基于STM32的家居环境监测系统数据测试结果如图10所示。

将系统数据上传至云端且在手机应用Yeelink上接收数据的系统调试效果如图11所示。

至此,系统调试完毕。依据该系统所能实现的功能,可对室内的温度、湿度、一氧化碳、甲烷、甲醛浓度进行实时监测,并将数据输送至服务器后上传至云端,用户即可通过互联网获得房屋内部相关信息。

5 结 语

本文采用STM32F103芯片作为核心处理器,外部连接各类传感器,设计并实现了家居环境监测系统的硬件电路及软件程序开发。该系统能够自动检测室内一氧化碳、甲醛、PM2.5等有害物质浓度及环境温湿度,通过GPRS模块将数据上传云端,易于监控和管理。经测试,系统可成功采集数据并上传云端。本系统采用模块化设计,具有较好的移植性,便于进行功能扩展,具有较高的研究和应用价值。

参考文献

[1]张晓辉,李双石,曹奇光,等.室内空气污染的危害及其防治措施研究[J].环境科学与管理,2009, 34(7):22-25.

[2]王胜娥.甲醛含量的检测以及甲醛传感器的研究[D].长沙:湖南大学,2005.

[3]孙建中.常用气体传感器原理与应用[J].中国电子商务,2013(4):76.

[4] P W argocki,DP Wyon,PO Fangeret,et al. Perceived air quality, sick building syndrome(SB) symptoms and productivity in an office with two different pollution loads[J].Indoor Air,1999,9(3):165-179.

[5]钱建华.室内空气品质的影响及改善措施[J].黑龙江科技信息,2011(26):76.

[6] Kroner WM, et al.Employee productivity an the intelligent workplace[C].Proceedings of the International Conference on Creating the Productive Workplace, London, 1997.

[7]吴广.基于STM32的汽车室内空气污染物监测系统设计[D].武汉:武汉纺织大学,2014.

[8]葛年明,殷彩萍,邵文学.基于STM32的室内有害气体检测系统设计[J].微型机与应用, 2015,34(23):20-22.

[9]唐密媛,张根宝.基于ARM Cortex-M3的便携式智能瓦检仪的设计[J].计算机测量与控制,2009,17(12):2562-2563.

[10]郎寶华,蔡莉媛.基于STM32的多气体检测系统设计[J].计算机与数字工程,2016,44(3):552-544.

[11] Z.A.Rashid,S.A.Al Junid.Trees cooling effect on surrounding air temperature monitoring system: Implementation and observation[J].International Journal of Simulation: System, Science and Technology,2014,2(15):70-77.

[12]李轩.基于单片机控制的室内有害气体监测系统的研究[J].东方教育,2014(10):256.

猜你喜欢

云端甲醛串口
微生物降解甲醛的研究概述
浅谈AB PLC串口跟RFID传感器的通讯应用
云端之城
如何确定“甲醛”临界量
美人如画隔云端
行走在云端
云端创意
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
对氟苯甲醛的合成研究