基于ESP32的畜场环境监测系统设计与实现

2022-12-21 09:23刘统帅闫永存
现代牧业 2022年4期
关键词:环境参数温湿度监控

孔 宁,刘统帅,闫永存,王 硕,刘 博

(河南牧业经济学院 能源与智能工程学院,河南 郑州 450000)

近年来,禽畜健康养殖的理念越来越受到行业重视。养殖环境是影响畜禽健康的重要因素之一,畜场内的温湿度及氨气等有害气体浓度直接决定了养殖的生产水平和产品质量。现有环境参数监测方法可分为人工、有线和无线传输三种[1]。人工监测需要管理人员每天定时手持检测设备在畜场内预设点采集数据,工作量大、繁琐且随机误差较大。有线传输则需布设线缆,成本和功耗较高,可扩展性差。环境参数监测的无线传输主要是近距离通信,主流技术有Bluetooth、Zigbee、Wi-Fi[2,3]。Bluetooth功耗较低,但通信距离相对较短,且组网能力有限[4]。ZigBee组网功能强大,但数据传输速率不高[5,6]。Wi-Fi技术数据传输速率高,组网方便,但同时功耗较大[7]。其他无线环境监测技术有移动通信(4G)和LoRa等,4G技术实时高速,但需要支付通信费用,信号质量受环境影响较大[8]。LoRa技术具有低功耗、传输距离长、带宽大的优点,但系统应用起来相对繁琐[9]。因此,有必要开发一种更加智能的环境监测系统,实现精准、便捷、轻量化的畜场环境参数感知。

随着嵌入式技术的飞速发展和畜场中无线网络的普及,基于无线网络的嵌入式环境检测系统越来越受到研究人员的重视,其操作便捷,结果反馈及时准确,综合成本低,经济效益高[10]。侯静云等[11]采用ZigBee和GPRS混合组网的方式实现了对于温湿度、烟雾浓度等室内环境参数的实时监测,具有较好的稳定性和可扩展性。牛海春等[12]采用ESP8266无线传输模块实现了对于畜禽养殖环境的远程监测和调控,具有精度高、功耗低等特点。聂珲等[13]基于NB-IoT技术实现了对于温度、湿度、甲醛、粉尘(PM2.5)和总挥发有机化合物(TVOC)等多传感器数据的融合,通过模糊算法有效提高了环境检测的准确性。

ESP32是一款专为嵌入式开发和物联网(IoT)应用而研发的低功耗芯片,因其完备的WiFi、蓝牙通信功能以及较高的集成度和高稳定性、可靠性和可扩展性,使其在环境参数无线监控系统领域应用广泛[14,15]。本设计以ESP32模块和智能传感器为主要硬件,通过自主印制电路板(PCB)实现对于畜场多个重要环境参数的监测,同时依托Grafana平台,开发了PC端的监控UI界面。使用该系统畜场管理人员可不受时间、场合约束地对畜场内环境参数进行监控。

1 系统总体设计

系统主要包含环境参数感知模块、ESP32中央处理模块、LCD显示模块和输出控制模块。系统架构如图1所示。

图1 系统架构简图

ESP32模块通过Wi-Fi网络将采集到的传感器数据上传至InfluxDB数据平台,在InfluxDB平台可以实现对于畜场环境参数的远程监控和历史数据查询。利用Grafana可视化平台(图2),在后台获取InfluxDB的传感器数据,用户界面通过Grafana提供的组件进行UI设计,可使环境监控更加美观、人性化。当环境参数超过预设的阈值范围时,中央处理模块会通过继电器等设备控制湿帘、风机运行,从而实现对于环境参数的调控。

图2 数据上传流图

2 系统硬件设计

2.1 ESP32中央处理模块

