§  ESP32による近距離無線通信の実験② BLE通信

 近距離無線通信の初回の実験はBLE(Bluetooth Low Energy)通信に取り組みます。
 まずはBLE通信の基本事項を網羅的にとりまとめ、「Arduino IDE ESP32 BLE Library」を使ってアプリケーションを開発するためのガイダンスを、BLEライブラリー開発者Neil Kolban氏の「BLE C++ Guide」からご紹介します。
 最初の実験は、ブロードキャスト通信方式のブロードキャスターとオブザーバーを作成して、iBeaconなどで応用されている単方向通信と省電力化(Deep sleep mode)、目的デバイスの検索などを試します。
 続いて、これは少し道草を喰うことになるかも知れませんが、コネクション方式でありながら単方向だけの通信を行うBLEサーバー(ペリフェラル)とBLEクライアント(セントラル)を作成してテストします。それが完成したところで、そのコードをベースにして、コネクション方式本来の通信形態である双方向通信へと機能を拡張します。
 最後に、複数ブロードキャスターからの計測データを中継して、ホスト(Raspberry Pi)のデータベースをWiFiを介して自動更新するIoTゲートウェイを開発します。

Ⅰ. 開発のための基礎知識  ・BluetoothとBLEについて  ・BLE通信の概要 ・BLEのパケットフォーマット
 ・BLEのプロトコルスタック ・2つの汎用プロファイル ・ESP32 BLE Library
Ⅱ-1. ブロードキャスト方式①  ・ブロードキャスターの基本要件 ・ESP32の省電力モード ・コードの解説
 ・実行結果
Ⅱ-2. ブロードキャスト方式②  ・オブザーバーの基本要件 ・受信データの形式 ・コードの解説
 ・実行結果
Ⅲ-1. コネクション方式①  ・BLEサーバーの基本要件 ・コールバック関数 ・タイマーの使い方
 ・コードの解説 ・実行結果
Ⅲ-2. コネクション方式②  ・BLEクライアントの基本要件 ・コールバック関数 ・コードの解説
 ・実行結果
Ⅲ-3. コネクション方式③  ・双方向通信への機能拡張 ・ペリフェラルの作成 ・セントラルの作成
 ・動作の検証
Ⅳ. IoTゲートウェイの構想と準備  ・全体構想と所要機能 ・システム構築の課題 ・開発環境PlatformIOの導入
 ・Visual Studio Codeの導入 ・ブロードキャスターの調整 ・ホストの準備
Ⅴ-1. IoTゲートウェイの開発①  ・ホスト側データベース ・ホスト間インターフェイス ・プロジェクトの作成
 ・プログラム構造 ・メモリーパーティションの設定
Ⅴ-2. IoTゲートウェイの開発②  ・データベースの作成 ・伝送方式とプログラム ・サーバーサイド・スクリプト
 ・動作検証 ・今後の課題