ARTICLE DETAIL

资讯详情

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

如何用 ESPHome 快速搭一套 BH1750 感光自动灯:接线、最小配置与排坑指南

如何用 ESPHome 快速搭一套 BH1750 感光自动灯:接线、最小配置与排坑指南 如何用 ESPHome 快速搭一套 BH1750 感光自动灯接线、最小配置与排坑指南【免费下载链接】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/esphomeESPHome 用一份 YAML 配置文件就能把 ESP32、ESP8266 等开发板变成本地可控设备。这次接一个 BH1750 光照传感器让板子自己读数、自己调 PWM 亮度、天黑自动开灯——全程不写一行 C自动化逻辑也直接跑在设备端不依赖 Home Assistant 在线。接线BH1750 只吃 3.3VLED 走 MOS 管接线一共四路先接上电再烧固件BH1750 模块的 VCC 接 3.3VGND 接 GND不要碰 5V 引脚该芯片供电上限就是 3.6V接错直接烧。SDA、SCL 接到 ESP32 的 GPIO21、GPIO22ESPHome 默认的 I2C 引脚对。模块板载上拉电阻的就跳过裸芯片需要在 SDA/SCL 与 3.3V 之间各加一个 4.7kΩ 电阻。LED 灯条不能直接挂 GPIO灯条工作电流通常超过 GPIO 的 40mA 上限。用一个 MOS 管栅极接 GPIO4串 1kΩ 电阻或继电器做开关灯条电源走 5V/12V 独立供电。BH1750 的 I2C 地址固定是 0x23驱动在 esphome/components/bh1750/量程 1~65535 lx精度 1 lx够房间级感知用了。最小配置模板传感器 PWM 输出 单色灯三段一份配置三个段就够跑起来i2c 总线、bh1750 传感器、ledc PWM 输出、monochromatic 灯。name 字段可省略ESPHome 会按 id 自动起名先不加验证通了再补。i2c: sda: 21 scl: 22 sensor: - platform: bh1750 id: ambient_light update_interval: 5s output: - platform: ledc id: led_out pin: 4 light: - platform: monochromatic id: main_light output: led_out几个必须知道的默认值bh1750 是轮询组件默认 60s 才读一次数所以update_interval: 5s必须显式写否则自动化响应会很迟钝ledc 输出的frequency不写时默认 1kHz正好落在人眼基本感觉不到闪烁的范围一般不用改。LED 驱动层在 esphome/components/ledc/灯的定义在 esphome/components/monochromatic/。on_value_range 双阈值迟滞300 lx 开、500 lx 关开关逻辑不用等 HA 的 numeric_state传感器自身就带on_value_range触发器阈值判断直接在设备端完成。开灯和关灯各用一条规则中间留 200 lx 的迟滞区间防止光照在单一阈值附近抖动时灯反复开关sensor: - platform: bh1750 id: ambient_light update_interval: 5s on_value_range: - above: 500 then: - light.turn_off: main_light - below: 300 then: - light.turn_on: id: main_light brightness: 80% transition_length: 1sabove: 500在读数超过 500 lx 时触发关灯below: 300在读数跌破 300 lx 时触发开灯。开灯时带上transition_length: 1s避免全亮度瞬间点亮刺眼。这两个动作light.turn_on/light.turn_off的注册代码在 esphome/components/light/想加light.dim_relative之类更细的控制同一个目录里都有。防抖动与防闪烁滑动平均 确认时长BH1750 读数本身稳定但窗帘缝隙、人走过都会造成瞬时波动。在传感器上加一层滑动平均5 个窗口取均值、每 3 个才上报一次数据立刻平滑filters: - sliding_window_moving_average: window_size: 5 send_every: 3过滤器的完整清单在 esphome/components/sensor/ 的__init__.py里throttle、median都可以按需叠加。配合上一节的 200 lx 迟滞区间基本不会再出现灯闪烁式开关。闪烁如果出在灯本身而不是开关逻辑优先查两处MOS 管栅极有没有串联电阻裸接容易自激以及 ledc 频率是否被改低——保持 1kHz 起步。一条命令部署再按日志调参esphome run 你的配置.yaml一条命令完成编译、上传、重启。烧完先看日志esphome logs确认 I2C 扫描能找到 0x23 地址、光照值随遮光变化再谈调阈值。调参顺序建议先固定 300/500 lx 跑一两天用 HA 里的曲线或日志看实际开灯点是否落在你期望的位置不合适的房间就把阈值整体平移比如常年较暗的地下室可以把开灯线抬到 80~100 lx。验证稳定后下一步可以接time组件加夜间柔和模式或把灯换成 rgbw 平台做色温随光照渐变。【免费下载链接】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),仅供参考
返回列表