基于LoRa的鸡舍环境物联网监测系统研究
2023-03-02尹晶晶付紫平
尹晶晶,付紫平
(1.安徽国防科技职业学院电气技术学院,安徽 六安 237011;2.中国计量大学机电工程学院,浙江 杭州 310020)
0 引言
近年来,我国肉鸡和蛋鸡养殖规模不断扩大。截至2021年初,我国肉鸡年出栏量超过100亿只,高居世界第一位[1]。我国蛋鸡养殖发展更为迅速,早在1985年我国禽蛋产量就超越美国,成为全球第一大鸡蛋生产国及消费国。规模化养殖的一大特点是密度大,尤其是在大型密闭鸡舍内。与舍外空气环境相比,鸡舍内的空气温度、相对湿度等环境参数具有很大的波动性,而且鸡舍内会产生大量氨气、硫化氢等有害气体。若不能实时准确监测舍内环境参数并进行合理调控,则无法为肉鸡或蛋鸡提供适宜的生长环境。经常处于不适宜的生长环境中,鸡极容易发病。若一旦发病,则又易导致大面积传染,从而给养殖户带来严重损失。因此,提高肉鸡和蛋鸡养殖环境监测的自动化程度,实时准确地监测鸡舍内主要环境参数对于确保安全养殖具有重要意义。
早期,赵娟等[2]对鸡舍内有害气体的监测进行了深入研究,构建了基于485通信方式的鸡舍环境监测系统,能够实时监测鸡舍内的CO2浓度、NH3浓度以及H2S的浓度等。因受有线传输的限制,上述监测系统的通信距离不长且硬件成本很高。同时,整个系统的拓展性能差,无法在低成本的前提下构建大型的通信网络。随着ZigBee无线通信技术的快速发展,许多科技工作者[3-7]研究了基于ZigBee的鸡舍环境无线监测系统。此外,钦盼琛等[8]设计了基于威发(wireless fidelity,WiFi)无线通信的鸡舍环境传感器节点,并把数据上传至OneNET云平台,实现了数据的远程传输与查看。ZigBee、WiFi等无线通信技术都存在无线通信距离不足的问题。为了解决无线通信距离有限的问题,李文凤等[9]提出基于窄带物联网技术设计肉鸡养殖环境监测系统,以便用户远程控制和管理鸡舍环境;高宏宇等[10]则采用窄带物联网(NB-IoT)技术设计了鸡舍环境远程监控系统,通过云平台完成了对数据的处理,实现了实时数据显示、数据查询、报表制作、报警等功能。
纵观目前鸡舍环境无线监测系统的相关研究,多采用ZigBee技术。然而,ZigBee技术的通信距离十分有限,无法满足大型鸡舍环境监测的无线通信距离要求。窄带物联网技术采用基于3大运营商的蜂窝网络,以室内覆盖、低成本、低功耗和广连接为特点,但是很多偏远农村的农场或者养殖场并没有覆盖蜂窝网络,无法使用窄带物联网通信。与Zig-Bee和NB-IoT技术相比,LoRa无线通信技术具有远距离、低功耗、低成本、无需基站等优点。LoRa在空旷地带的通信距离可达10公里,完全可以满足大型鸡舍环境监测的无线通信距离要求。为此,本文研究并设计了基于LoRa的鸡舍环境物联网监测系统。
1 基于LoRa的鸡舍环境物联网监测系统架构
基于LoRa的鸡舍环境物联网监测系统的架构包括3个层次,即感知层、信息传输与存储层、应用层,整体架构如图1所示。在感知层布设若干环境传感器节点,每个节点可以实时感知周围环境中的空气温度、相对湿度、光照度、CO2浓度、NH3浓度、H2S浓度等重要参数的数值及其变化情况,并通过自身携带的LoRa无线通信模块把相关环境数据发送至网关节点。一方面,网关节点可以把数据传输给本地终端,用于鸡舍现场数据的实时显示与监测;另一方面,网关节点通过LoRa通信模块接收到相关数据,然后通过WiFi、NB-IoT等无线通信技术把数据发送至因特网、4G/5G网络、NB-IoT基站等,这些均在信息传输与存储层中实现。同时,在该层还会实现基于OneNET等云平台的数据存储等功能。在应用层,用户通过手机、iPad和电脑等远程访问云端,随时随地实现相关环境监测信息的查阅。
图1 基于LoRa的鸡舍环境物联网监测系统架构
2 系统硬件设计
在上述系统架构中,应用层、信息传输与存储层中的设备均为现成设备,无需自行设计。而感知层中的传感器节点和网关节点是需要开发者自行设计的。因此,本系统的开发重点在于传感器节点和网关节点。对于传感器节点来说,其硬件电路主要包括相关环境参数的传感器、微控制器和LoRa模块。传感器节点的硬件电路结构如图2所示。相对来说,网关节点的硬件电路比较简单,主要包括微控制器、LoRa模块和WiFi模块,而不需要任何环境参数传感器。网关节点通过LoRa模块接收传感器节点发送来的数据,然后通过WiFi模块将数据上传至网络和云端。
图2 传感器节点的硬件电路结构
在本研究中,考虑了鸡舍中的空气温度、相对湿度、光照度和NH3浓度这4个主要的环境参数。针对每个环境参数,均有不同类型的传感器元件可以选择。然而,至于选择哪种器件,则首先应当考虑鸡舍环境监测的国家标准、地方标准或行业标准,以便检测范围、监测精度等重要指标满足实际工程应用要求。以天津市地方标准《肉鸡养殖环境信息采集规范》(DB12/T 752—2017)[11]中所规定的环境监测技术指标为例,来选择相应的传感器件,相关指标如表1所示。
表1 鸡舍环境监测主要指标
首先,在养殖的过程中,温度和湿度是否合适,对于鸡能否健康生长起决定性作用。温湿度传感器的种类众多。选择了SHT30型号的温湿度传感器,其温度测量范围为-40~125 °C,测量精度为±0.3 ℃,相对湿度测量范围为0~100%,测量精度为±2.0%RH,足以满足一般鸡舍环境温湿度监测要求。另外,该传感器功耗低至4.8 μW,采用I2C(inter-integrated circuit)通信方式,方便与单片机相连接。该传感器广泛应用于气象、环保、农业、林业、水利、粮仓等领域的环境温湿度监测。
关于光照度传感器的选择,数字传感器比光敏电阻等使用方便得多。选择了B-LUX-V30B型号光照度传感器,其测量范围为0~200 klx的,测量精度不超过测量值的5%,满足标准中所给出的指标要求。该传感器的功耗低至2.31 mW,且采用I2C通信方式,方便与单片机相连接。
作为鸡舍内主要有害气体,NH3不仅对肉鸡的各器官产生损害,严重影响肉鸡的产量与质量,同时也会损害肉鸡饲养员的身体,不利于饲养员在鸡舍内长时间劳作。选择了JXM-NH3型号的氨气传感器。该传感器的测量范围为0~0.01%(默认),可以选择为0~0.1%,工作电压为5 V,功耗不超过200 mW,明显低于MQ系列的氨气传感器。该传感器采用串口通信方式,方便与单片机相连接。
经过对比现有LoRa模块类型,最终选用Ithinker公司的Ra01模块,其射频芯片SX1278具有超长距离的扩频通信能力和强大的抗干扰能力。射频芯片SX1278具有相当可观的传输距离以及较为可靠的设备稳定性,非常适合鸡舍环境无线监测系统。关于微控制器,选择了STM32型号的单片机。为了方便开发,选择了深圳亿研电子有限公司开发的LoRa开发板,上面集成了LoRa模块接口、WiFi模块接口和STM32单片机。在该开发板上,预留了单片机的许多I/O管脚,方便连接相关传感器、LoRa模块和WiFi模块等。各传感器元件与STM32单片机的管脚连接如表2所示。
表2 各传感器元件与STM32单片机的I/O管脚连接
由于传感器节点不需要WiFi模块,而网关节点需要通过WiFi连接网络以便把数据上传至云平台。因此,网关节点的硬件组成为STM32单片机开发板和WiFi模块组成ESP8266组成。为了方便在本地观测环境监测数据,在网关节点上增加了一块TFT液晶显示屏。
为保护传感器节点的电路不受灰尘等的影响以及增加其坚固性,为传感器节点设计了长方体形状外壳。在传感器节点外壳的顶部开设了一个圆孔,用于固定光照度传感器。在传感器节点外壳的底部开设了2个孔,使得温湿度传感器和氨气传感器伸出到外壳外面。为了减少光照和灰尘对温湿度传感器、NH3传感器的影响,增加了防辐射罩,并把2种传感器放在防辐射罩中。为了设计方便,网关节点也采用了同样尺寸的外壳设计。网关节点没有传感器元件,但有TFT显示屏,所以在其外壳一个侧面开设了一个方形孔,方便观测所监测到的环境参数信息。传感器节点和网关节点的最终实物如图3所示。
图3 传感器节点和网关节点的实物
3 系统软件开发
在Keil5开发环境中完成了传感器节点和网关节点的程序。从总体上看,传感器节点的主要任务是依次从3个传感器中读取4种环境参数的测量数据,然后通过LoRa模块以无线通信方式发送出去。传感器节点的主程序流程如图4所示。
图4 传感器节点主程序流程
在系统初始化部分,主要完成MCU初始化、传感器元件初始化等。LoRa初始化则是完成LoRa通信的相关设置。在本系统中,设置LoRa模块工作于450 MHz频段,功率设置为20 dB,带宽为500 kHz,扩频因子设置为128,前导码长度为10个字节,打开循环冗余校验(cyclic redundancy check,CRC)校验,设置为连续接收模式等。传感器节点的LoRa通信设置和网关节点上的LoRa通信设置必须完全一致,才能保证两者之间的正确通信。
STM32单片机实现对温湿度数据的读取流程主要参考SHT30传感器的时序。首先,STM32单片机发送命令,清零SHT30传感器的状态寄存器,然后向SHT30传感器发送起始信号。短暂延时后,发送SHT30传感器的地址。当STM32单片机接收到SHT30传感器的应答信号之后,开始接收由SHT30传感器发送来的温湿度数据。当接收完毕后,STM32单片机向SHT30传感器做出应答。最后,根据SHT30传感器说明书中所给出的温湿度校正公式,可以计算出所测量到的温湿度数值。光照度传感器、氨气传感器的数据读取流程和温湿度传感器相似。由于它们均为数字传感器,且有校正公式,因此最后根据相应公式对数据进行转换即可。
以上为传感器节点的软件开发,而网关节点的软件开发则有所不同。网关节点通过LoRa模块接收到传感器节点发送来的监测数据,然后通过WiFi模块把数据上传至云端。本文使用的WiFi模块型号为ESP8266,该模块通过串口将获取的数据以及当前设备的状态,主动上报给STM32单片机,同时也通过串口接收STM32单片机发送的指令。网关节点接收所有节点的环境信息后,将各相关信息重新打包,并通过WiFi模块接入WiFi路由器,再由路由器接入互联网。网关节点采用MQTT协议将post报文上发至云端代理服务器。网关节点的主程序流程如图5所示。
图5 网关节点的程序流程
除了完成系统初始化和LoRa初始化外,网关节点还需要完成WiFi模块的初始化。WiFi模块通过串口实现与STM32单片机的通信,接收单片机发送来的命令,以及将获取的数据以及当前设备的状态上报给单片机。WiFi初始化主要是将其配置为AUTO-CONFIG模式,以更加灵活迅速地接入路由器,减少繁琐的SSID以及PASSWORD配置过程,提高联网效率。当网关节点连接WiFi路由成功之后,则由其LoRa模块接收传感器节点发送来的环境监测数据,然后通过WiFi模块将其发送至路由器,以及完成到云端的数据传输。为了方便在本地观看相关环境参数信息,网关节点同时也将数据显示在本地的TFT液晶屏幕上。
4 测试实验结果及分析
设计了2个传感器节点和一个网关节点。传感器节点实时监测周围环境参数信息,并发送至网关节点。网关节点联网正常后,通过ESP8266模块将接收到的环境监测数据通过post报文发送至OneNET设备云平台。用户需要通过电脑登录设备云平台网页或通过手机App登录设备云,选中对应设备,以查看设备在线状态以及数据流。为了更直观地显示测量效果,在传感器节点上增加了TFT液晶显示屏。传感器节点测试数据显示如图6(a)所示,无线发送至网关节点的数据显示如图6(b)所示。网关节点把数据发送至云端。用户可以通过电脑和手机访问云端数据。
图6 本地数据显示
本文所设计的鸡舍环境无线监测系统的一个重要指标就是局域网的传输距离。拥有足够远的传输距离才能确保鸡舍环境监测数据的远程传输。因此,测试了不同相距距离下网关节点接收到的传感器节点RSSI(received signal strength indicator)值。测试结果如表3所示。
表3 不同距离下传感器节点的RSSI值
由表3可知,随着传感器节点与基站节点之间的距离不断增加,基站所接收的LoRa信号也不断衰减。在800 m的距离内,RSSI值呈指数性质的下降。为了减少数据的丢包率,在配置LoRa的初始设置时打开了CRC的检验开关。在发送和接收数据时,对每一帧进行CRC校验,如果接收方判定数据失败,则发送方返回否定确认信号(negative acknowledgement,NACK),发送方返回。因此,即使LoRa信号较弱时,数据可靠性也能够显著提升。当相距800 m时,仍然能够实现数据的稳定无线传输。另外,适当提高LoRa模块的发射功率以及选择性能更好的外置天线,则可以进一步解决信号衰减问题。通过上述距离测试实验,可知本文所设计的传感器节点完全能够满足大型鸡舍养殖环境监测需求。
5 结束语
本文基于LoRa无线通信技术开发了面向鸡舍环境的物联网监测系统。根据所描述的系统架构,重点设计了感知层中的传感器节点和网关节点的软硬件,实现了环境温湿度、光照度和NH3浓度的实时监测与无线远程传输。感知层中的传感器节点具有足够远的无线通信距离,能够完全满足大型鸡舍环境监测要求。针对不同畜禽养殖环境,只要更换合适的传感器,均可实现不同环境参数的远程无线监测功能,为农业畜禽养殖环境监测提供了一套有效实施方案。