于振武 朱卫国
摘 要:本文以某县的蓝莓数字化种植需求为切入点,研制了一款适用于野外百亩级种植园区的基于ZigBee的蓝莓种植信息采集系统,该系统贴合于蓝莓粗放式种植、种植地分散以及兼有低山丘陵和平原沙洲的地貌特点下的应用。本文针对现有传统Z-Stack协议栈在数字化种植应用中存在的功耗问题,提出了发射功率自适应改进算法,能够对节点的发射功率进行动态调节,测试结果表明,该算法能够为节点节省平均约6%的电量,进一步延长了ZigBee网络寿命。为当地蓝莓种植日常数据采集和数据追溯提供了可靠的大数据支撑。
关键词:数字化种植;信息采集;ZigBee;发射功率优化
中图分类号:S24 文献标识码:A 文章编号:1673-260X(2021)01-0053-04
0 引言
农业物联网是我国战略性新兴产业,但目前仍处于示范推广阶段,多数设备面向大棚内或小而分散的试验田,不能很好应用在自然环境复杂的野外环境。某县的蓝莓种植园大部分位于丘陵地带与平原沙洲,介于东经116°28′—117°03′,北纬30°20′—30°50′之间,海拔在30~400m之间,属于北亚热带湿润季风气候区,具有四季分明、气候温和、雨量充沛、光照充足、霜雪期短的特点。在研发数字化种植信息采集系统中,发现了现有传统的Z-Stack协议栈在此种环境下应用中存在的功耗问题,研发出一种发射功率可进行动态自适应调节的无线传感网络,进一步延长了ZigBee网络寿命,为当地实现大规模数字化种植提供了更优化的技术支撑。
1 系统的总体方案
1.1 系统需求分析
根据对某县当地典型蓝莓种植农户的调研得知,蓝莓喜酸性土壤,土壤有机质含量应在8%~12%,对种植条件要求较为苛刻,需定时进行土壤分析。其中土壤pH值、水分对蓝莓的生长过程至关重要。同一园区内的土壤在坡度、沟渠等环境因素的影响下,土壤条件也有较大差异。目前土壤分析常使用取点采样法,根据种植园区土壤结构混乱程度决定采样点数,一般每百亩采集10个样本点,以检测区块土壤平均数据。
1.2 系统总体方案的设计
本次设计的种植信息采集系统采用了ZigBee星型网络来组建感知层中的无线传感网络,能够克服农田环境复杂,布线困难,种植园区面积广阔等困扰。因采用了星型网络结构,故系统分为采集节点(EndDevice)与汇聚网关(Coordinator)两个部分,在本次设计的网络中没有Router的存在。采集节点依据土壤分析的采样需求,部署在土壤分析采样的目标样本点,利用MODBUS总线下的传感器采集数据后,通过ZigBee无线传感网络传输至采集网关。网关则负责将各个采集节点的数据按照基于HJ212-2017的通讯协议进行打包,通过4G上传至信息采集平台。所设计的系统拓扑图如图1所示。
2 系统硬件模块的设计
2.1 采集节点的硬件设计
本次种植信息采集系统中的采集节点,为ZigBee网络中EndDevice,部署在种植园区的目标采样点。有着易于移动、不干扰蓝莓种苗生长、全年无须现场维护、成本较低等方面的需求。因此采集节点核心板的设计是系统中的关键一环,对功耗、体积与可靠性有着较高的要求。采集节点的核心主控单元采用了STM32L151C8T6,负责轮询遍历MODBUS总线下的传感器,存储、按协议打包上传传感器数据,响应网关所下发的各类设备反控指令。采集节点的硬件框架如图2所示。
采集节点使用了SP485EN芯片,以完成单片机TTL电平向RS485电平转换,在此不再赘述。由于传感器长期暴露在野外,易受到日晒、降水、灰尘等诸多环境因素的影响,传统在居家、农业大棚环境下使用的传感器无法满足耐用性上的要求,因此采用了12V的工業级土壤传感器。核心板采用了6000mAh/3.7V聚合物锂电池与TPS61040升压芯片满足传感器的电源所需。
实际的农业生产中,土壤分析的所需频率较低,种植信息采集综合管理平台会结合园区内气象站所传回的数值,向监测节点发出轮询遍历间隔时间更改指令,动态调整土壤信息的采集频率。默认情况下采集频率为1次/小时。
由于工业级土壤传感器静态工作电流较大,在TPS61040升压芯片的电源电路上采用了8550与8050两个三极管级联的方法,赋予单片机IO控制12V电源电路通断的能力。当POWERON为低电平时,Q2截止,Q1的基极与放大级电压相同,Q1也为截止状态,此时Vout为0。当POWERON为高电平时,Q2导通,此时Q1基极与集电极压差超过0.7V,Q1为饱和导通状态,此时Vout=Vin。
ZigBee模块采用了成都亿佰特公司基于CC2530芯片封装生产的模组E18-MS1PA2PCB,该模组采用了板载PCB天线,体积较小,贴片型封装,在无其他障碍物的蓝莓成熟种苗田地里实测通信距离可达200m,满足本次设计所需。另外易柏特公司还提供了基于2.5.1a版本Z-Stack协议栈的软件Demo,利用模组上引出的I/O口可进行二次开发。E18-MS1PA2PCB采用UART方式与单片机进行串口通信,性能指标如表1所示。
因为采集节点对功耗极为敏感,在ZigBee网络中的角色必须设计为EndDevice,EndDevice在网络中可定时休眠,在设定好休眠时间后便会周期性的唤醒,与父节点进行握手通讯。当信息采集平台有反控指令下发时,父节点会保存该次指令,在下一次EndDevice唤醒发生时将数据发送给EndDevice。同时也可通过串口唤醒,当节点完成一次传感器信息采集时可直接通过串口将数据发送给模组。
2.2 采集网关的硬件设计
本次种植信息采集系统中的采集网关,即ZigBee网络中的Coordinator,负责汇聚采集节点通过ZigBee传回的数据,按照基于HJ212-2017的协议打包,通过4G网络将数据上传至种植信息采集平台。同时负责下发平台所传回的设备反控指令。每个园区有且仅有一个,一般部署在园区的几何中心位置,能够保证与所有采集节点之间的ZigBee通信质量即可,对体积、功耗、成本等方面要求较低,在此不再赘述。
采集网关集成了作为Coordinator的ZigBee模组以及4G模组,功耗较大,故在供电方面采用了20Ah/12V的铅酸蓄电池与50W太阳能光伏板,以满足采集网关的供电所需。4G模组采用了本源物联生产的BC1432,实现了TCP协议下的数据透传。模组与单片机之间利用串口连接。
3 系统软件的设计
3.1 采集节点与网关的程序设计
系统软件采用了C语言环境下的Keil5开发,采集节点软件任务包括通信初始化、单片机硬件资源配置、按照设定好的问询频率轮询遍历MODBUS总线下的传感器、响应网关反控指令、电源管理五个部分。程序流程图如下图(a)所示。
其中图(a)通信初始化包括设置ZigBee网络角色、调节发射功率、配置信道、PANID等。硬件抽象层初始化包括定时器、UART、DMA、I2C等外设资源初始化和其缓冲区数组等配置。
图(b)为系统的休眠逻辑,本次设计采用了STM32L151的STOP模式进行低功耗设计,在裸板测试下STOP模式休眠电流可低至1μA。因STOP模式下的STM32L151只能通过外部中断或是RTC时钟唤醒,因此在进行休眠前需将RXD引脚配置为外部中断引脚,以保证单片机可以及时响应平台所下发的设备反控指令与传感器所回传的数据。节点的轮询任务包括了传感器的电源管理与MODBUS问询帧的下发。因传感器上电后需要30秒左右才能得到一个准确的数值,因此需要在问询帧下发前30秒时为传感器上电。
系统采集网关的软件任务较为简单,与采集节点类似,在此不再赘述。
3.2 Z-Stack中的发射功率改进算法
3.2.1 改进算法描述
本文在亿佰特公司提供的2.5.1a版本Z-Stack协议栈的基础上进行了二次开发。在传统的协议栈下,CC2530芯片的发射功率是不变的,也就是无论EndDevice与Coordinator之间的信号强度如何,EndDevice都会以固定的功率向Coordinator上传数据。这对于对功耗敏感的采集节点而言是极其浪费的。而在实际的蓝莓种植中,土壤分析所需的目标样本点一般在空间位置上变化较小,Z-Stack协议栈在农业生产环境下应用有一定的局限性,基于这一特点,本文在节点的Z-Stack协议栈初始化时,向Coordinator从低到高穷举不同信号强度等级的数据包,通过检测MCPS-POLL.confirm中RSSI值,寻找能够进行可靠通讯的最小功率。这种算法实现了EndDevice在加入网络后动态调节发射功率,实验证明该算法可以延长ZigBee网络的寿命。
3.2.2 算法流程
该算法工作于EndDevice加入网络后的初始化阶段。采用穷举不同功率等级数据包的方式,同时向上层发送MCPS-DATA.request请求。通过查阅Z-Stack协议栈源码,在hal_rf.c中存放着RF相关的定义程序。CC2530_2401_TXPOWER常数数组映射了发射功率强度与射频寄存器的关系,其中发射功率强度被分为了16级,其对应关系如表2所示。
本文提出的算法根据此表对构造的数据包进行功率强度等级划分,将-22dBm~4.5dBm功率间的数据包分成了16级,在节点入网之后将从最低的-22dBm开始,若在所设定的轮询周期内未得到上层MCPS-POLL.confirm的有效应答,则依次提高功率发送数据包。
在得到了有效应答之后,为检测该功率的可靠性,EndDevice将会在轮询周期内不断检测应答数据包中的RSSI值是否大于某一阈值,若均大于,节点则认为此功率数值为能进行可靠通信的最小功率,以后节点按照此功率等级进行通讯,直至丢失父节点,再次重新入网。算法的工作流程图如图5所示。
3.2.3 算法测试
功率自适应算法在本系统使用的星型网络拓扑结构下进行验证,验证环境为某县内一典型蓝莓种植园区,园内蓝莓种苗高约70cm,节点离地面安装高度约50cm,测试点分布图如图所示。
其中位置1与协调器距离大概4m,位置2与协调器距离大概20cm,测试节点未下挂传感器,不进行传感器轮询操作,测试节点在进行网络参数初始化后进行功率自适应改进算法,随后单片机直接进入STOP模式,之后每隔100ms会自动唤醒并发送“Hello World”测试数据包。三个测试节点均使用相同型号的370mAh锂电池进行供电,该款锂电池容量与1kΩ电阻负载下的电流关系已进行测算,二次拟合曲线如图7所示。三个节点工作过程中电池1kΩ测试电阻下的电流-时间曲线如图8所示。
从图中可以看到,在位置2的未运行发射功率改进算法的节点,即使离Coordinator很近(20cm),其电池容量下降的也是最快的。而优化后的节点即使在4m远处,其功耗也要优于未优化节点。两个优化后的节点其电池容量下降速率不同的主要因素是与Coordinator之间的距离。故在位置2运行了改进算法的节点比位置1的功耗更低。实验结果表明,发射功率改进算法能够明显地降低EndDevice的功耗,同在位置2的测试节点在工作34个小时后,发射功率改进算法可以为测试节点节省约6%的电量。
4 结论
基于功率自适应改进算法的蓝莓种植信息采集系统是对某县当地的地形特点针对性的设计,该系统能够适应地形复杂多样、环境气候较为恶劣的野外农田。野外测试结果表明,系统在复杂的地理自然环境下运行状态良好,经受住了高温、霉雨等环境的考验。本系统也可拓展应用于其他地域农作物的种植信息采集,具有良好的移植、借鉴和参考价值。
——————————
参考文献:
〔1〕郭猛.Z-Stack协议栈的按键驱动机制分析[J].单片机与嵌入式系统应用,2018,18(07):30-33+38.
〔2〕何智勇,徐丽萍.基于Z-Stack的ZigBee协议栈组网过程研究[J].南京工业职业技术学院学报,2018,18(01):1-3.
〔3〕殷松瑜.基于Z-Stack的ZigBee协议的实现[J].物联网技术,2017,7(10):33-37.
〔4〕Georgios Kambourakis, Constantinos Kolias,Dimitrios Geneiatakis, Georgios Karopoulos, Georgios Michail Makrakis, Ioannis Kounelis. A State-of-the-Art Review on the Security of Mainstream IoT Wireless PAN Protocol Stacks[J]. Symmetry, 2020,12(04).
〔5〕Wen Wu Hua,Zhong Hu Yuan,Xiu Zhen Yu. A Design of Z-Stack Application Based on the IEEE Address[J]. Applied Mechanics and Materials,2013,2668.
〔6〕韩建书,薛鹏飞,袁淑芳,赵镇川,胡慧勇,魏东亮,陈泽亮.基于ZigBee无线传感器网络技术的双孢菇生长环境监测系统的设计[J].工业计量,2019,29(06):53-55+75.
〔7〕肖玥.ZigBee技术在智能化农业大棚监控系统中的应用研究[J].湖北農机化,2019,20(16):48-49.
〔8〕程智君,游雨云.基于ZigBee的农业种植现场传感系统设计[J].南方农机,2018,49(17):129.