APP下载

一种智能环境监测系统的设计与实现

2018-07-25甘绪桐张厚武郑九锋

计算机技术与发展 2018年7期
关键词:鸡舍单片机控制器

甘绪桐,张厚武,何 勇,郑九锋

(贵州大学 计算机科学与技术学院,贵州 贵阳 550025)

0 引 言

随着人们生活质量的提高,人们对自己所处的环境越来越重视。目前,国内有很多环境监测系统,如周海鸿等设计的基于ZigBee技术的温湿度监测系统[1];杜克明等设计的农业环境物联网监测系统[2];戴春霞设计的猪舍环境因子的测量系统[3];彭占武等设计的鸡舍环境无线监测系统[4]等。但已有测量方法的数据可靠性有待提高,功耗有待降低。

文中设计的智能环境监测系统主要通过监测应用环境内的主要环境因子,并且通过通用分组无线服务技术与服务器端进行数据交互,从而实时地监测环境信息,并有效解决前人设计的部分问题。应用场景工作人员可根据观察可视化显示界面适当调节适宜环境,为保持一个相对稳定适宜的环境提供方便。

1 总体设计

基于STM32[5]的智能环境监测系统[6]的总体框架如图1所示。

图1 环境监测系统总体框架

监测站各个传感器采集环境信息(氨气浓度、大气温度、大气湿度、光照强度、PM2.5、硫化氢浓度、二氧化碳浓度),采集到的信息通过RS-485总线或I2C总线传输到数据采集核心模块,数据采集核心模块经过数据的分析处理后将信息通过GPRS[7]或蓝牙传输到服务器端或手机APP端,服务器端或手机APP端经过第二次的数据分析处理进行可视化显示。

2 系统硬件设计

2.1 数据采集核心模块硬件设计

数据采集核心模块是环境监测系统下位机监测站的核心部分,主要由MCU、电源电路、保护电路、数据存储备份电路、通信接口电路、传感器接口电路、节能控制电路等几部分组成。整体框架如图2所示。

图2 数据采集核心模块框架

2.1.1 主控制器

智能环境监测系统的主控制器选用STM32F103 ZET6芯片,芯片为Cortex-M3[8]系列内核,32位处理器,主频72 M,LQFP144封装,片内Flash容量为512 K,片内SRAM容量为64 K,标准外设包括有10个定时器,2个12位1-Msample/s模数转换器、2个IIC接口、5个USART接口、3个SPI端口、12条DMA通道和1个CRC计算单元。与同系列其他处理器相比,增加了EMT,FSMC总线,SDIO接口和2个I2S接口等。

2.1.2 电源电路

综合主控制器和传感器所用电压类型,数据采集模块中共有12 V、5 V和3.3 V三种电压,电源电路中共有两种供电方式,一种是开关电源输入端接家庭常用的220 V,输出12 V,12 V的电压可以给氨气传感器和光照传感器供电,12 V电压另接一路通过L78S05稳压芯片输出5 V电压,5 V电压可以给PM2.5传感器供电,5 V另接一路通过AMS1117稳压芯片输出3.3 V电压,3.3 V电压可以给IIC型传感器供电,3.3 V另接一路给MCU供电。

当家庭电源瘫痪时,可启用第二种供电方式,太阳能电源系统[9]供电。太阳能电源系统由太阳能电池板、铅酸蓄电池和太阳能电源控制器组成。太阳能电池板采用50 W单晶硅太阳能电池板,最佳工作电压为18 V,最佳工作电流为2.86 A;铅酸蓄电池采用12 V、20 Ah;太阳能电源控制器用来作为电源系统的控制中心,控制电源系统的充、放电过程。电源电路部分还包括电量检测电路,原理如图3所示。将L78S05输出端电压与铅酸蓄电池输出电压做比例减法,使两者之间的差值电压变为2~2.86 V,然后将差值电压输入到主控制器的A/D转换引脚,主控制器进行相关运算后得出蓄电池电量。

图3 电量检测电路原理图

2.1.3 数据存储备份电路

数据采集核心模块上加入铁电存储器和TF存储卡进行数据存储备份和数据保护,铁电存储器[10]采用FM24CL64,直接用来存储下位机系统工作信息。铁电存储器有8 KB存储空间,可以保证断电后数据不丢失。当铁电存储器中数据存放达到4 KB后,这部分数据将会自动转存到一张4 GB的TF卡[11]中存储。

2.1.4 通信接口电路

