资讯详情

ESPHome 加一只光照传感器:客厅灯自己开自己关,只要一份 YAML

📅 2026/9/14 12:19:10 | 华诺云谱 👁 阅读
ESPHome 加一只光照传感器:客厅灯自己开自己关,只要一份 YAML
ESPHome 加一只光照传感器客厅灯自己开自己关只要一份 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晚上十一点起夜摸黑找开关发现客厅灯还亮着第二天早上太阳晒进窗子那盏灯居然也没人关。痛点其实就一句灯不知道屋里亮不亮。用 ESPHome 让 BH1750 光照传感器和灯泡聊上话灯光就能自己开关还能渐变。效果速览烧录完通电你会发现屋里变暗、光照读数跌破 300 勒克斯灯自动亮到八成阳光进来、读数升到 500 勒克斯以上灯缓缓变暗、自己熄灭开和关都带 1 秒渐变不会啪地一下刺眼日志里每 5 秒报一行光照读数你能看见它看到了什么全程不连云端断网的时候灯照样工作为什么是这套维度这套方案Arduino 裸写 云平台成本ESP32 板子加一个光照传感器二三十块MCU、屏幕、云服务硬件加账号费用上手难度写一份 YAML 就能跑不用编程自己写 C还得再写云端对接本地化局域网内闭环断网照常工作云端当中间人数据出门外选它的理由很实在光照传感器驱动 里 BH1750 已经现成灯那边直接用 灯光模块 的基类。动手搭建准备清单[必需] ESP32 开发板NodeMCU-32S 这类都行[必需] BH1750 I2C 光照传感器模块背面带焊好的排针[必需] 白色 LED 灯珠或灯带加一颗 220 欧姆限流电阻[可选] 几根杜邦线和一块面包板方便反复调整[可选] 4.7K 上拉电阻模块板载了就省掉先接线避开坑I2C 就是两根线的对讲机SDA 传数据、SCL 传时钟传感器接上就能用。SDA → GPIO21SCL → GPIO22这两根是和传感器说话的线GPIO4 → LED 灯珠正极串一个 220 欧姆电阻负极接 GND⚠️ 传感器VCC 必须接 3.3V别插到 5V 上几秒就烧⚠️ 大功率灯别直接挂 GPIO中间加个 MOS 管不然引脚扛不住把配置写下来在工作目录建smart_light.yamlesphome: name: smart-light esp32: board: nodemcu-32s wifi: ssid: !secret wifi_ssid # WiFi 名称和密码放 secrets.yaml password: !secret wifi_password i2c: sda: GPIO21 scl: GPIO22 scan: true # 上电扫总线看传感器在不在 logger: sensor: - platform: bh1750 name: 室内光照度 id: ambient_light update_interval: 5s # 每 5 秒报一次光照 output: - platform: ledc id: led_output pin: GPIO4 frequency: 1kHz # PWM 频率1kHz 以上基本不闪 light: - platform: monochromatic name: 智能主灯 id: main_light output: led_output default_transition_length: 1s # 开灭都带 1 秒渐变参数速查参数建议值注意什么update_interval5s太快费电太慢反应迟钝frequency1kHzPWM 调光频率1kHz 以上看不出闪default_transition_length0.5~1s渐隐时间超过 2 秒会觉得拖沓scantrue首烧时用它确认传感器连上了没单色灯实现在 monochromatic 驱动PWM 输出来自 ledc 驱动。想换引脚改 i2c 和 output 里的两处就行。烧录验证esphome run smart_light.yaml # 编译加烧录结尾应看到 Upload done esphome logs smart_light.yaml # 预期每 5 秒出现一行光照读数日志里要是看到I2C Error说明传感器没应答回到上一步重查 VCC 和 GND别接反了。日志里能看到读数说明已经通了也可以直接在浏览器里的 ESPHome dashboard 点两下完成同样的事。让它更聪明让它变聪明有两招。第一招是迟滞开灯和关灯的阈值别用同一个数读数在阈值附近抖动时它才不轻易动手。思路是写两条 numeric_state 自动化一条below: 300负责开、另一条above: 500负责关各配一个for等几秒再执行。这和空调温度设个死区是一个道理差值越大越稳。第二招是定时晚上九点自动切夜间模式。automation: - trigger: - platform: time at: 21:00:00 condition: - light.is_on: id: main_light - platform: state id: ambient_light below: 400 action: - light.turn_on: id: main_light brightness: 0.4 transition_length: 2s结构一看就懂两个条件灯亮着、读数低于 400都满足才把亮度降到 0.4 并用 2 秒过渡。把时间换成你到家、再加个人体感应条件玩法就更多了。踩坑速查症状读数一直是 0。原因传感器在 I2C 总线上没应答多半是 VCC/GND 接反或虚焊。解法留着scan: true首烧时在日志里确认扫到0x23症状灯发暗地闪。原因PWM 频率太低和灯珠共振。解法frequency改到 1kHz 以上还闪就换个 channel 试试症状一会儿开一会儿关来回折腾。原因开关用了同一个阈值读数正好在它附近飘。解法按上一节做成双阈值开和关的数别相同还能玩什么接个 PIR 人体感应做出人来灯亮、人走灯灭PIR 人体传感器把白灯换成 RGBW 灯带加调色温RGB 灯加个 HTTP 请求把光照读数推到自家服务器http 请求一套配置、二三十块的硬件以后出门忘关灯灯会自己灭——那份省心就是自动化最实在的样子。【免费下载链接】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),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。