XBee模块作为一种简单易用的无线模块,深受广大用户的喜爱。许多用户除了有数据通信的需求外,还随带有空间定位或设备定位的需求。在这一方面,XBee模块也能提供相关的在基础支持。
首先,定位实际上分为几种类型,一种是物理空间的定位,它要求能计算出两个模块或设备之间的距离,这种定位一般是以RSSI信号值的三点空间定位法来推算出距离和信号的比较关系。另一种是相对关系定位,即对于预设置已经值的节点,通过其它节点和已知设备之间的关系来判断设备所在的基本位置,这种简单定位的方式也非常有用,通常可以用zigbee模块的父子关系,相邻关系等一系列方法来判断相关位置,比如在很长的隧道等某些特殊场景也能发挥协议上的定位优势。新开发的XBee3模块还具有蓝牙功能,而蓝牙和zigbee的发射功率还可以分开调节,从某种意义上说,这也为定位提供了另一种选择。
本文主要探讨物理空间的定位方案:
一、无线传感器网络的定位机制
在基于ZigBee技术的定位系统中,确定传感器节点自身位置是系统中最重要的参考数据,定位原理是根据少数已知位置的节点,通过比照计算,按照某种定位机制来确定自身位置的,节点分为信标节点和未知节点。信标节点通过携带定位设备或者人工部署等手段获得自身的精确位置,在网络节点中占的比例很小,不是信标节点的其他传感器节点就是未知节点,他们通过信标节点来确定自身位置。具体步骤如下:
在基于802.15.4技术的XBee定位系统中,确定传感器节点自身位置是系统中最重要的参考数据,定位原理是根据少数已知位置的节点,通过比照计算,按照某种定位机制来确定自身位置的,节点分为信标节点和未知节点。信标节点通过携带定位设备或者人工部署等手段获得自身的精确位置,在网络节点中占的比例很小,不是信标节点的其他传感器节点就是未知节点,他们通过信标节点来确定自身位置。具体步骤如下:
(1)首先确定未知节点到信标节点的距离或方位。采用基于接收信号强度指示的定位(RSSI)算法,已知发射节点的发射信号强度,接收节点根据收到信号的强度计算出信号的传播损耗,利用理论或者经验模型将传输损耗转化为距离,再利用已有的算法计算出节点的位置。以下是具有视距传输的对数距离路径损耗模型。其大尺度传输模型见式(1):
式中:Pr(d)为接收信号强度表达式(距离发射点dm处);A0表示节点的发射功率;d0表示接收功率的参考点;γ0为自由空间路径损耗指数(γ0=2);γ表示实际的路径损耗指数;Xσ表示0均值的高斯分布随机变量;标准偏差为σ。在实际的无线传感器网络中,节点可以测量并记录来自其他节点的型号强度,由式(1)推出:
相对于其他定位方法,RSSI定位受硬件条件及环境的影响最小,且易于实现,但精度较差。无线传感器网络中,无线电波的传输受多种因素影响,使得某个固定节点接收到另一个固定节点发射的信号强度每次不相同。但从全局来看,信号强度必然在某一范围内变化。因此采用多次测量取平均值的方法,将使计算结果不断向实际坐标收敛,从而有效地减小随机误差带来的影响。
(2)通过使用三边测量法估算出未知节点的位置。已知A,B,C三个节点的坐标分别为(Xa,Ya),(Xb,Yb),(X-c,Yc),以及它们到未知节点D的距离分别为Da,Db,Dc,计算节点D的坐标为(X,Y),节点D在三个圆的交点上。根据RSSI算法,求出待测节点X与已知节点Xa,Xb,Xc之间的距离Da,Db,Dc。由于RSSI测距算法测量距离有着比较大的误差,因此可分别通过n个已知节点的位置和他们与待测节点之间的距离求出待测节点n种可能的位置,然后将这n种可能的位置坐标平均,即可得到最终待测节点的位置。
二、ZigBee无线定位系统
ZigBee无线定位系统组成
ZigBee无线定位系统是由上位机软件进行定位监控和一个无线定位网络构成的无线定位监控系统。本文采用Digi公司的Xbee模块。无线定位网络主要由无线定位网络主要由ZigBee网关、参考节点和盲节点组成:
参考节点:无线定位系统中已知坐标节点,是ZigBee网络中的路由器。由于其坐标是已知的,所以这个节点要正确地配置在定位区域中。它主要将一个包含自己位置的X,Y坐标和RSSI值的信息包发送至盲节点。
盲节点:无线定位系统中的移动节点,是ZigBee网络中的路由器,主要通过已知参考节点的坐标来计算自身坐标值。移动节点和离自己最近的参考节点通信,通过收集这些节点的X,Y坐标和RSSI值计算出自己的坐标信息。然后将适当的信息发送给网关,通过RS232串口延长线传送给上位机软件。
ZigBee网关:它是无线定位系统的网络协调器,通过RS 232串口延长线与PC相连,其在整个系统中有着至关重要的作用。首先它要接收由上位机软件提供配置数据,并发送给相应的节点;其次还要接收各节点反馈的有效数据,并上传至上位机软件。
系统定位原理
定位系统由参考节点和盲节点组成。参考节点是一个位于已知位置的静态节点,这个节点位置已知且可以将其位置参数通过发送数据包通知其他节点。盲节点与离自己最近的参考节点进行通信,获得参考节点位置坐标及相应的RSSI值,并将其写入定位引擎,然后读出由定位引擎经计算得到的自身位置。通过收集参考节点的X,Y坐标和RSSI值,并与输入参数(A,N)一起计算自己的位置信息,然后将信息发给网关。
网关节点通过建立网络,获取收集到的信息,利用串口和计算机通信,然后对收集到的信息进行计算校验,最终将参考节点和定位节点坐标网络地址正确地显示出来。