数据采集核心模块与外界通信的方式有GPRS通信和蓝牙通信两种。STM32F103ZET6的USART1和USART2为通用同/异步串行接口,将USART1与SP3232电路连接,再与GPRS通过串口连接与后台服务器端进行数据交互,通信波特率设为9 600 kbps。USART2作为蓝牙通信接口,蓝牙与智能手机APP也可实现数据交互,通信波特率设为115 200 kbps。

2.1.5 传感器接口电路

智能环境监测系统有IIC型传感器和RS-485型传感器两种,IIC型传感器SCL接口对应连接主控制器GPIO口的PB6,SDA接口对应连接GPIO口的PB7。主控制器的USART3、USART4、USART5连接RS-485总线通信接口,通过SP3485作为收发器来实现这种半双工通信信号的收与发。

2.1.6 保护电路

各种应用场景环境复杂多变,为了避免工作人员误操作、雷击等产生电流、电压异常损害系统,保证系统的正常运行,数据采集核心模块还设计了两种保护电路。一种是在核心电路中加入瞬态抑制二极管和自恢复保险丝来防止大电流和防浪涌保护;另一种是在电源控制器端,当电池低于过放电压11 V时,控制器会自动切断负载,保护电池,当电量回升后自动开启负载,提供低电压保护。

2.2 传感器设计

2.2.1 IIC型传感器设计

IIC型传感器包含大气温度传感器[12]、大气湿度传感器和硫化氢浓度传感器。监测系统选择使用SHT15传感器来检测大气温湿度,SHT15将传感器元件和信号处理电路集成在一块小型电路板上,输出为标定后的数字信号,传感器焊接在一个IIC转接板上,SHT15将一个用能隙材料做成的测温元件、一个电容性聚合体测湿敏感元件聚合在同一芯片上,芯片连接了14位A/D转换器和IIC接口电路;监测系统选择MQ-135模块来检测空气中硫化氢浓度,将数字信号输出直接接在单片机引脚,当MQ-135检测到硫化氢时,比较器LM393引脚的电压值,跟硫化氢的浓度成正比,当浓度超过阈值时,会触发硬件报警(灯闪和蜂鸣器响)。

2.2.2 RS-485型传感器设计

RS-485型传感器包含光照强度传感器、PM2.5传感器、氨气浓度传感器和二氧化碳浓度传感器。光照强度传感器选用BH1750FVI模块,这种模块成本较低,但存在一个缺点是BH1750FVI模块量程小,测量范围只能达到0~65 535 Lux,但可见光最多可达到十几万Lux。该系统所用传感器通过给BH1750FVI模块添加一个滤光膜片并在传感器外侧加入透光球罩来达到扩大传感器量程的目的。光照强度传感器控制电路的MCU选择STC15W404AS单片机,BH1750FVI采集到的数据先通过IIC通信方式传输到单片机,单片机通过计算和校正得到真实的光照强度值[13],再通过RS-485通信方式传输到数据采集核心模块主控制器上。PM2.5传感器模块选用SDS011模块,通过激光检测原理,检测到空气中0.3~10微米悬浮颗粒物的浓度,内置风扇,场景变换响应时间低于10 s,数据稳定性高,数字化输出;氨气传感器模块选用MQ-137模块,其所使用的气敏材料是在清洁空气中电导率较低的二氧化锡,传感器的电导率随空气中氨气的浓度的增加而增大,输出信号为数字信号,但该传感器模块需通过标准氨气传感器进行标定。PM2.5传感器和氨气传感器控制电路的MCU都选用STC15F2K60S2单片机,传感器模块通过串口将数据传输到单片机,单片机将数据分析处理后通过RS-485通信方式传输到数据采集核心模块主控制器上。二氧化碳传感器选用MG811模块,模块采用固体电解质电池原理,通过电化学反应来达到检测二氧化碳的目的,但由于这种电解质传感器输出信号的阻抗非常高,并不能直接测量其输出信号,在控制电路中通过加入一级阻抗变换电路,阻抗变换运算放大器选择CA3140,将MG811模块输出阻抗降低到方便测量的级别,再将信号输入到单片机,控制电路的MCU选择ATmega64单片机,单片机通过RS-485通信方式再传输到数据采集核心模块主控制器上。这四种RS-485型传感器模块成本相对较低,但通过控制电路处理后得到的数据有效性好,可靠性高。

2.3 节能控制设计

