ESPHome 实战指南给 ESP8266 写一份 YAML30 分钟接入 Home Assistant【免费下载链接】esphomeESPHome is a system to control your ESP32, ESP8266, BK72xx, RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.项目地址: https://gitcode.com/GitHub_Trending/es/esphome你手上有一块 ESP8266、一根 USB 线、一颗 DHT22 温湿度探头。接下来半小时你要让它连上家里 WiFi、把温湿度数据送进 Home Assistant并在温度越界时由设备自己拉响本地报警。⚡ 全程不写一行 CESPHome 就是一个开源的 YAML 配置框架你声明要什么它负责生成固件代码、编译、烧录并把设备挂接到家庭自动化生态里。先看一眼这种工作方式的差距有多大你想实现的事手写 C 驱动ESPHome 里对应的一小段声明连 WiFi 并把数据推给家庭中枢自己拼 esp_wifi、MQTT 或私有协议wifi加api两行读一颗温湿度探头移植厂商时序库、处理校验位platform: dht配一个pin温度越界本地报警定时器、状态机、GPIO 各写一遍automation里 trigger action整篇文章就按一台温湿度监测器的落地顺序推进装工具 → 写配置 → 烧录 → 接探头 → 接入 Home Assistant → 本地报警。一条命令装好 ESPHome 开发环境️ 最省事的路线是直接用源码仓库里的安装脚本它会自动建虚拟环境、用 uv 拉依赖、挂上 pre-commit 钩子并把 PlatformIO 相关依赖一并装齐。下面四行分别完成拉源码、跑安装脚本、激活环境、打印版本号git clone https://gitcode.com/GitHub_Trending/es/esphome cd esphome ./script/setup source venv/bin/activate esphome version如果最后一条命令正常输出了版本号说明环境就绪。安装细节可以参考仓库自带的 script/setup 脚本源码它做了什么一目了然。手写第一份 ESPHome YAML 配置想偷懒可以先跑esphome wizard my_temp.yaml它会边问边填帮你生成一个能直接编译的骨架。想彻底搞懂每个字段在管什么就手写一份下面这份就够点亮今天的全部内容esphome: name: esp8266-temp-hum esp8266: board: d1_mini logger: api: encryption_key: 改成32字节的密钥 wifi: ssid: 你家的路由器名 password: WiFi密码 captive_portal:逐块说esphome段给出设备名后续在 Home Assistant 里认的就是它esp8266段加board指定具体板型不同板子的引脚映射和闪存布局都靠它区分logger不写参数就是默认串口日志调试阶段先留着api段的encryption_key是设备与 Home Assistant 通信的凭证两边必须一致wifi段填好 SSID 和密码即可若还加一个ap段连不上网时设备会自建热点供你重新配网captive_portal则在设备离线时弹出一个配网页救场用。从 YAML 到固件编译并烧录 ESP8266把开发板用 USB 接上电脑执行下面这条命令ESPHome 会一口气走完校验配置 → 生成 C → 编译 → 烧录到所选串口四步中途提示选择端口时挑你板子对应的那个即可esphome run my_temp.yaml只验证代码能否通过编译、不往硬件里写的话用esphome compile my_temp.yaml就够了CI 里常用它做门禁。板子重启后应该自己连上 WiFi路由器上多出一台新设备这就算完成了 ESP8266 烧录固件的完整闭环。接上 DHT22让板子开始采集温湿度️ 接线很简单探头 VCC 接 3.3VGND 与板子共地DATA 落到 D4即 GPIO2官方建议在 DATA 与 VCC 之间补一颗 4.7kΩ 上拉电阻手头没有也能先跑通。然后在配置里追加传感器声明温度、湿度会各自成为一个可被别的组件引用的实体sensor: - platform: dht pin: D4 model: DHT22 update_interval: 15s temperature: name: 室温 id: indoor_temp humidity: name: 室内湿度model别填错DHT11 只有整数精度DHT22/AM2302 才有一位小数填混了读数会偏。改完再跑一次esphome run my_temp.yaml固件里多了传感器轮询逻辑重启后日志里就能看到周期性读数。探头类型只是例子仓库 esphome/components/ 下还有上千个同类驱动目录BME280、SHT31 这些换成对应platform就能用。把数据送进 Home Assistant 之前配置里预留的api段在这里发挥作用。打开 Home Assistant走 设置 → 设备与服务 → 添加集成 → 搜索 ESPHome填入设备名或设备名.local和同一把encryption_key设备列表里就会出现 esp8266-temp-hum两个传感器卡片实时更新。想脱离手机也能看再在配置里补一个web_serverport: 80浏览器直接访问设备 IP 就有状态页排查问题时敲esphome logs my_temp.yaml能实时串流串口日志传感器有没有按周期上报、WiFi 握手是否成功一眼看穿。设备本地自动化温度超限自动报警 报警不一定要依赖家庭中枢在线逻辑可以直接编译进固件。思路分三层一个 GPIO 开关当蜂鸣器一个 template 二值传感器持续判定温度是否超 30°C一条 automation 监听它的状态变化并驱动开关。三段声明放在一起switch: - platform: gpio name: 蜂鸣器 id: alarm_buzz pin: D1 binary_sensor: - platform: template name: 高温提醒 id: too_hot device_class: problem lambda: return id(indoor_temp).state 30; automation: - trigger: platform: state id: too_hot to: on action: - switch.turn_on: alarm_buzz - delay: 5s - switch.turn_off: alarm_buzz整条链路在设备端闭环运行trigger 和 action 的完整语法比这长得多时间触发、阈值触发、条件分支都有实现细节在 esphome/automation.py 里都能翻到。避坑速查WiFi、OTA 与读数异常连不上网先确认两件事ESP8266 只收 2.4GHz 频段以及 SSID/密码是否逐字符核对过配置了ap兜底时连设备自建的热点即可重新配网。空中升级失败多发生在跨网段或中继隔墙的场景尽量让电脑与设备同一段 LAN并核对固件体积没有逼近闪存上限——组件堆太多时先砍日志级别。传感器读数离谱固定为 0、-127 或跳变优先查接线松动与model是否匹配其次把update_interval调大给探头足够的采集窗口。顺着这条线继续深入换板子同一套 YAML 把esp8266段换成esp32段即可覆盖 ESP32、RP2040 等更多平台传感器声明基本不用动。写本地逻辑在 esphome/automation.py 上多看两眼 trigger/action 组合能把按键 5 次改阈值这类小交互直接塞进固件。找新驱动浏览 esphome/components/ 目录想接的芯片多半已有现成platform确实没有时再用 external_components 机制自己补一个。【免费下载链接】esphomeESPHome is a system to control your ESP32, ESP8266, BK72xx, RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.项目地址: https://gitcode.com/GitHub_Trending/es/esphome创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考