智造客

物联网:从有线到无线,我的 Beacon 开发之路

字号+ 作者:乱马客 来源:gss 2017-09-22 08:51

在网络上看到 Beacon 的介绍,可以运用在很多地方。而在一般的企业中可以有什么样的应用呢?以下分享笔者这阵子利用 Beacon 开发的经验给大家

 
 
在网络上看到 Beacon 的介绍,可以运用在很多地方。
 
而在一般的企业中可以有什么样的应用呢?
 
以下分享笔者这阵子利用 Beacon 开发的经验给大家,
 
 前言
 
Beacon 是什么呢? 它的英文就是灯塔、烽火台 …
 
它就像灯塔一样一直发送 蓝芽的广告讯号,
 
主要有 UUID, Major 及 Minor 再包含一些 payload 数据。
 
而 UUID 可以代表一个公司, Major 及 Minor 则可以让我们再分别定义 分公司 或 地区等等。
 
那要如何知道这个 Beacon 在那里呢?
 
要透过蓝芽去扫描它,iOS就内建有 Core Location APIs 可以使用。
 
而 Android 则可以使用 Beacon Library 来扫 Beacon。
 
在一开始测试 Beacon 时,建议使用 Android 安装 扫描 Beacon 的 App比较方便,
 
因为 iPhone 无法直接扫描,需要输入 UUID 等信息才可以扫。
 
一开始扫到时,会有进入这个 Beacon 区域的事件 (Monitoring),
 
当进入 Beacon 这个区域后,就可以一直扫描这个 Beacon (Ranging),然后取得它的 RSSI 值来判断跟它的距离。
 
最后如果扫不到这个 Beacon 的话,会有一个 离开这个 Beacon 区域的事件 (Monitoring)。
 
有了 Beacon 之后,初步的 Survey 后,
 
我们就开始试看看它到底能不能像网络上说的那么神奇,
 
所以我们做了以下的应用,
 
 
 
实践:
 
1、室用定位

 
网络上的文章都说它可以用在室内定位,那一个办公室中,我放3个Beacon是不是就可以利用三角定位来找出人在那里呢?
 
所以原本的目标是一个办公室中放个4颗 Beacon,看看能不能取得每个人行走的路线,未来还可以分析那条路是热区,或是那个员工都会去找那个员工之类的分析。
 
测试结果发现, Beacon 过了3公尺后,RSSI值后不稳定,所以如果我真的要定位准的话,就要买很多颗的 Beacon。
 
如果多颗的话,就要用 Fingerprint 来算位置在那里。
 
一颗稳定的 Beacon 不便宜,如果要在办公室达到目标的话,成本太高,所以后来我们就放弃了。
 
2、自动签到、签退
 
前面提到,我们可以知道进入、离开及一直扫描 Beacon ,所以我们可以自动记录这些信息。
 
就可以知道员工几点到公司、几点离开公司。
 
本来 App 是使用 Cordova 来写,但这样员工到公司时,就要拿出手机,然后开启 App 去扫描,
 
这样跟拿出门禁卡来刷,好像好不到那去。
 
所以我们就改用 Xamarin 来写,Android的部份如果要在背景扫的话,就要使用 Service,Android 6.0 还要加入白名单。
 
而iOS内建就Support在背景处理(App拉掉,还是会运作),但虽然 App 知道进入或离开 Beacon 区域,这时 Http 却不给用,因为画面是暗的。
 
这时我们目前的解法就是当 User 进入或离开时,发一个 Local 的通知,让手机亮起来,这时 Http 就可以用,所以就可以将数据送到 Server 上了(只是有点扰人)。
 
 3、控制门禁,达到自动开门
 
当知道人与Beacon的距离之后,因为我们公司有门禁,进出都要刷卡。有时开会时,手上会拿笔电或其他的东西,再要刷卡实在不太方便。
 
如果我们就使用 RPi 来模拟 Beacon ,同时再接公司的门禁,当员工靠近门时,Server收到信息之后,就透过 Azure IOT Hub 发讯息(免费的跟付费的数量跟速度有差哦)让 RPi开门。
 
架构图如下,
 
演示的视频如下,





 
结论
 
看起来虽然简单的事,但实际去做往往会遇到意料之外的问题,例如RSSI不准、Android 在背景久了之后会休眠,然后就无法顺利扫描(可设定 Wake Lock)。
 
除了开发技术上的问题之外,使用者是否愿意开蓝芽、定位等权限,也常常让 App 无法顺利运作。
 
未来就往 Physical Web 方向走,会场报到、员工签到、退,逃生口的开关 Web 化 ….
 
大家可以多发挥一些想象来让世界更美好。
 
开发过程非常感谢同事们的帮忙 …












相关文章
  • RAK看物联网:掌握爆发前的底层商机

    RAK看物联网:掌握爆发前的底层商机

    2017-09-14 10:20

  • Sony看好自造者驱使物联网发展,发表兼容 Arduino 的 Spritzer 开发板

    Sony看好自造者驱使物联网发展,发表兼容 Arduino 的 Spritzer 开发

    2017-08-08 10:56

  • 物联网下一步…推杀手级应用

    物联网下一步…推杀手级应用

    2017-06-13 07:53

  • 发挥设计创意从日常生活开始!

    发挥设计创意从日常生活开始!

    2017-05-17 15:54

网友点评
精彩导读