首页 > 范文大全 > 正文

基于物联网的无线实时定位系统的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于物联网的无线实时定位系统的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 为了达到解决无线实时定位的研究目的,引入ZigBee和CC2530芯片技术,利用RSSI测距研究方法分析了接收信号强度与信号传输距离的关系,并结合三边定位算法,在上位机定位软件上进行仿真实验,通过设置参考节点坐标,可在调试信息框中得到移动节点的测距、定位等过程性实验结果。通过多次仿真实验模拟,得到了该方法能通过追踪移动节点坐标,较为有效地实现参考节点与移动节点之间的信号强度测量与实时定位等结论。该文创新点是系统运用先进的微功耗技术与RSSI测距技术,内嵌集成独有的实时定位算法,采用高增益、抗干扰射频电路设计而成,可连续上电运行,能较好地满足室内环境实时定位的功能要求。

关键词: ZigBee; CC2530; RSSI; 三边定位算法

中图分类号: TN915?34 文献标识码: A 文章编号: 1004?373X(2016)24?0079?04

Design and implementation of wireless real?time positioning system based on

Internet of Things

DU Yuankun1, WANG Lei2

(1. Department of Information Engineering, Zhengzhou College of Science & Technology, Zhengzhou 450064, China;

2. Department of Basic, Zhengzhou College of Science & Technology, Zhengzhou 450064, China)

Abstract: To achieve the purpose of wireless real?time positioning, ZigBee and CC2530 technologies are introduced in the system design. the relation between received signal strength and signal transmission distance is analyzed by using the RSSI range finding technology. With the help of trilateral positioning algorithm, the simulation experiments were carried out on positioning software in upper computer. By setting reference node coordinate, some experimental results, such as the mobile node′s range finding and positioning, can be obtained in debugging information box. After some experiments, the conclusion that this method can effectively realize the signal strength detection and real?time positioning between reference node and mobile node was obtained by tracing the mobile node coordinate. The innovation point of this paper is that this system can power?on operation continuously and satisfy the functional requirements of real?time location in indoor environment by utilizing the advanced micro?power consumption technology and RSSI range finding technology, real?time positioning algorithm particular in embedded integration, high gain and anti?interference radio?frequency circuit design.

Keywords: ZigBee; CC2530; RSSI; trilateral positioning algorithm

随着无线传感器网络技术和移动通信技术的发展,区域监控和人员跟踪定位等无线传感器领域的应用,室内环境下的人员跟踪定位成为一个非常热门的研究领域。本文阐述了基于ZigBee无线技术的CC2530实时定位设计。该设计实现了人员室内的实时定位。

1 ZigBee和CC2530技术

ZigBee是近距离、低功耗、低成本、低数据速率、低复杂度、自组织的技术标准,其是按照IEEE 802.15.4标准开发研制的安全、有关组网和应用软件的标准。ZigBee的特性决定它是无线传感网的最佳选择,其广泛使用定位、物联网和自动控制等领域。CC2530的内核是由51单片机集成,具有04/06/07/PRO协议栈的原理图、开发模板和源码程序。通过电脑和USB的连接,具有在线调试,寄存器观察和代码下载等功能,实现对单片机CC2530实时在线调试和仿真。

2 系统工作原理

本定位系统设定一个移动节点(Mobile Tag)、4个固定参考节点(Reference Tag)和1个网关节点(Reader),在工作时让节点同处一场景中。射频信号由参考节点不断对外发射;射频信号由移动节点接收,通过检测参考节点和移动节点之间的信号强度,将检测的信号强度数据包传给网关;网关和上位机相连,并运行上位机定位软件,即可显示相对参考节点的移动节点坐标及具置,从而实现实时定位的功能。

3 RSSI测距技术

在上述工作原理中,移动节点要检测参考节点之间通信的接收信号强度,通过接收信号强度(RSSI)测出移动节点相对参考节点的位置,因此需测距算法,下面是测距算法的介绍。

