为什么要用自己的元件打造家居自动化?
智能家居市场持续增长——但商用智能家居系统价格依然昂贵,而且不同品牌之间常常互不兼容。
解决办法?用 Arduino 和 ESP32 自己动手搭建:
- 价格便宜得多——与商用系统相比
- 完全掌控——没有月费订阅
- 自由定制——根据你家的具体需求调整
- 学习新技能——掌握电子技术与嵌入式编程
认识主要元件
ESP32——智能家居系统的大脑
ESP32 是一款多功能微控制器,其规格非常适合物联网应用:
| 特性 | 规格 |
|---|---|
| 处理器 | 双核 Xtensa 240MHz |
| 内存 | 520 KB SRAM |
| 连接 | WiFi 802.11 b/g/n + 蓝牙 4.2 |
| GPIO | 34 个可编程引脚 |
| ADC | 12 位,18 通道 |
| 价格 | Rp 45.000 – Rp 85.000 |
Arduino Uno/Mega——用于物理控制
Arduino 更适合不需要 WiFi 的任务:
- 步进电机控制
- 字符/图形显示屏
- 大量模拟传感器
- 作为受 ESP32 控制的从控制器
必备的辅助模块
继电器模块——用于控制交流电设备(灯、风扇、水泵):
- 1 路继电器:适合 1 个负载
- 4 路继电器:同时控制 4 个设备
- 8 路继电器:适合有多个区域的住宅
智能家居常用传感器:
- DHT22——温度和湿度
- PIR HC-SR501——运动传感器
- MQ-2——气体/烟雾传感器
- HC-SR04——超声波测距
- BH1750——光照传感器
项目 1:通过 WiFi 控制灯光(最简单)
元件: ESP32 + 1 个继电器模块 + 220V 灯泡
难度: 初学者 | 预估费用: Rp 100.000–150.000
工作原理
ESP32 连接到家里的 WiFi 网络。你可以通过 Blynk 应用或本地网页浏览器,用智能手机开关灯。
基本接线
ESP32 GPIO 26 → 继电器 IN
ESP32 3.3V → 继电器 VCC
ESP32 GND → 继电器 GND
继电器 COM → 220V 火线
继电器 NO → 接灯泡
最简代码(Blynk)
#define BLYNK_TEMPLATE_ID "TMPL_xxxxx"
#define BLYNK_AUTH_TOKEN "your_token"
#include <BlynkSimpleEsp32.h>
#define RELAY_PIN 26
BLYNK_WRITE(V1) {
int val = param.asInt();
digitalWrite(RELAY_PIN, val);
}
void setup() {
pinMode(RELAY_PIN, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run();
}
提示: 请务必使用带光耦隔离的继电器,将 5V 电路与 220V 电压隔离开。千万不要省略这个安全步骤!
项目 2:温湿度监测
元件: ESP32 + DHT22 传感器 +(可选:0.96" OLED 显示屏)
难度: 初学者 | 预估费用: Rp 80.000–130.000
用途
- 用智能手机监控房间状况
- 温度过高时自动发送通知
- 记录数据以便历史分析
- 温度超过阈值时自动开启空调/风扇
DHT22 接线
DHT22 VCC → ESP32 3.3V
DHT22 DATA → ESP32 GPIO 4(+ 10kΩ 电阻接 VCC)
DHT22 GND → ESP32 GND
基础代码
#include <DHT.h>
#include <WiFi.h>
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
void loop() {
float suhu = dht.readTemperature(); // 温度
float kelembapan = dht.readHumidity(); // 湿度
if (!isnan(suhu)) {
Serial.printf("温度: %.1f°C | 湿度: %.1f%%\n", suhu, kelembapan);
}
delay(2000);
}
项目 3:带运动传感器的安防系统
元件: ESP32 + PIR HC-SR501 传感器 + 蜂鸣器 +(可选:摄像头)
难度: 中级 | 预估费用: Rp 120.000–200.000
系统功能
- 检测移动并向智能手机发送通知
- 有人入侵时启动蜂鸣器/警报
- 记录每次事件的时间戳
- 集成 Telegram Bot 实现实时警报
PIR 接线
PIR VCC → ESP32 5V(或外部 5V 电源)
PIR OUT → ESP32 GPIO 14
PIR GND → GND
通过 Telegram 发送警报
#include <WiFi.h>
#include <HTTPClient.h>
#define PIR_PIN 14
const String BOT_TOKEN = "your_bot_token";
const String CHAT_ID = "your_chat_id";
void kirimAlert(String pesan) {
HTTPClient http;
String url = "https://api.telegram.org/bot" + BOT_TOKEN
+ "/sendMessage?chat_id=" + CHAT_ID
+ "&text=" + pesan;
http.begin(url);
http.GET();
http.end();
}
void loop() {
if (digitalRead(PIR_PIN) == HIGH) {
kirimAlert("⚠️ 家中检测到移动!");
delay(30000); // 冷却 30 秒
}
}
平台集成:Home Assistant 与 Blynk
Home Assistant(推荐进阶用户)
Home Assistant 是全球最受欢迎的开源智能家居平台之一。
优点:
- 自托管——数据不会上传到云端
- 完全免费
- 可集成数千种设备和服务
- 支持带条件和动作的复杂自动化
- 仪表盘完全可自定义
部署: 安装在 Raspberry Pi(Rp 400.000–600.000)或闲置的旧电脑上。
用 MQTT 集成 ESP32:
# Home Assistant 的 configuration.yaml
mqtt:
sensor:
- name: "客厅温度"
state_topic: "rumah/ruangtamu/suhu"
unit_of_measurement: "°C"
Blynk(推荐新手)
Blynk 是一个云平台,提供直观的智能手机应用。
优点:
- 设置快(30 分钟)
- 提供 iOS 和 Android 应用
- 拖放式小部件
- 适合新手
缺点:
- 数据会经过 Blynk 服务器
- 免费版功能有限
- 不适合大规模部署
DIY 智能家居系统的安全
不安全的物联网系统可能成为入侵整个家庭网络的突破口。
必须采取的安全措施
- 隔离物联网网络——为智能家居设备单独建立 VLAN 或访客网络
- 加密通信——API 调用使用 HTTPS/TLS,不要使用普通 HTTP
- 每台设备使用唯一密码——不要使用默认密码
- 定期更新固件——新的漏洞总是不断被发现
- 加密家庭网络——加装 DPN 路由器以加密所有流量
保护整个物联网网络
为了获得最大程度的保护,智能家居设备的所有流量最好在网络层面加密——而不是只针对单个设备。
查看 Deeper Connect Air →——一款 DPN 路由器,可同时加密网络中的所有设备,包括 ESP32、摄像头和其他物联网设备,且无需订阅费用。
物料清单:智能家居入门套件
| 元件 | 功能 | 预估价格 |
|---|---|---|
| ESP32 开发板(2 块) | 主控制器 | Rp 90.000 |
| 4 路继电器 | 控制灯光/空调 | Rp 35.000 |
| DHT22 传感器 | 温度和湿度 | Rp 25.000 |
| PIR HC-SR501 | 运动传感器 | Rp 15.000 |
| 0.96" OLED 显示屏 | 本地显示 | Rp 35.000 |
| 杜邦线 | 接线 | Rp 15.000 |
| 面包板 | 原型搭建 | Rp 20.000 |
| 合计 | 约 Rp 235.000 |
DIY 智能家居学习路线图
第 1–2 周:基础
- 安装 Arduino IDE 和 ESP32 驱动
- 点亮 LED(电子领域的 "hello world")
- 用串口监视器调试
- 控制数字和模拟 GPIO
第 3–4 周:传感器与执行器
- 读取 DHT22 传感器(温度/湿度)
- 用继电器控制交流负载
- 用 PIR 传感器检测运动
- 用蜂鸣器做简单警报
第 5–6 周:联网
- 让 ESP32 连接 WiFi
- HTTP GET/POST 请求
- MQTT 协议基础
- 集成 Blynk,用手机控制
第 2 个月起:完整系统
- 安装 Home Assistant
- MQTT 代理(Mosquitto)
- 按时间表和条件自动化
- 集中式监控仪表盘
- 集成 Telegram bot 发送通知
结语
用 Arduino 和 ESP32 自己搭建智能家居,不只是一个兴趣项目——在物联网时代,这是一项有价值的技能投资。只需不到 Rp 300.000 的启动资金,你就能拥有一套功能完备的基础自动化系统,并可以持续扩展。
从简单的开始:
- 通过 WiFi 控制 1 盏灯(最简单的项目)
- 增加温度传感器进行监测
- 接入 Home Assistant,形成统一系统
做的项目越多,你对电子技术、嵌入式编程和物联网架构的理解就越深入。
最后更新:2026 年 6 月 3 日
参考资料:
- Arduino 官方文档(arduino.cc)
- Espressif ESP32 技术参考手册
- Home Assistant 文档(home-assistant.io)