系统的中央处理模块采用具有超高的稳定性、可靠性和较低的功耗的ESP32,该模块的CPU采用Xtensa®32位 LX6双核处理器,运算能力高达600 MIPS,理论上Wi-Fi最高速率150 Mbps,蓝牙最大输出功率+12 dBm。如图3a所示,采用PCB设计,将ESP32与设计好的电路板结合,通过Type-C口给模块供电,电路板上预留6个通用接口(4个三线制,2个四线制)。三线制接口连接环境参数传感器,四线制接口连接LCD显示模块,负责温湿度数据采集的传感器接口固定焊接在电路板中央(图3b)。

图3 主控单元PCB设计图

2.2 环境参数模块

环境参数感知由多个智能传感器实现。温湿度数据采集选用奥松DHT11数字传感器,温度测量范围为0~50 ℃,精度为±2.0 ℃,湿度测量范围为20%~90% RH,精度为±5.0% RH,响应时间小于5 s,尺寸仅为12 mm×15.5 mm×5.5 mm。气体浓度传感器中,氨气浓度选用MQ-137气敏传感器,测量范围5~200 ppm。硫化氢浓度选用MQ-136气敏传感器,测量范围1~100 ppm。甲烷浓度选用MP-4气敏传感,测量范围300~10000 ppm。二氧化碳浓度测量稍显不同,选用MH-Z19红外传感器,尺寸为33 mm×20 mm×9 mm,测量范围为0~2000 ppm。

2.2.1 温湿度传感器数据采集电路设计

DHT11有四个引脚,如图4a所示,正面朝上从左往右依次是VCC电源引脚、DATA引脚、NC引脚和GND引脚。在实际测量场景中,连接电路如图4b所示,VCC引脚连接3.3或5V直流电源,DATA引脚为传感器采集数据的信号引脚,跟中央处理模块上的GPIO引脚相连,NC引脚悬空,GND引脚接地。

图4 温湿度传感器引脚及数据采集电路连接图

2.2.2 氨气、硫化氢浓度传感器数据采集电路设计

氨气、硫化氢浓度传感器均采用MQ系列传感器。MQ系列传感器与传统的传感器稍有区别,引脚共有6个,分为A、B、H三对(图5)。使用时需要将两个A、两个B连接在一块,其中一组连接到5V直流电源,另一组为模拟输出,两个H引脚一个接直流电源,一个接地。数据采集电路如图6所示。

图5 MQ系列传感器引脚连接图

2.2.3 甲烷浓度传感器数据采集电路设计

甲烷浓度传感器采用MP-4传感器,通过PCB电路设计采集电路。该型号传感器共有4个引脚,俯视图角度4个引脚编号如图7a所示,测量电路中4个引脚连接电路如图7b,施加两种直流电压,即加热电压Vh和电路电压Vc,Rs即为跟甲烷气体浓度呈线性关系的阻抗电讯号,通过给定的转换公式即可得到单位为ppm的甲烷气体浓度。

图6 MQ系列传感器数据采集电路设计图

图7 甲烷传感器引脚与数据采集电路连接图

2.2.4 二氧化碳浓度传感器数据采集电路设计

二氧化碳浓度传感器采用MH-Z19非色散红外传感器,如图8所示,该型号传感器底部有序排列共9个引脚。数据采集电路设计如图9所示,6号引脚连接5V工作电压,7号引脚接地,2号引脚为UART数字输入,3号引脚为UART数字输出。

图8 二氧化碳传感器引脚编号图

2.3 输出模块

在本地使用一个2.8英寸的Nextion彩色LCD电阻触摸屏直观显示传感器采集数据。显示屏型号 NX3224T028_011R,5V直流电源供电,分辨率为320×240,自带ARM 7 48MHz CPU,通过官方的Nextion Editor软件,可以便捷地进行用户界面设计。该显示屏的优点是不占用系统资源,可通过SD卡下载界面显示内容,并保存于自带的Flash中,要显示的传感器数据仅需通过串口以固定格式发送至连接显示屏的引脚,给显示屏供电,即可进行直观、优美的数据展示。

图9 二氧化碳传感器数据采集电路连接图

3 系统软件设计

软件设计整体上可以分成两部分进行:一是基于ESP32模块的传感器数据采集、本地显示部分;二是上传部分和PC端从云上获取传感器数据并显示部分。