测距是定位的基础。要获取大于等于3个参考节点的距离,移动节点的位置才能确定。本文使用信号强度(RSSI)测量距离。

利用信号强度测距,选用下面模型[1] :

[RSSI=A+10nlg d-EAF] (1)

式中:RSSI是接收信号强度;A是在1 m处发射节点接收到的信号强度;n是与环境有关的信号传输常数;d是发射节点距离[2]。RSSI 距离曲线通过射频参数A和信号传输常数n建立场景模型实现具有明确的应用场景。EAF(dBm)表示环境影响系数,它的值由室内环境决定,是靠大量的数据分析出的经验值。EAF(dBm)是一个随机变化的值,但从使用的角度出发,将其设定为固定值。经过大量验证环境下测得的RSSI值和在理想状态下测的RSSI值,得到试验环境EAF的值大概是11.9 dBm,A的值为45,n的值为3.5。EAF(dBm)、A及n的值确定后,对RSSI值进行分析采样,使用最小二乘法对采样值进行整合,如图1所示。

由图1可以看出,曲线的变化趋势会受到环境的影响,但是信号传输的距离和接收信号的强度存在一定的变化关系,随着信号传输距离的增长信号强度出现明显减弱的趋势,然而曲线不是平滑的。因此通过RSSI方法定位时,有一定的误差;距离和接收信号强度之间近似成反比,传输距离大约20 m时,信号强度受距离的影响出现平缓趋势。因此,使用RSSI测距时,传输距离和误差近似成正比[3]。

4 三边定位算法

上述对RSSI测距算法的原理和实际中的应用做了深入探讨,在实际应用中,要根据RSSI测距算法结合定位算法来实现定位。本系统使用的定位算法是三边测量[4],三边定位原理如图2所示。三边测量定位法的基本工作原理是3个坐标节点A,B,C,通过将传感器节点测得的信号功率值转换为距离作为圆的半径,图2中分别用r1,r2和r3表示,最后求出3个圆的交点作为未知节点的坐标。

已知三个参考节点的坐标分别为A(x1,y1),B(x2,y2),C(x3,y3),它们到未知D(x,y)点的距离分别为AD(r1),BD(r2),CD(r3), 则建立方程如下[5]:

[(x-x1)2+(y-y1)2=r21(x-x2)2+(y-y2)2=r22(x-x3)2+(y-y3)2=r23] (2)

从式(2)中,可解得D点的值。

但在实际测距过程中,因为有误差存在,三个圆常常不能相交一点,假如节点的移动活动范围在参考节点区域内,则会出现4种可能,如图3所示。

实际应用时,先要判断三个圆有几个圆相交,判断两个圆相交方法是把三个圆对应的方程两两结合,计算是否有解:

[(x-x1)2+(y-y1)2=r12(x-x2)2+(y-y2)2=r22] (3)

[(x-x1)2+(y-y1)2=r12(x-x3)2+(y-y3)2=r32] (4)

[(x-x2)2+(y-y2)2=r22(x-x3)2+(y-y3)2=r32] (5)

若式(3)有解(x12,y12),(x21,y21),判断这两点到点(x3,y3)的距离谁最近,选两点离点(x3,y3)最近的点为D;若式(4)有解(x13,y13),(x31,y31),判断其两点谁到点(x2,y2)距离较近,选取近点为F;若式(5)有解(x23,y23),(x32,y32),则判断两点谁到点(x1,y1)的距离较近,选较近点为E,DEF的重心就是移动节点的定位的位置。 若式(3)没有解,将两个圆的圆心相连,连线和两个圆相交两点,两点形成线段的中点为D点;如果式(4)和式(5)也没有解,可使用同样方法来获得E点和F点的值。从而,不管两圆是否相交,都可计算出D,E,F三个点,三点组成三角形的重心就是移动节点的坐标[4]。

5 定位系统流程图

