果報は寝て待て: Bluetoothモジュール HC-05 HC-06で遊ぶ

2018年1月7日日曜日

Bluetoothモジュール HC-05 HC-06で遊ぶ

格安のbluetoothモジュールHC-05とHC-06を使い、シリアル通信を無線化してみる。
よく考えずに購入したため、このような組み合わせになった。
中国からの直送で「書留でーす」と届きます。ちょっと怪しげです。


まずHC-06の設定。
  USBシリアル変換モジュールAE-UM232RのRXDとHC-06のTXDを、 AE-UM232RのTXDとHC-06のRXDをつなぎ、GNDとGND、AE-UM232RのUSBとHC-06のVCCをつなぐ。USBケーブルをパソコンにつなぐとHC-06モジュールの赤いLEDが点滅する。
  ペアリングしてないときはATコマンドを受け付ける状態になります。
 次にパソコンのTERATERMを立ち上げ、COMを選択し、接続する。セットアップはローカルエコーをオンにし、改行を「CR+LF」にし、あとはデフォルトのまま。
    9600baud 8bit ストップビット1bit パリティなし ハンドシェイクなし

正常に接続できてれば、 AT(改行なし)と素早く打ち込めば、OKと帰ってきます。これで、モジュールが正常に動作することがわかりました。
1秒以内に打ち込む必要があり、コピーしたコマンドをTERATERMの右クリックで張り付けるとやりやすいです。
使えるATコマンドはかなり少ないです。

 AT+NAME 名前の変更ができます。使いたい名前をスペースなしで書き込みます。メモ帳からコピペします。
他に使えるATコマンドです。
 AT+BAUD  ボーレートの変更です。デフォルトは9600になってます。
 AT+PIN   デフォルトは1234です。パスワードのようなもの?
 AT+VERSION バージョン表示
 AT+P   パリティを変更する ODD:AT+PO EVEN:AT+PE NONE:AT+PN
 



ATコマンドはこれだけしかなく、設定内容の確認もできません。
そのため、ペアリングに必要な、このモジュールのアドレスも単体で表示できないためHC-05から読み出す必要があります。

設定後は
9600baud 8bit ストップビット1bit パリティODD ハンドシェイクなし
となります。

HC-05の方です。
もう一方のパソコンでHC-06と同じように接続します。
 USBシリアル変換モジュールAE-UM232RのRXDとHC-06のTXDを、 AE-UM232RのTXDとHC-06のRXDをつなぎ、GNDとGND、AE-UM232RのUSBとHC-05のVCCをつなぐ。
  HC-05の基板上の34ピンに銅線の切れ端をはんだ付けして10Kの抵抗をかまして3.3vにつなぎ、プルアップします。

 基板上のスイッチを押しながらUSBケーブルをパソコンにつなぐとHC-06モジュールの赤いLEDがゆっくり点滅する。
 これで全てのATコマンドを受け付ける状態となります。
 34ピンをプルアップしないと一部のATコマンドしか受け付けません。
 次にパソコンのTERATERMを立ち上げ、COMを選択し、接続する。セットアップはローカルエコーをオンにし、改行を「CR+LF」にし、38400baudにする。
    38400baud 8bit ストップビット1bit パリティなし ハンドシェイクなし
で通信を始めます。
 
この状態でATエンターと押してOKと帰ってきたら、HC-05のモジュールは正常に動いてます。
  次にスレーブとなるHC-06のアドレスを調べる操作に入ります。
   >AT
         OK
         >AT+ORGL  (工場出荷状態に戻す)
     OK
         >AT+RMAAD (以前のペアリング情報をクリア)
         OK
     >AT+ROLE=1 (マスターモードにする)
         OK
     >AT+CMODE=0   (どのデバイスにでも接続できる)
         OK
     >AT+INQM=0,5,9 (デバイス5台が見つかるか、又は9秒間探す)
         OK
     >AT+INIT   (プロファイルを初期化する?)
         OK
     >AT+INQ  (他のbluetoothデバイスを検索する)

         +INQ:8073:9F:CDF4B7,5A020C,7FFF
         OK
           (携帯やスマホなど周りにあるデバイスが表示されますが、どれがどれかはわかりません。)
    ここでHC-06の電源を入れて起動させます。
    再度 bluetoothデバイスを検索します。
     >AT+INQ  (他のbluetoothデバイスを検索する)

         +INQ:98D3:31:FBA23B,1F00,7FFF
          +INQ:8073:9F:CDF4B7,5A020C,7FFF
           OK

これでHC-06のアドレスが 「98D3:31:FBA23B」であるとわかりました。「,」より後ろはデバイスのモード、信号の強さとなります。  アドレスをメモします。

アドレスが判明したら1対1の通信状態にします。
   

    >AT+UART=9600,0,1  (9600baud、 0=1bit、1=ODDパリティ)
           OK


        >AT+PAIR=98D3,31,FBA23B,9  (9秒以内にペアリングできないとエラーメッセージが出る)
           OK

        >AT+BIND=98D3,31,FBA23B
           OK

        >AT+CMODE=1   (特定の1台のみペアリングする)
           OK
        >AT+LINK=98D3,31,FBA23B
           OK
これで完成です。電源を入れるだけで自動的につながってくれ、それぞれにAE-UM232Rを接続しTERATERMを起動すれば、双方向から通信できます。
HC-05の画面
HC-06の画面

 

 これも有効に活用できるよう自分なりに勉強していきます。

こんなものが送料込みで1台500円で中国から買えるというのは、すごいと思います。
日本では到底マネできないでしょう。恐るべしです。

0 件のコメント:

コメントを投稿