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が使いやすいです。