Bluetooth(HC-05) (1)・・ATコマンドまで
Arduinoの無線通信方法
そのうちArduinoでラジコン作りたいなと心に秘めつつ、どんな無線通信方法があるか調べています。
赤外線通信とか、
Wifiとか、
はたまた
こんなのも調べたのですが、筋がよさそうな感じがするのがBluetoothでした。というか、結局これが定番なのかな。
HC-05(価格:260NTD:約1010円)とHC-06(価格:240NTD:約930円)という2製品を今華電子さんで見かけました。
HC-05はマスター(主)、スレーブ(従)どちらにも使える。ATコマンド30種類超に対応している。
HC-06はスレーブ(従)のみ対応。ATコマンドも限定される。
ということのようです。価格差はわずか20NTDですし、折角なので多機能なHC-05の方を買いました。
配線
組んでみます。
Arduino MEGAのSerial2とつなぎます。モジュールの入力レベルが3.3Vとあるので、1kΩと2kΩの抵抗で分圧しました。MEGAのTX2(D16)を分圧して、モジュールのRXDにつなぐ。MEGAのRX2(D17)をモジュールのTXDにつなぐ。さて、ATコマンドを試したいので簡単なやり取りのスケッチを書いてみます。なおHC-05のATコマンドモードには、基板上のボタンスイッチを押しながら通電することで入れます。基板上LEDがゆっくり点滅します。HC-05のATコマンドモードの場合38400bps固定だそうです。
void setup() {
Serial.begin(9600);
Serial2.begin(38400);
}
void loop() {
if(Serial2.available() > 0){
Serial.write(Serial2.read());
}
if(Serial.available() > 0){
Serial2.write(Serial.read());
}
}
「AT」を送ったら
OKが帰ってきて一安心。これでATコマンド使えるようになりました。
ATコマンドテスト
こちらのデータシートを参照しました。
https://components101.com/asset/sites/default/files/component_datasheet/HC-05%20Datasheet.pdf
以下、毎回返ってくる「OK」は省略しています。
・ファームウェアバージョン
>AT+VERSION?
+VERSION:4.0-20190815
・工場出荷状態に戻す
>AT+ORGL
・モジュール名確認
>AT+NAME?
+NAME:HC-05
・マスターかスレーブか
>AT+ROLE?
+ROLE:0 (スレーブの場合)
・シリアルパラメータ
>AT+UART?
+UART:9600,0,0
前述のデータシートには、出荷時設定 Baud 38400bits/s と記載されているんですが、手持ちのは、ATコマンドじゃないときの通信速度で9600bpsになっていました。
次回は実際にbluetoothで通信をしてみます。ワイヤーが無いだけで、シリアルでつないでいるのと同じです