ESP32[9] Bluetooth接続
ESP32は標準でBluetoothを搭載しています。これを使うと、コンソールなしでESP32と通信することができます。私はBluetooth経由で設定値をフラッシュメモリに書いて使用しています。書き込むときは、書込みモードに推移させるために、どこかのIOをHIGHにすることで書き込みモードに入り、通常はIOをLOWにしておいて運用します。これだと、入力デバイスやデジタルSW用のIOピンが削減できるのでGPIOを有用に使えます。これは非常に便利です。以下、サンプルプログラムです。
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
int rec_data_from_bt() {
int res;
String receiveData;
if (SerialBT.available()) {
receiveData = SerialBT.readString();
Serial.print(receiveData);
}
res = receiveData.toInt();
// Serial.printf("\nres:%d\n", res);
return res;
}
setup(){
if (digitalRead(WRITE_MODE_IN)) { // 書き込みモードに入ります。
SerialBT.begin("ESP32"); // ESP32 という名前で検索できるようになります。
cmd = rec_data_from_bt(); // Bluetooth から読みます。
SerialBT.printf("Enter No you want to change from 1 to 10\n"); // Bluetooth 送信です。
SerialBT.printf("\n Change f_mode:%d : OK? -> 1 NO -> 2 QUIT -> 3\n", f_mode); //printf と同じ使い方ができます。
}
}
HOST側
HOST側はPCを使うこともアンドロイドを使うこともできます。 SerialBT.begin(“ESP32”); を実行した時点で、PCで見つけることができるので、これとペアリングすると、COMポートにBluetooth が設定できるので、コンソール(例えば、TeraTerm)使って通信することもできますし、MicroSoftが提供している、Bluetooth Serial Terminal でも通信ができます。アンドロイドだと、Serial Bluetooth Terminalが使いやすいです。