常見ibeacon規格與python 程式碼

室內定位是目前很流行的服務,除了用RFID(距離太短)之外,還是以beacon最常被使用

我的ESP32實做書籍:我出書了 ESP32 物聯網專題
博客來網址:https://www.books.com.tw/products/0010901195


前言

室內定位是目前很流行的服務,除了用RFID(距離太短)之外,還是以beacon最常被使用,beacon的原理是利用藍芽的訊號強度RSSI,推測使用者與每一個beacon的距離,以往我曾經介紹使用arduino,或者android來定位,這次要介紹如何利用最流行的python做室內定位不過我還沒作到三角定位,如果有研究的夥伴可以分享一下。順便介紹賣場裡常見的beacon類型。(beacon定位原理可參考本文:ESP32 Arduino Beacon簡易Bluetooth室內定位

常見ibeacon規格

ibeacon偵測定位,目前提供三種主要規格

1.手環型

https://goods.ruten.com.tw/item/show?21828335470340

設定APP下載

iOS:https://t.ly/RCp8
(密碼:123456,有完整功能)

設定APP Android:https://t.ly/zk3X
(功能很少)

這款優點是,可以配合手環,而且防水,但是缺點是在更換電池時,必須打開外殼,而外殼有點難開,這部份比較不方便

手環型beacon模塊-商品圖
實際產品圖

新款手環型有帶體感及溫濕度偵測,外型與上述完全相同,但其控制APP不同

手環型beacon模塊-APP測試

測試影片如下:

2.吊環型

https://goods.ruten.com.tw/item/show?21947900936493

這款的優點是開關做在外面,容易開關,另外APP有提供一個功能做定時啟動與關閉,不過因為形狀關係,找不到搭配的手環,只能做成吊環的樣式

APP下載:Beacon搖一搖助理

吊環型beacon模塊-商品圖
吊環型beacon模塊-大小尺寸

3.長效型

https://goods.ruten.com.tw/item/show?21948944190719

這款是使用CR2477高容量電池,因此至少可以使用一年以上,且防水、防震,可放置戶外,但相對體積就較為龐大。

APP下載:ios搜尋OE beacon: https://apps.apple.com/tw/app/oe-beacon/id1235422365

長效型beacon模塊-商品圖
長效型beacon模塊-實際產品圖與電池型號

使用python做室內定位

這篇文章是感謝網友小明提供一個網址,使用python程式碼

原始碼如下:

from bluepy.btle import Scanner, DefaultDelegate

class ScanDelegate(DefaultDelegate):
    def __init__(self):
        DefaultDelegate.__init__(self)

    def handleDiscovery(self, dev, isNewDev, isNewData):
        if isNewDev:
            print "Discovered device", dev.addr
        elif isNewData:
            print "Received new data from", dev.addr

scanner = Scanner().withDelegate(ScanDelegate())
devices = scanner.scan(10.0)

for dev in devices:
    print "Device %s (%s), RSSI=%d dB" % (dev.addr, dev.addrType, dev.rssi)
    for (adtype, desc, value) in dev.getScanData():
        print "  %s = %s" % (desc, value)

來源網址:https://ianharvey.github.io/bluepy-doc/scanner.html

4 Comments

  1. 藍子芫

    老師您好,我想嘗試練習您課本所教的beacon吊環型實務,可是發現您網站提供的連結找不到應對的商品,想請教您是否能提供其他相關beacon吊環型產品的資料呢?感謝您。

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *