Arduino Nano 打造 JARVIS v1 家庭自动化:分步教程
元器件与材料
- Arduino Nano R3 ×1
- 4路继电器模块 ×1
- 蓝牙低功耗 (BLE) 模块 ×1 (如 HC-05)
- 面包板 ×1
- 跳线 ×10
所需工具
- 电烙铁
软件与在线服务
- Arduino IDE
项目简介
缘起
作为钢铁侠粉丝,我深受 JARVIS 语音助手启发,决心自制家庭自动化系统。虽有现成方案,但我选择用 Arduino 亲手实现。
工作原理
通过 Arduino 和安装在各房间的继电器电路控制灯、风扇、电视等设备。手机通过蓝牙发送指令到 Arduino,后续可扩展更多功能。核心任务是手机采集语音指令并经蓝牙发布给 Arduino,再由 Arduino 驱动继电器开关设备。
硬件搭建
电路极简,总成本不足 $20。
步骤 1:元件清单

- Arduino Nano
- 继电器模块
- 蓝牙模块 HC-05
- 跳线
步骤 2:接线

Arduino → 蓝牙模块
- TX → RX
- RX → TX
- VCC → 3.3V
- GND → GND
Arduino → 继电器板
- IN1 → D2
- IN2 → D3
- IN3 → D4
- IN4 → D5
- VCC → VCC
- GND → GND
演示用 4 路继电器,可控 4 台设备。
步骤 3:代码
String voice;
int led1 = 2, led2 = 3, led3 = 4, led4 = 5, led5 = 6;
void allon() {
digitalWrite(led1, HIGH); digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH); digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
}
void alloff() {
digitalWrite(led1, LOW); digitalWrite(led2, LOW);
digitalWrite(led3, LOW); digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT); pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT); pinMode(led4, OUTPUT);
pinMode(led5, 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(led1, HIGH);
else if (voice == "*fan on") digitalWrite(led2, HIGH);
else if (voice == "*computer on") digitalWrite(led3, HIGH);
else if (voice == "*bedroom lights on") digitalWrite(led4, HIGH);
else if (voice == "*bathroom lights on") digitalWrite(led5, HIGH);
else if (voice == "*TV off") digitalWrite(led1, LOW);
else if (voice == "*fan off") digitalWrite(led2, LOW);
else if (voice == "*computer off") digitalWrite(led3, LOW);
else if (voice == "*bedroom lights off") digitalWrite(led4, LOW);
else if (voice == "*bathroom lights off") digitalWrite(led5, LOW);
voice = "";
}
}
步骤 4:手机应用
暂用现成 App:BT Voice Control for Arduino (SimpleLabsIN 开发)
下载:apkpure.com
步骤 5:演示视频
当前功能限于开关控制,但已具备基础自然语言处理能力,可移植到其他项目。感谢 Hackster.io 平台支持创客创新!
项目仓库:GitHub
原理图

制造工艺
- 树莓派打造家庭自动化系统:手机远程控制灯风扇大门
- 自制家用作业书写机:Arduino + GRBL 控制的笔绘仪
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 自制可拳击的可编程键盘按钮:基于 Arduino 与压电元件的分步指南
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- Arduino 合成乐音:从零实现 88 键钢琴全音域
- 基于 Arduino 和超声波传感器的自动门控制系统
- 基于 Arduino Mega 与物联网传感器的高级家庭监控系统
- 蓝牙遥控 Arduino 小车完整 DIY 指南
- Arduino Modbus 从机开发全攻略:基于 RS485 扩展板的分步实现指南
- 用 Arduino UNO 自制迷你钢琴 — 图文教程
- DIY 迷你示波器:基于 Arduino Nano 与 OLED 显示屏的逐步教程