语音指令控制家庭照明系统 —— 基于 Arduino 与 1Sheeld
所需组件与物料
- Arduino UNO × 1
- 1Sheeld 扩展板 × 1
- LED(红/黄/绿各色)× 3
项目简介
本项目演示如何仅凭语音指令控制家庭照明系统。3 颗不同颜色的 LED 分别代表家中不同区域的灯光系统。

硬件连接
按下图连接电路:

- 蓝色 LED → Arduino D13
- 黄色 LED → Arduino D12
- 绿色 LED → Arduino D11
- 所有 LED 负极接 GND(建议串联 220Ω 限流电阻)
- 1Sheeld 直接插在 Arduino Uno 上
软件设置
- 手机安装 1Sheeld App(Android/iOS)。
- 通过蓝牙将 App 与 1Sheeld 板配对连接。
- 在 App 中打开 Voice Recognition(语音识别) 模块。

语音指令对照表
| 语音指令 | 动作 | 效果演示 |
|---|---|---|
| "play" | 全开 | 3 颗 LED 全亮 ![]() |
| "stop" | 全关 | 3 颗 LED 全灭 ![]() |
| "blue" | 仅蓝灯 | 蓝色 LED 亮 ![]() |
| "yellow" | 仅黄灯 | 黄色 LED 亮 ![]() |
| "green" | 仅绿灯 | 绿色 LED 亮 ![]() |
Arduino 代码
#define CUSTOM_SETTINGS
#define INCLUDE_VOICE_RECOGNIZER_SHIELD
#define INCLUDE_MUSIC_PLAYER_SHIELD
#define INCLUDE_TERMINAL_SHIELD
#include <OneSheeld.h>
int BledPin = 13; // 蓝色 LED
int YledPin = 12; // 黄色 LED
int GledPin = 11; // 绿色 LED
// 语音指令字符串
const char playCommand[] = "play";
const char pauseCommand[] = "stop";
const char stopCommand[] = "yellow"; // 注:变量名易混淆,实际对应 "yellow"
const char nextCommand[] = "green"; // 实际对应 "green"
const char blueCommand[] = "blue";
void setup() {
pinMode(BledPin, OUTPUT);
pinMode(YledPin, OUTPUT);
pinMode(GledPin, OUTPUT);
OneSheeld.begin(); // 启动 1Sheeld 通信
VoiceRecognition.setOnError(error); // 设置错误回调
VoiceRecognition.start(); // 启动语音识别
}
void loop() {
if (VoiceRecognition.isNewCommandReceived()) {
String cmd = VoiceRecognition.getLastCommand();
if (cmd == playCommand) { // "play" - 全开
digitalWrite(BledPin, HIGH);
digitalWrite(YledPin, HIGH);
digitalWrite(GledPin, HIGH);
}
else if (cmd == pauseCommand) { // "stop" - 全关
digitalWrite(BledPin, LOW);
digitalWrite(YledPin, LOW);
digitalWrite(GledPin, LOW);
}
else if (cmd == stopCommand) { // "yellow" - 仅黄灯
digitalWrite(BledPin, LOW);
digitalWrite(YledPin, HIGH);
digitalWrite(GledPin, LOW);
}
else if (cmd == nextCommand) { // "green" - 仅绿灯
digitalWrite(BledPin, LOW);
digitalWrite(YledPin, LOW);
digitalWrite(GledPin, HIGH);
}
else if (cmd == blueCommand) { // "blue" - 仅蓝灯
digitalWrite(BledPin, HIGH);
digitalWrite(YledPin, LOW);
digitalWrite(GledPin, 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;
}
}
原理图文件
Fritzing 源文件:circuit.fzz
扩展建议:将 LED 替换为继电器模块即可控制真实家用灯光;结合 1Sheeld 的 GPS、短信、推送等模块可实现更丰富的智能家居场景。
制造工艺
- 在 MATRIX Voice 树莓派上安装 Google Assistant:分步指南
- 在树莓派 3 上扩展 GoPiGo v2 的 Windows 10 IoT Core 应用
- 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- 智能无线开关控制器:Arduino + 433MHz 远程操控墙壁开关
- 语音控制家电:Google Assistant + 蓝牙 + Arduino UNO
- 工业控制系统防护:验证有效的策略与最佳实践
- 控制系统迁移成功指南:专家策略实现无缝过渡
- 诊断修复过程控制系统的八大实证步骤
- 电气设计与 ERP 集成:构建企业核心竞争力
- 立即开展全面系统审计:新十年提升效率的最佳起点
- 工业控制系统向无线网络转型指南




