はじめに
ArduinoとBluetoothモジュールを組み合わせることで、スマートフォンと連携できる便利なガジェットを作ることができます。例えば、リモートスイッチ、ワイヤレス温度モニター、スマホ操作のロボットなど、様々な応用が可能です。本記事では、HC-05 Bluetoothモジュールを使用して、Arduinoとスマートフォンを連携させる方法を詳しく解説します。
必要な部品
ArduinoとBluetoothを使用してスマホ連携ガジェットを作るために、以下の部品を準備します。
- Arduino Uno(または互換機):マイコンボード。
- HC-05 Bluetoothモジュール:スマホとArduinoを無線通信で接続。
- LED(または他の制御デバイス):スマホから操作する対象。
- 抵抗(1kΩ、2kΩ):Bluetoothモジュールの電圧変換用。
- ジャンパーワイヤー:Arduinoとモジュールを接続。
- ブレッドボード:配線を簡単にする基板。
- スマートフォン(Android推奨):Bluetooth接続のテスト用。
BluetoothモジュールHC-05の基本
購入はこちらから⇒ https://amzn.to/3Dgske
HC-05は、Arduinoとスマホを無線で接続するためのBluetoothモジュールで、主にシリアル通信(UART)を利用してデータをやり取りします。
HC-05の主なピン
ピン名 | 説明 |
---|---|
VCC | 5Vまたは3.3V(Arduinoは5V出力) |
GND | グラウンド |
TXD | データ送信(ArduinoのRXピンへ) |
RXD | データ受信(ArduinoのTXピンへ、抵抗分圧が必要) |
EN(KEY) | ATコマンドモード用(通常接続不要) |
接続方法(Arduino Unoの場合)
HC-05 ピン | Arduino ピン |
VCC | 5V |
GND | GND |
TXD | D10(SoftwareSerial RX) |
RXD | D11(SoftwareSerial TX、1kΩと2kΩで分圧) |
スマホとArduinoの通信
スマホとArduinoをBluetoothで接続し、シリアル通信を行うことで、Arduinoのデバイス(LEDやモーターなど)を制御できます。
スマホアプリの準備
Bluetooth通信をテストするには、以下のアプリを使用すると便利です。
- 「Bluetooth Serial Terminal」(Android)
- 「LightBlue」(iOS)
- MIT App Inventor で専用アプリを作成
Arduinoのスケッチ(Bluetooth連携)
以下のコードをArduinoに書き込むことで、スマホから送信した文字に応じてLEDをON/OFFできます。
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX, TX
const int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
BTSerial.begin(9600);
}
void loop() {
if (BTSerial.available()) {
char data = BTSerial.read();
if (data == '1') {
digitalWrite(ledPin, HIGH);
} else if (data == '0') {
digitalWrite(ledPin, LOW);
}
}
}
応用編
ArduinoとBluetoothを活用することで、さまざまなガジェットを作ることができます。
1. スマホからロボットを操作
HC-05とL298Nモータードライバーを組み合わせて、スマホで操作できるロボットを作成できます。
2. ワイヤレス温湿度モニター
DHT11/DHT22センサーを接続し、温度や湿度データをスマホに送信する環境モニターを構築できます。
3. スマートスイッチ
リレーを追加すれば、スマホから家電をON/OFFできるスマートスイッチを作成可能です。
4. スマートロック
ソレノイドやサーボモーターを利用し、スマホからBluetooth経由で鍵を開けるシステムを構築できます。
5. フィットネス・ヘルスケアガジェット
心拍センサーや加速度センサーを組み合わせて、運動データをスマホに送信し、トラッキングするデバイスを作成可能。
よくあるトラブルと解決策
1. Bluetoothがスマホに表示されない
原因と対策
- HC-05のVCCとGNDが正しく接続されているか確認。
- ATモードで設定を変更し、
AT+ROLE=0
(スレーブモード)になっているか確認。
2. 通信ができない
原因と対策
BTSerial.begin(9600);
の通信速度がHC-05のボーレートと一致しているか確認。- RX/TXの接続ミス(TXD → RXD、RXD → TXD)をチェック。
3. 送信データが正しく処理されない
原因と対策
BTSerial.read();
のデータ型を正しく処理しているか確認。- スマホアプリ側で送信するデータの改行コードを調整( など)。
まとめ
本記事では、ArduinoとHC-05 Bluetoothモジュールを使って、スマホと連携するガジェットの開発方法を解説しました。基本的なLED制御から、リレーやモーターを追加することで、さまざまなIoTデバイスを作成できます。
今後は、温湿度センサーやスマートロックなどの応用例に挑戦し、より高度なガジェット開発を目指しましょう!
コメント