ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

从零跑通智能自动照明:ESPHome 光照传感器实战指南

从零跑通智能自动照明:ESPHome 光照传感器实战指南 从零跑通智能自动照明ESPHome 光照传感器实战指南【免费下载链接】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给 ESP32 刷上 ESPHome 后家里的灯会自己看天吃饭阴天的傍晚光照度一掉到 300 lx 以下主灯自动亮起天亮又自动熄灭。读完你将能把 BH1750 光照传感器接上 ESP32 并读到第一组真实光照值用 numeric_state 规则写出天黑开灯、天亮关灯一条命令把完整照明配置编译烧录到设备用滤波器消除光照数据的抖动效果速览烧录完成后传感器每 5 秒向 Home Assistant 上报一次环境光照度。夜间光照低于 300 lx 持续 5 秒灯自动打开白天升到 500 lx 以上持续 10 秒灯自动关闭。全程无需碰手机逻辑全部写在一份 YAML 里。准备工作整套材料成本几十元一次性备齐ESP32 开发板 1 块NodeMCU-32S 即可BH1750 光照传感器模块 1 个I2C 接口LED 灯条 MOS 管驱动电路或带 PWM 调光的灯4.7K 上拉电阻 2 个多数 BH1750 模块已内置软件侧只需安装 ESPHome CLI再配一个能装 ESPHome 插件的 Home Assistant 即可不想上 Home Assistant 的话接根串口线看日志也完全够用。核心实现从接线到跑通自动开关灯一共 4 步全程不用写代码。接好 BH1750 光照传感器四根线VCC 接 3.3V别接 5VGND 共地SDA、SCL 接到 ESP32 的 I2C 脚。验证方法烧录后看启动日志scan: True会打印总线上所有设备出现0x23就是它。写入第一份照明 YAML配置分两段传感器负责看LED PWM 输出负责亮。i2c: sda: GPIO21 scl: GPIO22 scan: True sensor: - platform: bh1750 name: 光照度 update_interval: 5soutput: - platform: ledc id: led_out pin: GPIO4 frequency: 1kHz light: - platform: monochromatic name: 主灯 id: main_light output: led_out文件头部记得加esphome:声明设备名、ESP32 平台和 WiFi 密码。验证方法跑esphome logs看到光照度数值在随环境变化刷新说明传感器链路通了。设置 numeric_state 自动开关灯规则很简单低于 300 lx 开灯高于 500 lx 关灯。上下限故意拉开 200 lx防止在临界值附近反复触发。automation: - alias: 天黑开灯 trigger: platform: numeric_state entity_id: sensor.illuminance below: 300 for: 5s action: - light.turn_on: id: main_light # 关灯规则镜像一份above: 500、for: 10s、 # action 改为 light.turn_off 即可验证方法用手捂住传感器 10 秒灯亮拿开手等 30 秒灯灭。一条命令编译烧录esphome run smart_light.yaml验证方法输出以SUCCESS收尾设备在 Home Assistant 里重新上线灯实体可以直接手动开关。让它更好用三个小改动体验提升明显。给光照数据加移动平均云层飘过时的骤变可能误触发开关灯。给传感器挂一个滑动窗口滤波器sensor: - platform: bh1750 name: 光照度 filters: - sliding_window_moving_average: window_size: 5曲线立刻变平滑误触发基本消失。传感器节点进深睡省电如果某个 ESP32 只装传感器不控制灯加一个deep_sleep组件让它测完即睡电流从几十 mA 降到微安级电池供电也能跑。接入 Home Assistant 联动配置里加一行homeassistant:光照度、灯的开关状态就自动同步过去。之后远程开关、定时场景、语音控制都不用再改设备端。避坑清单问题大多集中在这三处扫描不到 0x23 / 数值一直是 nan→ SDA 和 SCL 接反或总线上没有上拉电阻 → 对调两根线补 4.7K 电阻到 3.3V。低亮度时灯光肉眼可见地闪→ PWM 频率太低 → 把frequency提到 1kHz 以上人眼就不敏感了。临界光照下灯反复开关→ 开灯关灯用了同一个阈值 → 用 300/500 拉开滞回区间并把for:时间拉长到 5 秒以上。延伸方向想深挖可以看 bh1750 驱动源码 的寄存器读写逻辑ledc 输出模块 则支持多路 PWM 与相位控制。下一步可以加人体红外传感器做人来灯亮或把单色灯条换成 RGBW 实现色温随光照自动调节。觉得有用就点个收藏吧。下一篇聊 ESPHome 的深睡模式让电池供电的传感器节点多活一年。【免费下载链接】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),仅供参考
返回列表