3.1 ESP32主控软件设计

通过Arduino IDE进行软件开发,采用C++语言实现。在编写程序之前先对Arduino IDE进行设置,将ESP32开发板的包索引地址填入附加开发板管理器网址,接着下载各个传感器对应的库,选择合适的开发板和端口等。

在完成IDE的配置后,进行软件运行流程的设计,ESP32控制模块软件部分流程如图10所示。其中关键步骤,首先是Wi-Fi网络的连接,其次是InfluxDB(存储传感器数据的云平台)的连接,连接成功后,每隔5 min进行传感器数据的读取、保存和上传。温湿度数据可以直接通过传感器与ESP32模块相连的ADC串口读取,有害气体浓度数值通过传感器引脚反馈的是与浓度线性相关的电讯号的值,通过相应的数值换算即可得到有害气体的实际浓度值。

为了充分挖掘Nextion触摸屏的显示能力,除了图11所示的主界面之外,还设计了副界面,当点击主界面上的环境参数数值时,显示屏会跳转到第二界面,界面显示过去24 h对应环境参数数值曲线(图12)。为此,在程序里创建若干个数组,用以保存传感器的序列值。

图10 主控单元软件设计流程图

3.2 PC监控端软件设计

PC端显示是畜场环境远程监控系统的主要构成部分。基于Grafana平台在PC端设计了环境参数的监控界面,其实现流程是:首先在PC端安装Grafana平台,注册并登录,设置Grafana数据源为Influx DB,查询语言设置为Flux,数据URL为InfluxDB数据地址;然后填入Token等验证信息,使用Flux语句从InfluxDB的数据块中获取传感器数据;最后使用Grafana提供的组件为传感器数据设计直观的可视化界面(图13)。

图11 监测系统LCD显示主页面

图12 系统LCD显示副页面

图13 系统远程监控UI设计

4 系统测试

我们将制作的实际系统物理模型放置于实验室环境下进行测试,从Grafana平台可以实时看到相关传感器的测量值。系统的稳定性可以通过InfluxDB数据平台导出的传感器数据记录和Grafana平台的传感器曲线图进行分析。总的测试时间跨度5 d,每天一次,每次测试持续时间4 h,系统每隔5 min采集、打包并上传传感器数据至InfluxDB数据库。通过InfluxDB数据平台导出的数据记录(CSV格式),分析每个数据包的时间戳和传感器数值,正常情况下时间戳间隔为5 min,每个传感器数据包里的传感器数值不能为0。

由表1数据可得,系统数据的上传平均成功率为97.3%,平均丢包率为2.7%。数据的上传成功率与ESP32模块连接的无线网络质量和连接InfluxDB数据库的网络延迟有很大关系。InfluxDB数据平台使用的是亚马逊的云服务,因此国内个人连接会有波动。整体上,系统的通信情况较为稳定,完全满足畜场环境监测的场景需求。

表1 系统通信丢包率统计

5 结论

本文设计了一种基于ESP32的畜场环境远程监测系统,依托InfluxDB数据库和Grafana可视化平台开发了PC端的监控UI。系统能够监控畜场中温湿度和氨气、硫化氢、甲烷、二氧化碳等有害气体浓度的数据信息,管理人员登录指定界面,可实现对畜场内环境参数的监控,并可通过继电器远程控制畜场内的相关设备。

实验测试表明,系统能够有效地完成设计需求,实现可靠、稳定的畜场环境监控,为实现现代化畜牧业提供有益参考。

猜你喜欢
环境参数温湿度监控
The Great Barrier Reef shows coral comeback
文物展柜内环境温湿度的调控与监测
基于无人机的监控系统设计
基于梯度提升决策树算法的鄱阳湖水环境参数遥感反演
基于AT89C51的数字型蚕用温湿度计的设计
一种食用菌大棚环境参数测控系统设计
基于温湿度控制的天气预测装置
基于DSP和μcos的温湿度检测系统的设计
基于ZigBee的多环境参数监测系统设计
科学训练监控新趋势——适时监控