Design of intelligent feeding IoT system for lactating sows
-
摘要:目的
设计哺乳母猪智能饲喂物联网系统,以实现哺乳母猪饲喂状况远程监控。
方法系统通过Netty传输自定义TCP通信协议,实现与终端设备的数据传输和指令应答功能。采用SpringBoot与Vue前后端分离架构,开展人机交互界面设计,包括猪场生产情况详情界面、母猪饲喂信息查询界面和统计数据下载界面。
结果试验结果表明,在3000个连接数下,系统平均响应时间为0.33 s,单位时间内处理数据量范围在750~1180条,系统在加入自定义业务线程池后,单位时间处理数据量增加了250条,处理量提高了31%。
结论该系统满足了对哺乳舍智能饲喂设备的连接管理和数据处理的实际应用需求。
Abstract:ObjectiveIn order to design an intelligent feeding Internet of Things system for lactating sows, and realize the remote monitoring of feeding status of lactating sows.
MethodThe system transmited the custom TCP communication protocol through Netty to realize the function of data transmission and instruction reply with the terminal equipment. The design of human-computer interaction interface was carried out by using SpringBoot and Vue front-end and back-end separation architecture, including pig farm production detail interface, sow feeding information query interface and statistical data download interface.
ResultThe test results showed that the average response time of the system was 0.33 s with 3000 connections, and the amount of data processed per unit time ranged from 750 to 1180. After the system was added into the custom business thread pool, the number of data processed per unit time increased by 250, and the processing capacity increased by 31%.
ConclusionThe system meets the practical application requirements of connection management and data processing for intelligent feeding equipment in nursing house.
-
Keywords:
- Suckling sow /
- Internet of Things platform /
- Feeding system /
- Data transfer /
- TCP /
- Netty
-
物联网技术应用于猪场养殖,可以实现母猪智能饲喂[1]、远程实时监控[2]和养殖环境调控[3],有利于增强母猪繁殖性能、提升猪场养殖效益[4-5],对促进猪场数字化和智能化进程具有重要意义[6-7]。
国内外学者对此开展了相关研究。国外在动物养殖中应用物联网技术较早,荷兰 Nedap 公司开发的Velos 管理系统,使用RFID方式实现了群养母猪的个体精确饲喂[8],加拿大 JYGA 科技公司的Gestal系统实现了对哺乳母猪全自动饲喂,其采用无线电技术搭配饲喂器,可以准确控制母猪的采食量[9]。国内对物联网智能饲喂的研究才刚刚起步,但也取得了许多研究成果[10]。朱伟兴等[11]针对保育猪舍研发了环境监控系统,利用Zigbee 无线技术实现了猪舍环境的可视化、精准化调控。潘秦等[12]利用母猪饲喂专家系统实现了群养母猪智能饲喂,通过无线分组交换技术(GPRS)实时获取耳标号和猪舍温、湿度等信息。大部分学者主要集中在饲喂系统控制逻辑的优化,对物联网数字化服务研究的相关文献较少。而母猪养殖的数字化管理,对提高猪场生产力具有重要作用[13]。
本文在前人研究的基础上,着重数据传输和解析方面,设计了一种哺乳母猪的智能饲喂物联网系统。采用Netty、SpringBoot框架以及MySQL技术,以TCP/IP协议为基础设计多种通信协议,以实现哺乳母猪饲喂数据传输和远程控制指令下发,为实现哺乳母猪智能饲喂数字化管理提供参考。
1. 系统整体架构设计
系统由感知层、传输层和应用层组成[10],各个层之间通过广域的互联网相互连接,形成从哺乳母猪养殖生产中信息采集、信息传输、信息处理、设备控制的一站式服务体系[14]。系统的整体架构如图1所示。
1)感知层:该模块自底向上由饲喂器设备和中央控制器组成,主要实现母猪饲喂信息、图像数据的采集上传以及远程控制指令响应;
2)传输层:主要依托GPRS ,按照约定的 IP 地址及端口号与服务器建立TCP连接,将感知层所获得的数据进行长距离传输;
3)应用层:由数据服务中心、用户以及中间链路部分组成。服务中心主要功能为:饲喂数据接收、数据统计、Web网站服务等,为下属用户提供PC 端的服务[15]。
1.1 现场设备
现场设备如图2所示,智能饲喂器如图2a所示,由单体机械和控制器组成,安装在料线下方;中央控制器如图2b所示,猪舍内通常由一台中央控制器控制多台智能饲喂器设备,并负责与云端进行通信。
1.2 系统技术
随着物联网技术的发展,国内外学者针对相关技术进行了不同的尝试,为了满足猪场实际应用需求,本文参照类似饲喂物联网系统完成了技术选型,如表1所示。
表 1 饲喂物联网系统技术对比表Table 1. Technology comparison table of feeding IoT system系统 System 通信协议 Communication protocol 数据采集频率 Data acquisition frequency 存储方式 Storage mode 图像传输 Image transmission 其他系统 Other system 固定协议 Fixed protocol 定时 Fixed time 本地存储 Local storage 无 No 本文系统 System of this paper 自定义协议 Custom protocol 实时 Real time 本地、云端存储 Local and cloud storage 有 Yes 许多相关系统会将智能设备接入开源物联网平台,通常需要使用平台固定的数据协议,存在配置繁琐、增加业务困难的问题。由于猪场需要根据业务需求灵活地定制程序,所以本文选择通过Netty框架实现多线程网络服务器、自定义数据协议完成数据实时传输,使得系统具有更强的扩展性。例如,本文基于后台对图像分析要求,实现了现场猪只图像采集传输;除此之外,云存储能够提高存储效率,降级运营成本,同时具备负载均衡、故障冗余功能[16]。
2. 系统数据传输
系统数据传输部分主要实现饲喂设备数据的接收和操作指令的下发。此部分基于Netty网络通信框架完成功能搭建[17-18],通过私有数据传输协议进行内容传输。
2.1 Netty优化设计
Netty是一个异步的、基于事件驱动的网络应用框架,常用以快速开发高性能、高可靠性的网络I/O程序[19]。Netty框架使用的线程模型基于Reactor模式进行演变,保证了单线程资源无竞争高效串行化任务的执行,Netty使用零拷贝,堆外直接内存进行Socket读写,传输快,且提供了对TCP、UDP和文件传输的支持。
系统基于Netty框架开发数据接收模块,模块在启动时通过ServerBootStrap绑定并监听一个网络端口。当有中央控制器传输数据时, WorkerEventLoopGroup根据设计的自定义协议进行数据的校验和解析。
数据解析完成后进行业务处理,该过程需要访问数据库。若在Netty的Worker线程中完成业务处理,将会影响数据接收模块的数据处理效率。因此加入自定义线程池来处理耗时业务操作,进而提高系统数据处理性能。线程池最大线程数超过系统资源限制时,新线程会处于无限等待[20],为避免此现象发生,故采用如下算法公式:
$$ N_{\text{s}} = N_i N_j \left( {1 + {T}/{C}} \right) ,$$ 式中:Ns为线程的设置数;Ni为CPU的核心数;Nj为预期CPU核心利用率;T/C为任务等待的时间与执行时间的比值[21]。
2.2 数据传输协议设计
通信协议作为采集终端与收集端消息传送的“模板”[22],在业务中有十分重要的地位,是采集终端与收集端消息传送的重要组成部分,而定义私有协议可更具有灵活性,可以按照业务需求有针对性地优化。
本文的通信协议涉及到多种类型,包括生产信息数据帧、饲喂曲线数据帧、图像数据帧、升级设备数据帧等,本文以生产信息数据帧和图像数据帧进行介绍,数据帧格式如图3所示。
对协议的数据帧公有帧位进行统一解释,各位置作用如下。帧头、帧尾:标识一个数据帧的开始结束,利用其解决数据帧黏包问题;校验位:对数据帧中除帧头、帧尾、校验位外的所有数据累加取反,取低八位做正确性验证;标志位:用来标识系统中不同类型的数据帧,例如基本信息数据、图像信息数据等;长度位:表示除去帧头、帧尾后整条数据帧的长度;控制器ID:此ID属于中央控制器的唯一标识;饲喂器ID:此ID属于饲喂器设备的唯一标识;哺乳母猪ID:饲喂器设备对应的哺乳母猪的唯一标识。
2.2.1 生产信息数据帧
生产信息数据帧如图3a所示,其中数据内容位为特有帧位,该位的长度可根据实际生产信息数据的不同而灵活变化。主要为母猪饲喂信息数据,包括猪只采食量、饮水量、舍号、栏号、分娩时间等。
2.2.2 图像数据帧
图像数据帧的设计与系统处理图像的逻辑有关,系统发送图像时,会将该图像分多段传输。在图像上传前,将分割段数发送至云端程序,之后发送图像分段数据,以及当前分段数据在所有段中所处位置的编号,系统根据数据的编号将图像拼接重现。故图像数据帧又分为图像数量帧和图像内容帧2种。
图像数量帧如图3b所示,其中分割段数为特有帧位,用来指明本次传输的图像分为多少段数据进行上传,通常在图像数据上传初期向云端发送该帧。例如分割段数是5,则表示图像分5次进行传输,接下来将有5条图像内容帧陆续发送,将5条帧中图像数据内容进行拼接即为完整图像。
图像内容帧如图3c所示,其中当前段号和图像数据为特有帧位。当前段号表示当前图像数据所处分段的位置索引,即为系统最后拼接图像时的顺序编号;图像数据位表示图像拆分后的二进制数据。
2.3 数据上传流程
系统具有采集设备下料量、下水量、母猪日龄等饲喂数据、远程采集现场图片和设备升级等功能。下面以采集图像流程为例进行介绍。 图像数据上传流程如图4所示。
系统间隔固定时间向饲喂设备下发图像采集命令,饲喂器收到命令后采集图片,中央控制器将图片二进制化并对数据拆分,将图像分段总数组合成图像数量帧,将实际图像数据组合成带有当前段号的图像内容帧,依次发送至系统,最后对图像数据进行CRC校验[23],保证图像传输的正确性。
系统收到数据帧后进行类型判断,根据类型转入相应处理程序,直至将完整图片全部解析。系统定时对保存的图片进行转存,避免图片太多消耗内存。
3. 系统测试
3.1 试验环境
使用阿里云服务器共享计算型n4(ecs.n4.small)搭载本文系统,服务器配置信息参数为:Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz 1vCPU2G,2 G内存,100 G硬盘,操作系统为Alibaba Cloud Linux release 3,JDK版本采用1.8。此外使用2台8核CPU的计算机,作为压测机,以测试系统的性能情况[24]。详细配置信息参数为:Intel(R) Core(TM) i5-1035G1处理器,16 G内存,500 G固态硬盘,操作系统为Win10。
3.2 系统平均响应时间
终端设备与系统进行数据传输时,响应时间是衡量系统可靠性的标准之一。使用压测机与系统建立若干个TCP连接,每个连接发送一个包含当前时间信息的数据实体。系统接收数据后取出内部封装的时间信息并写回压测机,压测机接收到返回的数据包,取出原始时间戳信息与当前时间对比[25],试验重复5组,计算平均响应时间。测试结果如表2所示。
表 2 响应时间试验结果Table 2. Test result of response timems 连接数 Number of connection 1 2 3 4 5 平均 Average 1000 245.056 137.227 160.899 131.782 137.191 162.431 2000 371.362 304.717 318.287 197.372 259.581 290.264 3000 143.550 368.450 257.350 329.670 567.300 333.624 3.3 系统数据处理性能测试
试验与“3.2”节类似,使用压测机与系统连接,并发送带有饲喂信息的数据包,每个连接发送时间间隔为1 s。试验在3000个连接数下发送数据,每个连接发送200个数据包,最后根据数据库实际插入的数据量[26],比较出数据处理模块在有无业务线程池下单位时间内的数据处理数。试验重复进行10组,计算平均值。试验结果如表3所示。
表 3 数据库插入数据量结果Table 3. Result for the amount of data inserted into the database条 帧头 Frame header 1 2 3 4 5 6 7 8 9 10 平均 Average 无线程池 No thread pool 789 764 790 798 767 752 841 819 814 823 795.7 有线程池 Have thread pool 1135 1058 1067 1084 1087 1102 1081 1057 1039 1036 1078.9 试验结果表明,系统在3000个连接数下,平均响应时间约为330 ms,且在单位时间内处理的数据量为750~1180条,满足猪场上位机设备的连接管理与数据处理要求。同时,系统通过引入自定义业务线程池,解耦耗时业务操作,相较原来无业务线程池,单位时间处理数提升约250条,处理量提高了31%。
4. 物联网应用
在云南省某母猪场的一条生产线(5个产仔舍单元)安装了智能饲喂器,每个产仔舍单元有1台中央控制器和56台饲喂器。通过采集2021年7月1日至11月1日生产信息,对物联网系统进行应用分析。
4.1 物联网系统主界面
该界面对全部饲喂设备的运行情况进行统计显示。显示内容有设备数目、设备在线情况以及设备日志等,还包括对产仔数、饲料消耗等数据的统计显示。在线设备数为正常运行的饲喂器数量,系统通过解析中央控制器发回的数据帧,得到帧中的饲喂器ID,判定为该饲喂设备在线,计入在线设备数量。主界面如图5所示。
4.2 母猪饲喂信息查询界面
该界面显示单台饲喂器设备的数据信息。选择相应的设备,可查询出该设备上传的母猪身份和生产信息数据,并且以折线图的形式显示该母猪分餐计划中的采食量和饮水量。当母猪当日采食量少于设备计划下料量40% 时,系统认定该母猪采食异常,在主界面的设备日志和采食详情异常数中反馈该情况。母猪饲喂信息查询界面如图6所示。
4.3 采集图像
系统下发图像采集命令,智能饲喂设备传回现场图像,用于后台对母猪产程和产仔情况进行分析。实例如图7所示。
4.4 统计数据下载
系统提供统计数据导出功能,数据包括设备下料消耗量以及母猪日采食量。系统可以在时间维度上对数据按指标进行统计,可减轻猪场管理员分析数据的压力,并且为调整母猪饲喂计划和分析猪场饲料消耗成本提供了参考。
系统根据历史数据中所有猪只的生产数据,统计不同产房母猪的采食总量和饮水总量;通过统计不同分娩前后时间的母猪数量与其采食总量和饮水总量,计算出不同分娩前后时间的母猪平均采食量和饮水量(图8)。
由统计结果分析可知,后备母猪在分娩前3 d,采食量和饮水量均有明显下降,在分娩当天母猪只有少量饮水。分娩完成后,母猪采食量和饮水量开始逐日增加,7 d后消耗量趋于稳定。
5. 结论
1) 本文设计了一种哺乳母猪智能饲喂物联网系统,开发语言使用Java,数据库使用MySQL技术,利用Netty框架实现了数据传输服务,系统的WEB部分使用SpringBoot与Vue框架,以前后端分离形式开发,实现了母猪饲喂信息采集、图像数据采集和设备远程升级等功能,系统对饲喂数据进行统计分析,对调整母猪饲喂计划,控制猪场消耗成本具有参考意义;
2) 系统通过自定义数据传输协议与解耦耗时业务操作,可以更加高效地传输母猪基础数据和更加灵活地拓展系统业务功能,满足了对猪场饲喂设备的连接管理与数据处理要求。系统在实际应用中,运行稳定、智能化程度高,可以实时反馈母猪饲喂情况,在猪场生产建设中具有实际应用价值。
-
表 1 饲喂物联网系统技术对比表
Table 1 Technology comparison table of feeding IoT system
系统 System 通信协议 Communication protocol 数据采集频率 Data acquisition frequency 存储方式 Storage mode 图像传输 Image transmission 其他系统 Other system 固定协议 Fixed protocol 定时 Fixed time 本地存储 Local storage 无 No 本文系统 System of this paper 自定义协议 Custom protocol 实时 Real time 本地、云端存储 Local and cloud storage 有 Yes 表 2 响应时间试验结果
Table 2 Test result of response time
ms 连接数 Number of connection 1 2 3 4 5 平均 Average 1000 245.056 137.227 160.899 131.782 137.191 162.431 2000 371.362 304.717 318.287 197.372 259.581 290.264 3000 143.550 368.450 257.350 329.670 567.300 333.624 表 3 数据库插入数据量结果
Table 3 Result for the amount of data inserted into the database
条 帧头 Frame header 1 2 3 4 5 6 7 8 9 10 平均 Average 无线程池 No thread pool 789 764 790 798 767 752 841 819 814 823 795.7 有线程池 Have thread pool 1135 1058 1067 1084 1087 1102 1081 1057 1039 1036 1078.9 -
[1] 王美芝, 安涛, 刘继军, 等. 智能饲喂器对哺乳母猪采食量体况和生产性能的影响[J]. 农业工程学报, 2019, 35(6): 190-197. doi: 10.11975/j.issn.1002-6819.2019.06.023 [2] LI S, ZHAI D, DU P, et al. Energy-efficient task offloading, load balancing, and resource allocation in mobile edge computing enabled IoT networks[J]. Science China Information Sciences, 2019, 62(2): 243-245.
[3] 杨飞云, 曾雅琼, 冯泽猛, 等. 畜禽养殖环境调控与智能养殖装备技术研究进展[J]. 中国科学院院刊, 2019, 34(2): 163-173. [4] 李保明, 王阳, 郑炜超, 等. 畜禽养殖智能装备与信息化技术研究进展[J]. 华南农业大学学报, 2021, 42(6): 18-26. doi: 10.7671/j.issn.1001-411X.202107050 [5] 熊本海, 杨振刚, 杨亮, 等. 中国畜牧业物联网技术应用研究进展[J]. 农业工程学报, 2015, 31(S1): 237-246. doi: 10.3969/j.issn.1002-6819.2015.z1.028 [6] GUAN Z, YANG W, ZHU L, et al. Achieving adaptively secure data access control with privacy protection for lightweight IoT devices[J]. Science China Information Sciences, 2021, 64(6): 140-153.
[7] 李道亮, 杨昊. 农业物联网技术研究进展与发展趋势分析[J]. 农业机械学报, 2018, 49(1): 1-20. doi: 10.6041/j.issn.1000-1298.2018.01.001 [8] 覃国喜, 文波. Velos智能化母猪管理系统在饲养过程中的优点与难题[J]. 广西畜牧兽医, 2014, 30(3): 141-142. doi: 10.3969/j.issn.1002-5235.2014.03.012 [9] 王德福, 黄会男, 张洪建, 等. 生猪养殖设施工程技术研究现状与发展分析[J]. 农业机械学报, 2018, 49(11): 1-14. doi: 10.6041/j.issn.1000-1298.2018.11.001 [10] 岳宇君, 岳雪峰, 仲云云. 农业物联网体系架构及关键技术研究进展[J]. 中国农业科技导报, 2019, 21(4): 79-87. [11] 朱伟兴, 戴陈云, 黄鹏. 基于物联网的保育猪舍环境监控系统[J]. 农业工程学报, 2012, 28(11): 177-182. doi: 10.3969/j.issn.1002-6819.2012.11.029 [12] 潘秦, 刘星桥. 基于母猪饲喂专家系统的群养母猪智能饲喂物联网系统设计[J]. 黑龙江畜牧兽医, 2021(10): 41-49. doi: 10.13881/j.cnki.hljxmsy.2020.08.0018 [13] 贾敬敦, 鲁相洁, 黄峰, 等. 远程控制与无线通信技术在农业中的应用分析与展望[J]. 农业机械学报, 2021, 52(S1): 351-359. doi: 10.6041/j.issn.1000-1298.2021.S0.045 [14] VERDOUW C, SUNDMAEKER H, TEKINERDOGAN B, et al. Architecture framework of IoT-based food and farm systems: A multiple case study[J]. Computers and Electronics in Agriculture, 2019, 165: 104939.
[15] 刘雨青, 李佳佳, 曹守启, 等. 基于物联网的螃蟹养殖基地监控系统设计及应用[J]. 农业工程学报, 2018, 34(16): 205-213. doi: 10.11975/j.issn.1002-6819.2018.16.027 [16] 鲍禹含, 付印金, 陈卫卫. 多云存储关键技术研究进展[J]. 计算机工程, 2020, 46(10): 18-32. [17] 顾振德, 刘子辰, 龙隆, 等. 基于Netty的IoT终端通信服务系统设计[J]. 计算机应用与软件, 2019, 36(4): 135-139. doi: 10.3969/j.issn.1000-386x.2019.04.021 [18] SU J, DING S, CHUNG H. Establishing a smart farm-scale piggery wastewater treatment system with the Internet of Things (IoT) applications[J]. Water, 2020, 12(6): 1654. doi: 10.3390/w12061654
[19] 李林锋. Netty权威指南[M]. 北京: 电子工业出版社, 2014. [20] 张杨, 柳晨光, 张冬雯, 等. 面向Java多线程机制的软件重构方法[J]. 北京理工大学学报, 2018, 38(11): 1149-1155. [21] GOETZ B, PEIERLS T, BLOCH J, et al. Java Concurrency in practice[M]. Upper Saddle River: Addison-Wesley, 2006: 1171-1177.
[22] 焦东来, 蒋贺, 张索非, 等. 面向空间信息的数据通信协议的设计与实现[J]. 计算机工程与设计, 2017, 38(2): 550-556. [23] 罗宇, 郭家松. 大位宽情况下的回滚式循环冗余校验算法[J]. 电子与信息学报, 2021, 43(4): 1057-1063. doi: 10.11999/JEIT200141 [24] 张娜, 史佳炳, 吴彪, 等. 基于Netty和Kafka的IoT终端服务系统设计方案[J]. 浙江理工大学学报(自然科学版), 2020, 43(2): 240-245. [25] 甄凯成, 黄河, 宋良图. 基于Netty和Kafka的物联网数据接入系统[J]. 计算机工程与应用, 2020, 56(5): 135-140. doi: 10.3778/j.issn.1002-8331.1811-0261 [26] 毛文华, 韩少云, 赵博, 等. 基于Netty和Marshalling的青饲机工况远程监测系统研究[J]. 农业机械学报, 2020, 51(8): 145-151. doi: 10.6041/j.issn.1000-1298.2020.08.016 -
期刊类型引用(6)
1. 张亚莉,莫振杰,田昊鑫,兰玉彬,王林琳. 基于改进APF-FMT~*的农业机器人路径规划算法. 华南农业大学学报. 2024(03): 408-415 . 本站查看
2. 岳光,任琳,郭靖宇,潘玉田,雷欢,葛林. 基于神经网络算法的水陆两栖无人艇控制系统研究. 兵器装备工程学报. 2024(05): 231-238 . 百度学术
3. 白晓兰,袁铮,周文全,张振朋. 移动机器人路径规划算法研究综述. 机械工程师. 2024(08): 24-28+33 . 百度学术
4. 黄淼,郝真鸣,冉宁,戴少石,郝晋渊. 配电室巡检机器人多目标点路径规划算法. 电子测量技术. 2024(16): 49-57 . 百度学术
5. 崔溦,吕鸿贤,李志竑,陈阳. 冰期渠道防结冰曝气装置运行方式多目标智能优化. 水资源与水工程学报. 2024(06): 131-138 . 百度学术
6. 白晓兰,袁铮,周文全,张振朋. 混合遗传算法在机器人路径规划中的应用. 组合机床与自动化加工技术. 2023(11): 15-19 . 百度学术
其他类型引用(9)