系统工作流程是从通信网络的信号传输流程到计算机接收到信号强度的相关信息之后进行测算的流程。系统的通信网络信号传输流程如图4所示[2]。

在定位系统的通信过程中,移动节点向参考节点发送信号,参考节点接收到信号后,求出信号强度在一段时间的平均值,然后回发给移动节点,移动节点再把收到的平均值信号发送给网关,网关再发送给计算机。计算机的测算流程[5]如图5所示。

在实际的算法中,选了4个参考节点,这样选择是折中了计算复杂程度和定位精度。这考虑到如选取N个参考节点,需要的三边算法次数为[C3N],如果取5个参考节点时就需要测量10次,还要获得移动节点的10个可能坐标,还需要计算这10个移动节点的重心,增加很多计算次数,但是在实际的定位中,增加一个参考节点,定位精度提升的性价比不高[6?7]。

6 系统设计与测试

系统设计主要包含三个部分:仿真器连接与仿真器驱动安装、参考节点移动与节点硬件设计和上位机软件的设计。

6.1 仿真器连接与仿真器驱动安装

本系统使用的CC Debugger仿真器,此仿真器集成编码仿真调试、编程于一身的产品,通过USB接口连接电脑,连接到CC2530无线单片机,USB供电,即插即用。

仿真器通过编程线与开发板相连接,通过一根方口USB连接线与计算机相连。使用步骤如下:

(1) 用10芯JTAG线将仿真器与目标板相连接。

(2) 用方口USB连接线(一头长方口,一头方口的 USB连接线)把仿真器与PC连接好。

(3) 此时,电脑就会显示发现新硬件,安装好驱动。

(4) 安装好驱动后,仿真器就可以正常使用了。

6.2 参考节点和移动节点设计

参考节点与移动节点硬件完全一致,差别在于所烧写的软件固件程序。参考节点与移动节点采用2.4 GHz IEEE 802.15.4/RF4CE/ZigBee的片上系统解决方案,节点模块可独立上电使用[8];采用CC2530?F256片上系统并结合TI公司的ZigBee兼容协议栈Z?Stack[9];完全满足ZigBee 2007/PRO技术标准的无线自组网技术设计开发要求,支持ZigBee 2007/PRO网状网络技术开发与应用[10?11]。

6.3 上位机软件设计

Visual Basic 6.0中文版完成上位机定位软件的开发。下面是定位的核心代码[12]:

Private Sub MnuStartLoc_Click()

If Datalist.FindItem(CurrentT) Is Nothing Then

Datalist.ListItems.Add 1, CurrentT

′Datalist.SelectedItem.Index = Datalist.ListItems.Count

If ObjectP.x = 0 And ObjectP.y = 0 Then

Datalist.ListItems(1).SubItems(2) = "在固定点" + perceive + "附近"

Else

Datalist.ListItems(1).SubItems(2) = CStr(ObjectP.x) + ", " + CStr(ObjectP.y)

End If

Datalist.ListItems(1).SubItems(1) = LocUnitID

Datalist.ListItems(1).SubItems(3) = Format(Now, "hh:mm:ss")

Else

If ObjectP.x = 0 And ObjectP.y = 0 Then

Datalist.FindItem(CurrentT).SubItems(2) = "在固定点" + perceive + "附近"

Else

Datalist.FindItem(CurrentT).SubItems(2) = CStr(ObjectP.x) + ", " + CStr(ObjectP.y)

End If

Datalist.FindItem(CurrentT).SubItems(1)= LocUnitID

Datalist.FindItem(CurrentT).SubItems(3)= Format(Now, "hh:mm:ss")

End If

′If DrawPoint(CurrentT).flag = 1 Then

′pic1.ForeColor = pic1.BackColor

′DrawTagPoint DrawPoint(CurrentT).x, DrawPoint(CurrentT).y, CurrentT

′DrawPoint(CurrentT).flag = 0

