好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

14页
  • 卖家[上传人]:ji****81
  • 文档编号:223974605
  • 上传时间:2021-12-15
  • 文档格式:DOCX
  • 文档大小:356.35KB
  • / 14 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于STM32的家居环境监测系统的设计 茅天阳++赵亮摘 要:为了实现对家居环境中温度、湿度、甲醛、PM2.5、PM10等环境参数的实时监测,文中设计并实现了以STM32开发板为核心,凭借外部搭建的传感器网络进行数据采集,并通过LCD屏幕显示环境数据的家居环境监测系统,该系统测量精度高,具有较好的移植性和易用性可通过GPRS通信模块将检测仪表连入云服务器,并可在远端PC或移动上实时查看,从而节省了现场采集数据的时间并有效避免了有毒气体对人体的伤害,具有较好的实时性、经济性和安全性关键词:STM32开发板;甲醛;CO;PM2.5;传感器;GPRS;云服务器:TP273.5 :A :2095-1302(2017)07-0-040 引 言进入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芯。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.