ESPHome 完整指南:4 步让 ESP8266 说出温湿度数据
2026/9/14 3:53:58 网站建设 项目流程

ESPHome 完整指南:4 步让 ESP8266 说出温湿度数据

【免费下载链接】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

抽屉里那块吃灰的 NodeMCU,加上不到 50 行的 YAML,几分钟之后它的温湿度读数就会出现在你的 Home Assistant 面板里——全程不写一行 C++。这套东西叫 ESPHome:一个用配置文件控制 ESP8266 / ESP32 / BK72xx / RP2040 的系统,负责编译、烧录、OTA 升级,并天然对接家庭自动化平台。对新手来说它省掉的是三件事:驱动适配、工具链配置、C++ 工程骨架,你只需要声明"哪块板子、哪根引脚、什么行为"。

把 ESPHome 装好

最短的安装路径就两条命令:

git clone https://gitcode.com/GitHub_Trending/es/esphome cd esphome && ./script/setup

script/setup会创建 Python 虚拟环境并装齐依赖,包括编译用的 PlatformIO 工具链。做完这步,激活环境并验证:

source venv/bin/activate esphome version

成功标志:终端打印出一行版本号,说明 CLI 已经可用。

生成第一份配置文件

与其手写 YAML,不如先跑交互式向导,它会把骨架替你填好:

esphome wizard my_esp8266.yaml

向导依次问你:设备名 → 平台(选 esp8266)→ 板子型号 → WiFi SSID 和密码 → 加密口令。结束后你会得到一份能直接编译的配置。把各模块的职责捋一遍,改配置时就知道手该往哪伸:

  • esphome:设备命名,决定固件文件名和主机名
  • esp8266:声明芯片平台和board型号,选错型号后面的引脚和分区都会对不上
  • wifi:核心网络配置,ssid/password必须换成你自己家的,连不上时自动开的 fallback 热点也在这里控制
  • api:与 Home Assistant 通信的接口,带一个访问密码
  • ota:空中升级通道,密码要和 api 的区分开,两处占位密码都要替换,这是新手最常见的疏漏

成功标志:文件保存后在编辑器里没有语法报错,且能进入下一步的编译。

烧录固件并确认设备活着

esphome run my_esp8266.yaml

一条命令 = 编译 + 烧录。USB 线接上板子后,终端会列出检测到的串口,用方向键选中正确的那个回车。

判断烧录成功看 3 个信号:

  1. 编译阶段结尾出现固件大小统计(text/data 字节数),没有红色报错
  2. 烧录阶段出现擦除/写入进度,末尾打印Hard resetting via RTS pin...一类复位提示
  3. 设备重启后,esphome logs my_esp8266.yaml里出现 WiFi 连接成功和 IP 获取成功的日志行

成功标志:日志里能看到设备拿到 IP 地址。拿不到 IP 就跳到文末的排查顺序。

让温湿度每 60 秒上报一次

DHT22 是入门温湿度的标准件,三根线的接法:

DHT22ESP8266
VCC3V3
DATAD4(GPIO2)
GNDGND

配置里追加这一段:

sensor: - platform: dht pin: D4 model: DHT22 temperature: name: "室内温度" id: indoor_temperature humidity: name: "室内湿度" update_interval: 60s

model按你手上的实际型号写(DHT11、AM2302 都支持,不写则自动检测);id给自动化规则引用用。改完再执行一次esphome run,把新固件刷进去。

成功标志esphome logs中出现DHT: Got temperature=xx.x°C humidity=xx.x%这样的读数行;读到failed to receive或数值卡死,按文末第 3 条排查。

让数据出现在面板和浏览器里

数据回传有两条互相独立的路,可以只走一条,也可以双开。

路线一:Home Assistant 原生集成。在 HA 的"设备与服务 → 添加集成"里找到 ESPHome,用my_esp8266.local或设备 IP 配上 api 里那把密码,传感器会自动出现在面板上,OTA 升级也能从 HA 里直接触发。

路线二:内置 web 页面。配置里加一行:

web_server: port: 80

重新烧录后,浏览器访问设备 IP 即可打开一个自带设备列表和控制按钮的页面,无需任何账号系统,适合临时查看或没有 HA 的场景。

成功标志:两条路任选其一——HA 面板出现"室内温度/室内湿度"两个实体,或浏览器里能看到设备状态页。

在设备上跑一段本地自动化

最短的本地自动化:温度越限 → 响蜂鸣器 → 5 秒后自动停。触发、动作、延时全部跑在芯片本地,断网照常工作。假设蜂鸣器接在 D1:

switch: - platform: gpio name: "警报器" pin: D1 id: alarm_buzzer automation: - trigger: - platform: threshold id: hot_trigger above: 30 sensor: indoor_temperature action: - switch.turn_on: alarm_buzzer - delay: 5s - switch.turn_off: alarm_buzzer

above是阈值温度,sensor引用前面给温度实体起的id

成功标志:编译通过;把 DHT22 靠近热源让读数过 30°C,蜂鸣器响 5 秒后自动停。

出问题时的三条排查顺序

WiFi 连不上:先核对 SSID/密码是否含特殊字符且没多打空格 → 确认路由器开了 2.4GHz(ESP8266 不支持 5GHz 频段)→esphome logs观察是"找不到网络"还是"认证失败",前者查 2.4GHz 广播,后者基本就是密码问题。

OTA 升级失败:先确认电脑和设备在同一网段、信号正常 → 核对 ota 密码是否与配置一致 → 固件接近 Flash 上限时先精简配置再升级。

传感器读数异常:先查硬件——VCC/GND 是否接反、DATA 线是否松脱 → 核对model与实际芯片一致 → 把update_interval调大一些降低干扰,再观察是否恢复。

下一步

  • 想换别的传感器或加开关、显示屏,直接翻 esphome/components/ 里的目录名找同名组件
  • 自动化支持延时、窗口时间、时间触发等多种组合,可查 esphome/automation.py 了解全部可用动作
  • 想自己写组件扩展,入口在 esphome/components/custom_component/

装好、连上、跑起来——剩下的就是往 YAML 里加东西的事了。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询