HC-05 Bluetoothモジュールの接続と設定ガイド

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コマンドを使用してモジュールのパラメータ(名前、ボーレート、ペアリングコードなど)を変更できます:
  1. ATモードへの切り替え:モジュール上のボタンを押したまま電源をONするか、KEYピンを3.3Vにプルアップします。
  2. ATコマンドの例
    AT+NAME=MyBTDevice    // モジュール名の設定
    AT+PSWD=1234         // ペアリングパスワードの変更
    AT+UART=9600,1,0     // ボーレートの設定
    

代表的なアプリケーションコード(Arduino)

#include 
SoftwareSerial 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」値が返されます。

注意

  1. 専用のBluetoothモジュールテストシリアルポートを使用することをお勧めします。
  2. 上記の手順すべてが正しいにもかかわらずATに何の反応もない場合は、Bluetoothモジュールが故障している可能性が高く、モジュールの交換をお勧めします。
ATモードに入った後、まずマスターとスレーブを工場出荷時の設定に戻し、以前にBluetoothモジュールが接続していたデータを消去することをお勧めします。次に、マスターとスレーブそれぞれに以下の設定を行います:

スレーブ設定

マスター設定

Bluetoothアドレス接続モード「AT+CMODE=0,1,2」において: - 0:指定されたBluetoothアドレス接続モード(バインディング命令で設定されたアドレス) - 1:任意のBluetoothアドレス接続モード(バインディング命令で設定されたアドレスの制約を受けない) - 2:ループバックロール(スレーブ-ループ)デフォルト接続モード マスターとスレーブの設定が完了したら、電源をオフしてATモードを終了し、再接続します。しばらく待ってからLEDの点滅状態からBluetooth接続が成功したか判断します。 Bluetoothモジュールを使用して接続する際の最も重要な点は:
  1. マスター/スレーブモードの設定
  2. マスターとスレーブのペアリングコード、ボーレートが一致することを確認
  3. マスターが「AT+BIND=スレーブアドレス」を送信(ここで注意すべきは、スレーブアドレスの「.」を「,」に変更する必要がある)

タグ: HC-05 Bluetooth UART atコマンド Arduino

7月25日 16:29 投稿