基于LoRa的节水灌溉系统设计与研究
2017-03-21王玖林赵成萍
王玖林,赵成萍,严 华
(四川大学 电子信息学院,成都 610065)
我国作为一个幅员辽阔的农业大国,降雨量在时间和空间上是极其不均匀的。在自然状况下,土壤中的水分并不能满足农作物的需求。在一些干旱缺水的地方或者是需要进行大面积灌溉的平原地带,先进的灌溉技术就显得格外重要。近些年基于ZigBee技术的节水灌溉技术发展得非常快速,但是由于ZigBee技术通信频率高,信号在传输过程中衰减的非常快,同一频段的蓝牙、WiFi信号的使用,导致ZigBee传输距离短[1]、网络结构复杂、易受干扰。LoRa是一种基于扩频技术的超远距离无线传输技术,拥有超高接收灵敏度(RSSI)和超强信噪比(SNR),因而具有较强的抗干扰能力。同时,LoRa的远距离通信也大大减少了中继的使用,节约了成本。为此,论文设计了一种基于LoRa技术的节水灌溉系统。
1 系统总体设计
1.1 系统组成及功能
系统总体扑朔结构如图1所示,主要可分为LoRa终端节点、网关、服务器、移动终端4个部分。从网络结构来看,系统可分为三层。第一层为LoRa终端节点与网关组成的LoRa网络,每一个符合LoRaWAN协议的终端都能与符合LoRaWAN协议的网关直接通讯,从而实现互通互联。第二层为网关与服务器之间的TCP/IP网络。第三层为服务器与移动终端之间的3G/4G网络。
终端节点采集土壤墒情、温湿度、水压,控制电磁阀的开启与关闭,并将采集到的数据发送给网关[2]。网关位于LoRa星形网络的核心位置,是终端和服务器间信息的桥梁,也是多信道的收发机。服务器是网络的大脑,进行数据处理以及控制反馈。一方面它提供终端节点接入鉴权、网关接入鉴权、数据传输、协议解析等网络管理功能;另一方面根据由终端传回的土壤墒情以及收集到的气象信息并结合作物的需水规律,以自动的方式控制灌溉系统,对作物进行较为精准的灌溉。
用户可以通过移动终端随时随地掌握土壤墒情以及相关气象信息,必要时也可远程进行下行控制,对作物进行灌溉。
由于现代化的灌区面积非常大,因而一般采取集中操作监控、离散分布工作的方式协同优化灌溉系统的设计和管网的分布,从而提高每个子灌区的灌水效率,降低成本,提高效益[3]。
图1 系统总体结构
1.2 LoRaWAN协议
LoRa是物理层传输技术,LoRaWAN是在LoRa物理层传输技术基础上的以MAC层为主的一套协议标准。这一技术可以为电池供电的无线设备提供区域、国家或全球的网络。LoRaWAN瞄准了物联网中的一些核心需求,如安全地双向通讯、移动化和本地服务。该技术无须本地复杂配置,即可以让智能设备实现无缝互操作性,给物联网领域的用户、开发者和企业自由操作权限。相对于仅使用LoRa物理层的传输方式,使用标准的LoRaWAN协议具有兼容性好、网络容量大、安全性好、特性不断升级等优势。
(1)LoRaWAN数据帧结构。上行链路信息由终端节点发送,经由网关中转后由服务器接收。上行链路信息帧结构如图2所示。其中包含了前导码(Preamble)、物理帧头(PHDR)、循环冗余校验的物理帧头(PHDR_CRC)、有效负荷(PHYPayload)、循环冗余校验(CRC)。
PreamblePHDRPHDR_CRCPHYPayloadCRC
图2上行链路物理帧结构
下行链路信息由服务器发送经由网关转发后发送给具体的某一个终端设备,下行链路比上行链路少了循环冗余校验CRC,下行链路物理帧结构如图3所示。
PreamblePHDRPHDR_CRCPHYPayload
图3下行链路物理帧结构
理论上LoRa模块能发射或接收的字节数为256字节。但是,并不是在任何传输速率下LoRa模块的负载长度都能为256字节。在传输速率较低的情况下,一次传输256字节将会花费很长时间,这不利于交互和抗干扰,因此在技术处理上一般将一条长数据分割成数条小数据来进行传送。
(2)信息传输模式。LoRaWAN协议主要分为3种传输模式[4],分别是Class A、Class B以及Class C。Class A是每一个使用LoRaWAN协议的终端都必须要实现的,三种传输模式都支持双向通信,但是在功耗与下行链路的实时性上又有很大的不同。
A类传输模式(Class A)在三种传输模式中功耗最低,但是它的缺点在于终端设备任何时候与服务器的下行通信都只能是在上行通信之后。在每一次上行通信之后,终端设备会打开两个接收窗口,用以接收服务器的下行数据。接收窗口固定,但可以进行微调,因此服务器不能主动地将A类传输模式的终端设备激活。
B类传输模式除了在预设的时间内开放A类传输模式中所述的两个接收窗口以外,还会开放其他的接收窗口,用以接收服务器下发的相关信息,这些接收窗口被称之成为“Ping Slot”。并且这类传输模式支持下行Beacon信号保持和网络的时间同步,以便在下行调度的时间上进行信息监听。对于一个终端支持Class B的网络网关需要向终端设备广播一个携带时间参考信息的Beacon。基于这个时间参考信息,终端设备就能在约定的时间内周期性打开接收窗口。在下行通信开始的时候,网络还可以使用这些接收窗口中的一个初始化下行链路,这个接收窗口特定称为“Ping”。
C类传输模式持续地打开接收窗口,仅在上行链路时关闭。C类传输模式不考虑功耗,适用于大量下行数据的应用情形[5]。
至于本文的设计采用何种传输模式,下文有详细的论述,这也是本文研究的一个重点。
1.3 终端节点设计
设计的终端节点如图4所示。
图4 终端节点结构示意图
其中使用STM32F103ZET[6]作为主控芯片,该芯片是基于ARM 32位的cortex—M3架构的微处理器,最高72MHz工作频率,内置512K字节大容量存储器以及高速SRAM。LoRa射频部分的芯片是SX1278。这类芯片集成规模小、效率高,为LoRa无线模块带来高接收灵敏度。
传感器组主要包括温湿度传感器、土壤墒情传感器、水压传感器三种。控制芯片需加入传A/D转换电路,对传感器所采集到的信号送到控制器进行处理。控制器将处理后的数据打包成数据帧经由LoRa射频模块发送出去。在微处理器控制需在SRAM空间设置数据缓冲区以暂存无法转发的数据信息,且转发信息遵循队列原则。节点采用电池供电,为了最大限度地降低用电量,节点空闲时,无线模块进入休眠模式。
微控制既转发数据,也通过LoRa射频模块接收服务器下发的控制命令,并控制电磁阀对作物进行灌溉。终端节点、网关、服务器、移动终端之间的数据交互如图5所示。
图5 数据流图
其中终端节点采集土壤温湿度、墒情、水压等信息经由网关透传后上传给服务器,服务器结合获得的气象信息得到作物的需水信息供用户查看并且对这些信息做出综合分析,制作灌溉计划下发控制命令对作物进行灌溉。移动终端可通过APP随时随地掌握作物的需水信息,必要时也下发控制命令经由服务器、网关转发给终端节点。
1.4 网关设计
LoRa网关部分可采用SX1301芯片,该芯片具有比SX1278芯片更高的集成度、更高的信道数。单个SX1278芯片拥有8个上行信道和一个下行信道。采用SX1301作为核心开发出的网关,可与许许多多的LoRa模块构成多节点的复杂的物联自组网。
1.5 节点通信过程
节点通信过程一般可以分为节点激活、加入网络、传输数据三个过程,激活后终端设备将存储4种信息,分别是设备地址、应用识别、网络进程密钥、应用进程密钥。在LoRaWAN网络中,节点加入网络通过相应的MAC命令完成,节点首先给服务器发送Join Request信息,网关收到节点数据,便上传给服务器。服务器收到入网请求,同意节点入网,并且将设备进行注册,生成通信密钥,将通信密钥的参数打包下发给网关即Join Accept信息。网关收到数据,下发给节点允许入网。若节点成功收到Join Accept 命令,则表示入网成功,此后节点将进行链路检查,确认链路是否正常。链路检查过程由相应的MAC命令完成,若不正常将进行重复检查。链路正常后便可以进行数据发送了,如果发送的数据需要确认,那么接收端将会发送确认信息给发送端。
2 关键技术
2.1 混合传输模式
在无线通信的设计中有一个很矛盾的地方,一方面为了降低功耗,希望节点尽可能的处于休眠状态,正如上文所介绍的A类传输模式;另一方面为了减少通信延时,要求服务器能尽可能快的唤醒节点,正如上文介绍的C类传输模式。而缓解该矛盾的办法就是约定唤醒、时钟同步。
在节水灌溉系统中数据的采集频率远远高于下行控制的频率。如果为了提高下行控制的实时性,而节点使用C类传输模式浪费大量功耗,显然是不合理的。况且农业灌溉领域野外供电极为不方便,一般都使用电池供电,因此应该尽可能地延长电池的更换周期。如果使用A类传输模式,显然功耗极大地降低了,但是当服务端想要对节点进行控制时,又不能进行主动的激活,节点仅在一次上行数据之后打开两个短暂的接收窗口。
为了使服务器能够知道节点正在监听(打开接收窗口的时间),节点可以与服务器进行约定。对于工作于A模式(Class A)的节点,服务器并不能主动与其进行约定,何时进行约定只能由节点自己决定。节点还可以确定打开的时间窗口长度。显然在正是LoRaWAN协议中B类传输模式所采用的方法。
LoRaWAN协议允许一个节点从A类传输模式切换到B类传输模式即从Class A切换到Class B,切换的过程如下:
首先节点的应用请求LoRaWAN协议栈切换到Class B,然后协议栈开始搜索网关发送的Beacon(信标帧),如果搜到Beacon,则返回BEACON_LOCKED原语,否则返回BEACON_NOT_FOUND原语。Beacon是一个携带时间参考信息的信标帧。基于这个时间参考信息,节点就能在约定的时间内周期性打开Ping Slot(接收窗口),服务器也能知道在约定的时间内节点正在监听。节点根据自身的应用需求,选择唤醒通信的时隙和接收窗口的时间长度。
因此可以让节点工作于A类传输模式,必要时再切换到B类传输模式,待服务器完成控制后再回到A类传输模式。
接下来节点选择何时与服务器进行约定即何时从Class A切换到Class B便成了关键,理论上何时约定由服务器决定,因为它决定着下行控制的时间。实际上服务器下行控制是通过采集到的土壤墒情并结合作物需水信息和相关气象信息以决定作物灌溉计划。
事实上这些因素中对灌溉计划起主要作用的土壤墒情、温湿度、水压等终端节点可直接经过相关传感器采集得到,因此终端节点可根据采集到的土壤墒情、温湿度和预置的作物生长需水信息,确定与服务器的预约时间,并在预约时间到达后(从Class A切换到Class B)向服务器传送采集到的土壤墒情、温湿度和水压等信息并打开接收窗口,等待接收服务器下发的控制命令。服务器接收终端节点上传的土壤墒情、温湿度、水压等信息,结合气象信息和作物生长需水信息,确定灌溉计划,并向终端节点下达灌溉命令(此时接收窗口打开着)和下一次的预约时间。完成一次控制反馈后节点将回到Class A,并在下一次预约时间重复上述过程。
显然这种A、B混合传输模式的使用避免了单独使用具有高功耗的C类传输模式,也可解决节点单独使用A类传输模式所面临的节点激活问题。由于灌溉模式是基于服务器的综合分析、精准预测,因此系统可在功耗和实时性之间很好地平衡。
2.2 唤醒误差
理想情况下,服务端与终端节点能在精确地时间完成唤醒通信,但是由于终端节点与服务器之间约定时间是通过时钟进行同步的。设备的时钟都有漂移,如+/-10 ppm的晶振128 s内将漂移+/-1.3 ms,Gateway由GPS秒同步校准,而End Node则靠Beacon帧中的时间值来校准,实际运行中,End Node可能会因为某些原因(无线干扰、通信拥塞等)而接收不到Beacon。在这种情况下,LoRaWAN允许该End Node继续运行120 min(2 h),同时允许End Node延伸ping slot时间窗口长度,以便缓解时钟漂移带来的误差。
3 结 语
针对传统的基于ZigBee技术的节水灌溉系统的缺点,提出基于LoRa的节水灌溉系统,为精准农业信息采集和节水灌溉控制提供有效的实现手段[7]。相比于ZigBee技术,LoRa技术具有明显的低功耗、远距离、网络扑朔结构简单等特点。同时,给出的混合传输模式可很好地平衡终端节点功耗和系统的实时性。
[1] 杨 婷,汪小旵.基于ZigBee无线传感网络的自动滴灌系统设计[J].节水灌溉,2010,(2):10-12.
[2] 江 挺,胡培金,赵燕东.基于ZigBee无线传感器网络的灌溉控制系统设计[J].节水灌溉,2011,(2):58-61.
[3] 严 寒,严 华.基于CAN和ZigBee技术的农田自动化滴灌系统的设计[J].节水灌溉,2013,(3):50-52.
[4] 孙 曼,张乃谦,金立标,等.基于LoRa标准的MAC层协议研究[J].电视技术,2016,40(10):77-81.
[5] 刘 琛,邵 震,夏莹莹.低功耗广域LoRa技术分析与应用建议[J].电信技术,2016,1(5):43-46.
[6] 赵太飞,陈伦斌,袁 麓,等.基于LoRa的智能抄表系统设计与实现[J].计算机测量与控制,2016,24(9):298-301.
[7] 李贯峰,刘 平.基于无线传感器网络的节水灌溉系统设计[J].节水灌溉,2013,(5):54-57.