『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: bynow

[基础教程] esphome如何创建这种开关?

[复制链接]

12

主题

145

帖子

1183

积分

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1038
HASS币
0
 楼主| 发表于 2020-4-17 17:16:07 | 显示全部楼层
本帖最后由 bynow 于 2020-4-17 17:23 编辑
情非殇 发表于 2020-4-17 14:48
就是说,只要在前端显示1个switch,然后,turn_on输出g12,turn_off输出g14,这个完全没问题,可以写死在e ...

可以的,我把后端继电器模组的原理图发上来,大家一起来看看

123123123123123.jpg
图纸说明: 板子在家里,有时间我也可以发上来,
最终控制的是脉冲阀,阀门原理可以百度下伯尔梅特脉冲阀,或者看图纸右下角开启关闭阀门说明(必须是脉冲,不能长时间通电,否则烧坏阀门)
主要用在花花草草浇水上的阀门

这个是继电器板子原理图,右下角是阀门开启和关闭示意。 开启和关闭是12脉冲信号,就是说阀门2根线正反接12V就可以开启和关闭阀门,不能长时间通电,这样会烧掉阀门线圈。

初始状态: A→GND   B→GND  

我需要1个switch,开启时执行1,关闭时执行2

1:开启阀门开关GPIO12输出100ms高电平, J1继电器吸合,输出状态变成  A→12V   B→GND   100ms,阀门开启

2:关闭阀门开关GPIO14输出100ms高电平, J1继电器吸合,输出状态变成  A→GND   B→12V    100ms,阀门关闭

今天也是体验全新的一个方式,在论坛和你聊起来了,哈哈
但是我还是很期待您能帮我解决这个问题,谢谢你
回复

使用道具 举报

12

主题

145

帖子

1183

积分

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1038
HASS币
0
 楼主| 发表于 2020-4-17 17:26:17 | 显示全部楼层
情非殇 发表于 2020-4-17 14:48
就是说,只要在前端显示1个switch,然后,turn_on输出g12,turn_off输出g14,这个完全没问题,可以写死在e ...

能不能把 1个switch,然后,turn_on输出g12,turn_off输出g14,这个的esp32配置文件发出来我学习下
回复

使用道具 举报

5

主题

322

帖子

1345

积分

金牌会员

Rank: 6Rank: 6

积分
1345
金钱
1023
HASS币
0
发表于 2020-4-17 17:33:38 | 显示全部楼层
本帖最后由 netsnake 于 2020-4-17 17:35 编辑

定义一个显示逻辑开关( - platform: template   ),定义两个隐式开关(- platform: gpio)。
逻辑开关分别定义开关动作对应两个隐式开关的toggle!

这样可以么?
回复

使用道具 举报

12

主题

145

帖子

1183

积分

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1038
HASS币
0
 楼主| 发表于 2020-4-17 17:55:44 | 显示全部楼层
netsnake 发表于 2020-4-17 17:33
定义一个显示逻辑开关( - platform: template   ),定义两个隐式开关(- platform: gpio)。
逻辑开关分 ...

能发配置文件看下吗?谢谢
回复

使用道具 举报

27

主题

2143

帖子

8930

积分

论坛元老

Rank: 8Rank: 8

积分
8930
金钱
6782
HASS币
30

论坛元老

发表于 2020-4-17 18:31:47 | 显示全部楼层
本帖最后由 情非殇 于 2020-4-17 18:36 编辑

还是没太看懂,12和14脉冲是不是有时间限制的,比如只打开1秒,或者只打开2秒复位
目前我理解的你的需求应该是这样


switch:
  - platform: template
    name: "test_01"
    turn_on_action:
      - output.turn_on: GPIO12
    turn_off_action:
      - output.turn_on: GPIO14

output:
  - platform: gpio
    pin: GPIO12
    id: GPIO12
  - platform: gpio
    pin: GPIO14
    id: GPIO14


回复

使用道具 举报