系统一方面通过主控制器节能,主控制芯片STM32F103ZET6有2.0~3.6 V的工作电压兼容主流的电池技术,封装还设有一个电池工作模式专用引脚Vbat,并通过锂电池给RTC供电,使系统时钟能掉电后继续运行。系统采用低功耗模式,以72 MHz频率从闪存执行代码,仅消耗27 mA电流,启动电路使用STM32F103ZET6内部生成的8 MHz信号,将微控制器从停止模式唤醒用时小于6μs。另一方面考虑到短时间类鸡舍环境不会陡然变化,系统通过I/O口控制固态继电器H3MB-052D来控制设备的通/断电,设置系统工作5 s后休眠5 s来实现节省能耗的目的。

3 系统软件设计

3.1 数据采集核心模块软件设计

数据采集仪和后台服务器端、手机APP端之间设计了一个通信协议,数据按协议帧格式串行传送,传送单位为字节,字节的串行传送格式是1位起始位,8位数据位,1位停止位,无奇偶校验位。协议帧格式包括针起始符、地址域、控制域、长度、数据域、校验码、帧结束符。数据域包括传感器代号、传感器序号、传感器数值、电池剩余电量百分比、实时时间、持续采集时间等;校验码采用CRC-16循环冗余校验。字节存放采用小端模式。数据采集核心模块软件开发环境为MDK5,软件流程如图4所示。

图4 数据采集核心模块软件流程

首先初始化I/O口、RTC、传感器等,判断GPRS是否收到数据,若收到,判断数据是否有效,若有效,则给后台服务器返回一帧数据;若GPRS没收到数据,需判断蓝牙端是否收到数据,若蓝牙端收到数据,判断数据是否有效,若有效,则给手机APP端一帧数据;若蓝牙端和GPRS端都没收到数据,则判断是否到达工作时间,若到达工作时间,主控制器就开始采集传感器数据,按设置的采集时间向服务器端自动发送数据,等采集数据时间到达后按设置的休眠时间定时休眠。

3.2 后台网站设计

图5为智能环境监测系统应用在鸡舍环境中的后台网站显示界面。后台服务器接收到数据监测站的数据[14]后,会对接收到的数据进行数据分析处理,之后再显示到前端界面。管理员也可从数据库中查询和导出历史数据,方便数据分析人员更好地进行数据对比。鸡舍管理人员可根据鸡舍环境实时情况对鸡舍环境做相应处理,保证鸡群有一个良好的生长环境。

图5 鸡舍应用场景后台网站监测界面

3.3 手机APP设计

图6为智能环境监测系统应用在鸡舍环境中的手机APP显示主界面。主控制器和手机APP端通过蓝牙进行数据交互,手机APP可对数据采集核心模块进行配置,可设置传感器参数,可设定下位机监测站工作时间和休眠时间,可设置监测站地址,也可主动读取鸡舍实时环境信息,并可通过柱状图和动态曲线显示,方便直观。

图6 鸡舍应用场景手机APP主界面

3.4 数据分析处理

为了提高监测系统的可靠性和稳定性,系统软件设计中加入了时间序列神经网络算法[15]和中值滤波算法[16]。系统采集环境信息中的一些环境数据存在一定的联系,如当大气温度升高时,大气湿度一般会下降,当二氧化碳浓度升高时,氨气浓度、硫化氢浓度、PM2.5会升高,反之亦然,当光照强度升高时,大气温度会升高。系统在实验室收集数据一年,将数据通过时间序列神经网络算法模型进行记忆,研究出了氨气浓度、大气温度、大气湿度、光照强度、PM2.5、硫化氢浓度、二氧化碳浓度等各种数据之间存在的潜在关系,通过输入一些环境数据,能预测其他一些环境数据。软件设计中,将滤除与预测值相差较大的数据[17]。由于环境信息不会突变,系统采集核心模块每5 s采集一次数据,采集12次数据后,将数据按大小排序,取数据间均值为有效值,将有效值平均后再传输到服务器端或手机APP端。

4 结束语

设计实现的智能环境监测系统功能完善、续航能力较强、调试检修方便。数据采集核心模块和后台服务器端接收数据后通过智能分析筛选错误数据后,将有效数据显示在前端界面,保障了监测系统的可靠性。该系统已在贵州息烽一大型鸡舍正常运行半年左右,鸡舍工作人员反馈良好。

猜你喜欢

鸡舍单片机控制器
夏季鸡舍通风管理
工商业IC卡控制器改造为物联网控制器实践
夏天养鸡如何防暑
别请狐狸建鸡舍
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
鸡舍
基于PID控制器和模糊逻辑控制器的D6114柴油机速度控制
模糊PID控制器设计及MATLAB仿真