ESP32 BLEを使用してアプリケーションパラメータの設定を変更する処理の雛形
アプリケーションを作成したとき、マシン名のように端末毎に変更を変更したり、
サーバ名のように設置条件によって変更したいパラメータってありますよね。
いつもは起動時に設定モードに入ったり、動作中に簡易シェルを動かしてコンソール(UART)から設定していましたが、
実装面積などの関係でUARTが接続できなかったりした場合、それ以外の方法としてBLEで設定する方法を考えました。
(ESP32の場合、Flash書き換えでUART使うので繋がない訳にはいかないのですが…)
ESP32でBLEのデモを動かす ESP32でBLEのデモを動かす 補足 を参考にカスタムプロファイルでアプリケーションパラメータをread/writeできるようにしてみました。
使用したESP32側のソースはhttps://github.com/ippei8jp/BLE_PARAM_CONFIG
にあるのでcloneしてください。
このプログラムではアプリケーションはWi-Fiに接続するだけの処理です。
うまくパラメータが設定できて、nvsに保存しておけば、2回目以降はBLEによる設定なしにWi-Fiに接続することができます。
接続できれば、外部マシンからpingを打って応答があることが確認できます。
https://github.com/ippei8jp/BLE_PARAM_CONFIG のREADME.mdを参照してください。
[!NOTE] パラメータの設定はRaspberryPiのpythonから行っていますが、その気になればAndroidのBLE接続確認ツールなどからでも設定できます。
[!NOTE] 設定パラメータにループインターバルがありますが、プログラム中では参照していません。
数値を設定する例として入れてあります。
は、、、、、面倒なのでソース読んでちょ。(^^ゞ
設定したいパラメータが増えてたら、Characteristicを増やしていけばいくらでも対応できるハズ…