Home Assistant - Sensor de Luz integrado ao Home Assistant
Olá meus Unicórnios! 🦄✨
Existem muitos recursos, que são caros para comprar prontos, ou que você nem acha no Brasil, sendo necessário importar e pagar os impostos devidos.
Porem, se você for um pessoa que gosta de explorar eletrônica, podes montar seu próprio dispositivo!
Um destes é o sensor de LUZ, conhecido como LDR, que permite identificar se existe luz no ambiente.
Este tipo de sensor, se for comprado pronto para integrar, é muito difícil de achar no Brasil, sendo necessário importar:
Porem temos formas mais simples e divertidas.
Gosto de explorar diversas áreas, e uma delas é a eletrônica!
Então, neste tutorial, iremos conectar um "Sensor de LUZ (LDR)" em uma placa "ESP8266 (NodeMCU)", integrado ao ESPHome e posteriormente integrado ao Home Assistant.
Mas calma, não é complicado!
Tutoriais recomendados
Para este tutorial, é necessário que você tenha um conhecimento prévio em ESPHome.
Com isto, recomendo que você veja os tutoriais abaixo para aprender a instalar o ESPHome em seu Home Assistant e aprender a criar/compilar seus códigos:
O que iremos utilizar
Para esta integração, precisamos de alguns componentes eletrônicos que podem ser localizados facilmente no MercadoLivre.
Placa ESP8266 (NodeMCU)
Recomendo optar pelo modelo V3 com Chip CH340G, é a versão mais recente:
Módulo LDR
Este módulo possui um Chip LM393 e já incorpora um CI que trata o sinal do Chip e envia um sinal digital, neste sinal, podemos apenas ler o sinal ao invés de analisar o valor gerado pelo LM393.
Muito mais simples que integrar manualmente um LDR.
Apenas para explicar mais detalhadamente, o sensor de luz é só a parte da ponta do módulo:
O resto são os componentes que irão "traduzir" a informação do sensor em um sinal "on/off".
Isto porque, o Chip é um resistor que abaixa/aumenta a resistência quando identifica luz.
Então, se fossemos fazer na mão, teríamos de calcular a voltagem gerada para considerar "com" ou "sem" luz.
Por isto, o módulo, ajuda MUITO.
Fios Jumper
Se você ainda não tem, compre! Você vai utilizar em muitos projetos:
Estes fios permitem a conexão rápida entre dispositivos.
Neste tutorial, iremos utilizar os fios "Fêmea X Fêmea" para conectar o "Módulo LDR" na "Placa ESP8266".
Montando o Circuito
Antes de qualquer coisa, iremos conectar o "Módulo LDR" na placa "ESP8266".
Aqui você precisa ficar atendo em seu módulo LDR, dependendo do módulo a ordem dos fios pode mudar.
Neste anúncio que mostrei acima, podemos ver o que cada pino deve receber vendo sua legenda:
Alguns modelos, possuem uma saída "A0", que é uma saída Analógica que requer um tratamento bem diferente.
Aqui podemos ver que existem três pinos, vendo da esquerda para direita:
- D0: Pino Digital, este é o pino que informa se identificou luz ou não
- GND: Este é o Negativo, normalmente ele nem tem texto, mas tem um símbolo de terra
- VCC: Aqui é o Positivo (Aqui é requerido 5V, porem, você pode ligar 3V sem problema)
Em sua Placa ESP8266, temos diversos pinos, onde cada pino possui uma função:
Aqui podemos ver alguns detalhe:
- Alguns dos pinos possuem a legenda "3V", isto indica, que este pino fornece 3V
- Os pinos Terra tem a legenda "G" (Que vem de GND/Ground - Indicando Terra)
Para ligar o Módulo na Placa, iremos conectar os Pinos de Energia, e o Pino Digital iremos ligar em uma das portas digitas na Placa, neste caso, no pino "D2":
Depois de ligar o módulo na placa, devemos ter uma montagem semelhante a esta:
Criando nosso Script no ESPHome
Aqui já presumo que você já sabe fazer as configurações básicas conforme o Tutorial abaixo:
O que precisamos configurar, além das configurações padrões, é configurar um "binary_sensor" que ira verificar o pino "D2".
Lembre-se, este é um Pino DIGIAL que iremos mapear com um sensor BINÁRIO.
O código deve ficar similar ao código abaixo:
binary_sensor:
- platform: gpio
pin:
number: D2
inverted: true
name: "luz"
filters:
- delayed_on: 10ms
- delayed_off: 10ms
Observe aqui alguns detalhes:
- pin.number: Pino que iremos utilizar, neste caso, o Pino D2
- pin.inverted: Precisamos indicar para inverter os valores, isto porque, por padrão, será retornado "ON" pra indicar "Luz não Identificada" e quero que o "ON" indique "Luz Identificada" (Fica mais intuitivo)
- name: Nome de nosso sensor
- filters: Este é um ponto importante, estamos definindo um "delay" de "10 ms", isto evita os falsos positivos (Isto porque, pode levar alguns ms para o módulo indicar um resultado para a porta digital)
No final, devemos ter um Script similar a este:
esphome:
name: "aula1"
esp8266:
board: nodemcuv2
logger:
api:
encryption:
key: "xj+BhqlLBA98+kivomX9jHuy8zyK/gyUSsvjalib+9s="
reboot_timeout: 0s
ota:
password: "523e8d5eb0ccf2bb9e5aefed3019a4f2"
web_server:
port: 80
auth:
username: "teste1"
password: "12345678"
wifi:
ssid: "sua_rede"
password: "senha_de_sua_rede"
sensor:
- platform: wifi_signal
name: "wifi_signal_db"
update_interval: 60s
binary_sensor:
- platform: gpio
pin:
number: D2
inverted: true
name: "luz"
filters:
- delayed_on: 10ms
- delayed_off: 10ms
Após isto, Compile seu Script e Configure em seu Home Assistant, seguindo o Tutorial abaixo:
Resultado
No Home Assistant, podemos ver o Sensor com nome "Luz":
Observe que este sensor tem dois valores:
- Desligado: Não identificou Luz suficiente - ESCURO
- Ligado: Identificou Luz suficiente - CLARO
Automação
Com estas informações podemos criar automações que façam coisas quando estiver escuro/claro:
Calibrando Sensor de Luz
Dependendo da quantidade de luz do ambiente, ele pode indicar "Ligado/Desligado" quando tiver pouca luz ou um pouco escuro.
Isto pode ser ajustado diretamente no módulo.
Observe que existe uma peça em cima do Módulo:
Este componente é um "Trimpot" que, neste módulo, permite ajustar a sensibilidade do sensor.
Para isto, gire o centro do Trimpot, enquanto faz testes até chegar em um resultado satisfatório.
Por hoje é só, meus unicórnios! 🦄✨
Que a magia do arco-íris continue brilhando em suas vidas! Até mais! 🌈🌟