徐春华 王俊
摘 要: 针对农业低成本定位需求,设计了一种基于无线传感器网络的农业定位系统,系统由定位平台和定位节点两部分构成,其中定位节点包括锚节点和移动节点。定位系统部署完成后,首先各锚节点向定位平台发送包含自身位置、节点ID的数据包,定位平台建立网络拓扑图和数据链表;然后移动节点向所有锚节点发出定位请求,接收并存储各锚节点的RSSI值;最后定位平台采集移动节点与各锚节点通信的RSSI值,并应用定位模型确定移动节点的估算位置。试验表明,该定位系统具有简单易实现、定位效果好等特点。
关键词: 无线传感器网络; 农业定位; nRF903; 人工鱼群算法
中图分类号: TN711?34 文献标识码: A 文章编号: 1004?373X(2016)07?0010?05
Abstract: For the demand of agriculture low?cost localization, an agriculture localization system based on wireless sensor network was designed. The system is composed of localization node and localization platform. The localization node is composed of anchor nodes and mobile nodes. After system deployment, the data packet of node ID and location of each anchor node are sent to the localization platform to build the network topology and data linked list. And then the mobile nodes send the localization requests to all anchor nodes to receive and store RSSI values of each anchor node. Finally the localization platform is used to collect the RSSI values of mobile nodes and each anchor mode, and the localization model is used to determine the estimation location of the mobile nodes. The test results show that the system has the characteristics of easy implementation and good loca?lization effect.
Keywords: wireless sensor network; agriculture localization; nRF903; artificial fish swarm algorithm
0 引 言
无线传感器网络由大量的微型传感器节点组成,这些传感器节点价格低廉,它们能够通过构建自组织多跳网络,感知网络覆盖区域的信息。然后将采集的信息进行处理,再发送给观察者[1?2]。无线传感器网络发展迅速,在现代农业中发挥了重要的作用,其在农作物的精准作业、设施农业环境智能调控、农田水利灌溉、果园管理以及畜禽养殖等诸多方面有着广泛的应用 [3?4]。应用具备移动能力的传感器节点对农业环境进行动态监测,不仅能够减少所需节点的数量,还大幅提高了网络的覆盖范围,更有利于采样;同时可以通过数据转发以提高网络连通性和保障服务质量[5]。移动部署策略使传感器网络在资源配置方面得到了优化,可以显著改善信息感知、数据融合、无线通信的质量。由于环境和成本的限制,如果每个节点都配置GPS定位终端显然是不现实的,因此通过节点自定位技术获得节点的绝对或相对位置信息显得尤为重要。
常见的定位算法分为基于测距和无需测距的算法[6]。无需测距的定位算法不需要测量网络节点相互间的距离,单纯依赖网络连通状态完成位置估算,定位精确度相对较低。基于测距的定位算法和无需测距的定位算法不同,需要对节点之间的距离或者角度进行测量,从而实现节点的定位。常用测距方法有RSSI(Received Signal Strength Indicator),TOA(Time of Arrival),AOA(Angle of Arrival),TDOA(Time Difference of Arrival)等[7?8]。其中基于RSSI的测距技术应用较为广泛,它主要依据无线收发芯片来获取信号强度,在此基础上通过信号强度与传输距离之间的数学关系来实现距离测量。目前很多的无线射频芯片都具备RSSI采集功能,这些芯片价格低廉,功能强大,功耗较低,例如nRF903,CC1101,且它们均为独立模块,基于RSSI的测距技术已成为农业无线传感器网络定位的主要手段[9?10]。针对农业低成本的需求,本文设计了一种基于无线传感器网络的农业定位系统。当定位系统部署完成后,首先定位平台接收锚节点发送的包含自身位置与ID的数据包,建立网络的拓扑图和数据链表;然后移动节点向锚节点发送定位请求,接收锚节点的RSSI值并进行存储。最后定位平台依据移动节点与锚节点通信的RSSI值,应用基于变步长的人工鱼群算法定位模型确定移动节点的估算位置。
1 RSSI测距原理
2 无线定位系统组成
设计的无线定位系统由定位平台和定位节点两部分组成,其中定位节点又包括锚节点和移动节点两部分。锚节点是指该节点被预先设定好位置,也就是说锚节点是一种参考定位节点;移动节点在网络中的位置是未知的,而且它的移动轨迹是随机的。网络中的所有节点均为同构节点,具有相同的通信距离和计算能力。定位平台主要包括节点通信模块、人机交互接口、定位服务器3大部分。节点通信模块负责采集定位节点的无线通信信号,下发定位平台控制指令;人机交互接口负责设置定位参数、设备权限,及时接收移动节点与各锚节点通信的RSSI信息,通过定位模型进行处理后,输出定位节点的位置,记录所有定位操作发生的时间、地点,查询指定时间段内移动节点历史位置状态信息,并生成统计报表供用户查询;定位服务器负责所有定位节点信息的添加、修改和删除操作,包括锚节点、移动节点的编号信息,锚节点在定位区域内放置的地理位置信息,管理/启动/更新相关服务,以及对服务状态进行定时查询和检测。
定位平台和定位节点之间的通信频率为433 MHz,为有效防止同频干扰问题,系统采用分时TDMA(Time Division Muhiple Access)技术。待系统准备就绪后,所有锚节点首先向定位平台发送自身位置、节点ID等组成的数据包,定位平台建立相应的网络拓扑图和数据链表;然后移动节点向锚节点发送定位请求,接收锚节点的RSSI值并进行存储。最后定位平台将依据移动节点与锚节点通信的RSSI值,通过定位模型确定移动节点的估算位置。
2.1 定位系统设计
定位节点采用Atmega161单片机为控制核心。Atmega161为8位单片机,功耗低,具有32个工作寄存器,16 KB的FLASH,35个通用的I/O接口,3个具有比较模式的定时器,2个可编程的UART,SPI口。nRF903为433/868/915 MHz, ISM频段设计的单片UHF(Ultra High Frequency)无线收发芯片[11?13],具有较高的传输效率,当带宽达到155.6 kHz时,传输速率可提高至76.8 Kb/s,最大发射功率为10 dBm,采用差分天线接口,供电电源为3 V的直流电源,可工作在待机和掉电模式,具备RSSI功能,通过读取ADC寄存器可获取当前的接收信号强度(0~255)。
将nRF903的CFG_CLK(配置寄存器时钟)、CFG_DATA(配置寄存器数据)、CS(配置寄存器片选)三个接口分别与Atmega161的SPI端口的PB7(SCK),PB5(MOSI),PB4(SS)相连,对其工作频率、通道、输出功率和时钟频率等多个参数进行编程设置。nRF903的数据接口DATA与Atmega161的UART1相连,收发通信数据和读取RSSI值。nRF903与Atmega161连接示意图如图1所示。
定位平台采用Visual C++ 6.0环境下C语言进行开发。应用SQL Server 2012数据库,由C/S模式(客户端/服务器)开发而成,可分为硬件接口层、定位引擎层和图形界面层三部分。硬件接口层与移动节点时刻保持通信,并将采集到的移动节点与锚节点的RSSI信息通过串口读入到定位平台, RSSI信息接收界面如图2所示。
定位引擎层将定位平台获取的RSSI信息数据进行分析和处理,应用变步长的人工鱼群算法处理后获得移动节点的位置坐标。图形界面主要用于人机交互界面的图形显示,不仅可以读入用户数据,比如移动节点的位置,以及移动节点的使用配置和命令等,而且还可以将拓扑图导入到图形界面,从而完成相关节点的定位显示。
2.2 基于变步长的人工鱼群算法定位模型
移动节点与锚节点时刻保持通信,将锚节点的RSSI值按序组成一个数组,并上传至定位平台,定位平台完成对数据的分析和处理,然后依据路径损耗模型计算各移动节点与锚节点之间的距离,通过变步长的人工鱼群算法可以估算移动节点的位置,从而实现对移动节点的定位估算,然后计算相应的定位误差。
人工鱼群算法是一种优化的随机搜索模型,通过模拟鱼群的聚集和觅食行为,利用鱼群不断聚集实现移动节点的最终定位,达到利用鱼群个体的局部寻优来实现全局寻优的目的[14?16]。相关符号定义如下:
[xi]为第[i]条人工鱼的状态,维数为3,表示待定位移动节点所处的三维空间位置;鱼群中个体之间的相互距离表示为[dij=xi-xj];visual表示人工鱼的感知距离;[δ]表示人工鱼的拥挤度因子;try_number为觅食过程中鱼群不断尝试的次数。
式中:[n]为锚节点总数;[(xi1,xi2,xi3)]为待定位的估计坐标,即人工鱼状态[xi;][(xj,yj,zj)]为锚节点的实际坐标;[dj]为待定位移动节点和各锚节点之间的测量距离。由于使用RSSI测距存在一定的误差,定位的实质并不是消除误差,而是使误差最小化,因此当目标函数值达到最大时,鱼群的食物浓度值达到最大,此时鱼群聚集最多,定位结果达到最优化状态。
基于变步长的人工鱼群算法的移动节点定位主要包括4种典型的行为:觅食、聚群、追尾和随机。
(1) 觅食行为。设人工鱼的当前状态为[xi,]当[dij≤]visual时,在该人工鱼的感知距离范围内选择一个状态[xj,]如果[yj>yi,]则向该方向前进一步;反之,重新选择状态,判断是否满足前进条件;经过数次尝试后,如果仍然不能满足前进的条件,则随机向前移动一步;公式如下:
(2) 聚群行为。设人工鱼的当前状态为[xi,]当[dij≤]visual时,对其视野范围内的鱼群进行搜索,并确定伙伴鱼群的中心位置,设伙伴数目为[nf,]伙伴鱼群的中心距离为[xc。]当[nf]不为零,且[ycnf>δyj,]说明伙伴鱼群的数量不为零,其中心聚集着较多的食物,且食物分布区域较广,则需要向着伙伴鱼群中心移动一步,否则继续执行觅食行为;若[nf]为零,说明搜索区域内并未出现觅食的伙伴鱼群,此时也要执行觅食行为。
(3) 追尾行为。设人工鱼当前状态为[xi,]探索其[dij≤]visual范围内的伙伴中[yj]为最大的伙伴[xmax。]如果[ymaxnf>δyi,]表明伙伴[xmax]的状态具有较高的食物浓度并且其周围不太拥挤,则向伙伴[xmax]的方向前进一步;否则执行觅食行为。
(4) 随机行为。随机行为就是一种缺省状态,就是随机选择一个方向,然后朝着这个方向移动,因此具有一定的随机性和盲目性。
一般来说,步长越大算法运行前期收敛速度越快,但是算法运行后期会出现波动情况,难以快速收敛;因此可以通过适时改变步长的方式提高人工鱼群算法的收敛性和准确性,即在算法运行前期,选用较大的步长,使人工鱼能够在较大范围内进行粗搜索,随着优化搜索的进行,逐步减小步长,使算法运行演化为局部搜索,定位在最优解附近区域完成精细搜索。
按照定位问题求取最优值的性质,采用试探法执行聚群、追尾等行为,通过对鱼群行动后的取值进行比较评价,执行最大值,如果行为为缺省状态的话,则判定此行为为觅食行为。在变步长的人工鱼群定位算法中设立一个公告板,此公告板是用来记录鱼群最优个体位置以及当前的食物浓度值,每当鱼群移动一次后就将此时鱼群个体自身位置对应的食物浓度与上一次公告板记录的进行对比,如果优于公告板上的记录,则应该将此时的位置及食物浓度替换公告板上的记录。
3 试验与结果分析
为验证所研制定位系统设计的合理性和实用性,进行了定位试验。试验三维区域为60 m×20 m×5 m,部署有6个锚节点和1个移动节点,网络部署方式如图3所示,图中圆形代表锚节点,方形代表定位测试的移动节点。综合考虑农业环境监测与定位的需要,同侧锚节点间采用横向等距布置,间距为30 m,且部署在距地面约2.5 m高度处,移动节点在网络内随机移动。锚节点与移动节点采用基于nRF903芯片开发的无线通信模块,其发射功率为10 dBm,接收灵敏度为-104 dBm,最大视距传输距离为400 m,锚节点和移动节点安装增益为3 dBi的胶棒天线,节点通信设置为波特率9 600 b/s,8位数据位,无奇偶校验位,1位停止位。
定位平台发送配置命令,以对锚节点的位置和参数阈值、数据采集周期、移动节点定位周期等进行配置,系统处于正常运行状态,此后定位平台周期性地采集移动节点与各锚节点通信的RSSI信息,运用定位模型对这些信息进行解析,随后将得到的定位结果储存到数据库中。设置定位工作周期为3 min,系统连续运行1 h。
感知距离visual会对基于变步长的人工鱼群算法定位模型的收敛性能产生比较大的影响。当感知距离大时,人工鱼群算法的全局搜索能力比较强,这时定位模型收敛的速度比较快;当感知距离较小时,人工鱼群算法的全局搜索能力就较弱,模型收敛的速度较慢,但是其局部搜索能力较强。感知距离visual对平均定位误差的影响如图4所示,从图4可以看出:当感知距离visual∈[0.5,4]时,平均定位误差较大;当visual∈(4,5]时,平均定位误差迅速下降,并且当感知距离visual≥4.0时,平均定位误差就会基本保持不变。因此,选取的最终定位模型的感知距离visual为4.0。
在试验环境下记录20次测试结果,计算移动节点的定位误差,结果如图5所示。从图5中可以看出,定位误差始终保持了较好的水平,定位误差的最大值为3.113 9 m,最小值为1.066 8 m,均值为1.769 9 m,均方差为0.786 8 m,定位误差≤1.5 m的比例达35%,定位误差≤3.0 m的比例达95%。表明定位系统的性能稳定,具有较好的鲁棒性。
在相同试验环境中,将本文提出的定位模型与遗传BP定位算法进行比较,遗传BP定位算法参数设置为:输入节点数为6,输出节点数为3,种群规模为20,进化次数为50,变异概率为0.2,交叉概率为0.4。两种算法定位误差的波动范围分别为[1.066 8 m, 3.113 9 m],[1.867 4 m, 6.015 7 m],表明本文所设计的定位系统性能更为优越。
4 结 论
本文研发了一种基于无线传感器网络的农业定位系统。以Atmega161单片机为定位节点的核心,nRF903无线收发模块接于单片机的外围;在Visual C++6.0环境下利用C++语言自主开发定位平台,采用SQL Server 2012数据库并且以C/S模式(客户端/服务器)开发而成。试验表明,该定位系统简单易实现并且定位效果好。
(1) 感知距离visual会对定位模型的收敛性能产生较大的影响。当感知距离较大时,定位模型的全局搜索能力增强并且能够快速地收敛;当感知距离较小时,定位模型的局部搜索能力增强。
(2) 模拟定位试验中部署6个锚节点,定位效果良好,表明该定位系统对锚节点数量的依赖度低,即使在少量锚节点的情况下,也能够获得比较理想的定位效果,有效降低网络的定位成本。
(3) 试验结果表明,该定位系统具有较高的鲁棒性和定位精度,定位结果波动范围小,并且定位误差小于1.5 m的试验数据占全部试验数据的35%,定位误差小于3.0 m的试验数据的比例是95%,该系统可以满足农业环境的定位要求。
参考文献
[1] 孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005.
[2] 李凤保,李凌.无线传感器网络技术综述[J].仪器仪表学报,2005,26(z2):559?561.
[3] 杨玮,吕科,张栋,等.基于ZigBee技术的温室无线智能控制终端开发[J].农业工程学报,2010,26(3):198?202.
[4] 韩华峰,杜克明,孙忠富,等.基于 ZigBee网络的温室环境远程监控系统设计与应用[J].农业工程学报,2009,25(7):158?163.
[5] 乔晓军,张馨,王成,等.无线传感器网络在农业中的应用[J].农业工程学报,2005,21(z2):232?234.
[6] 郝志凯,王硕.无线传感器网络定位方法综述[J].华中科技大学学报(自然科学版),2008,36(z1):224?227.
[7] 王小平,罗军,沈昌祥.无线传感器网络定位理论和算法[J].计算机研究与发展,2011,48(3):353?363.
[8] 王福豹,史龙,任丰原.无线传感器网络中的自身定位系统和算法[J].软件学报,2005,16(5):857?868.
[9] 方震,赵湛,郭鹏,等.基于RSSI测距分析[J].传感技术学报,2007,20(11):2526?2530.
[10] 赵海,朱剑,孙佩刚,等.基于 RSSI均值的等边三角形定位算法[J].东北大学学报(自然科学版),2007,28(8):1094?1097.
[11] 林文斌,孟利民,张江鑫.无线收发芯片NRF903在无线多媒体中的应用[J].浙江工业大学学报,2004,32(6):679?683.
[12] 金保华,张勇,崔光照.基于nRF905的无线数据多点跳传通信系统[J].仪表技术与传感器,2004(9):39?40.
[13] 田海燕,刘婷,刘伟.基于无线收发芯片nRF905的矿工定位模块[J].兵工自动化,2008,27(8):71?73.
[14] 贾强,季仲梅,王建辉.改进的人工鱼群算法及其在无线定位中的应用[J].计算机应用研究,2011,28(6):2147?2150.
[15] 徐善永,黄友锐,曲立国.基于人工鱼群算法的煤矿井下人员定位技术研究[J].煤炭工程,2013,45(11):129?131.
[16] 付波,黄英伟,程琼,等.改进人工鱼群优化粗糙集的水电机组故障诊断[J].湖北工业大学学报,2012,27(1):92?95.