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

 找回密码
 立即注册
查看: 1072|回复: 4

[技术探讨] 【求助】关于ESPhome判断继电器状态问题

[复制链接]

2

主题

9

帖子

157

积分

注册会员

Rank: 2

积分
157
金钱
148
HASS币
0
发表于 2023-2-10 23:12:17 | 显示全部楼层 |阅读模式
本帖最后由 onecombo 于 2023-2-11 20:53 编辑

小老弟我最近有个需求,想在ESP32上接个继电器,继电器常开ESP32执行一条命令,继电器常闭执行另一条命令。
有什么检测或者判断的好方法吗?如有大佬指点,感激不尽。稍微研究了一下官方问题,写了一段代码,但不知道哪里出了问题,始终没有继电器的反馈,我先把我的代码贴出来,希望大佬们帮我看看是哪里出了问题。

接线方式是,15口接了一个1527芯片的315发射模块date,VCC,GND由esp32提供,16口接了继电器模块的常闭,继电器公共端接esp32GND。


esphome:
  name: "auto-pool"

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esphome-Web-299340"
    password: "Q4AHOumUUSGD"

captive_portal:

remote_transmitter:
  pin: GPIO15
  carrier_duty_percent: 100%


binary_sensor:
  - platform: gpio
    pin: 16
    name: pool_status
    id: status

switch:
  - platform: template
    name: "get_pool_status"
    lambda: |-
      if (id(status).state) {
        return true;
      } else {
        return false;
      }
    turn_on_action:
      - switch.turn_on: switch_on
    turn_off_action:
      - switch.turn_on: switch_off

  - platform: template
    name: pool_on
    id: switch_on
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: []  #完整code太长了为了方便大佬们观感,暂且留空

  - platform: template
    name: pool_off
    id: switch_off
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: []




回复

使用道具 举报

26

主题

2096

帖子

8514

积分

论坛元老

Rank: 8Rank: 8

积分
8514
金钱
6413
HASS币
30

论坛元老

发表于 2023-2-11 08:10:00 | 显示全部楼层
回复

使用道具 举报

1

主题

22

帖子

190

积分

注册会员

Rank: 2

积分
190
金钱
168
HASS币
0
发表于 2023-2-11 11:17:46 | 显示全部楼层
回复

使用道具 举报

6

主题

114

帖子

809

积分

高级会员

Rank: 4

积分
809
金钱
695
HASS币
0
发表于 2023-2-14 18:34:27 | 显示全部楼层
是不是这种?
是的话下面这个可以
switch:                           ##设备类型;
  - platform: gpio                ##平台;
    name: "热水器"      ##自定义名称,最好起关联的名称;
    pin: GPIO0                    ##ESP01/01S 是GPIO0脚;
    id: relay1                     ##ID 为继电器开关;
    inverted: True                 ## inverted 参数,表示低电平有效,即继电器是低电平触发;

binary_sensor:    #翘板开关联动                                            
  - platform: gpio                                                            
    id: button                                                               
    pin:
      number: GPIO3  #接RX GPIO3脚和gnd线与翘板开关相连
      inverted: True
      mode: INPUT_PULLUP
    device_class: opening
    filters:
      - delayed_on_off: 100ms #这里一定要加这个这个起到滤波的作用。  
    on_state:
      then:
        - switch.toggle:
            id: relay1
2023-02-14 18-32-11 的屏幕截图.png
回复

使用道具 举报

2

主题

9

帖子

157

积分

注册会员

Rank: 2

积分
157
金钱
148
HASS币
0
 楼主| 发表于 2023-2-14 22:28:34 | 显示全部楼层
谢谢大佬们帮助,我找到问题的原因了,
第一个是我应该把继电器常开和板子的数据口接一起,然后GND接板子GND。把继电器当开关用才对。
然后就是我应该加上防抖,状态变化200毫秒之内没产生变化的操作才生效。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-29 03:04 , Processed in 0.110890 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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