音声コマンドで家庭照明を制御 - 1SheeldとArduino
必要な部品と材料
- Arduino UNO × 1
- 1Sheeld × 1
- LED (汎用、異なる色) × 3
プロジェクト概要
スマートフォンの音声認識機能を使って、家庭の照明システムを音声で制御するデモプロジェクトです。3つのLEDをそれぞれ異なる照明システムに見立てています。

準備と配線
- Arduino Uno、1Sheeld、3色のLEDを用意。
- 下図の通りに回路を組み立てます (各LEDのアノードをピン11,12,13、カソードをGNDへ)。

1Sheeldアプリの設定
- スマホに1Sheeldアプリをインストールし、Bluetoothで1Sheeldとペアリング。
- シールド一覧から「Voice Recognition」を選択。

音声コマンドと動作
- 「Play」 → 3つ全てのLEDが点灯
- 「Stop」 → 全て消灯
- 「Blue」 → 青色LEDのみ点灯
- 「Yellow」 → 黄色LEDのみ点灯
- 「Green」 → 緑色LEDのみ点灯





ソースコード
#define CUSTOM_SETTINGS
#define INCLUDE_VOICE_RECOGNIZER_SHIELD
#define INCLUDE_MUSIC_PLAYER_SHIELD
#define INCLUDE_TERMINAL_SHIELD
#include <OneSheeld.h>
int Bledpin = 13;
int Yledpin = 12;
int Gledpin = 11;
const char playCommand[] = "play";
const char pauseCommand[] = "stop";
const char stopCommand[] = "yellow";
const char nextCommand[] = "green";
const char BlueCommand[] = "blue";
void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
OneSheeld.begin();
VoiceRecognition.setOnError(error);
VoiceRecognition.start();
}
void loop() {
if (VoiceRecognition.isNewCommandReceived()) {
if (!strcmp(playCommand, VoiceRecognition.getLastCommand())) {
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
}
else if (!strcmp(pauseCommand, VoiceRecognition.getLastCommand())) {
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
}
else if (!strcmp(stopCommand, VoiceRecognition.getLastCommand())) {
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
}
else if (!strcmp(nextCommand, VoiceRecognition.getLastCommand())) {
digitalWrite(13, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
}
else if (!strcmp(BlueCommand, VoiceRecognition.getLastCommand())) {
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
digitalWrite(11, LOW);
}
}
}
void error(byte errorData) {
switch (errorData) {
case NETWORK_TIMEOUT_ERROR: Terminal.println("Network timeout"); break;
case NETWORK_ERROR: Terminal.println("Network Error"); break;
case AUDIO_ERROR: Terminal.println("Audio error"); break;
case SERVER_ERROR: Terminal.println("No Server"); break;
case SPEECH_TIMEOUT_ERROR: Terminal.println("Speech timeout"); break;
case NO_MATCH_ERROR: Terminal.println("No match"); break;
case RECOGNIZER_BUSY_ERROR: Terminal.println("Busy"); break;
}
}
製造プロセス
- MATRIX Voice搭載Raspberry PiへのGoogle Assistantインストール:ステップバイステップガイド
- GoPiGo v2をWindows 10 IoT Coreで拡張 - Raspberry Pi 3対応
- スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
- ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
- スマートワイヤレス照明スイッチコントローラー:Arduinoで物理スイッチを遠隔操作
- 産業制御システムの保護:実証済み戦略とベストプラクティス
- 制御システム移行の成功戦略:シームレスな移行のためのエキスパートアプローチ
- プロセス制御システムを診断・修正する8つの実証済みステップ
- 電気設計とERPの統合で競争優位性を獲得:効率化の鍵
- 包括的システム監査で効率を向上:今すぐ実施を
- 産業制御システムをワイヤレスネットワークへ移行する