HC-05 Bluetoothモジュール概要
HC-05はクラシックなBluetoothシリアル通信モジュールであり、マスター/スレーブモードの切り替えをサポートしています。このモジュールは組み込みシステム、Arduino、STM32などのデバイス間で無線データ転送に広く利用されています。Bluetooth 2.0+EDRプロトコルに基づいており、デフォルトのボーレートは38400、動作電圧は3.3V-5VでTTLレベルと互換性があります。主な特性
- 動作モード:マスターモード、スレーブモード、ループバックモードをサポート。
- 通信距離:理論的な伝送距離は約10メートル(環境による干渉に依存)。
- インターフェースタイプ:UART(TXD/RXD)で、マイクロコントローラーのシリアルポートに直接接続可能。
- ペアリングパスワード:デフォルトは通常「1234」または「0000」。
基本的な接続方法
HC-05をマイクロコントローラー(例:Arduino)に接続する際は、レベルマッチングに注意が必要です:- TXD:対象デバイスのRXDピン(例:ArduinoのRX)に接続。
- RXD:対象デバイスのTXDピン(例:ArduinoのTX)に接続。
- VCC:3.3Vまたは5V電源に接続(モジュール仕様に応じて選択)。
- GND:グランドに接続。
注意:5Vで電源を供給する場合、TXDピンに1kΩの抵抗を追加して電圧を分圧し、モジュールの損傷を避けてください。
ATコマンドによる設定
ATコマンドを使用してモジュールのパラメータ(名前、ボーレート、ペアリングコードなど)を変更できます:- ATモードへの切り替え:モジュール上のボタンを押したまま電源をONするか、KEYピンを3.3Vにプルアップします。
- ATコマンドの例:
AT+NAME=MyBTDevice // モジュール名の設定 AT+PSWD=1234 // ペアリングパスワードの変更 AT+UART=9600,1,0 // ボーレートの設定
代表的なアプリケーションコード(Arduino)
#includeSoftwareSerial BTSerial(2, 3); // RX, TX void setup() { Serial.begin(9600); BTSerial.begin(38400); // デフォルトボーレート } void loop() { // BluetoothからPCへデータ転送 if (BTSerial.available()) { Serial.write(BTSerial.read()); } // PCからBluetoothへデータ転送 if (Serial.available()) { BTSerial.write(Serial.read()); } }
よくある問題の解決策
- 通信できない:配線が正しいか確認し、ボーレートが一致しているか確認してください。
- ATモードに入れない:KEYピンがプルアップされているか確認し、再起動を試みてください。
- ペアリングに失敗:パスワードを確認し、デバイスがSPP(シリアルポートプロトコル)をサポートしているか確認してください。
拡張アプリケーション
- スマートフォンアプリとの通信:AndroidのBluetooth TerminalやiOSのLightBlueなどのツールを使用してデータ転送を実現します。
- マルチモジュールネットワーキング:マスター/スレーブモードを組み合わせて多点通信を実現します。
Bluetoothモジュールのペアリング方法
2つのHC-05 BluetoothモジュールとUSB-TTLモジュールを準備し、以下のように接続します: 次に、BluetoothモジュールをATモードに入れます:モジュールに電源を供給する際に同時にPIN34をハイレベルにする(モジュール上のボタンを押し続ける)、またはモジュールに電源を供給した後にPIN34をハイレベルにします。38400のボーレートでAT状態に入るか、通信ボーレートと一致したボーレートでAT状態に入ります。最初の方法を使用してAT状態に入ることが推奨されます。 BluetoothモジュールがATモードに入ったことを示す印は:ボード上のLEDの点滅が遅くなり、約1秒間隔で点滅します。Bluetoothモジュールがまだ高速点滅モードにある場合は、ATモードに入っていないことを示しています。 ATモードに入った後、まずシリアル接続を確立します。接続時には一般的にHC-05のデフォルトボーレートは「38400」です。ウィンドウにATを送信し、接続が成功すると「OK」値が返されます。注意:
- 専用のBluetoothモジュールテストシリアルポートを使用することをお勧めします。
- 上記の手順すべてが正しいにもかかわらずATに何の反応もない場合は、Bluetoothモジュールが故障している可能性が高く、モジュールの交換をお勧めします。
スレーブ設定
マスター設定
Bluetoothアドレス接続モード「AT+CMODE=0,1,2」において: - 0:指定されたBluetoothアドレス接続モード(バインディング命令で設定されたアドレス) - 1:任意のBluetoothアドレス接続モード(バインディング命令で設定されたアドレスの制約を受けない) - 2:ループバックロール(スレーブ-ループ)デフォルト接続モード マスターとスレーブの設定が完了したら、電源をオフしてATモードを終了し、再接続します。しばらく待ってからLEDの点滅状態からBluetooth接続が成功したか判断します。 Bluetoothモジュールを使用して接続する際の最も重要な点は:- マスター/スレーブモードの設定
- マスターとスレーブのペアリングコード、ボーレートが一致することを確認
- マスターが「AT+BIND=スレーブアドレス」を送信(ここで注意すべきは、スレーブアドレスの「.」を「,」に変更する必要がある)