メインコンテンツまでスキップ

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

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を使った端末検出コマンド

btrpa-scan --irk 0123456789ABCDEF0123456789ABCDEF

👇出力イメージ

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を使って取得データをAWSクラウドへ送信します
手順は以下を参照ください
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日

ITとソフトウェアの人気オンラインコースHP Directplus -HP公式オンラインストア-