树莓派搭建家庭 IoT 网关
为什么要用树莓派搭建家庭 IoT 网关?
家庭物联网设备品牌繁多,各自使用不同的 App 和云平台。树莓派凭借低功耗、体积小、接口丰富,非常适合作为本地智能家居中枢。搭建自己的 IoT 网关可以:
- 将不同品牌的设备统一管理,摆脱厂商 App 的限制
- 所有数据在本地处理,响应更快,隐私更安全
- 通过自动化规则让设备之间智能联动
- 成本极低,一套基础配置仅需几百元
本教程将手把手带你用树莓派安装 Home Assistant,并接入常见的传感器与智能设备,构建一个属于自己的家庭物联网网关。
准备阶段
硬件清单
| 设备 | 说明 | 推荐型号 |
|---|---|---|
| 树莓派主机 | 建议 2 GB 内存以上 | Raspberry Pi 4 Model B(4 GB) |
| MicroSD 卡 | 至少 32 GB,推荐使用高耐久卡 | SanDisk Extreme 32 GB 以上 |
| 电源适配器 | 稳定 5V 3A 输出 | 官方 USB-C 电源 |
| 外壳与散热片 | 保证长期稳定运行 | 带风扇的金属外壳 |
| 网线(可选) | 有线连接更可靠 | 千兆网线 |
| Zigbee/Z-Wave 协调器(可选) | 需要控制这类设备时必选 | Conbee II 或 Sonoff Zigbee 3.0 USB Dongle |
软件准备
- Home Assistant 操作系统镜像:专为树莓派优化,集成 Supervisor 与插件商店
- 镜像烧录工具:Raspberry Pi Imager 或 balenaEtcher
- SD 卡读卡器
- 一台可联网的电脑
安装 Home Assistant
烧录系统到 SD 卡
- 从 Home Assistant 官网 下载对应树莓派型号的镜像(选择 Home Assistant OS 版本)。
- 将 MicroSD 卡插入电脑。
- 打开 Raspberry Pi Imager,选择“使用自定义镜像”,选中刚下载的
.img.xz文件。 - 选择 SD 卡为目标存储,点击“烧录”。
- 烧录完成后,先不要拔出 SD 卡。
预配置 Wi‑Fi 与 SSH(可选,若不用网线)
如果你打算使用 Wi‑Fi 连接,可以在 SD 卡的 boot 分区内创建 CONFIG 网络配置文件。但更推荐的做法是首次启动用网线连接,进入系统后再设置 Wi‑Fi,这样更可靠。
首次启动
- 将 SD 卡插入树莓派,连接网线、电源。
- 等待 1~2 分钟,Home Assistant 会完成初始化。
- 在同一局域网的电脑浏览器中访问
http://homeassistant.local:8123。- 如果打不开,可以在路由器后台查看树莓派的 IP 地址,然后访问
http://<IP地址>:8123。
- 如果打不开,可以在路由器后台查看树莓派的 IP 地址,然后访问
- 出现创建账户的界面,按提示创建管理员账户,并设置家庭位置与时区,点击“完成”。
系统可能会自动发现局域网内的智能设备,此时可以先跳过,稍后手动配置。
基础配置:把树莓派变成真正的网关
设置静态 IP 地址
为避免路由器重启后 IP 变化导致连接失败,建议为树莓派配置静态 IP:
- 进入 Home Assistant 界面 → 配置 → 加载项、备份与 Supervisor → 系统 → 网络。
- 记下当前的 IPv4 地址,然后在“IPv4”一栏将方法改为“静态”,填写一个不会与 DHCP 池冲突的地址(例如
192.168.1.100),网关和 DNS 通常设为路由器 IP(如192.168.1.1)。 - 保存后系统会重启网络,稍等片刻后用新 IP 访问。
启用高级模式
为了看到完整的配置选项和加载项商店:
- 点击左下角用户名 → 开启 高级模式。
安装文件编辑器与终端加载项
- 配置 → 加载项 → 加载项商店 → 搜索并安装 File editor 和 Terminal & SSH。
- 将它们的“在侧边栏显示”打开,“保护模式”关闭,然后启动。
通过这两个工具,你可以直接编辑配置文件、在命令行执行操作,方便排查问题。
扩展设备接入:MQTT 与 Zigbee 网关
安装 Mosquitto MQTT 代理
MQTT 是 IoT 设备之间最常用的轻量级通信协议。Home Assistant 内置的 MQTT 代理需要先安装:
- 配置 → 加载项 → 加载项商店 → 搜索 Mosquitto broker → 安装。
- 安装完成后进入其“配置”选项卡,添加以下内容:
初学者可以先允许匿名访问,后续可添加用户名密码增强安全性。logins: [] anonymous: true - 保存后启动该加载项。
- 转到 配置 → 设备与服务 → 添加集成 → 搜索 MQTT,输入代理地址
localhost,端口默认1883,提交即可。
接入 Zigbee 设备(推荐)
Zigbee 是目前家庭自动化中最流行的低功耗无线协议,传感器、开关、灯泡大量使用。需要一个 Zigbee 协调器 USB 加密狗。
- 将 Zigbee 协调器(例如 Conbee II)插入树莓派 USB 口。
- 在加载项商店搜索 Zigbee2MQTT 或 ZHA(Zigbee Home Automation)。
- ZHA 是 Home Assistant 内置集成,配置极简。
- Zigbee2MQTT 功能更强、支持设备更多,但需要单独安装加载项和 MQTT。
- 以 ZHA 为例:配置 → 设备与服务 → 添加集成 → 搜索 ZHA,选择对应串口设备(通常为
/dev/ttyACM0或/dev/ttyUSB0),提交。 - ZHA 界面出现后,点击 添加设备,然后按设备说明书将 Zigbee 子设备设为配对模式,几秒后就会自动发现并添加。
建议初次使用优先选择 ZHA,零 YAML 配置,对新手最友好。
接入 Wi‑Fi 智能设备与自定义传感器
通过 ESPHome 接入 DIY 传感器
ESPHome 允许你将 ESP8266/ESP32 开发板编程为 Home Assistant 的原生设备,直接通过 Wi‑Fi 通信。
- 加载项商店搜索 ESPHome,安装并启动。
- 打开 ESPHome 面板,点击 +NEW DEVICE,根据向导创建第一个节点。
- 将生成的 YAML 配置刷入 ESP 芯片(USB 连接树莓派或电脑,使用 “无线烧录” 功能更方便)。
- 刷写成功后,ESP 设备会自动接入 Home Assistant,实体立刻可用。
典型应用:温湿度传感器、门磁、继电器控制灯。
添加常见第三方集成
在 配置 → 设备与服务 → 添加集成中,可以直接搜索并添加许多云平台或本地协议设备:
- Xiaomi Miio:用于米家 Wi‑Fi 设备(部分需要账号)
- TUYA:涂鸦智能设备
- HomeKit Controller:将 HomeKit 认证设备反接入 Home Assistant,无需苹果家庭中枢
- Broadlink:红外/射频遥控影音设备
按照向导输入必要的密钥或 IP 即可完成添加。
自动化:让设备自己动起来
Home Assistant 的自动化引擎非常强大,无需写代码,通过可视化编辑即可完成。
创建一条简单的自动化
场景:当室内温度高于 28°C 时自动开启风扇智能插座。
- 配置 → 自动化与场景 → 点击右下角 + 创建自动化 → 选择 从头开始。
- 触发器:触发条件 → 数值类状态 → 选择温度传感器的实体 → 大于 28。
- 条件(可选):比如仅在白天生效,添加时间条件。
- 动作:动作 → 调用服务 → 选择
switch.turn_on→ 目标选择风扇插座的实体。 - 保存并命名为“高温开启风扇”。
更复杂的自动化可以在“自动化”页面使用 蓝图(Blueprints) 快速导入社区分享的范例。
使用 Node‑RED 实现高级流(选学)
如果你对图形化流编程更熟悉,可以安装 Node‑RED 加载项,它的节点拖拽方式非常适合构建复杂逻辑,比如人体传感器多条件判断、定时循环等。
远程访问与日常维护
安全地从外网访问
强烈不推荐直接端口转发。Home Assistant 官方提供 Nabu Casa 云服务,每月订阅可自动完成加密隧道,同时支持 Alexa / Google Home 语音控制。支持免费试用。
如果希望完全自建,可以在加载项商店安装 NGINX SSL proxy 和 DuckDNS,结合 Let’s Encrypt 证书实现 HTTPS 访问,但需要公网 IP 和一定网络知识。
备份与恢复
- 配置 → 系统 → 备份,可手动创建完整备份并下载到电脑。
- 建议设置自动备份:在加载项里安装“Google Drive Backup”或“Samba Backup”,每日自动将备份同步到云端或 NAS。
定期备份可防止 SD 卡损坏导致所有配置丢失。
小结
至此,你已经用树莓派成功搭建了一个功能完整的家庭 IoT 网关。它目前可以:
- 集中控制 Wi‑Fi、Zigbee 等异构设备
- 运行本地自动化,无需依赖云端
- 通过 MQTT 和 ESPHome 无限扩展新设备
- 安全地从外网访问(可选)
接下来可以慢慢丰富你的智能家居系统,例如加入语音助手、能源监控、安防警报等。所有配置与扩展都可以在 Home Assistant 社区论坛和 YouTube 频道找到海量教程。
拿起你的树莓派,现在就开始搭建属于自己的智能家庭核心枢纽吧。