
Bluetooth(HC-05) (2) 無線通信
今回は、AndroidスマホとのBluetooth無線通信をやってみます。
準備
前回、
ATコマンドいじっていますが、
>AT+ORGL
で、工場出荷状態に戻したところから改めてもう一度。このコマンド実行すると、ATコマンドモードを抜けてしまいます。さらにATコマンドを使うなら
モジュール基板上のボタン押しながら通電をやり直して、ATコマンドのモードに入る必要があります。
ATコマンドモードのときは、モジュール基板上のLEDがこんな感じでゆっくり点滅します。
まあ、スレーブモードで通信するだけなら工場出荷状態のまま、ATコマンドモードに入る必要はないでしょう。
基板上のボタンを押さずに通電すれば、Bluetoothのぺアリング待機状態になります。基板上LEDがこんな風に高速点滅します。
なお、ATコマンドのモードでなければ、(工場出荷状態で9600bpsである私のHC-05の場合) ArduinoMegaのスケッチは
void setup() {
Serial.begin(9600);
Serial2.begin(9600); //38400ではない
}
void loop() {
if(Serial2.available() > 0){
Serial.write(Serial2.read());
}
if(Serial.available() > 0){
Serial2.write(Serial.read());
}
}
となります。(Serial2の速度に注意)
Androidスマホ側の準備
私はPlay ストアから、Kai Morichさんの「Serial Bluetooth Terminal」をインストールしました。
ペアリングが完了すると基板上のLEDは2回点滅をゆっくり繰り返します。
通信テスト
繋がったら、スマホ側、Arduino側それぞれから文字列を送って、
文字列が双方向に送られていることが確認できました。Serial Bluetooth Terminalで緑色の字は送られてきた情報水色の字は送った情報です。
Arduino IDEの シリアルモニタは送信内容が残らず、受信した文字列だけが表示されています。
これで、自作ラジコンにむけて一歩前進したかな。次は応用を考えてみたいと思います。