开发环境搭建:安装ESPHome、配置Home Assistant、连接ESP32开发板
好了,咱们正式开始动手。上一章我们聊了智能传感器能做什么,这一章,咱们得把“家伙事儿”都支棱起来。
说白了,开发环境就是你的工作台。工具顺不顺手,直接决定你后面 coding 的心情。我刚开始玩 ESPHome 的时候,光装环境就折腾了一下午,踩了不少坑。今天我把这些坑都给你填平,你照着做,半小时内肯定跑起来。
一、整体思路:先装什么,后装什么?
先给你画个图,看看整个环境长什么样。别急着动手,心里先有个谱。
你看,整个链路其实就三层:Home Assistant 是大脑,ESPHome 是翻译官,ESP32 是手脚。我们一步步来。
二、安装 Home Assistant(核心大脑)
Home Assistant 的安装方式有好几种。我个人最推荐用 Home Assistant OS,直接装在树莓派或旧电脑上,省心。但如果你手头只有一台 Windows 电脑,也别慌,用虚拟机或者 Docker 也能跑。
2.1 我推荐的方式:树莓派 + HA OS
- 硬件:树莓派 3B+ 或 4B(4GB 内存版本最佳),32GB 以上 TF 卡
- 工具:Raspberry Pi Imager(写卡工具)
- 步骤:下载 HA OS 镜像 → 写卡 → 插电开机 → 等 10 分钟初始化
💡 我的小技巧
写卡的时候,直接用 Raspberry Pi Imager 里的“选择操作系统” → “Other specific-purpose OS” → “Home Assistant” 就行。不用去官网单独下载,省一步是一步。
2.2 如果你用 Windows(Docker 方式)
嗯,这里要注意。Windows 下跑 Docker 需要先装 WSL2(Windows Subsystem for Linux)。我曾经在 Windows 上折腾过,说实话,性能不如树莓派直接跑 OS 来得稳。但临时调试用用没问题。
# 拉取 Home Assistant 镜像(Docker 方式)
docker pull homeassistant/home-assistant:latest
# 运行容器
docker run -d \
--name homeassistant \
--restart=unless-stopped \
-v /path/to/config:/config \
-p 8123:8123 \
homeassistant/home-assistant:latest
跑起来之后,浏览器访问 http://你的IP:8123,就能看到 HA 的界面了。第一次进去会让你创建账号、设置家庭位置,跟着向导走就行。
三、安装 ESPHome(翻译官上线)
HA 装好了,接下来装 ESPHome。有两种方式:作为 HA 插件安装,或者独立安装。我强烈建议用插件方式,集成度高,管理方便。
3.1 在 HA 中安装 ESPHome 插件
- 进入 HA 界面 → 左侧“配置” → “加载项、备份与 Supervisor”
- 点击右下角“加载项商店”
- 搜索“ESPHome” → 点击安装
- 安装完成后,启动插件,并勾选“启动时自动启动”和“显示在侧边栏”
⚠️ 避坑指南
我曾经遇到过插件安装后一直显示“启动中”,后来发现是 HA 的 Supervisor 版本太旧。解决办法:先更新 HA 到最新版,再装 ESPHome 插件。顺序别搞反了。
3.2 独立安装(如果你不想用 HA 插件)
有些朋友喜欢在电脑上单独跑 ESPHome,然后用命令行编译。也行,适合喜欢敲命令的。
# 用 pip 安装 ESPHome
pip install esphome
# 验证安装
esphome version
看到版本号输出,就说明装好了。我个人习惯还是用 HA 插件,因为可以在网页上直接编辑 YAML、看日志,不用切窗口。
四、连接 ESP32 开发板(第一次握手)
环境搭好了,该让 ESP32 上场了。先别急着焊传感器,咱们先让板子跟电脑“说上话”。
4.1 准备工作
- 硬件:ESP32 开发板一块(推荐 ESP32-DevKitC 或 NodeMCU-32S)
- 数据线:Micro USB 线(注意:要能传数据的线!有些充电线只能充电,不能传数据)
- 驱动:CP2102 或 CH340 驱动(看你的板子用哪种芯片)
⚠️ 重要提醒
数据线的问题我栽过跟头。有一次怎么都连不上 ESP32,换了三根线才发现是线的问题。你手边最好备两根不同品牌的数据线,交叉验证。
4.2 安装 USB 驱动
把 ESP32 插到电脑上,打开设备管理器(Windows)或 lsusb(Linux/Mac)。如果看到“CP2102”或“CH340”之类的设备,说明驱动自动装好了。如果没有,去 Silicon Labs 或 WCH 官网下载对应驱动。
| ESP32 型号 | 常见 USB 芯片 | 驱动下载地址 |
|---|---|---|
| ESP32-DevKitC | CP2102 | silabs.com/developers/usb-to-uart-bridge-vcp-drivers |
| NodeMCU-32S | CH340 | wch.cn/download/CH341SER_EXE.html |
| ESP32-S3-DevKitC | CH343 | wch.cn/download/CH343SER_EXE.html |
4.3 在 ESPHome 中创建第一个设备
打开 HA 侧边栏的 ESPHome,点击“+ NEW DEVICE”。
- 输入设备名称,比如
living_room_sensor - 选择开发板类型:ESP32
- ESPHome 会自动生成一个基础的 YAML 配置文件
- 点击“INSTALL” → 选择“Plug into this computer”
- 浏览器会弹出串口选择窗口,选你的 ESP32 端口
编译和下载过程大概 1-2 分钟。第一次编译会下载一些依赖库,稍微慢一点。看到“INFO ESPHome 2024.x.x”和“SUCCESS”字样,就说明固件烧录成功了。
💡 我的经验
如果编译失败,八成是 YAML 格式写错了。ESPHome 对缩进很敏感,多一个空格都不行。我刚开始写的时候,经常因为 tab 和空格混用导致报错。建议你在 VS Code 里装个 YAML 插件,能自动检查格式。
五、验证连接:让 ESP32 说“Hello”
固件烧录成功后,ESP32 会自动重启。如果一切正常,它会在 HA 的“设备与服务”里自动出现。你点进去,能看到一个实体,比如“living_room_sensor WiFi Signal”。
怎么确认它真的连上了?最简单的方法:看 ESPHome 的日志。
# 在 ESPHome 界面,点击设备旁边的“LOGS”按钮
# 你会看到类似这样的输出:
[I][wifi:003]: Connected to 'MyWiFi'
[I][wifi:005]: IP Address: 192.168.1.100
[I][logger:228]: Log initialized
看到 IP 地址了,说明 ESP32 已经成功连上你的 Wi-Fi,并且跟 Home Assistant 建立了通信。恭喜,你的第一个智能传感器“骨架”已经搭好了。
六、常见问题速查
| 问题 | 可能原因 | 解决办法 |
|---|---|---|
| 烧录时提示“Failed to connect” | 驱动没装好,或数据线不行 | 换数据线,重装驱动 |
| ESP32 连不上 Wi-Fi | Wi-Fi 密码错误,或 5G 频段不支持 | 检查密码,用 2.4G 频段 |
| HA 里看不到设备 | ESPHome 插件没配置好 | 重启 ESPHome 插件,检查 API 密钥 |
| 编译报 YAML 错误 | 缩进或格式问题 | 用 YAML 格式化工具检查 |
好了,环境搭建就到这里。你现在应该已经有一个能跑起来的 Home Assistant,一个装好 ESPHome 插件的界面,以及一块成功烧录了固件的 ESP32 开发板。下一章,我们会在 ESP32 上接一个真实的传感器,让它真正开始“感知”这个世界。