B001-基于ZigBee的室内无线定位系统设计

1 前言


        国内的当前主流的定位技术有WiFi定位,RFID定位,蓝牙定位,ZigBee定位等几种方法,WiFi无线技术当前主要用于无线局域网的建立与路由功能,具有高速,载波侦听,支持多个用户的特点,由此也决定了其功耗大的结果,且WiFi的软件实现的难度较高,系统成本相对增大且存在严重的同频干扰问题,因此不采用WiFi作为室内定位的无线技术,RFID定位采用近邻法,多边定位法,接受信号强度等方法确定标签所在位置,但由于作用距离近,不具有通信能力,而且不便于整合到其他系统中,无法做到精确定位,布设读卡器和无线需要有大量的工程实验经验难度大。蓝牙技术当前也快速发展,主要被用于低功耗短距离传输,如穿戴设备,蓝牙耳机等,对于室内定位而言,距离至少要覆盖整个房间,由于蓝牙距离受限,定位系统的稳定性跟不上,在复杂的环境下很容易被干扰,成本也相应较高,无法作为室内无线定位技术。此时ZigBee技术就脱颖而出,ZigBee技术主要适用于近距离,小流量,低功率的应用场合。并且ZigBee技术采用直接序列扩频技术提高自身的抗干扰能力,同时,ZigBee无线设备具有低成本,低功耗,延时短的特点。


2  RSSI测距思路


1.路由 A、路由 B 组播(不跨路由)数据给ZigBee协调器、节点。ZigBee协调器获得获得 AS、BS 的 RSSI,节点获得 AN、BN 的 RSSI 数据;

2.由盲节点点播(不夸路由)数据给协调器,并反馈 AN、BN 的数据,ZigBee协调器记录 SN 的 RSSI;

3.根据 RSSI 与距离之间的换算,可以获得 AS、BS、AN、BN、SN 的长度;

4.根据三角形勾股定理,可计算出 X,Y 坐标。

(a-sx)^2+y^2=an^2; x^2+y^2=sn^2;(bs-x)^2+x^2=bn^2;


3  RSSI测距关系式


        d=10^((ABS(RSSI)-A)/(10*n));(单位 m)
        //A为1米时的RSSI的绝对值,RSSI的真实值为接收包里 rssi-255; 绝对值ABS(RSSI)=255-rssi,A值的最佳范围为45-49,n为环境衰减因子,需要测试矫正,最佳范围在3.25-4.5之间。

#define RSSI_A 60
#define RSSI_N 3.8 float distance;
void rssi_distance(unsigned char rssi)
{
unsigned int a,b; 
float c;
if(255<rssi+RSSI_A)//1 米内定位
{
distance=1;
}
else{
a=ABS(255-rssi-RSSI_A); 
b=10*RSSI_N;
c=a; 
c=c/b;
distance=pow(10,c);
}
printf("distance=%0.1f\r\n",distance);
}

4  下位机设计  


        ZigBee协调器节点1个+ZigBee终端节点3个。


5 上位机设计


  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼儿电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值