0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ESP32×MicroPython|iPhoneのIRK端末識別によるBLEを使った見守りサービスの実現

0
Posted at

ESP32とMicroPythonを使い、iPhoneのBLE信号から「IRK(Identity Resolving Key)」を特定して端末を識別する見守りサービスを実現しました
実家で暮らす一人暮らし親の在宅状況をリアルタイムで検知し、LINEと連携して通知。iPhoneランダムMACアドレスを解決し、「プライバシーに配慮した安心」を低コストなデバイスで実現する手法を解説します

image

【手順1】iPhoneのIRKを取得

iPhoneがBLEで送信するアドレスはランダムに変更されるため、端末を特定するにはIRK(Identity Resolving Key)の取得が必要です

IRKの取得はESP32にDecoding-Random-Bluetooth-Addressを書き込んで実行する方法が確実です

この方法はnRF Connect等のBluetoothアプリをiPhoneにインストールする必要があり、手順が煩雑なのですが、アプリを使わないIRK取得方法も実現したので、別途このサイトで解説します

【手順2】BLEによるiPhone端末の検出と位置特定

iPhoneが発信するBLEアドバタイズ信号をESP32で受信、IRK(Identity Resolving Key)を用いて解析し、端末を特定します
BLEの信号強度はRSSI(Received Signal Strength Indicator)として取得できるので、このRSSI値の変化を使って検出範囲内での端末移動を検出します
事前にIRKを取得・保存しておく必要がありますが、今回の仕組みでは、その一連のプロセスをすべて実現しています

image

BLEによるiPhone端末の検出と位置特定の動作はbtrpa-scanを使うことで確認できます

👇btrpa-scanでのIRKを使った端末検出コマンド

text
btrpa-scan --irk 0123456789ABCDEF0123456789ABCDEF

👇出力イメージ

text
Mode: DISCOVER ALL - showing every broadcasting device
Scanning: passive
GPS: connected (37.774929, -122.419418)
Timeout: 30s  |  Press Ctrl+C to stop
------------------------------------------------------------

============================================================
  DEVICE #1  -  seen 1x
============================================================
  Address      : AA:BB:CC:DD:EE:FF
  Name         : MyDevice
  RSSI         : -45 dBm
  TX Power     : -59 dBm
  Est. Distance: ~0.4 m
  Manufacturer : 0x004C -> 0215abcdef
  Best GPS     : 37.774929, -122.419418
  Timestamp    : 14:32:07
============================================================

------------------------------------------------------------
Scan complete - 30.0s elapsed
  Total detections : 142
  Unique devices   : 12
  Results written to btrpa-scan-results.json

btrpa-scanのロジックをESP32で動作するよう移植したコードは別途このサイトで解説します

【手順3】取得データのクラウド送信

AWS IoTを使って取得データをクラウドへ送信します
手順は以下を参照ください
ESP32でのmicropythonを使ったAWS IoTへの接続

【手順4】LINE連携

LINE連携手順は以下を参照ください
AWS Lambda でLine bot を作成する

👇こんな感じで通知されるようにしました

image

運用状況

日付 状況
2026年03月29日 実家にESP32設置
2026年04月18日 LINE通知運用開始
2026年04月22日 この記事執筆
2026年05月連休 ソース共有予定

👇関連記事

👇参考URL

本記事へのリンク

image

https://docs.saurus12.com/device/esp32_iPhone_detect

[keywords]
ESP32 MicroPython iPhone IRK BLE 見守り AWS

ESP32×MicroPython|iPhoneのIRK端末識別によるBLEを使った見守りサービスの実現

更新日:2026年04月22日

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?