′End If

For k = 1 To Val(txt_tagnum.Text)

If k CurrentT Then

If DrawPoint(k).flag = 1 And TagDrawTime(k) < 10 Then

DrawTagPoint DrawPoint(k).x, DrawPoint(k).y, k

Else

DrawPoint(k).flag = 0

TagDrawTime(k) = 0

End If

End If

Next k

If ObjectP.flag = 1 Then

DrawTagPoint ObjectP.x, ObjectP.y, CurrentT

DrawPoint(CurrentT) = ObjectP

WriteBuf$ = WriteBuf$ & " (" & Format$(ObjectP.x, "0.0") & "," & Format$(ObjectP.y, "0.0") & ")"

′If (ObjectP.x < X_START) Or (ObjectP.x > X_END) Or (ObjectP.y < Y_START) Or (ObjectP.y > Y_END) Then

′SetWindowScale

′DrawTagPoint ObjectP.x, ObjectP.y

′DrawPoint = ObjectP

′End If

End If

WriteBuf$ = WriteBuf$ & Chr$(13) & Chr$(10)

End Sub

本系统在室内进行实验,上位机(PC)与网关通过数据线连接后,在上位机软件界面选择好COM口号,并建立RS 232串口通信连接。4个参考节点分别摆放在(0,0),(0,4),(4,0),(4,4)位置,打开参考节点电源。在上位机软件中设置同样的坐标位置,如图6所示。打开移动节点电源,3 s后应该出现红色移动点,显示出移动节点相对参考节点的位置。同时,移动节点信息列表中显示当前相关定位信息;调试信息框中则显示信号强度RSSI检测以及测距、定位的过程信息,如图7所示。

7 结 语

为了解决无线实时定位问题,本文引入了ZigBee和CC2530芯片技术,并利用RSSI测距技术分析了接收信号强度与信号传输距离的关系。结合RSSI测距技术和三边定位算法,本文提出了无线实时定位系统的工作原理及测试流程。实验结果表明,该定位系统能较好地实现移动节点的实时定位。

参考文献

[1] 石为人,熊志广,许磊.一种用于室内人员定位的RSSI定位算法[J].计算机工程与应用,2010,46(17):232?235.

[2] 魏斌,罗D,虞致国,等.局部无线定位系统中的高精度定位算法研究[J].电子与封装,2011,11(8):25?28.

[3] 熊志广.基于RSSI的无线传感器网络定位算法研究及应用[D].重庆:重庆大学,2010:55?56.

[4] 高雷,郑相全,张鸿.无线传感器网络中一种基于三边测量法和质心算法的节点定位算法[J].重庆工学院学报(自然科学版),2009,23(7):138?141.

[5] 李文齐,王泽阳,李毅,等.幼儿园基于ZigBee的实时定位及体征监测系统研究[J].中国高新技术企业,2015(31):17?19.

[6] 吕睿,阳宪{.减少无线传感器网络节点定位误差的方法[J].清华大学学报(自然科学版),2008,48(z2):1839?1843.

[7] 王小平,罗军,沈昌祥.三边测量法的结果稳定性研究[J].计算机工程与科学,2012,34(6):12?17.

[8] 王文光,刘士兴,谢武军.无线传感器网络概述[J].合肥工业大学学报(自然科学版),2010,33(9):1416?1419.

[9] 张志海,沈连丰,叶芝慧,等.一种基于ZigBee的无线传感器网络教学实验系统[J].电气电子教学学报,2006,28(5):76?80.

[10] 郭国法,王宁,张开生.基于ZigBee的高速公路限速系统研究[J].微电子学与计算机,2014,31(5):147?150.

[11] 周莉,安军社.航天器内无线传感器网络网关的设计[J].微电子学与计算机,2013,30(1):110?113.

[12] 徐磊.基于RFID的监狱管理系统的设计与实现[D].成都:电子科技大学,2014:45?46.