ARTICLE DETAIL

资讯详情

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

ESPHome 电磁阀 YAML 配置实战:15分钟搭好一个智能阀门控制器

ESPHome 电磁阀 YAML 配置实战:15分钟搭好一个智能阀门控制器 ESPHome 电磁阀 YAML 配置实战15分钟搭好一个智能阀门控制器【免费下载链接】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 和一个 12V 直流电磁阀用 ESPHome 一份 YAML 配置就能让阀门接进 Home Assistant远程开关、定时浇水、状态反馈全程不写一行 C 代码。读完这篇文章你会拿到三样东西一份可直接烧录的完整配置文件、一张继电器接线表、两个可运行的自动化场景自动浇水和阀门互锁。先看懂 5 行核心配置整套方案的本质就一句话ESPHome 把 ESP32 的一个 GPIO 引脚包装成 Home Assistant 里的 switch 实体继电器接在这个引脚上阀门就跟着开合。switch: - platform: gpio # 用 GPIO 引脚驱动开关这是全部硬件控制的起点 name: Water Valve pin: GPIO2 # 继电器 IN 接的引脚引脚号后面会对照接线图就这三行实体配置加上设备基础信息就能让阀门上线。下面从硬件讲起。备齐材料并接好继电器ESP32 的 GPIO 只能输出 3.3V、几十毫安直接驱动阀门既点不动也会烧引脚。所以中间必须加一个继电器模块做电气隔离ESP32 只负责给继电器一个通/断信号真正流过线圈和阀门的电流走继电器自己的回路。名称规格数量作用开发板ESP32 DevKit如 Wemos D1 Mini1运行 ESPHome提供 GPIO 和 WiFi继电器模块SRD-05VDC-SL-C5V 驱动1用低电压信号切换阀门回路电磁阀12V 直流常闭型1执行通断常闭型断电自动关阀更安全电源12V/2A 直流适配器阀门 5V继电器/ESP32各 1两套电源分开供电避免电流冲击杜邦线公对母若干1 包接线接线示意注意继电器是两组独立的回路ESP32 侧控制回路 继电器模块 阀门侧负载回路 GPIO2 ──────────────► IN 5V ──────────────► VCC GND ──────────────► GND COM ──► 12V 适配器正极 NO ──────────────────────► 阀门正极 12V 适配器负极 ─────────────► 阀门负极这里的关键是 COM 和 NO 接在 12V 电源和阀门之间而不是接在 ESP32 上——继电器触点额定电流远高于 GPIO负载回路必须绕开 MCU 走自己的电源。配好核心骨架配置下面这份配置能让设备完整上线设备连上 WiFi、出现在 Home Assistant 里、断电重启后阀门状态不跑飞。逐行看esphome: name: solenoid-valve # 设备在局域网和 HA 里的名字 platform: ESP32 board: nodemcu-32s # 按你的板子选选错会导致引脚映射错误 wifi: ssid: 你的WiFi名 password: 你的WiFi密码 api: # 接入 Home Assistant同时负责把开关状态存到 flash ota: # 后续 OTA 升级固件用不写就只能每次插 USB 烧录 switch: - platform: gpio name: Water Valve pin: GPIO2 # 对应接线图里接继电器 IN 的引脚 id: water_valve # 给实体起 id自动化脚本里靠它引用 restore_mode: RESTORE_DEFAULT_OFF # 重启后恢复断电前状态且兜底为关阀—— # 阀门类设备宁可漏一次水不可默认常开烧录命令在仓库里用esphome config solenoid_valve.yaml校验、esphome compile编译即可仓库获取方式git clone https://gitcode.com/GitHub_Trending/es/esphome。骨架里restore_mode值得多说一句默认是ALWAYS_OFF每次重启强制关阀RESTORE_DEFAULT_OFF则会记住断电前的状态状态持久化的实现依赖api组件见 esphome/components/switch/init.py 里的RESTORE_MODES定义。扩展层按功能加模块骨架跑通后按需叠加下面的片段每段独立生效互不干扰。定时浇水脚本手动开关解决不了开 30 秒自动关用script组件把动作串成一次原子操作script: - id: water_30s mode: single # 同一时间只允许跑一份防止重复触发叠加延时 then: - switch.turn_on: water_valve - delay: 30s # 浇够水量即关防止干烧水泵 - switch.turn_off: water_valve阀门互锁水阀和气阀共用一套水路时必须防止误操作让两个阀同时开。GPIO switch 自带interlock字段互锁逻辑的实现在 esphome/components/gpio/switch/init.pyswitch: - platform: gpio name: Gas Valve pin: GPIO4 id: gas_valve interlock: [water_valve] # 引用对方实体 id二者互斥 interlock_wait_time: 500ms # 开一个前先等 500ms # 确保上一个阀真正落座再反向动作状态反馈回读想确认阀门真的动了用一路 GPIO binary_sensor 读反馈触点binary_sensor: - platform: gpio name: Valve Feedback pin: GPIO14 device_class: moving # 让 HA 按运动语义展示开合状态反馈触点的另一脚接在继电器反馈端子或阀门到位开关与 GND 之间阀门动作时引脚拉高即上报状态变化。实战场景场景一土壤湿度联动自动浇水 触发条件土壤湿度数字模块输出低电平干燥时binary_sensor 上报off状态。binary_sensor: - platform: gpio name: Soil Dry pin: GPIO27 on_press: # 模块输出翻转土变干时触发 then: - script.execute: water_30s 执行动作直接调用上面定义好的water_30s脚本开阀 30 秒后自动关闭。 安全兜底mode: single保证湿度传感器抖动也不会叠加多个浇水任务restore_mode保证重启后阀门不会莫名处于开启态。场景二气体报警一键关阀并通知 触发条件气体报警探头输出报警信号device_class 设为 gasHA 里按气体告警语义展示binary_sensor: - platform: gpio name: Gas Alarm pin: GPIO12 device_class: gas on_press: then: - switch.turn_off: gas_valve # 先执行最要紧的断气 - logger.log: Gas alarm, valve forced off 安全兜底关阀动作不依赖任何网络请求本地 GPIO 中断直接执行断网也生效若需要手机推送在then末尾追加homeassistant.service调用notify服务即可通知失败不影响已执行的关阀动作。排障速查表现象排查步骤开关显示开但继电器不动作看继电器指示灯不亮则核对pin与inverted亮则查 COM/NO 是否接反阀门有动作但 HA 里状态反了给 switch 加inverted: true后重新编译烧录重启后阀门状态丢失或异常确认api:已启用且restore_mode不是DISABLED阀门偶尔不吸合、动作发涩检查 12V 电源功率是否够、继电器与阀门是否混用 5V 电源设备编译时报引脚错误核对board是否与实际板型一致引脚号是否超出该板范围边界与下一步这套方案适合 5V/12V 低压直流阀门的单板控制不适合直接切换 220V 市电负载——那需要接触器或智能空开级别的硬件ESPHome 的 GPIO 层面不提供保护。下一步如果你想从一两个阀扩展到十几个阀可以上sn74hc595移位寄存器组件用 3 个引脚级联多个 595 芯片扩展输出仓库里现成可用esphome/components/sn74hc595/。【免费下载链接】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),仅供参考
返回列表