12

主题

145

帖子

1183

积分

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1038
HASS币
0
 楼主| 发表于 2020-4-17 18:37:16 | 显示全部楼层
情非殇 发表于 2020-4-17 18:31
还是没太看懂,12和14脉冲是不是有时间限制的,比如只打开1秒,或者只打开2秒复位
目前我理解的是这样

是的,12 和14   要设置打开1秒就复位
回复

使用道具 举报

27

主题

2143

帖子

8930

积分

论坛元老

Rank: 8Rank: 8

积分
8930
金钱
6782
HASS币
30

论坛元老

发表于 2020-4-17 18:40:49 | 显示全部楼层
本帖最后由 情非殇 于 2020-4-17 18:47 编辑
bynow 发表于 2020-4-17 18:37
是的,12 和14   要设置打开1秒就复位

自己测试下,我不确定是否符合需求

switch:
  - platform: template
    name: "test_01"
    restore_state: false
    turn_on_action:
      - output.turn_on: GPIO12
      - delay: 1s
      - output.turn_off: GPIO12
    turn_off_action:
      - output.turn_on: GPIO14
      - delay: 1s
      - output.turn_off: GPIO14

output:
  - platform: gpio
    pin:
      number: 12
      mode: OUTPUT
      inverted: false
    id: GPIO12
  - platform: gpio
    pin:
      number: 14
      mode: OUTPUT
      inverted: false
    id: GPIO14
回复

使用道具 举报

12

主题

145

帖子

1183

积分

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1038
HASS币
0
 楼主| 发表于 2020-4-17 19:04:26 | 显示全部楼层
情非殇 发表于 2020-4-17 18:40
自己测试下,我不确定是否符合需求

加个qq联系下把 249964315
回复

使用道具 举报

5

主题

322

帖子

1345

积分

金牌会员

Rank: 6Rank: 6

积分
1345
金钱
1023
HASS币
0
发表于 2020-4-20 17:38:26 | 显示全部楼层
switch:
  - platform: template
    name: test
    restore_state: false
    turn_on_action:
      - s1.turn_on:
      - delay: 1s
      - s1.turn_off
    turn_off_action:
      - s2.turn_on
      - delay: 1s
      - s2.turn_off
  -platform: GPIO
    name: s1
    pin: GPIO12
    internal: true
  -platform: GPIO
    name: s2
    pin: GPIO14
    internal: true

大概这个意思,可能句法有问题!
回复

使用道具 举报

12

主题

145

帖子

1183

积分

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1038
HASS币
0
 楼主| 发表于 2020-4-21 19:13:53 | 显示全部楼层
已解决,代码如下,控制2个脉冲阀门,感谢坛友! 情非殇
switch:
  - platform: gpio
    name: "脉冲阀1"
    pin: GPIO27
    id: current_state1
    on_turn_on:
      - output.turn_on: GPIO12
      - delay: 1ms
      - output.turn_off: GPIO12
    on_turn_off:
      - output.turn_on: GPIO14
      - delay: 1ms
      - output.turn_off: GPIO14
  - platform: gpio
    name: "脉冲阀2"
    pin: GPIO13
    id: current_state2
    on_turn_on:
      - output.turn_on: GPIO15
      - delay: 1ms
      - output.turn_off: GPIO15
    on_turn_off:
      - output.turn_on: GPIO16
      - delay: 1ms
      - output.turn_off: GPIO16
output:
  - platform: gpio
    pin:
      number: 12
      mode: OUTPUT
      inverted: false
    id: GPIO12
  - platform: gpio
    pin:
      number: 14
      mode: OUTPUT
      inverted: false
    id: GPIO14
  - platform: gpio
    pin:
      number: 15
      mode: OUTPUT
      inverted: false
    id: GPIO15
  - platform: gpio
    pin:
      number: 16
      mode: OUTPUT
      inverted: false
    id: GPIO16

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 19:14 , Processed in 0.057181 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表