WiFiに続いてESP32のBluetoothのテストをします。
テストのための簡単なスケッチをESP32にコンパイル書き込みをします。
「Hello World!」の文字をESP32側からパソコンにシリアル送信し、パソコンでそれを受信して、表示するスケッチです。
-------------------------------------------
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
void setup() {
SerialBT.begin("ESP32test"); //Bluetooth device name
}
void loop() {
SerialBT.println("Hello World!");
delay(1000);
}
-------------------------------------------
ESP32とパソコンをBluetooth接続する必要があります。(したがって、Bluetooth機能を持っていないパソコンではできません。)
ESP32に電源が入った状態でパソコン(Windows10)側からBluetooth接続(ペアリング)の設定をします。
Windows10のウインドウズロゴ→設定→デバイス(Bluetoothとその他のデバイス)と進み
「Bluetoothまたはその他のデバイスを追加する」をクリックするとESP32のBluetoothが検出されます。
この場合、ESP32testを選ぶ(クリック)すると接続(ペアリング)が完了します。
ペアリングが完了するとパソコン側に新たなシリアルポート(COMポート)が開かれます。
ウインドウズロゴで右クリックして、デバイスマネージャーを開きます。
ESO32に接続してるシリアルポート(この場合COM4)の他にBluetooth経由の標準シリアルCOM5とCOM6が新たに加わっています。
Arduino IDEでツール→シリアルポートでCOM6を選び、シリアルモニタを開くとESP32からシリアル通信で送信された「Hello World!」の文字列を1秒ごとに受信し表示されます。(通信速度は115200bpsにします)
ここで、ちょっとした注意が必要です。ESP32とパソコンとの通信には、COM6を使っていますが、ESP32にスケッチを書き込むには、Arduino IDEのシリアルポートを本来のESP32とパソコンの接続(この場合COM4)に戻す必要があります。
Bluetooth接続は単なるシリアル通信ですから、TeraTermなどの通信ソフトでもESP32と通信することができます。
TeraTermで受信した画面です。
ESP32とパソコン間でBluetooth接続(ペアリング)ができ、通信できることが確認できましたので、パソコンからの指示でESP32に接続したLEDを点灯、消灯するスケッチを試してみます。
スケッチです。
------------------------------------------
#include "BluetoothSerial.h"
#define LED_Pin 27
BluetoothSerial SerialBT;
void setup() {
SerialBT.begin("ESP32test"); //Bluetooth device name
Serial.begin(115200);
pinMode(LED_Pin, OUTPUT);
digitalWrite(LED_Pin, LOW);
}
void loop() {
if (SerialBT.available()){
char C = SerialBT.read();
if(C == '1'){
digitalWrite(LED_Pin, HIGH);
SerialBT.println("LED ON");
}else if(C == '2'){
digitalWrite(LED_Pin,LOW);
SerialBT.println("LED OFF");
}
}
}
------------------------------------------
スケッチを書き込み、COM6でシリアルモニタを開き、「1」を送信するとLEDが点灯します。「2」を送信するとLEDは消灯します。ESP32からは、「LED ON」「LED OFF」といいう文字が送られてきます。
動作を確認することができました。
Bluetoothは、WiFiより簡単に通信することができます。近距離でロボットなどを制御するには便利なのではないでしょうか。
※コメント投稿者のブログIDはブログ作成者のみに通知されます