iBeacon 是苹果公司推出的一项室内定位技术,通过软件和硬件的结合,从而大大提高室内精度,从原来的几百米,几十米,提高到一米以内的定位精度。有了这么高精度的定位能力,许多原来只能想一想的事情,现在可以做到了:当你走到某个商品前,手机应用自动跳出商品的介绍,让你的购物体验感,大大增强。下图是一个典型的应用场景:
Estimote算是国外最早开始研究和推广iBeacon技术的厂商,并且成功的获得了一大笔的风险投资,目前来说在业界做的也算是比较成熟好用的。提供了从iBeacon产品,软件SDK,移动端APP一整套完整的解决方案。
今天我们用原创的BLEduino+ZBModule,也实现了整套iBeacon的功能,废话少说发一个试验过程给大家看看:
首先介绍一下BLEduino,它是科尔原创的将Arduino和BLE技术结合开源编程硬件,
以Arduino Leonardo为设计原型,结合了BLE的扩展坞,可以方便的配合Arduino进行通讯。
下图是已经插上ZBModule蓝牙4.0模块的BLEduino全貌:
实操过程:
1. 给BLEduino底板烧录程序:
由于Arduino本身只是一个可以编程的基础平台,你可以按照你自己的想法,设计你想要的效果。这里科尔已经写好了程序,同志们只需要烧录即可:
(考虑到很多同志可能并不了解Arduino,在此多啰嗦几句,把整个过程写下来)
打开ArduinoIDE,针对BLEduino,进行IDE设置(没有IDE的去arduino.cc自行下载):
按照图中所显示,选中IDE对应的板卡型号,这部很重要,否则代码无法编译,或者无法运行。
选择串口,一般情况下对于笔记本来说本身是没有串口的,插入BLEduino后在设备管理器中可以看到对应的串口,将他选中即可(记得先插上板子,再打开IDE,否则找不到串口)
接下来复制粘贴代码:
依次点击红框中的2个按钮,等到程序下载完成状态栏的底部会显示
2. 设置iBeacon:
当把程序烧录到BLEduino之后,即可通过ZBWorkBench来对蓝牙4.0模块进行设置。
如发射信号强度,时间间隔,模块名称等等:
如下图可以看出,通过图形界面,蓝牙常用的设置项都可以直接配置。
设置完基本属性后,就是设置iBeacon了:
iBeacon 模块默认为打开,UUID,MajorID,MinorID默认为0,可以自行设置。此处我们就姑且用默认的吧。
设置好了这些,设备端的工作,就已经全部完成了,接下来就是iOS软件的工作了。
3.iOS软件设置:
打开iBeacon软件:
点击iBeacon Transmitter,进行iBeacon数据基站的设置:
点击“+”增加新的设备
到此iBeacon已经设置完毕。现在BLEduino已经可以和iOS设备通讯了!
退回主页,点击Locate iBeacon开始搜索周围的iBeacon设备:
搜到了一个设备,点击进入:
可以看到,设备的信号强度,UUID等信息。
点击Distance即可进入测距模式:
把iOS设备挪近点:
实验结果:
经过这个实验,发现iBeacon还是很好用的,反应很灵敏,定位也相对来说算是比较准确啦,
但是有一个小问题,iBeacon实际测距精度,与设备摆放有一定的关系,如果你硬要把iBeacon设备放到犄角旮旯里面,请对iBeacon进行定位精度校准。否则他测出来的距离不是那么准确。原则上部署的每一个iBeacon定位基站,都是需要进行信号校准的,此过程本身也很快,所以要达到良好的使用体验,请还是做一下校准吧。
另外:
目前安卓4.3系统也开始支持BLE,Google中也有许多IBeacon的应用下载,经测试在安卓下IBeacon同样适用,但是安卓比较挑手机,主流三星,HTC,没啥问题,其他的就只有自己去测试了。祝君好运
如果对IBeacon感兴趣的同志们,也可以去淘宝搜索关键字 “极客科尔”找到相应的宝贝,买回去玩玩。
蓝牙4.0技术qq交流群:228014986
技术咨询,工程定制开发:gzble$qq.com (请将$换成@)
From: http://blog.csdn.net/u011341435/article/details/18948137