,, ,
(1.湖北大学 计算机与信息工程学院,武汉 430062; 2.湖北大学 楚才学院,武汉 430062;3.烽火通信科技股份有限公司业务与终端产出线,武汉 430073)
在传统农业大棚中,农作物生长环境的参数,以人工采集为主,因而很难保证其数据的实时性与有效性。随着物联网的快速发展,智能农业系统应运而生。当前,基于ZigBee技术设计的智能农业系统已然出现[1],然而因其传输距离短、易受外界频段干扰以及网络路由复杂等缺点,未能形成大规模推广。幸运的是,LoRa技术的出现[2],解决了智能农业系统所要求的长距离通信[3]、抗干扰能力强、低功耗等问题。LoRa技术,其本质为扩频调制技术,同时结合数字信号处理以及前向纠错偏码技术,更好地实现需求。
本文旨在设计一套基于LoRa技术的智能农业系统,能够实现实时准确地采集农作物生长环境中各种参数,并能实时精准地控制大棚中的设备,让大棚中的生长环境保持在一个平衡的状态,从而满足农作物生长的需求。从现实意义上看,本系统可以提高农业生产效率与农业产量,同时改善农业安全以及粮食安全。在智能农业系统中,具有良好的推广前景。
图1 系统总体设计
系统总体设计如图1所示,智能农业系统从整体上由四部分构成,分别是:用户访问平台、农业云平台服务器、LoRa基站和终端节点。其中用户访问平台指的是PC端和手机客户端,通过它们来监控大棚内的环境情况。农业云平台服务器负责对整个系统的数据进行处理,并且在其数据库内进行数据保存,LoRa基站负责对终端节点和农业云平台服务器之间数据的交互,终端节点包括采集节点和控制节点。图1中,温湿度采集节点、光照采集节点、CO2采集节点等称为采集节点,同时控制节点包括风扇控制节点、卷帘控制节点、加热控制节点等,另外一个LoRa基站负责多个农业大棚的终端节点,一个农业云平台服务器负责多个LoRa基站。在本系统的总体设计中支持上与下双向数据传输。从下至上时,首先通过采集节点采集到大棚内温湿度、光照强度、CO2浓度等信息的数据,经LoRa网络自组网方式传输到LoRa基站,然后经过3 G/4 G/有线宽带网络上传到农业云平台服务器,实现与用户访问平台的对接。从上至下时,用户访问平台首先通过互联网发送指令给农业云平台服务器,然后经由3 G/4 G/有线宽带网络发送给LoRa基站,最后再经过LoRa无线网络发给控制节点,通过控制风扇、卷帘、加热器的开关来调节大棚内的环境,从而实现了对控制设备的控制。
由此可见,该系统能够实现数据上传与数据下发,又具备组网便捷、传输距离远、抗干扰性能强等优势。同时该设计能够减少农业大棚所需成本,也可以提高农业生产效率与产量。
LoRa技术采用LoRaWAN网络协议,而LoRaWAN的网络架构[4]应用在本智能农业系统中包含终端节点、LoRa基站、农业云平台服务器三个部分。在这个网络架构中,LoRa基站是一个透明的中继,连接前面的终端节点和后面的农业云平台服务器。其中终端节点采用单跳与一个或多个LoRa基站进行双向通信,是一个典型的星型拓扑结构。相比以前的ZigBee多跳网络[5]而言,其具备很多优势,其一网络复杂性较低,其二使用电池寿命较长,其三数据传输稳定性较高。同时由于LoRa采用了扩频调制技术,可以选择不同的信道频率和数据传输速率,这样可以有效地解决LoRa基站数据并发的问题。
另外,LoRa基站能够与农业云平台服务器通过3G/4G/有线宽带网络建立通信链路[6],在此过程中采用标准TCP/IP连接。
根据本系统总体设计可知,硬件部分包括终端节点和LoRa基站。对于终端节点,虽然其所实现功能并不复杂,但考虑其低功耗需求,故终端节点选取TI公司出产的MSP430F149单片机为主控芯片[7]。MSP430F149是一款超低功耗、具备一定处理能力的16位单片机,它具有16位精简指令集MCU,5种省电模式,轻易满足终端节点硬件设计的需求。然而相对LoRa基站而言,除了低功耗特性外还需要满足一定复杂计算能力的芯片,因此LoRa基站选取ST公司生产的STM32F103为主控芯片[8],STM32F103是一款ARMCortex-M3内核的32位微处理器,它具有最高72 MHz的工作频率,内置高速存储器,有睡眠、停机、待机三种低功耗模式,达到了LoRa基站硬件设计的需求。另外LoRa芯片选取Semtech公司推出的SX1278扩频技术芯片,其主要特性包括:传输距离远、抗干扰能力强、低功耗等。以下分别介绍终端节点与LoRa基站的硬件设计。
3.1.1 终端节点设计
本系统的终端节点设计分为采集节点和控制节点两部分组成。如图2所示,其中采集节点由传感设备、电源模块、主控芯片、SX1278射频模块四部分组成,主要负责把采集到大棚环境的数据信息上传给LoRa基站。而控制节点由控制设备[9]、电源模块、主控芯片、SX1278射频模块四部分组成,主要任务是响应LoRa基站下发的控制指令来控制大棚内的设备。
图2 终端节点示意图
3.1.2 LoRa基站设计
本系统LoRa基站设计如图3所示。LoRa基站由网络接口模块、电源模块、主控芯片、SX1278射频模块四部分组成。LoRa基站的任务,一方面是通过LoRa无线网络接收采集数据,然后由3G/4G/有线宽带网络传输至农业云平台服务器,另一方面,LoRa基站响应农业云平台服务器下发的控制指令,通过LoRa无线网络发送到控制节点执行。
图3 LoRa基站示意图
为保证各层间正常通信,本系统在软件部分对终端节点、LoRa基站和通信协议三个部分进行了有效设计。对终端节点的设计实现与LoRa基站数据的交互,对LoRa基站的设计实现与农业云平台服务器的传输,对通信协议的设计保证传输数据的准确性与可靠性。以下分别介绍。
3.2.1 终端节点软件设计
终端节点上电后,首先进行系统初始化,然后开启串口接收函数使能,并且唤醒LoRa模块,使之进入正常工作状态。当接收标志位尚未完成时,则继续接收数据;当接收标志位完成后,则进行数据帧类型的判断。若数据来自采集节点,将数据打包添加帧头、帧尾、数据长度以及两位CRC校验位,然后通过LoRa无线网络发送给LoRa基站;若数据来自LoRa基站,则通过LoRa无线网络把数据帧发送给控制节点,此时先对数据帧进行解帧,将帧头、帧尾、数据长度、两位CRC校验位拆除,然后通过串口把数据发送给控制模块,最终根据数据位内容进行相对应的操作。通过对终端节点软件设计的完成,从而实现了采集数据的上传与控制命令的下达。
图4 终端节点流程图
3.2.2 LoRa基站软件设计
LoRa基站上电后,首先进行系统初始化,然后开启串口接收函数使能。当接收标志位尚未完成时,则继续接收数据;当接收标志位完成后,进行数据帧类型的判断。若数据来自农业云平台服务器,将数据打包添加帧头、帧尾、数据长度以及两位CRC校验位,然后通过LoRa无线网络发送给终端节点;若数据来自终端节点,则LoRa基站把接收到的数据帧先进行拆包,将帧头、帧尾、数据长度、两位CRC校验位拆除,然后通过3G/4G/有线宽带网络接口模块发送至农业云平台服务器,农业云平台服务器接收到数据后,实时地推送给用户访问平台。通过对LoRa基站软件设计的完成,从而实现了与农业云平台服务器数据的上传与终端节点的下达。
图5 LoRa基站流程图
3.2.3 通信协议的设计
为了实现本系统中数据交互的准确性与可靠性,根据系统需求和种类设计出六种类型的数据帧,分别为上行数据帧、上行信息帧、上行应答帧、下行控制指令帧、下行配置指令帧、下行应答帧。其中,上行数据帧表示下层采集节点向上层农业云平台服务器发送大棚内环境数据信息,上行信息帧表示下层采集节点所现有的工作状态,从而上层农业云平台服务器可以得知下层采集节点是否在工作中。上行应答帧表示下层控制节点执行情况的反馈帧,从而上层农业云平台服务器可以知道下层控制节点是否在执行。下行控制指令帧表示上层农业云平台服务器给下层控制节点向下发送的控制指令,下行配置指令帧表示上层农业云平台服务器配置下层采集节点数据采集的频率和控制节点开关控制的状态,下行应答帧表示上层农业云平台服务器收到下层采集节点发送数据的反馈帧,从而下层采集节点可以得知是否把数据传给了上层农业云平台服务器。通过对这6种类型数据帧的制定,从而达到了整个系统中数据传输的可靠性、准确性。
表1 通用格式数据帧
另外,通信协议根据性能需求设计出一条通用格式数据帧。帧内每一个字段的数据由十六进制方式存储。它包含帧头、数据长度、数据区、校验位和帧尾5个部分。其中数据区由类型、站点ID、大棚ID、设备类型、MAC地址、有效数据这6个部分构成。如表1所示,帧头表示数据帧的开始字节,由0xEE表示,占用一个字节。数据长度表示数据区的长度,由十六进制表示,占用一个字节。类型表示数据帧的类型,由十六进制表示,占用一个字节。站点ID表示一个站点的编号,由十六进制表示,占用两个字节。大棚ID表示一个大棚的编号,由十六进制表示,占用两个字节。设备类型表示大棚内的设备类型编号,由十六进制表示,占用两个字节。MAC地址表示对应LoRa节点的MAC地址,由十六进制表示,占用八个字节。有效数据表示真正的数据,由十六进制表示,长度不定。校验位表示从数据长度域开始到数据区结束,由十六进制表示,占用两个字节。帧尾表示数据帧的结束,由0xFF表示,占用一个字节。通过对通用格式数据帧的制定,从而更加具体地实现了6种不同类型的数据帧。
为验证本智能农业系统实现效果,可以从功能测试和性能测试两方面展开。在功能测试方面,根据以上理论分析,可以基本实现系统模型。该系统包含光照传感器、温度传感器、土壤湿度传感器、二氧化碳传感器等采集节点,与风扇、灯、水泵等控制节点,然后在节点附近架设一个LoRa基站,最后搭建一个农业云平台服务器和用户访问平台。它的具体实现是采集节点采集到大棚内的环境数据信息,然后通过LoRa无线网络发送给LoRa基站,之后LoRa基站通过4G网络发送至农业云平台服务器,最后把得到的数据显示在网页或者手机app界面上,同时用户通过浏览网页或者手机app查看大棚内的环境数据信息,并在其系统设置中设置各个传感器的阈值,如果当采集到的数据超过了该阈值,系统会发送相应的报警信息通过短信的形式发送给用户,用户可以通过点击页面中的开关按钮把数据发送至农业云平台服务器,再由4G网络发送给LoRa基站,最后通过LoRa无线网络发送至控制节点,从而达到了对控制设备的控制。
智能农业系统网页界面实现如图6所示。实现内容包括,用户通过鼠标点击光照传感器的图标时,页面中显示当前传感器数据,如果光照传感器的值过低时,则开启灯光按钮,随之灯开;如果光照传感器的值过高,则开启遮阳帘按钮,随之遮阳帘打开。经过对比实验测试,发现基于LoRa的智能农业系统相比ZigBee方案,抗干扰性更强,组网更加便捷,传输数据更加稳定,实用性更好,调试更加简单,控制响应的延时更短。
图6 智能农业系统网页界面图
在性能测试方面,为了验证Lora网络实用效果,以ZigBee网络作为对比,在不同传输距离条件下测试两种网络的丢包率和误码率。测试距离分别为100 m、200 m、350 m、500 m、750 m、900 m、1050 m、1200 m、1350 m、1500 m、1800 m,连续收发10000个数据包,分别统计Lora网络和Zigbee网络相应丢包率与误码率。实验结果如表2、表3所示。
由表2、表3可知,随着LoRa和ZigBee通信传输距离的增加,数据的丢包率和误码率逐渐增加。不同的是,使用LoRa网络通信时,距离在1800 m时丢包率为10.01%,误码率为5.25%,依旧能够进行基本通信;而使用ZigBee网络通信过程中,距离在500 m时丢包率为100%,误码率为100%,已经不能进行通信。
经过功能实验测试,LoRa技术组网便捷,可以实现预先需求;经过性能测试验证,LoRa技术与ZigBee相比,传输距离更远,抗干扰性能更强。由此可知,LoRa技术在智能农业大棚中更具实用性。
表2 LoRa测试结果
表3 ZigBee测试结果
本文旨在将LoRa技术应用在智能农业系统中。通过应用LoRa无线网络技术和3G/4G/有线宽带网络传输方式,实现农业云平台服务器与终端节点间通信,保证终端节点和LoRa基站能够实时有效的工作。文中对系统总体架构设计、软硬件设计以及通信协议等方面作出详细的分析与研究。从功能测试与性能测试的结果表明,基于LoRa的智能农业系统运行更加稳定,组网更便捷,传输距离更远,抗干扰性能更强,而且成本与功耗低,应用在智能农业中有益于提高农业效率与农业产量,具有良好的应用与推广空间。