Arduino Nanoで作るJARVIS v1 音声制御ホームオートメーション
概要
アイアンマンのJARVISに憧れ、音声認識で家電を操作するホームオートメーションシステムをArduino Nanoで自作。Bluetooth経由でAndroidアプリから音声コマンドを受信し、リレー経由で照明・扇風機・TV等をON/OFF制御します。総費用20ドル未満。
必要な部品
- Arduino Nano R3 ×1
- 4チャネルリレーモジュール ×1(4機器制御用)
- HC-05 Bluetoothモジュール ×1
- ブレッドボード、ジャンパーワイヤー
- はんだごて(リレー基板への配線用)
配線図
| Arduino | 接続先 |
|---|---|
| TX (D1) | HC-05 RX |
| RX (D0) | HC-05 TX |
| 3.3V | HC-05 VCC |
| GND | HC-05 GND |
| D2 | リレー IN1 (TV) |
| D3 | リレー IN2 (扇風機) |
| D4 | リレー IN3 (PC) |
| D5 | リレー IN4 (寝室照明) |
| 5V | リレー VCC |
| GND | リレー GND |
音声コマンド一覧
アプリ「BT Voice Control for Arduino」を使用。コマンドは*で始まり#で終わります。
| コマンド | 動作 |
|---|---|
*all on# | 全機器ON |
*all off# | 全機器OFF |
*TV on# / *TV off# | TV ON/OFF |
*fan on# / *fan off# | 扇風機 ON/OFF |
*computer on# / *computer off# | PC ON/OFF |
*bedroom lights on# / *bedroom lights off# | 寝室照明 ON/OFF |
*bathroom lights on# / *bathroom lights off# | 浴室照明 ON/OFF |
Arduinoスケッチ
String voice;
int relayPins[] = {2, 3, 4, 5, 6}; // D2-D6
void allOn() {
for (int p : relayPins) digitalWrite(p, HIGH);
}
void allOff() {
for (int p : relayPins) digitalWrite(p, LOW);
}
void setup() {
Serial.begin(9600);
for (int p : relayPins) pinMode(p, OUTPUT);
}
void loop() {
while (Serial.available()) {
delay(10);
char c = Serial.read();
if (c == '#') break;
voice += c;
}
if (voice.length() > 0) {
Serial.println(voice);
if (voice == "*all on") allOn();
else if (voice == "*all off") allOff();
else if (voice == "*TV on") digitalWrite(2, HIGH);
else if (voice == "*TV off") digitalWrite(2, LOW);
else if (voice == "*fan on") digitalWrite(3, HIGH);
else if (voice == "*fan off") digitalWrite(3, LOW);
else if (voice == "*computer on") digitalWrite(4, HIGH);
else if (voice == "*computer off") digitalWrite(4, LOW);
else if (voice == "*bedroom lights on") digitalWrite(5, HIGH);
else if (voice == "*bedroom lights off") digitalWrite(5, LOW);
// bathroom lights は D6 に割当
voice = "";
}
}
Androidアプリ
Google PlayまたはAPKPureから「BT Voice Control for Arduino」をインストール。HC-05とペアリング後、マイクボタンを押して話しかけるだけ。
拡張アイデア
- 自然言語処理("電気つけて" 等)への対応
- 温度センサー連動で自動エアコン制御
- Wi-Fiモジュール(ESP8266/ESP32)化でクラウド連携
- スケジュールタイマー機能追加
- 消費電力モニタリング
注意点
- リレーモジュールはアクティブLOWのものが多い(HIGHでOFF)。コードのHIGH/LOWを確認のこと
- AC100V機器を制御する場合は、必ず資格を持った電気工事士に依頼し、安全基準を遵守
- HC-05は3.3Vロジック。Arduinoの5V TXを直接繋ぐと破損リスクあり。分圧抵抗推奨
まとめ
音声制御ホームオートメーションのエントリーモデルとして最適。基本動作を理解したら、ESP32+MQTT+Home Assistant等へのステップアップもスムーズです。
製造プロセス
- Raspberry Piで構築するホームオートメーションシステム:リモート制御対応
- 自宅で作るDIY宿題自動筆記マシン:AxiDraw風ペンプロッターの自作ガイド
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduinoで作るパンチングキーボードボタン:ストレス解消カスタムキー
- ゲーム用カスタムArduinoジョイスティックハンドルの製作
- Arduinoで楽器演奏:音階生成のステップバイステップガイド
- Arduinoと超音波センサーで自動ドアを制御:LCD・ブザー付き完全ガイド
- Arduino Mega と IoT センサによる高機能ホームモニタリングシステム
- Bluetooth制御Arduinoカー完全自作ガイド – 3Dプリント&Arduino Nanoで作る2輪ロボット
- ArduinoでModbusをマスターする:ステップバイステップガイド
- Arduino UNOで作るミニピアノ - ステップバイステップチュートリアル