室內定位是目前很流行的服務,除了用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
(功能很少)
這款優點是,可以配合手環,而且防水,但是缺點是在更換電池時,必須打開外殼,而外殼有點難開,這部份比較不方便


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

測試影片如下:
2.吊環型
https://goods.ruten.com.tw/item/show?21947900936493
這款的優點是開關做在外面,容易開關,另外APP有提供一個功能做定時啟動與關閉,不過因為形狀關係,找不到搭配的手環,只能做成吊環的樣式
APP下載:Beacon搖一搖助理


3.長效型
https://goods.ruten.com.tw/item/show?21948944190719
這款是使用CR2477高容量電池,因此至少可以使用一年以上,且防水、防震,可放置戶外,但相對體積就較為龐大。
APP下載:ios搜尋OE beacon: https://apps.apple.com/tw/app/oe-beacon/id1235422365


使用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
老師您好,我想嘗試練習您課本所教的beacon吊環型實務,可是發現您網站提供的連結找不到應對的商品,想請教您是否能提供其他相關beacon吊環型產品的資料呢?感謝您。
原本的吊環被ncc下架了,有需要的話可以幫您預訂手環型的,價格是$249,再麻煩告知需要的數量
謝謝老師,我們決定購買兩個手環型,感謝您的協助
感謝您的訂購!
詳細訂購資訊已發送至您的信箱,麻煩確認一下,謝謝