Olá Pessoal
Estou com ideia de utilizar o ESP01+Relay para acoplar em um interruptor tipo campainha criando dessa forma um sensor de botão + switch, mas estou com dúvidas como ligar o GPIO2 e configurar o botão no ESPHome.
Na prática quero utilizar as portas GPIO0 como saída OUTPUT controlando o ralay e GPIO2 entrada INPUT controlando o botão, tudo com o ESP01.
Dessa forma terei o controle de lâmpada tanto no Home-Assistant como no botão físico tudo em um só dispositivo.
Como se trata de um teste de bancada ignore o projeto estar rústico
Tenho montado o projeto dessa forma.
Esse o código que estou tentando utilizar, aceito dicas, normalmente eu usava o C++ pela IDE do Arduino mas estou agora focado em usar o pseudo código no YML.
Aceitos dicas de como melhorar, mas ele funciona parcialmente para o controle da GPIO0 pelo através do bloco de “switch:”
Eu quero entender como ligar o esquema elétrico do botão + GPIO2 e como utilizar de forma eficiente no código.
Meu código:
esphome:
name: esp01-ligth-quarto
esp8266:
board: esp01_1m
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "5/u3u8KuA29dY2KMhgj+W5+5pidlWsPYawUMjNXXXX="
ota:
password: "6f9754719f521f2e626864a07c47ecd45dfc"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp01-Ligth-Quarto"
password: "ltdgNDOIhq21"
manual_ip:
# Set this to the IP of the ESP
static_ip: 192.168.2.86
# Set this to the IP address of the router. Often ends with .1
gateway: 192.168.2.1
# The subnet of the network. 255.255.255.0 works for most home networks.
subnet: 255.255.255.0
dns1: 192.168.2.1
dns2: 8.8.8.8
captive_portal:
mqtt:
broker: 192.168.2.75
port: 1883
username: mqtt-xxxxxx
password: xxxxxxx
discovery: true
discovery_retain: true
birth_message:
topic: esp01-ligth-quarto/status
payload: online
will_message:
topic: esp01-ligth-quarto/status
payload: offline"
log_topic:
topic: esp01-ligth-quarto/log
level: ERROR
qos: 0
switch:
- platform: gpio
pin:
number: 0
mode:
output: True
inverted: True
name: "luz"
id: luz
icon: "mdi:light"
on_turn_on:
- logger.log: "Light Turned On!"
on_turn_off:
- logger.log: "Light Turned Off!"
binary_sensor:
- platform: gpio
pin:
number: 2
mode:
input: True
pullup: True
#inverted: True
name: "toggle"
on_click:
#- min_length: 50ms
#max_length: 350ms
then:
switch.toggle: luz
#- lambda:
#id(luz).toggle().state;
#- switch.toggle: luz
on_state:
then:
- logger.log: "Light Turned state"
Mais fotos: