(西北农林科技大学 网络与教育技术中心,陕西 杨凌 712100)
猪的生产水平大约20%取决于遗传,40%~50%取决于营养,30%~40%取决于环境条件[1]。影响猪生长的环境因素包括温度、湿度、二氧化碳浓度、光照强度、有害气体等,这些因素对猪的繁殖性能、仔猪成活率和生长机能等方面都有影响。为了提高猪的健康水平和生产效率,可建立实时监测系统对猪舍环境信息进行采集与分析。养殖环境的监测与控制一直是国外内专家研究的热点,国外例如:美国、巴西、丹麦、加拿大起步较早,利用多种信息技术已建立成熟的养殖环境信息监测系统。国内,李立峰等设计了1种以工业组态King View为开发平台,利用可编程序逻辑控制器(PLC)实时监测猪舍温度、相对湿度和氨气浓度参数的测试系统[2];周晨飞利用Zigbee技术设计了用于监测舍内环境数据的猪舍环境监测系统[3];朱伟兴等使用ZigBee和WIFI网络实现了保育舍环境可视化调控系统[4];梁万杰等基于改进后的低功耗自适应集簇分层型协议搭建了一个猪舍环境监测系统[5];刘树香等利用WSN技术设计并实现了猪舍环境远程监测系统[6];范留伟设计并实现了基于STM32的猪舍环境自动监控系统[7];王娇娇为研究猪舍内环境因素的变化规律,获取有害气体排放量及其浓度在猪舍中长时间和多测点的实时测量数据,利用Mesh网络实现了猪舍环境监测系统[8];李理等利用ZigBee物联网技术,设计基于无线传感器的猪舍环境自动监控系统[9];崔勇等采用ZigBee技术、PLC机电控制技术、组态技术、物联网技术实现了对猪舍养殖环境进行远程自动控制[10]。但是,在上述这些研究中,大都采用ZigBee技术和Mesh网络技术,网络传输效率低、系统延迟大;且都是IPv4网络,还没有研究将6LoWPAN网络和IPv6网络应用于猪舍环境监测。
实际部署中,随着传感器节点的增多,采用IPv4网络传输会必然牵涉到IP地址不够用地问题。为了满足物联网中海量节点对IP地址的需求,基于IPv6传输网络的物联网技术解决方案成为技术人员关注的热点。
6LoWPAN具有适应性强、易开发、拥有海量IPv6地址、易接入IPv4/IPv6网络、易利用IP网络的技术进行发展的特性[11]。考虑到6LoWPAN网络技术IPv6网络技术的优势,文章设计了一种基于6LoWPAN网络和IPv6网络技术的猪舍环境远程监测系统,该系统可实现猪舍环境内温度、湿度、光照强度、CO2浓度、H2S浓度、NH3浓度等环境因子实时监测。
温度是猪舍主要环境因素之一,舍内温度过高或过低都会影响猪体健康和生产性能。初生仔猪、1月龄断奶仔猪、空怀母猪、怀孕母猪、产仔后的母猪、种公猪对外界的温度要求均不相同。例如,空怀母猪的适宜温度是16~19℃,而种公猪的适宜温度是10~18℃[12-13]。
猪舍内不同的环境温度会直接影响舍内相对湿度。猪舍内相对湿度太大同样也会影响猪的生产性能[14]。光照强度对猪有促进新陈代谢、加速骨骼生长以及活化和增强免疫机能的作用[15],种公猪和肥育猪对光照没有过多的要求,但光照对繁育母猪和生长中的仔猪有重要影响。
养猪生产中产生的CO2、H2S、NH3等有害气体会对猪舍内动物及工人的健康产生一定影响。比如,NH3排放到空气中引起土壤酸化、水体富营养化;H2S浓度太大时,会引起呼吸停止甚至死亡。为了对猪舍环境进行控制,有必要猪舍环境进行监测,以保证猪的健康生长及生态系统的稳定性。
(1)实现WSN和IPv6网络的通信,实时获取猪舍环境信息。
(2)猪舍内温度、湿度、光照强度、CO2浓度、H2S浓度、NH3浓度异常时及时告警。
系统总体架构分为为猪舍环境数据采集、猪舍环境数据传输、猪舍环境数据处理三大部分。
(1)猪舍环境数据采集模块。
温湿度、光照强度、CO2、H2S、NH3传感器跟6LoWPAN传感器节点一起负责采集猪舍内温湿度、光照强度、CO2浓度、H2S浓度、NH3浓度等环境数据,通过6LoWPAN网络将采集的环境数据发送给6LoWPAN边缘路由器。
(2)猪舍环境数据传输模块。
由6LoWPAN边缘路由器将采集的猪舍环境数据通过IPv6网络上传至上位机监测软件。
(3)猪舍环境数据处理模块。
由开发的上位机监测软件来处理猪舍环境数据,用户可通过IPv6网络访问该上位机以实现猪舍环境数据的实时监测。具体设计如图1所示。
图1 系统总体设计
6LoWPAN无线传感器网络由6LoWPAN传感器节点和6LoWPAN边缘路由器组成,每个6LoWPAN传感器节点均配置有温湿度、光照强度、CO2、H2S、NH3传感器;每个传感节点均可配置IPv6地址,整个6LoWPAN网络采用树形组网方式。6LoWPAN无线传感器网络将采集的数据通过边缘路由器传输到IPv6网络,最终经过IPv6网络传输至上位机管理软件,上位机监测软件实时显示当前环境参数。猪舍环境异常时,可发出告警,提醒管理人员及时采取措施进行控制。
系统硬件设计包含两部分,6LoWPAN传感器节点硬件设计和6LoWPAN边缘路由器硬件设计。
6LoWPAN传感器节点由主控制单元MCU(main control unit)、RF(Radio Frequency)收发器及传感单元组成,具体设计如图2所示。
图2 传感器节点硬件架构
文章选用CC2538SF53为主控制单元,其比CC2530运行更加稳定,接口更加丰富。RF收发器同时连接USB转串口电路、时钟和复位电路。传感单元由温湿度、光照强度、CO2、H2S、NH3传感器组成,主要负责采集数据,其选用型号如表1所示。
表1 选用的传感器
文章采用双MCU架构来实现6LoWPAN边缘路由器,即将6LoWPAN传感节点和支持OpenWrt的Linux开发板用串口连接起来,这样的架构可以实现6LoWPAN网络和IPv6网络的相互通信。具体设计如图3所示。
图3 边缘路由器节点硬件架构
支持OpenWrt的Linux开发板文章选用AR9344为主控制单元,AR9344主频高达533MHz,集成了一个PCI-E Root Complex及一个PCI-E Endpoint接口,一个MII/RMII/RGMII接口,并支持SPI接口的Flash和NAND Flash[16-17]。
6LoWPAN传感器节点和边缘路由器的软件设计基于嵌入式操作系统Contiki, Contiki由瑞典计算机科学院Adam dunkels团队以及ETH大学开发,常用来实现无线传感器网络、物联网[18]。6LoWPAN传感器节点进行配置钱必须先移植Contiki,由于Contiki己经安装了6LoWPAN和RPL路由协议,直接可以对Contiki相关代码进行覆写,建立传感器网络。
6LoWPAN传感器节点通电后,首先启动Contiki系统,系统初始化完成后可监听6LoWPAN边缘路由器的状态。一旦RF模块收到6LoWPAN边缘路由器发来的数据包,则对收到的数据包进行解析。解析结果如果是采集指令,则采集猪舍环境信息,并通过RF模块发送给6LoWPAN边缘路由器;解析结果如果是控制指令,则执行该控制指令,并将执行控制指令后各模块最终状态信息发送给6LoWPAN边缘路由器,6LoWPAN传感器节点软件工作流程如图4所示。
图4 6LoWPAN传感器节点软件工作流程
6LoWPAN边缘路由器软件分为两个部分,即以太网功能模块软件与6LoWPAN功能模块软件。以太网功能模块端应用软件的开发基于OpenWrt的Linux系统,主要创建两个任务,第一个任务是将封装好的数据发送至6LoWPAN功能模块端;第2个任务是接收并解析串口数据,并通过IPv6网络发送到上位机监测软件。
6LoWPAN边缘路由器通电后,双系统进行初始化,初始化完毕处于监听UDP端口信息状态,等待上位机软件通过UDP端口发来的数据包。一旦接收到上位机软件发来数据包,先解析数据包,然后将解析后的数据包由边缘路由器的RF模块发送给6LoWPAN无线传感网络,最后6LoWPAN边缘路由器会将响应状态通过IPv6网络发送给上位机监测软件[19],具体流程如图5所示。
图5 边缘路由器软件工作流程
上位机监测软件是猪舍环境实时监测的核心,其部署在PC端。上位监测软件采用Visual C++ 6.0编程语言实现,开发环境为Visual C++ 6.0的MFC,数据库采用MySQL。上位机监测软件一方面负责向6LoWPAN边缘路由器发送采集指令,同时在接收到6LoWPAN边缘路由器上传的环境数据时,将环境数据存储到MySQL数据库。另一方面负责与访问上位机的移动端和PC端建立起远程通信,以实现移动端和PC端远程获取环境监测数据。上位机监测软件还可以开发异常数据报警模块,当获取的环境数据超过上位机预设的阀值时,可发出报警,提醒工作人员及时处理。
上位机软件启动后,将初始化Socket网络和定时器,同时创建两个Service端口,一个端口负责与6LoWPAN边缘路由器进行通信,另一个端口负责与手机端APP进行通信。当网络处于正常工作状态时,定时器计数到设定的时间数时,上位机软件向6LoWPAN边缘路由器发送采集指令,当6LoWPAN边缘路由器接收到该指令后,进行数据采集、处理和打包,并通过WIFI模块传输给上位机软件,上位机软件接收该数据包后,对其进行解析是否上传正确,当数据正确时将其存储在MySQL数据库中。用户可通过移动端APP访问上位机来获取实时监测的环境数据。
移动端APP采用Google公司推出的Android Studio开发[20]。移动端APP与上位机之间的网络采用Http通信方式,此通信采用的是“请求一响应”的方式,是一种“短连接”。移动端APP需要先与上位机建立连接,然后向上位机发送Http请求,上位机才会根据请求向移动端APP返回响应数据,并且在确认移动端APP收到返回的消息后,上位机就会主动释放连接。
本系统在西北农林科技大学某场站养猪场进行测试试验,在该养猪场的保育舍内布置了2个6LoWPAN传感器节点,然后将温湿度传感器、光照强度传感器、CO2传感器、H2S传感器、NH3传感器连接到这两个6LoWPAN传感器节点,节点1配置的IPv6地址为:2001:250:1002:2002:9DF6:129B:7828:233C,节点2配置的IPv6地址为:2001:250:1002:2020:E557:99EF:FCEA:4380,将连通IPv6网络后的6LoWPAN边缘路由器放置在距离两个6LoWPAN传感节点4 M的地方,随后在测试移动端安装好上位机监测APP,让其通过校内IPv6网络与6LoWPAN传感器网络建立通信。6LoWPAN传感器节点和6LoWPAN边缘路由器加电后开始工作,节点1可在30 s内将采集的数据发送给6LoWPAN边缘路由器;节点2可在28 s内将采集的数据发送给6LoWPAN边缘路由器,6LoWPAN边缘路由器可在15 s内将数据上传至上位机监测APP,上位机监测APP接收到数据后,显示结果如图6所示。
图6 监测APP接收数据后显示界面
文章基于6LoWPAN传感器网络技术和IPv6网络技术设计开发了一套猪舍环境远程监测系统。该系统不但实现了猪舍内环境数据的远程监测和环境异常报警,而且能够持续获取猪舍环境监测数据,运行稳定,能满足猪舍环境远程监测需求。