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上个月浇完番茄忘了关水阳台花盆泡成一锅汤。这类忘关阀门的麻烦用 ESPHome 控制电磁阀就能管住你只写一份 YAML 文件通断、定时、联动全交给设备自己执行手机面板上随手可关。原理一句话YAML 是怎么变成引脚电平的ESPHome 的工作方式很直白把你写的 YAML 编译成固件烧进 ESP32。配置里每写一行pin: GPIO2固件里就多一条绑定——这个开关打开时把 GPIO2 拉高。继电器模块在中间扮演以小控大的中间人它的 IN 端收到高电平就吸合内部 COM 和 NO 两个触点导通阀线圈这才真正通电。整条链路就四步YAML 里的一个名字 → 引脚电平 → 继电器吸合 → 阀动作理解了这个后面所有配置都是在这条链上加条件。接线图与端子对应关系5 根线全对上以 ESP32 开发板 单路继电器模块为例杜邦线按下面这张图接ESP32 继电器模块 电磁阀 GPIO2 ─────► IN 5V ─────► VCC GND ─────► GND COM ─────► 电源 12V 或 24V看铭牌 NO ─────► 线圈 电源 − ──► 线圈 −[图片占位此处放接线实物图]⚠️ 先别急着通电芯片引脚只有 3.3V/5V、几十毫安的驱动能力12V/24V 的阀线圈绝不能直接接 GPIO必须经过继电器。线圈该用多大电压、多大电流以你手边阀体铭牌为准。第二个易错点是 COM / NO / NC 三个端子。COM 是公共端接电源正极NO常开触点平时断开、继电器吸合后才闭合。接错到 NC 会出现下发关阀命令阀反而打开的反直觉现象——这不是玄学是常闭触点的正常逻辑。把配置写对一份能直接编译的 YAML新建solenoid_valve.yaml照抄下面这份把 WiFi 两处换成你自己的即可esphome: name: solenoid-valve esp32: board: nodemcu-32s wifi: ssid: YOUR_WIFI_SSID password: YOUR_WIFI_PASSWORD api: ota: switch: - platform: gpio name: Water Valve pin: GPIO2 id: water_valve inverted: false restore_mode: RESTORE_DEFAULT_OFFinverted: true表示高电平 关如果你的继电器模块逻辑相反就改它restore_mode决定断电重启后恢复上次的开关状态默认关。api:留空即开启Home Assistant 会自动发现这个开关。两个阀共存时加互锁interlock保证两个阀不会同时通电- platform: gpio name: Gas Valve pin: GPIO4 id: gas_valve interlock: - water_valve interlock_wait_time: 500msinterlock_wait_time是两个阀状态互斥的判断窗口500ms 足够滤掉手抖。开关组件的完整字段可在 esphome/components/switch/init.py 里查到。再加一个反馈很多阀自带位置微动开关接一根线回 ESP32就能在面板上看到阀真的开了binary_sensor: - platform: gpio name: Valve Feedback pin: number: GPIO14 mode: INPUT_PULLUP inverted: true device_class: running on_press: - switch.turn_off: water_valveon_press指信号从无到有的瞬间触发。这里故意让它触发一次强制关阀——万一阀卡住回弹、反馈却显示还开着这条线就是你的兜底。反馈触发器细节见 esphome/components/binary_sensor/。编译烧录只需两条命令pip install esphome esphome run solenoid_valve.yaml玩法一阳台滴灌按土壤湿度自动开关土壤湿度传感器两针探头信号脚接 GPIO34——这是 ESP32 的模拟输入脚接上后配置追加sensor: - platform: adc name: Soil Moisture pin: GPIO34 id: soil_moisture threshold: below: 0.3 on_below: - script.execute: water_timer script: - id: water_timer then: - switch.turn_on: water_valve - delay: 30s - switch.turn_off: water_valvethreshold阈值触发器的意思是读数跨过这条线才动作低于 0.3V 时执行water_timer脚本——开阀、等 30 秒、关阀一次灌溉 30 秒。脚本默认 single 模式正在灌溉时重复触发会被忽略不会把阀门来回折腾。0.3 这个数先别照抄在面板里看着传感器读数干土和湿土各记一个值取中间偏干的位置填回去。adc 平台的取值原理可参考 esphome/components/sensor/。玩法二燃气泄漏关阀 手机推送燃气报警模块的干触点不带电的开关信号报警时闭合接一个空闲 GPIObinary_sensor: - platform: gpio name: Gas Leak Alarm pin: number: GPIO12 mode: INPUT_PULLUP inverted: true device_class: gas on_press: - switch.turn_off: gas_valve - homeassistant.service: service: notify.mobile_app_my_phone data: message: 燃气报警已自动关阀报警一来先关阀再推送顺序不能反。notify.mobile_app_my_phone是 Home Assistant 里你配的推送服务按自己环境改服务名。⚠️ 涉及燃气的自动化请在专业指导下测试并保留手动关阀通道——任何自动化都不应成为唯一的那道保险。阀不动时的三步排查法听继电器。面板上开开关模块上应有一声咔哒和指示灯亮。没有咔哒先查 IN/VCC/GND 三根线十有八九是 5V 和 GND 接反了。量电压。继电器吸合后用万用表量 COM-NO 之间应等于电源电压再对照线圈两端电压是否和铭牌一致。电压不对换电源而不是换阀。查极性。现象是开变关、关变开把inverted改成true再烧一次即可日志用esphome logs solenoid_valve.yaml看编译期报错基本都出在 pin 写错名字上。GPIO 开关的实现逻辑含互锁在 esphome/components/gpio/switch/想确认某个字段的行为时值得翻一眼。下一步往哪走跑通单阀之后自然的延伸是把开多久、什么时候开从脚本里挪到 Home Assistant 的定时器和场景里ESPHome 只管执行再往后多个阀、多路 RS485 计量表接进来这套接线方式原样复用。先把一个阀的反馈回路做稳比一次接八个阀更有价值。【免费下载链接】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),仅供参考
返回列表