2020年9月14日月曜日

周辺のBluetoothをスキャンする

「bluepy」というライブラリを仕事で使ったので、Bluetoothの情報をスキャンする処理を作ってみました。
必要なパッケージや事前準備については別のサイトで見つけてください。

Bluetoothを詳しくスキャン

それぞれの通信のアドバタイジングデータを表示します。

 # coding: utf-8

 import bluepy

 scanner = bluepy.btle.Scanner(0)
 devices = scanner.scan(3) #3秒のスキャンデータ

 for device in devices:
     print("")
     print("===============================")
     print("MAC Address  : " + device.addr)
     print("Address Type : " + device.addrType)
     print("RSSI         : " + str(device.rssi))

     for(adtype, desc, value) in device.getScanData():
         print("-----------------------------")
         print("  AdTypeCode   : " + str(adtype))
         print("  Ddescription : " + str(desc))
         print("  ValueText    : " + str(value))

 print("===============================")

出力結果はこんな感じです

 ===============================
 MAC Address  : XX:XX:XX:XX:XX:XX
 Address Type : random
 RSSI         : -99
 -----------------------------
   AdTypeCode   : 1
   Ddescription : Flags
   ValueText    : 1a
 -----------------------------
   AdTypeCode   : 22
   Ddescription : 16b Service Data
   ValueText    : 00fe00e0e47bf92896cd56daec3ea6394c7156000102
 ===============================
  :
  :

Bluetoothを簡単にスキャン

シンプルにMACアドレスとRSSIの値だけ出力します。

 # coding: utf-8

 import bluepy

 scanner = bluepy.btle.Scanner(0)
 devices = scanner.scan(3) #3秒のスキャンデータ

 for device in devices:
     print("MAC Address : " + device.addr + "     RSSI : " + str(device.rssi))

出力結果はこんな感じです

 MAC Address : XX:XX:XX:XX:XX:XX     RSSI : -91
 MAC Address : XX:XX:XX:XX:XX:XX     RSSI : -55
 MAC Address : XX:XX:XX:XX:XX:XX     RSSI : -72
 :
 :

0 件のコメント:

コメントを投稿