基于阿里云平台的猪场环境监测系统设计
2023-09-27李子圣蔡文涛韩建宁吴霁宇李大威
李子圣,蔡文涛,韩建宁,吴霁宇,李大威
(中北大学 信息与通信工程学院,山西太原,030051)
0 引言
近些年来,中国一直是养猪大国但不是养猪强国,生猪养殖普遍存在着生产效率较低、养殖水平不高的问题,其中规模化养殖技术在我国从农业大国到农业强国的迈进过程中逐渐起到关键性作用。规模化养殖带来效益的同时,由于其饲养密度高、部分企业配套排污设施不完善、生猪排泄物分解产生有害气体等因素,也造成了对养殖场周边空气、水源、土壤、作物等造成污染;同时舍内的有害气体浓度过高、温湿度不适宜也是影响生猪生长一个重要因素。因此,必须对养殖场内部及其周边的温度、湿度、有害气体等参数进行监测;传统的人工周期巡检测量,不仅耗时耗力,同样无法达到实时监测的效果。
目前,养殖场环境监测装置多为对单一有害气体如氨气、硫化氢等和温湿度进行采集然后在设备端直接进行显示同时通过RS485 总线等有线连接方式将数据回传到PC 端。该方法在对养殖场内多种气体进行实时监测时,需要购买多台设备对不同组分气体进行实时监测和数据回传,并且由于养殖场内环境复杂导致布线难度陡增;同时数据在回传PC端后,仅是对其简单展示和存储,各个数据间彼此孤立未能有效融合,无法利用气体浓度和温湿度对养殖场内环境进行有效评估[1];所以在规模性养殖场内采用基于无线传输方式的多组分有害气体及温湿度监测系统,对于保护生态环境及生猪健康育种具有重要意义。
为了提升规模化养殖场内部环境综合监测和风险评估能力,本文设计了一套基于阿里云的养殖场多组分有害气体及温湿度监测系统,设备主机端多点位放置,采集一个区域内温湿度和有害气体浓度数据后使用MQTT 轻量级物联网协议将数据回传到平台服务器端,在服务器端可以进行实时的数据展示,同时根据采集到的环境数据进行综合打分实现环境风险评估,此系统能够满足规模化养殖场对环境监测的实时性、经济性和智能性需求。
1 恶劣环境对于生猪养殖的影响分析
根据相关研究,环境对于生猪出栏量的贡献率可达40%左右,这里环境包括猪舍内空气质量、温湿度、猪舍内水源和土地等,其中猪舍内空气质量、温度和湿度属于猪舍环境中的重要组成部分,它可以直接对猪群的生长情况和猪肉品质造成影响[2]。
猪舍内部对于生猪发育产生不利影响的气体物质统称为有害气体,按其物理性质可以分为物理性气体物质如粉尘颗粒、化学性气体物质如硫化氢、氨气等和生物性气体物质如微生物气溶胶[3];其中,化学性气体物质对于生猪生长最为不利,在猪舍中最为常见的化学性气体物质包括硫化氢H2S、氨气NH3、一氧化碳CO、二氧化碳CO2,产生原因主要为:猪只呼吸、生猪粪便、垫草、残余饲料等分解。H2S、NH3、CO、CO2过高对生猪产生影响主要体现在以下几个方面。如表1 所示。
表1 不同种类有害气体对生猪产生的影响
不仅高浓度的有害气体会引起生猪有明显的不良症状,长期在含有低浓度有害气体环境下生长的生猪也会出现体质虚弱、增长缓慢、发病率增高等隐形症状。根据调查统计,在低浓度(小于5mg/m3)硫化氢环境中,生猪呼吸道、咽喉、眼部发病率随时间延迟呈线性增长,如图1 所示[4]。
图1 低浓度硫化氢环境中,生猪发病率随时间变化的关系
同样,猪舍内温湿度与猪群的生长状况同样密不可分,理想的生猪环境以温暖干燥最为适宜[5],猪舍内相对湿度应当保持在70%左右,温度随着生猪日龄和年龄段变换应当在15℃~30℃之间调整,如表2 所示。在适宜的温度和湿度环境下,不仅可以促进生猪生长,也可以有效降低生猪患病概率;潮湿阴冷的舍内环境容易造成生猪抵抗力降低,造成病原菌侵入生猪体内[6]。
表2 生猪适宜温湿度与生猪日龄关系
综上,该系统监测参数主要分为有害气体浓度监测和温湿度监测两大方面:在有害气体浓度监测方面,主要监测对生猪生长状况影响较大的四种气体,即氨气、硫化氢、二氧化碳和一氧化碳;在温湿度监测方面,考虑到温度和湿度两个因素对于生猪影响息息相关,本文主要对空气中相对湿度进行监测。
2 系统总体架构
基于阿里云的生猪养殖场多组分有害气体及温湿度监测系统可以对养殖场内不同位置的环境进行全面监测,在设备主机端采集回传不同环境参数的数据后,平台服务器可对数据进行可视化、存储和数据回调操作,同时对环境进行综合打分实现环境风险评估,系统整体架构如图2 所示。
图2 系统整体架构图
该系统包括监测主机端、云平台服务器端和数据接口端:监测主机端硬件主要由电源模块、主控模块、气体浓度采集模块、温湿度采集模块、OLED 显示模块和WiFi 数据传输模块组成,主控模块在采集气体传感器电压值后,根据事先在标准气体浓度下标定的电压浓度方程计算出当前气体浓度值,同时结合当前温度对气体浓度进行温度补偿得到真实的气体浓度值,这里温度和湿度数据由集成的温湿度传感器通过单总线通信协议传输给主控模块,在得到四种气体浓度和温湿度数据后,主控模块控制OLED 显示模块实时显示传感器数据,同时通过WiFi 数据传输模块将传感器数据回传到网关设备,网关设备通过轻量级物联网MQTT 协议将监控主机端采集到的传感器数据回传到平台服务器端;平台服务器端包括监测服务、存储服务和计算服务以及应用服务,监测服务缓存当前传感器数据同时将数据传输到存储服务和计算服务中,存储服务将数据传输到SQL Server 云数据库中便于数据回调和保存,计算服务根据当前传感器数据进行综合打分实现环境风险评估,监测服务、存储服务和计算服务将数据接口提供给应用服务,应用服务与数据接口端进行直接业务交互;在数据接口端可以实现数据可视化、各个区域环境风险评估和环境数据回调等操作。
■2.1 监测设备端软硬件设计
监控设备主要完成对于传感器数据的采集和初步计算,监控设备端采用模块化设计,同时考虑到猪舍内部环境复杂导致电源线布置难度大[7],装置整体采用内部供电并且在元器件选型方面尽量满足其低功耗要求:主控模块采用32 位Cortex-M4 架构的STM32L451RET6 芯片,STM32L4 系列不仅计算性能强、外设接口丰富、拓展性极高,同时板载功耗平衡的动态电压调整功能,可以在功耗和计算性能间达到平衡;电源模块设计采用12V 锂电池输入和高效率的开关电源芯片LM2596,兼容5V 和3.3V 电压输出,可以满足各个模块不同电压的输入需求;OLED 显示模块采用0.96 寸OLED 屏幕,OLED 屏幕具有自发光、反应速度快和无需背光等特点,可以很好地满足整体系统的低功耗要求;温湿度采集模块选用DTH11 温湿度一体化数字传感器,DTH11 温湿度传感器采用内部电阻式感湿元件和NTC 测温元件检测环境温湿度,同时内部8 位单片机在采集数据后通过单总线协议将温湿度数据输出,DTH11 温湿度传感器具有响应速度快、抗干扰能力强的优点[8];WiFi 数据传输模块采用集成ESP8266 芯片的WiFi 模组,ESP8266 芯片具有强大的片上处理和存储能力,同时板载利于二次开发的AT 固件,可以通过AT 指令使用TCP 协议或MQTT 协议与服务器或个人PC 主机进行连接;气体浓度采集模块采用低成本、高灵敏度的电化学传感器,电化学气体传感器探头工作原理为有害气体与电化学物质进行反应导致传感器电导率产生变化最终反应为电压变化,这里考虑到传感器输出电压超出单片机ADC 电压采集范围,采用ADC 分压跟随器电路进行分压,同时使用二阶RC 低通滤波电路减小电路中器件噪声对于电压采集的影响,监控设备端整体结构框图如图3 所示。
图3 监控设备端整体结构框图
图4 监控设备端电源模块电路原理图
■2.2 模块硬件设计
这里主要对电源模块、主控模块和有害气体采集模块的电路设计进行说明:
(1)电源模块
这里主要考虑到猪舍布线不便,因此采用锂电池内部供电方式,同时板上集成了DC 电源插座,装置也可由外部供电,可以避免锂电池电量不足带来的装置停机问题[9];为了提高电路工作效率和输出功率,使用LM2596 降压型电源管理单片集成电路的开关电压调节器,它具有很好的线性和负载调节特性[10];在电源输出端,为了满足各个模块不同电压的输入需求,同时采用LM2596S-3.3 和LM2596S-5.0电源降压稳压芯片配合降压稳压电路提供电压输出,保证供电的稳定性。
(2)气体浓度采集模块
考虑到设备端的实际应用成本及使用寿命要求,有害气体传感器采用低成本、可靠性高的电化学和半导体气体传感器[11],使用的气体传感器探头参数如表3 所示。
表3 有害气体电化学气体传感器参数
这里以二氧化碳传感器采集电路为例,说明气体浓度采集模块电路设计方案:传感器原始电压输出为0~5V,而单片机ADC 外设采集电压范围为0~3.3V,因此这里采用电阻分压方式满足单片机ADC 采集要求,同时考虑到装置整体低功耗要求,采用1kΩ左右的大电阻,这里由于STM32L4 单片机ADC 内阻同样在1kΩ 左右,若仅使用电阻分压后与单片机ADC 连接则会出现阻抗不匹配的问题,因此这里使用了LM358运算放大器构成电压跟随器电路,保证整体电路的阻抗匹配,如图5 所示;同时,经测量在电压跟随器电阻分压电路后,由于器件噪声,会导致频率为300Hz左右的噪声出现,如图6 所示,因此这里采用截止频率为10Hz 的二阶低通RC 滤波器,在接入低通滤波电路后,传感器电压基本稳定,可以满足设备端较高精度电压采集的要求。
图5 气体浓度采集模块中二氧化碳传感器电路原理图
图6 传感器输出电压经过低通滤波电路效果图
(3)主控模块及其外围电路设计
主控模块电路及原理图如图7 所示,其中包括芯片供电管理电路、SWD调试接口电路、芯片复位电路、芯片扩展引脚电路和晶振电路:主控芯片采用STM32L451RET6 芯片,该型号芯片主频可高达80MHz 同时配有硬件浮点计算单元,可以满足监测设备端实时计算多种有害气体的需求,同时具有多个通信接口和丰富的外设接口,有助于满足主控模块与其他模块的拓展性[11]。
图7 主控模块外围电路原理图
■2.3 模块软件设计
考虑到传统轮询程序处理方式会导致程序复杂且容易出现例如堆栈溢出等难以排查的问题[12],监测设备端的整体软件基于FreeRTOS 嵌入式实时操作系统,FreeRTOS 是一种基于时间片式、轻量级、针对嵌入式设备的实时操作系统,常用于复杂且功能较多的嵌入式设备中;相比于轮询程序处理方式和前后台程序处理方式,使用RTOS 可以保证传感器数据的实时性采集、整体程序的可复用性和错误信息便于调试;这里我们将整体软件程序分为多个子任务,包括:初始化任务、数据采集任务、数据显示任务、调试信息输出任务、设备状态监测任务、数据回传任务,各个子任务间通过任务调度器、消息队列和信号量实现任务切换、数据传递和任务同步。监测设备端整体软件层次分为硬件层、驱动函数层、系统层和任务层,如图8 所示,其中硬件层是对STM32L451RET6 各个外设例如ADC 模数转换、UART 串口、RTC 实时时钟的初始化,由STM32CubeMX配置生成;驱动函数层主要包括对各个硬件元器件如温湿度传感器DTH11、气体传感器等进行数据读取、指令发送等函数;系统层则包括RTOS 内核实现以及FreeRTOS 提供的函数接口;任务层利用FreeRTOS 提供的函数API,实现任务创建、任务调度和消息传递等操作。
图8 监控设备端软件层次图
监控设备端的整体工作流程为:设备上电后进行外设初始化、器件上电延时和硬件初始化;接着进行自检程序检测当前设备供电电压和网络状态,如果供电电压不足,在OLED 屏幕显示错误信息后自动休眠,如果连接WiFi 网络失败则启动单机模式;如果设备供电正常并且可以正常连接WiFi 网络,则启动联机模式,在初始化任务创建其他任务、消息队列、信号量并且开启任务调度后,数据采集任务、数据显示任务、调试信息输出任务、设备状态监测任务按照时间片依次同步运行:在数据采集任务采集传感器数据并且计算气体浓度和温湿度数据完毕后,释放信号量,数据显示任务和数据回传任务同时运行完成数据在OLED 屏幕显示和回传数据到云平台服务器端,同时设备状态监测任务定期检测设备电压、堆栈状态和网络连接状态,在系统出现异常后开启调试输出任务,调试输出任务通过串口通信将错误类型和错误信息输出到PC 端上的串口助手中,图9 为系统整体工作流程图。
■2.4 传感器数据预处理及温度补偿算法
(1)传感器数据预处理
虽然在ADC 模数转换电路前已经对传感器输出电压信号进行二阶硬件低通滤波,但是考虑到STM32 中ADC 模数转换外设本身有10mV 左右的电压漂移,导致进行硬件滤波之后电信号仍然存在一些随机噪声,为了提高气体传感器采样精确度从而准确计算出当前气体浓度,这里使用软件实现数字低通滤波器,对连续十个电压采样点取均值,从而有效地提高了整个系统的精确性[13]。图10 为0℃下,在封闭的气室箱内持续5mins 通入浓度为10000ppm 的标准二氧化碳气体,每隔10s 采集电压数据,使用和未使用软件数字低通滤波器的电压波动情况,可以看到在使用软件数字低通滤波器后,电压值更为稳定,误差基本在5%左右,随机噪声对电压影响波动变小。
图10 0℃、浓度10000ppm 的二氧化碳气体持续通5mins 情况下传感器电压波动情况图
(2)温度补偿算法
考虑到温度对于电化学气体传感器内部催化反应有直接影响,即便在同一浓度下,由于猪舍内温度不同导致传感器电压输出不同,因此在标准大气压下使用高低温试验箱来调整温度并且使用不同浓度的标准气体对传感器探头进行标定,计算温度-电压-气体浓度方程以确保气体浓度的准确计算[14]。
这里以MG813 电化学二氧化碳传感器为例,讲解温度补偿的整个流程,这里我们取0℃、20℃、30℃和40℃作为标定温度点,标准气体浓度取100ppm、500ppm、800ppm、1000ppm、1500ppm、3000ppm、5000ppm、8000ppm和10000ppm,同 时使用纯氮气进行零点标定。
在零点标定过程中,首先将高低温箱内温度调节到标定温度点之一,接着使用微型气泵将气室箱内气体抽出,将纯氮气通入气室箱中,稳定采集五分钟传感器电压输出后取平均值作为该浓度对应电压值;在其他浓度点标定过程中,高低温箱、抽气和电压采集步骤与零点标定相同,仅是将纯氮气替换为不同浓度的标准气体;在同一温度下,完成一轮标准浓度标定后,调节高低温箱到不同标定温度,重复以上标定过程并记录不同浓度、不同温度下传感器电压输出。
文中使用多元多项式回归算法对数据进行拟合,其基本原理是:任意一个函数都可以用多项式逼近,研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归[15]。由于这里我们使用温度和电压值两个自变量,因此此时为多元多项式回归;这里我们选择的误差为均方误差MSE,均方误差是预测数据和原始数据对应点误差的平方和的均值,可以反映拟合的温度-电压-浓度-曲线与真实温度-电压-浓度-曲线间的误差。这里考虑到嵌入式设备的计算能力有限,需要考虑计算精度与计算时间的平衡,经过实验表明,当多项式次数为4时,RMSE最小,为4.7762,在相同计算时间的情况下对曲线拟合效果最好,图11 为实验得到的标定温度点下,电压与浓度的关系曲线图。
图11 标定温度点下,二氧化碳传感器电压浓度曲线图
3 环境监测平台总体设计
■3.1 环境风险评估
环境监测系统除了能够实时收集展示数据外,也需要与故障处理系统进行联动,这就要求环境监测系统具有可靠的环境风险评估能力,常见的环境监测系统仅是简单对收集到的数据进行阈值判断,这样会积累一些长期隐患最后爆发[16],例如生猪长期在低浓度的有害气体中生活会导致体质虚弱,导致在外来病毒侵入时生猪大规模感染死亡,从而给养殖场造成巨大财物损失。因此,本文结合生猪养殖场内环境特点设计了一种综合状态评估体系,见表4 所示。
表4 生猪养殖场环境综合状态评估体系
这里将环境状态分为正常状态、次正常状态和异常状态,正常状态下,不存在一般风险和紧急风险,可以承受一般风险,可承受适当风险余量;当出现一般风险后,正常状态转变为次正常状态,此时环境可承受的风险余量较小,当一般风险长期存在并且超过预设的时间期限时,转为异常状态;而在异常状态下,该环境已经不能满足生猪正常生长最基本的条件,需要操作人员立即进入现场处理相关故障。
■3.2 系统平台功能设计
平台端在接收到多个设备主机端传来的环境数据后,首先对大量数据进行缓存、分类提取和数据清洗,将有效数据存储到云数据库中,并且根据具体业务的需求将其在数据接口端输出,可以实现实时观测数据曲线、回调历史监测数据、根据综合状态评估体系计算当前环境风险等操作。
4 系统工作测试
监测设备端整体如图12 所示,这里我们将监测设备端放于室内条件下进行测试,如图13 所示,可以看到装置在室温25℃条件下,装置可以正常采集计算并显示当前环境数据,同时将调试信息传输到PC 端的传输助手上,如图13、14 可以看到设备已与物联网平台服务端进行连接并实时上传数据。
图12 监控设备端实物图
图13 监控设备端实物图
图14 平台端设备连接图
5 结束语
本文设计的基于阿里云的养殖场多组分有害气体及温湿度监测系统不仅可以实现养殖场多种有害气体浓度及温湿度的实时监测,同时集成了综合状态评估体系,实现了对养殖场内环境风险进行实时评估,可以满足规模性生猪养殖场对于环境监测系统可靠性、智能性、经济性的需求。