苹果推出Ibeacon室内定位技术是为了弥补GPS无法覆盖室内定位这种场景。苹果意味着创新,在其推动下,蓝牙Ibeacon得到了极大的应用。而腾讯则是利用蓝牙Ibeacon在场景体验方面进行了创新,实现了微信摇一摇周边的功能,这在O2O领域有巨大的潜力。

  对苹果和腾讯来说,Ibeacon都是应用创新,而不是技术创新。

  本文分析Ibeacon室内定位和微信摇一摇的原理。

一、无线测距原理

  无线信号都有一个信号强度(RSSI),蓝牙BLE自然也有。根据蓝牙BLE自身的发射功率(假设能够获取这个功率值)和无线信号接收端的RSSI,可以计算出两者的距离。

D =10^((abs(RSSI)-A)/(10*n)

  D是计算距离,RSSI是信号强度,A为发射端和接收端相隔1米时的信号强度,n是环境衰减因子。对于不同的蓝牙设备该值是不一样的,同样的设备在不同的发射功率的情况下其信号强度也是不一样的,而且对于同是1米的情况下,环境对于信号强度也是有影响的。n是环境衰减因子,自然跟环境有关。n一般取经验值。

  实际的算法编程是:

二、定位原理

  其实这个原理很简单,小学的知识:两边长可以确定第三个点。

  A和B是两个已知经纬度的坐标点,待测点计算出跟A和B的距离,自然就可以确定自身的坐标点。具体的算法就自行研究去吧。

三、苹果Ibeacon室内定位

  其实就是在A和B点各放置一个ibeacon,然后手机进入ibeacon的广播范围即可以通过算法计算出自己的坐标。

  这里需要一个前提,就是ibeacon室内定位是一个应用APP,应用是已经知道A和B的经纬度坐标的,该应用其实是一个地图应用来的,装有APP的手机进入A和B的信号覆盖范围自然就可以在地图上标记自己的位置。

  室内定位在停车场和商场里面有极好的应用前景。

四、蓝牙ibeacon原理

  苹果推出的ibeacon是基于蓝牙BLE的,其实ibeacon未来不见得就一定以蓝牙为载体,理论上,无线设备都可以,但是一定要手机集成支持的,否则就失去意义了。现在手机除了蓝牙就是wifi了,wifi功耗太大,不符合ibeacon长时间工作的要求。所以目前就只有蓝牙ibeacon应用了。

  蓝牙通信有广播和连接两种通信模式。Ibeacon只利用广播这种方式,当然,如果要更新ibeacon的广播内容是需要建立连接并通信的。

  蓝牙BLE广播的有效载荷payload是最长31字节,苹果约定一种前缀来标识ibeacon,并固定使用30字节。格式如下:

1)ibeacon prefix 9字节: 02 01 06 1A FF 4C 00 02 15

2)proximity UUID 16字节: 区分不同设备厂商生产的ibeacon

3)Major 2字节:区分不同商店的ibeacon

4)Minor 2字节:区分同一家商店的不同位置的ibeacon

5)TX power 1字节:发射功率,用于计算距离。

五、微信摇一摇周边

这个场景是指当你走到商家门前时,你开启蓝牙,并用微信摇一摇周边,那么你可以摇到优惠券和广告等信息。这在O2O领域是应用最广泛的。​

Ibeacon英文是信标的意义,在室内定位里面意义非常明确。但是在微信摇一摇周边里面其实信标的意义比较牵强,腾讯完全可以自定义一个微信摇一摇周边的prefix,然后不用ibeacon的约定。不过,腾讯这样改也没啥意思,苹果的推动导致市面上那么多ibeacon,腾讯就沿用好了。话说回来,对于商家来说,ibeacon还是有定位意义的,因为微信摇一摇周边的后台接口能够统计处某个具体位置的ibeacon被多少用户摇到了,例如前门放一个,后门放一个,多少人走过摇一摇是知道的。

摇一摇周边就不用计算距离啦,它的工作过程是这样的:

1)商家的微信后台申请ibeacon设备的UUID、Major和Minor。

2)商家购买ibeacon设备,并请求设备上将1)中的UUID、Major和Minor配置到设备中,或者通过特定的应用更新到设备中。

3)商家配置摇一摇周边的结果页面,如优惠券信息,也可以是关注页面。其实就是H5,也可以利用摇一摇周边的JSAPI。

4)商家将设备和结果页面绑定。

5)商家将设备放到某个位置。

6)用户走进,摇一摇周边,微信应用会获取UUID、Major和Minor,并通过后台获取到对应的结果页面的链接,显示给用户。

7)用户点击链接,内置浏览器打开,就可以看到优惠券等信息了。

  技术咨询、蓝牙模组咨询可以发邮件到yqwucheng@163.com.

  百分百原创,每周两篇,阿里、魅族、nvidia、龙芯、炬力、拓尔思等顶级企业资深工程师分享----嵌入式、Linux、物联网、GPU、Android、自动驾驶等技术,欢迎扫码关注微信公众号:嵌入式企鹅圈,实时推送原创文章!

