Arduino蓝牙智能家居:从电路搭建到APP控制的完整DIY指南
基于 Arduino UNO 与 HC-05 的蓝牙智能家居系统实战
智能家居已从概念走入寻常百姓家。本项目利用 Arduino UNO + HC-05 蓝牙模块 + 继电器模块,配合手机 APP 实现 4 路家用电器(灯/风扇/插座等)的无线开关控制。特别适合行动不便人群,也可作为物联网入门实训项目。
1. 核心硬件清单与选型要点
| 模块 | 关键参数 | 选型建议 |
|---|---|---|
| Arduino UNO | ATmega328P, 16MHz, 14数字/6模拟口 | 官方版或兼容板均可,建议带 DIP 封装便于替换芯片 |
| HC-05 蓝牙 | 主从一体, 波特率 9600 默认, 供电 3.3~5V | 自带基板、引出 EN/KEY 引脚的模块,便于 AT 指令配置 |
| 4路继电器模块 | 5V 触发, 光耦隔离, 接点 10A/250VAC | 低电平触发更稳妥,避免上电抖动误动作 |
| 手机 APP | Bluetooth Terminal HC-05 / Serial Bluetooth Terminal | 免费、无广告、支持自定义按钮发送指令 |
2. 硬件接线图解
| Arduino 引脚 | 外设连接 | 备注 |
|---|---|---|
| D0 (RX) | HC-05 TXD | 需串联 1k/2k 分压,HC-05 为 3.3V 电平 |
| D1 (TX) | HC-05 RXD | 直连即可,Arduino 5V 兼容 3.3V 输入 |
| D8~D11 | 继电器模块 IN1~IN4 | 低电平触发时输出 LOW 导通 |
| 5V / GND | HC-05 VCC/GND、继电器 VCC/GND | 共地,建议外接 5V/2A 电源模块供电 |
⚠ 强电接线安全警示: 继电器常开 (NO) 端串入火线,零线直通。操作前必须断电,建议使用带熔断器的插座盒封装,防止触电与短路起火。
3. HC-05 快速配置(AT 指令模式)
- 上电前按住 HC-05 EN/KEY 键不放,上电后松手,LED 慢闪 (2s间隔) 进入 AT 模式;
- 串口监视器设置 38400 波特率、换行符 "Both NL & CR";
- 发送指令验证:
AT→ 回OK - 常用配置:
AT+NAME=HomeBT(修改设备名)
AT+PSWD=8888(修改配对密码)
AT+UART=9600,0,0(波特率 9600, 1停止位, 无校验) - 断电重启,LED 快闪进入数据模式,手机蓝牙搜索配对。
4. Arduino 核心代码(已优化健壮性)
#include <SoftwareSerial.h>
SoftwareSerial bt(2, 3); // RX, TX 避开硬件串口 D0/D1 便于调试
const uint8_t relayPins[4] = {8, 9, 10, 11};
String cmd;
void setup() {
bt.begin(9600);
Serial.begin(9600);
for (uint8_t p : relayPins) {
pinMode(p, OUTPUT);
digitalWrite(p, HIGH); // 低电平触发模块,上电默认断开
}
}
void loop() {
if (bt.available()) {
cmd = bt.readStringUntil('\n');
cmd.trim();
Serial.println("Recv: " + cmd);
for (int i = 0; i < 4; i++) {
String onCmd = "ch" + String(i+1) + "on";
String offCmd = "ch" + String(i+1) + "off";
if (cmd.equalsIgnoreCase(onCmd)) {
digitalWrite(relayPins[i], LOW);
bt.println("CH" + String(i+1) " ON");
} else if (cmd.equalsIgnoreCase(offCmd)) {
digitalWrite(relayPins[i], HIGH);
bt.println("CH" + String(i+1) " OFF");
}
}
}
}
代码亮点: 使用 SoftwareSerial 释放硬件串口供调试;指令不区分大小写;统一字符串解析,易于扩展通道数;上电默认全断,安全可靠。
5. 手机 APP 设置与使用
- 安装 Serial Bluetooth Terminal (Google Play / 酷安);
- 连接 "HomeBT",密码 "8888";
- 菜单 → "Devices" → 长按设备 → "Edit macros" 创建 8 个按钮:
名称:Ch1 ON数据:ch1on\n
名称:Ch1 OFF数据:ch1off\n
……以此类推至 Ch4 - 点击按钮即可控制对应路灯/风扇,APP 显示 Arduino 回传状态。
6. 进阶扩展方向
- 局域网/互联网控制:替换 ESP8266/ESP32,接入 MQTT、Home Assistant、小爱同学;
- 状态反馈:加入电流互感器 (SCT013) 或光耦采样实时上报功率/开关状态;
- 定时/场景/语音:配合定时器库、语音识别模块 (LD3320) 或对接天猫精灵/Google Home;
- PCB 定制:集成电源模块 (HLK-5M05)、保险丝、压敏电阻,做成标准 86 型暗盒开关面板。
结语: 本项目以极低门槛实现了核心智能家居功能,代码结构清晰、硬件接线规范,是迈向物联网工程的理想起点。实际部署时请务必遵守用电安全规范,强弱电隔离、接地保护不可省略。
工业技术
- SERENA:基于 Arduino Mega 2560 与 TFT 触摸屏的多级密码报警系统
- 基于 1Sheeld 的智能家居安防系统:语音/短信控制与入侵报警
- Python 3 控制 Arduino UNO - 串口通信点亮内置 LED 入门教程
- 基于 Arduino 与 Google Sheets 的实时 RFID 考勤系统
- Octopod:面向家庭与工业的智能 IoT 自动化全能中枢
- WARAN 家庭自动化套件:树莓派 + Arduino + nRF24L01+ 模块化设计
- 基于蓝牙的智能家居自动化控制系统
- 通过 Android App 和物联网实现智能家居自动化
- 智能锁与传感器设计:专家级电路保护与感测策略守护智能家居安全
- 远程团队家庭办公寄递的五大难题与破解之道
- Silicon Labs 在 Embedded World 2019 展示面向智能家居与楼宇自动化的先进 Wireless Gecko 方案
- 智能家居技术如何重塑日常生活