Bluetooth Serial Controllerを作ったよ!という話と使い方例
以前から、Bletooth端末と接続してコントローラー(ログを見る機能も欲しい)として使えるアプリが欲しいなーと考えていたので、作ってみました。
初めてのアプリ開発なので、不具合などあったら連絡してくれるとありがたいです。
↓作ったアプリ
play.google.com
使い方
1, ESP32側サンプルプログラム
以下のサンプルプログラムをコピペして書き込んでください。
#include "BluetoothSerial.h" #if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED) #error Bluetooth is not enabled! Please run `make menuconfig` to and enable it #endif BluetoothSerial SerialBT; void setup() { Serial.begin(115200); SerialBT.begin("ESP32test"); //Bluetooth device name } void loop() { //Bluettthでデータを送る処理 int sendNum = Serial.available(); //送る文字列数を取得 if (sendNum) { //送る文字があれば入る for(int i=0 ; i <= sendNum-1 ; i++){ //文字数分ループ SerialBT.write(Serial.read()); //一文字ずつ送信 } } //Bluetoothで取得したデータをシリアルコマンドに表示する処理 int receiveNum=SerialBT.available(); //Bluettth受信バッファにあるデータ数を取得 if (receiveNum) { //受け取るデータがあれば入る Serial.print(millis()); //プログラムが実行されてからの経過時間を表示 Serial.print("ms "); for(int j=0 ; j <= receiveNum-1 ; j++){ //データ数分ループ Serial.print(j); Serial.print("Byte="); Serial.print(SerialBT.read()); //1Byteごとにデータを取得 Serial.print(" "); } Serial.print("\n"); } //SerialBT.print("\nああ"); //ESP32からアプリへ文字を送る delay(10);//Serial.printfが画面表示終わるの待つため }
2, ESP32とペアリングする
今回は上のコードで SerialBT.begin("ESP32test") としているためESP32testというデバイス名で表示されます。このESP32testとペアリングします。
スマホでBluetooth設定を開いて「新しいデバイスとペア設定」でESP32testを選択しペアに設定しておきます。
3, 接続する
Arduino studioのシリアルモニタを開いておいてください。
Bluetooth Serial Controllerアプリを開いて、右上のBluetoothアイコンを押すとペアリング済みデバイス一覧が出るのでESP32testを選択してください。接続できるとArduino studioのシリアルモニタにコントローラ情報が表示されます。アプリのジョイスティックを動かすと値が変化するはずです。
これでBluetooth Serial Controllerアプリから送信されたコントローラー情報をESP32側で確認できました。
シリアルモニタのテキストボックスに文字を入力して、送信ボタンを押すとESP32からテキストボックスの文字が送信され、アプリが受信しコントローラー上のテキスト画面に表示されます。SerialBT.print()を使い定期的にアプリに文字を送信するとアプリをログ表示デバイスとしても使えます。
アプリのこととか細かいところは今度書きます。
わからないことあったら質問してくれるとありがたいです。