蓝牙Ibeacon室内定位和微信摇一摇周边原理分析的更多相关文章

  1. iBeacon室内定位原理解析【转】

    目前,技术发展持续火热,因着iBeacon的定位精度和造价都比较符合国内室内定位的市场需求,下面我们来聊一聊iBeacon室内定位原理. iBeacon定位原理 iBeacon是一项低耗能蓝牙技术,工 ...

  2. 解答室内定位技术新方向:蓝牙AoA定位,值得了解 ——概念了解

    转载搜狐 室内定位一直被炒的非常火的黑科技,也是近年资本追逐的热点,市场上一直有众多宣称可以做到厘米级,米级精度定位的公司,但问题很多,无法大规模商用.近些年有很多人尝试使用蓝牙beacon方式做定位 ...

  3. C#开发微信门户及应用(28)--微信“摇一摇·周边”功能的使用和接口的实现

    ”摇一摇周边“是微信提供的一种新的基于位置的连接方式.用户通过“摇一摇”的“周边”页卡,可以与线下商户进行互动,获得商户提供的个性化的服务.微信4月份有一个赠送摇一摇设备的活动,我们有幸获得赠送资格, ...

  4. [蓝牙前沿应用] 照明即平台 —— 通过蓝牙增强服务提高照明投资回报率(蓝牙MESH、定位AoA、AoD)

      1.照明即平台(LAAP) 随着照明设施向LED转型,他们也在利用类似于蓝牙MESH的技术,创建一个可连接的照明平台,作为他们建筑的中枢神经系统.这些系统除了提供先进的照明控制,还建立了一个增强版 ...

  5. 微信“摇一摇·周边”正式开放

    今日,在微信公开课第三季长沙站现场,微信团队宣布“摇一摇·周边”(以下简称“摇周边”)正式对外开放.拥有微信认证的公众帐号商户,均可通过摇周边的商户申请平台(https://zb.weixin.qq. ...

  6. webgl(three.js)实现室内定位,楼宇bim、实时定位三维可视化解决方案

    (写在前面,谈谈物联网展会)上次深圳会展中心举行物联网展会,到了展会一看,80%以上的物联网应用都是在搞RFID,室内定位,我一度怀疑物联网落地方案的方向局限性与市场导向,后来多方面了解才明白,展会上 ...

  7. 室内定位系列(一)——WiFi位置指纹(译)

    原文:<Advanced Location-Based Technologies and Services>--chapter 2 WiFi Location Fingerprint 作者 ...

  8. H5地理位置信息、微信摇一摇

    geolocation window.navigator.geolocation 1.getCurrentPosition() // 获取当前的位置信息 2.watchPosition() // 监视 ...

  9. 【机器学习】WIFI室内定位

    WIFI室内定位-指纹法 在A1区域内每个点上采集四个WiFi的信号数据(信号强度),五点.九点.十六点采样. 5*5=25区域*16数据=400样本,用来训练 样本数 R B G1  G2 1 2 ...

随机推荐

  1. 编写高质量JS代码的68个有效方法(九)

    No.41.将原型视为实现细节 Tips: 对象是接口,原型是实现 避免检查你无法控制的对象的原型结构 避免检查实现在你无法控制的对象内部的属性 我们可以获取对象的属性值和调用其方法,这些操作都不是特 ...

  2. 二叉查找树(二)之 C++的实现

    概要 上一章介绍了"二叉查找树的相关理论知识,并通过C语言实现了二叉查找树".这一章给出二叉查找树的C++版本.这里不再对树的相关概念进行介绍,若遇到不明白的概念,可以在上一章查找 ...

  3. 鼠标经过(hover)事件的延时处理

    关于鼠标hover事件及延时 鼠标经过事件为web页面上最常见的事件之一.简单的hover可以用CSS :hover伪类实现,复杂点的用js. 一般情况下,我们是不对鼠标hover事件进行延时处理.但 ...

  4. 正则表达式:re--python核心编程(3),chapter 1

    最近听吴老的电台,收获颇多,给人映像最深的就是:学会编程 和 坚持学习:作为一名测试员,要从一名手工测试转化成 测试开发 或者资深的测试工程师,编码水平是必须具备的基本素质:吴老所说,撸1W到2W行代 ...

  5. C#设计模式——生成器模式(Builder Pattern)

    一.概述在软件系统中,有时候面临着复杂的对象创建,该对象由一定算法构成的子对象组成,由于需求变化,这些子对象会经常变换,但组合在一起的算法却是稳定的.生成器模式可以处理这类对象的构建,它提供了一种封装 ...

  6. 基于DevExpress开发的GridView如何实现一列显示不同的控件类型

    在很多DevExpress的使用例子里面,我们可以看到,基于GridView实现的不同控件展示的时候,每一列的控件类型都是一样的,如果我要某一列的一行让用户可以从下列列表选择选项,而其他行不可选择,那 ...

  7. css3中的zoom元素属性值测试

    在样式表里头看到zoom:1的设置,很是好奇就去找了一些资料发现关于这个的讲述还是比较少. 理论知识 语法: zoom:normal | <number> | <percentage ...

  8. 【C#】线程之Task

    Task开启线程 有两种启动方式: 1.构造创建线程,然后启动 var taskForAction = new Task(() => { //do something }); taskForAc ...

  9. Json的序列化和反序列化

    1.利用js进行序列化成字符串和反序列化 var personObj = {name:"Tom",age:16}; // 利用JS序列化成字符串 var personStr = J ...

  10. html5 canvas雨点打到窗玻璃动画

    html5 canvas雨点打到窗玻璃动画 HTML5下雨效果 效果预览:http://hovertree.com/texiao/html5/4.htm 以下是代码: <!doctype htm ...