- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于TInyOS的CC2430定位方案
4.4 程序移植与实验结果
本实验在Cygwin平台下进行编译与移植,编译过程如图6所示。
图6 TinyOS编译流程图
进入Cygwin环境,切换到TinyOS定位程序目录下,输入编译移植命令:
make cc2430em install NID=0x GRP=00
其中NID是节点号,是节点的身份标识,同一网络中的节点号必须惟一;GRP是网络号,同一网络中所有节点的网络号必须一致。
在所有节点的TinyOS移植完毕后,启动所有节点,应用串口调试助手显示汇聚节点发送到PC机的RSSI数据,数据结构如图7所示,其中1~7个字节数据为信息包的包头,8~9两字节为中继锚节点的节点号,10~11两字节为源锚节点的节点号,12~13字节为源锚节点到汇聚节点的跳数,14~15字节为盲节点的节点号,21~22两字节数据为锚节点的RSSI值。
图7 锚节点RSSI值
在确定PC机能够正确接收各锚节点的RSSI值后,还需要选取合适的RSSI测距信号衰减模型,将RSSI值转化为距离。本实验中采用在无线信号传输中应用广泛的对数--常态模型,如式(1)所示:
RSSI=-(10n·lg(d)+A)+45 (1)
其中A为盲节点与锚节点相距1米时RSSI的绝对值,本实验中测得A≈40,n为无线信号传播指数,一般取2~4,经过多次试验取3.0较为合适。将本模型应用在所测得的RSSI中,并对比实际距离得到如表1和图8所示结果:表1中d为RSSI理论模型所得距离,D为实际测量结果。
表1 RSSI值与距离的转换
图8 RSSI测距模型验证
在实验室环境下布置了4个锚节点、1个汇聚节点和1个盲节点,4个锚节点分布在4.8x3.6 m2矩形的4个点,盲节点位于矩形区域内,汇聚节点在矩形区域外。
读取如图7所示的各锚节点RSSI值,在Matlab环境下通过对数--常态传播模型将RSSI值转变为距离,最后通过质心算法对盲节点进行定位,计算出盲节点的坐标。在实验中采用10次测量取平均值来减小定位误差,并计算对比盲节点理论坐标与实际坐标的误差,得到如图9所示的定位结果。
图9 RSSI定位结果
通过定位算法计算出的盲节点坐标为(2.483 1,1.018 5),实际盲节点坐标为(2.4,1.2),误差为0.199 6 m,基本实现了对盲节点的定位。
5 结论
本文在TinyOS操作系统下实现了基于CC2430模块的RSSI定位,分析了盲节点、锚节点和汇聚节点的工作流程,确定了实验室条件下无线传输模型Shadowing模型参数,最后利用Matlab计算出盲节点坐标。定位结果显示,通过定位算法所得的盲节点坐标与实际坐标误差为0.199 6 m,可满足大多数无线传感器网络对节点定位的要求。