« カリンのエキスジャム | Main | Bluetooth modules(HC-05、HC-06)のPairing設定 »

12/04/2017

HC-06 Bluetooth module のATコマンド

HC-05のATコマンドモードは、HC-05のプッシュボタンを押しながらArduinoの電源を入れれば、ATモードになり、それをLEDの点滅間隔で確認することができるが、HC-06にはHC-05のようなプッシュボタンが無いので、ATモード動作をどうやって行い、確認することが出来るのか?
調べてみると、「AT Command Mode of HC-05 and HC-06 Bluetooth Module by sayem2603 in wireless」に記載があった。要約したものをメモしておく。

《HC-06とHC-05の違い等について》

 ①HC05は、マスターとスレーブの両方として機能し、HC-06は、
常にスレーブに設定されていて、スレーブとしてのみ機能する。

 ② HC-06モジュールは、他のデバイスとペアリング設定されていない場合は、常にATモードになっている。したがって、HC-05のようにATモードになっていることを確認する点滅は無い。モジュールの電源を入れると、即ATコマンドモードになっている。HC-06のデフォルト設定内容を変更するには、ATコマンドを渡せば設定を変更できる。
下記にHC-06用にスケッチを書いてみると・・・
 【HC-06用のスケッチ】

// Basic Bluetooth sketch HC-06
// HC-06 モジュールと繋いで、シリアルモニタを使った通信用スケッチ
//
// HC-06 を電源ONした直後のデフォルト値と注意点は、
//   電源ON直後は ATモード(LEDの点滅とは関係なし)
//  ボーレートは 9600
//  NL+CR をコマンドに追加しない事
//   コマンドは、ATに続けて打ち込めばよい(例:AT+VERSION )
//
#include <SoftwareSerial.h>
  SoftwareSerial BTserial(2, 3); // RX | TX
// HC-06 の TX は、Arduino の RX pin2(D2)に接続する。 
// HC-06 の RX は、Arduino の TX 分電圧をして pin3(D3)に接続する。
// 
void setup() 
{
    Serial.begin(9600);
    Serial.println("AT コマンド入力 :");
// HC-06 のデフォルトでのシリアル速度は、9600
    BTserial.begin(9600);
}
void loop()
{
// HC-06 からコマンドを読み続けて、Arduino のシリアルモニタに通信する
    if (BTserial.available())
    {  
        Serial.write(BTserial.read());
    }
 
    // Arduino のシリアルモニタからのデータを読み続け、HC-06に通信する
    if (Serial.available())
    {
        BTserial.write(Serial.read());
    }
}


 ③HC-06では、ATコマンド入力の終了文字を待たず、1秒後に入力した文字に応じて動作する。したがって、1秒以内にコマンド入力を完了できない場合は、入力が無視される。
また、入力した文字のフィードバック出力も無い。このため、AT以外のATコマンドが無視されたかのように振る舞うことになる。そのため、IDE標準のシリアルモニタではなく、「Tera Term」等、別のモニタを使い、必要なATコマンドをエディタで編集して作成したものをコピーし、モニタの入力部分に貼り付けるの
が良いらしい。

  例えば、
  「
AT+VERSION」をマウスの右クリックメニューからコピーし、Tera Termに貼り付ければ、+Version:<version number>として表示されるはず。

 ④HC-06は、③の動作をするため、
複数の文字のバッチ送信を可能にする端末ソフトウェア(Tera Term等)を使用する必要がある。

 ⑤arduinoシリアルモニタで、 "AT"(引用符なし)で「Enterキー」を押すと、 "OK"が表示されATモードを確認出来る。しかし、HC-05と異なり、デフォルトの名前やボーレートは表示されない。出来るのは、それらを変更することだけ。

 ⑥HC-06で使用できるATコマンドには制限があるので、HC-05よりも少ないらしい。
  ・AT
  ・AT+NAME
  ・AT+BAUD
  ・AT+PIN
  ・AT+VERSION
  ・AT+UART
  など

 ⑦また、HC-06のコマンド入力では、HC-05とは違って、デフォルトの名前やボーレートは表示されないが、それを変更する事は出来る。
  ・名前を「PROTOTYPE」に変更する場合には、
   AT+NAMEPROTOTYPE  と記載すること。NAMEとPROTOTYPEの間にはスペースを入れないこと。

  ・ボーレートを変更するには、 AT+BAUDX  と記載すること。
   ここで、X は 1から8迄の数値をとることができる。
    1 --
> 1200bps
    2 --> 2400bps
    3 --> 4800bps
    4 --> 9600bps
    5 --> 19200bps
    6 --> 38400bps
    7 --> 57600bps
    8 --> 115200bps

   もし、38400bpsに設定したければ、 
AT+BAUD6  とすればよい。 

  因みに、ATコマンドに対して HC-06の応答は、このようになる・・・

    ATコマンド    HC-06の応答
    AT                     ->  OK
    AT+VERSION   ->    OKLinvorV1.8
    AT+BAUD4       ->    OK9600
    AT+PIN1234     ->    OK1234

« カリンのエキスジャム | Main | Bluetooth modules(HC-05、HC-06)のPairing設定 »

Arduino」カテゴリの記事

Comments

Post a comment

Comments are moderated, and will not appear on this weblog until the author has approved them.

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/540128/66120093

Listed below are links to weblogs that reference HC-06 Bluetooth module のATコマンド:

« カリンのエキスジャム | Main | Bluetooth modules(HC-05、HC-06)のPairing設定 »

September 2018
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

Recent Trackbacks

無料ブログはココログ