基于单片机的室内环境监测系统
2021-02-26田苗苗崔维娜
田苗苗 崔维娜 王 迪 刘 鹏
1.吉林师范大学信息技术学院,吉林 四平 136000 2.长春信息技术职业学院汽车机电学院,吉林 长春 130103
随着人们生活质量的不断提升,大多数人把工作和生活的空间集中在室内场所。因此,人们对室内居住环境、办公环境的要求也在逐步提升,但由于生活节奏的不断加快,人们大量使用一些虽美观但甲醛超标的装修材料、办公材料和生活用品,让家居环境、办公环境中存在一些安全隐患[1-2]。安全隐患除了表现在甲醛等无色有害气体的浓度上,也体现在室内环境温湿度的影响上。但现存室内环境监测系统设计单一且价格高昂,居民购买力较弱,无法普及至每家每户,现存的市场调查结果显示,有必要生产一款集家用室内温湿度和室内气体为一体的综合监测系统。
因此,开发可靠安全、功能齐全、价格相对低廉的室内环境监测系统已经迫在眉睫。本次设计的室内环境监测系统可以实时采集环境数据,利用声、光、短信等报警提醒系统提醒居民,其环境中可能存在安全隐患,并对所存在的安全隐患采取应急处理。同时,系统将数据实时传输至互联网,用户通过手机、网页可以方便及时地进行查询。该系统的应用范围非常广,可以扩展至办公场所、农业大棚、工业车间等其他领域。环境监控系统能完成对环境中温湿度和有害气体等数据的采集,能够通过数码管显示数据,方便查看实时数据[3]。在环境条件不符合阈值时,系统能够通过声、光、电、短信等报警方式提醒居住者,还能够采取适当应急措施,智能调整环境,保障居民居住安全。
1 系统组成
本系统结合目前主流的传感器检测技术、无线通信技术、互联网技术,实现室内环境参数的实时动态检测、多模式报警提示、互联网应用功能,系统采用分层的架构设计,主要包括后端基于单片机的检测感知部分、互联网服务部分、前端互联网应用部分三个层次组成。系统的主要架构如图1所示。
图1 系统主要架框
其中,互联网应用层主要包括Android手机App应用、基于浏览器的Web应用两个部分,根据当前流行的技术,Android应用采用H5混合开发模式,所有功能页面采用Html5开发,存储在服务器端,这样基于浏览器和手机访问的功能页面就能统一起来,具有良好的可维护性、可扩展性,可以实现无感知在线功能版本更新[4-5]。
互联网服务层后台的应用程序主要采用SpringBoot框架来进行开发,存储库采用的是MySQL数据库。SpringBoot具有内置Tomcat应用服务器、功能开发便捷、数据访问组件多、数据库接入方便、部署迅速等众多特点,可以有效减少开发周期,快速搭建系统。
后端检测设备层主要围绕AT89S52微处理器,进行环境检测传感器的接入和数据采集,通过无线通信模块实现数据的上传,通过声光报警装备和短信实现报警等功能。
2 系统工作原理
本系统中的硬件检测器部分由采集传感器、主控单元、显示单元、通信单元四部分组成。采集传感器主要采集环境数据,包括温湿度、甲醛量、天然气等有害气体等。主控单元连接各种不同类型的传感器,主要负责数据的采集工作、将数据及消息传输到其他的单元中。显示单元采用简单的LED显示,提供检测器实时检测信息的显示。通信单元主要利用无线通信网络将数据实时传输至远端服务器,供手机App、Web应用查询,并提供短信报警功能。采用传感器DHT21采集的温湿度数据,半导体式传感器MQ-5、MS1100采集有害气体浓度,以此来监控环境。为了保障居民生活环境的安全,还增加了光电耦合器和声光报警器、排风扇等执行器。利用温湿度传感器、气敏传感器将检测到的数据传送给AT89S52,经AT89S52处理后,当检测到的温度发生变化时,数码管即会发生相应的变化,实时显示数据,并通过通信模块向远端服务发送数据。
3 系统硬件设计
图2和图3分别是温度和湿度的检测电路,核心DHT21(AM2301)温度传感器具有单个总线,通过读取代码可以获得所处实时环境温度值。湿度传感器为ADC形式,湿度可以改变电阻值。通过读取电压的数值直观感受湿度值及变化情况。
图2 温度检测电路
图3 湿度检测电路
对气体的检测部分选择的是烟雾传感器,核心组件是MQ-5。当可燃性气体与它共处同一环境时,其导电速率会因可燃性气体浓度的增加而增加,电路的输出信号也同样会因导电率而变化,这样便能检测空气中存在的可燃性气体[6-8]。尤其是对液化气、氢气、丙烷的灵敏度特别高,对于天然气等其他可燃性蒸汽灵敏度也相对不错。气体检测电路如图4所示。
图4 气体检测电路
显示模块主要由主控单元AT89S52通过串口和屏幕构成。屏幕上所显示的数据是AT89S52率先解析处理的数据,然后通过串行端口发送给显示器。串口屏幕驱动显示电路如图5所示。
图5 串口屏幕驱动显示电路
声、光报警功能是由微处理器的4根引脚控制,由蜂鸣器和LED共同实现声光报警的功能。当燃气浓度大于预设值时,实现报警:引脚获得信号为高,使得VT管导通,蜂鸣器和发光二极管导通。
当燃气浓度大于传感器预设值时,处理器发出高电平指令,经过振荡器的反向该器件,指令则变成低电平信号,并使得光耦导通,从而触发双向可控硅的阀门,使风扇启动,所以本设计采用了可控型耦合器MOC3041控制换气扇的启动和停止。风扇控制电路如图6所示。
图6 风扇控制电路
在系统中,通信模块的主要功能是实现信息的远程传输。当测得的环境参数达到设定的报警值时,系统会发送相应报警信息到客户的移动终端上。根据系统功能要求选择SIM900A模块。
SIM900A与AT89S52控制器之间通过串口进行数据传输,AT89S52通过AT指令控制SIM900A的状态检查和信息发送。
SIM卡即通常所指的手机卡,在SIM900A模块中,其接口电路设计较为简单,为了防止静电对模块造成干扰,选择由SEMI公司研发制造的SMF05C芯片用于静电保护。
4 软件设计
智能室内环境监测系统的主程序软件设计主要包括五个大部分:①对主控系统进行编程,加电后工作模式自动启动;②对复位程序进行编写,当室内环境监测系统的主控单元出现错误时,使用复位按钮进行复位操作;③蜂鸣器程序设计;④传感器的驱动部分,其中包含各个传感器的驱动程序;⑤通信模块部分,系统内的通信通过通信模块将检测数据上传到服务器。GPRS 程序控制流程如图7所示。
图7 GPRS程序控制流程
5 服务端
服务端用Maven整合SpringBoot框架搭建项目,数据库使用MySQL,有四层主要代码:POJO层、Dao层、Service层和Controller层。
POJO层包含四个实体类:温湿度封装类、甲醛值封装类、可燃气体封装类、设备实体封装类;Dao层主要工作为数据库交互,提供数据源;Service层主要工作为管理事务;Controller层主要负责提供json数据接口。系统整体框架如图8所示。
图8 系统整体框架
6 安装与调试
第一部分是接收调试AT89S52的数据,有以下几个步骤:①测试串口一(外接传感器)与AT89S52的通讯是否正常;②测试AT89S52与串口二的通讯正常与否;③AT89S52接收串口二下发16进制符合通讯格式的指令后,再调用串口一所接传感器的数据,检查返回串口二的数据和数据格式正确与否,结果正确证明数据的采集过程不存在问题。
第二部分是服务器端结点间的通信与调试网络配置。测试AT89S52与其他芯片是否协同、AT指令配置。如果SIM900A发送AT指令正常,通过服务端服务调用日志查看数据是否正常上传,数据是否正常入库。
第三部分是对手机App和Web页面的测试,通过手机App,查看实时监测数据是否正常显示、更新周期是否及时。通过Web页面,除了手机App可以获得的功能外,还能够查看历史数据是否能够正常获取。
第四部分是系统对于继电器的控制调试。选择不符合阈值的环境,观察此时系统是否能按照预设准确地进行自主控制,实施对继电器的开或关动作。
7 结 语
本文设计了一个基于单片机的室内环境监测系统。系统在设计的时候考虑的是单点布设的方式,系统的安装与调试较为烦琐,每个检测器主控单元都要配置无线通信模块和LED显示模块。随着物联网技术的快速发展,本系统也有许多可以完善的地方,如考虑基于ZigBee无线组网技术,实现检测器单元分布式部署,通过一个主控单元进行集中控制和管理。