我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010894841


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

ibeacon偵測定位,目前提供三種主要規格
1.手環型: https://goods.ruten.com.tw/item/show?21828335470340

設定APP下載

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

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

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

 image    image

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

測試影片如下:

 

2.吊環型: https://goods.ruten.com.tw/item/show?21947900936493

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

APP下載:Beacon搖一搖助理

  image 

3.長效型: https://goods.ruten.com.tw/item/show?21948944190719

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

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

image

 

這篇文章是感謝網友小明提供一個網址,使用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

arrow
arrow

    夜市 小霸王 發表在 痞客邦 留言(0) 人氣()