M5Stackと
Bluetooth通信
Swiftビギナーズ勉強会 第26回 #swiftbg
at ヴァル研究所様
⾃⼰紹介
埼⽟県出⾝です。
オリンパス(株)勤務
デジタルカメラFW開発
藤 治仁
フジ ハルヒト
M5 Stackとは
• Espressif ESP32と、SDスロット、ボタン、USB、
IO、ディスプレイ、バッテリーが1つになってい
るマイコンモジュール
• Wi-FiとBluetoothの通信もできる
• 開発環境はArduinoIDEなどで開発できる
今回やったこと
• M5StackとiPhoneの間でBluetooth LE通信
• M5Stackのボタン操作で双⽅の⾊を変化させる
Bluetooth LE基礎知識
• デバイスの役割に、ペリフェラルと
セントラルがある
• ペリフェラルは、発信する側=親機
• セントラルは、受信する側=⼦機
セントラルペリフェラル
Bluetooth LE基礎知識
• GATT→通信のベースとなるプロファイル
• write、read、notifyの3つがある
• writeは、セントラル→ペリフェラルにデータ
を渡す
• readは、セントラル→ペリフェラルに読み込
みデータを要求
• notifyは、ペリフェラル→セントラルに通知
Bluetooth LE
接続のステップ
ペリフェラルスキャン
ペリフェラルに接続
サービス検索
発⾒
接続OK
アドバタイジング
アドバタイジング終了
プロファイル情報送信
接続OK
M5Stack iPhone
Bluetooth LE
通信のステップ(write)
write要求
writeValue()
write結果通知
peripheral(_:didWriteValueFor:error)
通信完了
コールバック関数実⾏
※ここで処理する
M5Stack iPhone
Bluetooth LE
通信のステップ(notify)
notify通知
peripheral(_:didUpdateNotificationStateFor:error)
setValue()
M5Stack iPhone
notify()
実際の
コードを確認
https://github.com/FromF/M5Stack-Color-
BluetoothLE
感想
• ⽤語が難しいが⼀回やれば感覚的には意外とわかる
• Bluetooth LE通信をM5Stackと組み合わせたサンプルコー
ドがない
Thank you.

Swiftビギナーズ勉強会_第26回_発表資料