Índice:

MQTT / Google Home DoorBell usando ESP-01: 6 etapas
MQTT / Google Home DoorBell usando ESP-01: 6 etapas

Vídeo: MQTT / Google Home DoorBell usando ESP-01: 6 etapas

Vídeo: MQTT / Google Home DoorBell usando ESP-01: 6 etapas
Vídeo: Умное окно - автоматизация проветривания комнаты, интеграция в Home Assistant 2024, Novembro
Anonim
MQTT / Google Home DoorBell usando ESP-01
MQTT / Google Home DoorBell usando ESP-01

Você já deixou de atender um hóspede que tocou a campainha só porque você está em uma parte da casa que é muito longe para ouvir a campainha? como porão, quarto com porta fechada ou talvez você estivesse assistindo TV ou ouvindo música.

Se, como eu, você tiver um ou mais alto-falantes domésticos do Google em vários locais da sua casa, talvez este seja o que você precisa.

Neste Instructable, irei mostrar a você como adicionar o cliente MQTT a um carrilhão de campainha existente para se comunicar com o corretor MQTT com anúncio para google home / pushbullet, usando NodeRED. Este projeto não substitui o interruptor da campainha nem o carrilhão. Ele ainda usa botão mecânico normal para a campainha.

Vamos adicionar o módulo ESP-01 ao sistema de campainha 16VAC existente, adicionando a funcionalidade MQTT para enviar mensagem ao corretor MQTT (quando o botão da campainha é pressionado). O broker MQTT retransmitiria a mensagem para NodeRED. Ao receber a mensagem MQTT, o NodeRED enviaria o anúncio para vários dispositivos domésticos do Google e também, opcionalmente, enviaria a mensagem para o celular / navegador via pushbullet.

Eu tenho uma paixão por automação residencial DIY e, lentamente, adicionando IOT à minha casa. O Google Home tem sido uma das funções centrais na minha automação residencial.

Meu filho me deu a ideia para este projeto quando me perguntou se eu posso fazer a home do google anunciar cada vez que alguém toca nossa campainha. Temos 2 andares + térreo em casa, e muitas vezes não conseguíamos ouvir o carrilhão quando estávamos em nosso porão ou no andar de cima em um quarto com a porta fechada ou com a TV ligada.

Temos 4 google home mini em nossa casa colocados em vários lugares / cômodos, e usando o google home para anunciar uma campainha, sabemos imediatamente em qualquer lugar da casa se alguém tocar a campainha.

Em minha casa, eu uso o RaspberryPi ZeroW para hospedar o servidor Mosquitto MQTT e o NodeRED. Está em execução há mais de um ano sem nenhum problema.

Referências:

  • Diagramas de fiação da campainha:
  • Instale o Mosquitto MQTT Broker no Raspberry Pi:
  • Instale o NodeRED no Raspberry Pi:

Etapa 1: Crie o circuito para fazer a interface ESP-01 e o carrilhão da porta

Crie o circuito para interface ESP-01 e carrilhão de porta
Crie o circuito para interface ESP-01 e carrilhão de porta
Crie o circuito para interface ESP-01 e carrilhão de porta
Crie o circuito para interface ESP-01 e carrilhão de porta
Crie o circuito para interface ESP-01 e carrilhão de porta
Crie o circuito para interface ESP-01 e carrilhão de porta

O primeiro passo seria criar o circuito que seria a interface entre o ESP-01 e o carrilhão da porta. O carrilhão típico da porta é ativado quando há um 16VAC entre os pinos "TRANS (anterior)" e "FRONT / TRASEIRO", conforme mostrado na minha primeira foto. A voltagem se apresenta nesses pinos quando o botão da campainha é pressionado.

O circuito que projetei é para detectar esse sinal de 16 VCA e convertê-lo para cerca de um sinal digital de 3,3 VCC. É um retificador básico de meia onda formado por D1 e C1. Não precisamos ter um retificador de onda completa nesta situação, pois há muito pouca carga na saída CC, economizando um pouco de espaço na placa. Quero deixar o quadro o menos possível para que possa colocá-lo dentro do meu carrilhão existente.

R1 e R2 formam o divisor de tensão para reduzir a tensão CC de pico para cerca de 3,3V.

R3, TR1 e R4 formam um inversor para fornecer lógica reversa para o ESP-01 GPIO-2. Isso é necessário para fornecer a lógica ALTA durante a inicialização (com o pull-up R4 e R5) para o ESP-01 inicializar a partir do flash. Quando o botão da campainha é pressionado apresenta lógica LOW para o GPIO-2. TR1 pode ser qualquer transistor NPN de pequena potência, no meu caso usei 2N3904.

A V1 é uma fonte de alimentação de 3,3 VCC que construí usando um antigo carregador de celular de 5 V acoplado a um regulador de 3,3 VCC AMS1117 que mostrarei na próxima etapa.

Para o soquete ESP-01, eu uso um soquete IC padrão de 8 pinos, e corte as pontes de plástico que criam a lacuna entre as fileiras e, em seguida, colo as 2 fileiras.

Etapa 2: Fonte de alimentação de 3,3 VCC para ESP-01

Fonte de alimentação de 3,3 VCC para ESP-01
Fonte de alimentação de 3,3 VCC para ESP-01
Fonte de alimentação de 3,3 VCC para ESP-01
Fonte de alimentação de 3,3 VCC para ESP-01
Fonte de alimentação de 3,3 VCC para ESP-01
Fonte de alimentação de 3,3 VCC para ESP-01

Nesta etapa, iremos construir a fonte de alimentação de 3,3 VCC para o ESP-01. Eu tenho alguns adaptadores de carregador USB 5VDC de 500mA e 700mA que reaproveitei para este projeto. Também precisamos de um regulador de 3,3 VCC para diminuir a tensão de 5 V para 3,3 V, para isso estou usando um módulo regulador pré-construído barato baseado em AMS1117 que comprei no ebay. Você pode pesquisar por "módulo 3.3V AMS1117" e descobrir o que funciona para você.

Este módulo regulador de 3,3 V é muito pequeno e posso colocá-lo dentro da caixa do carregador USB de 5 V original, tornando-o mais seguro contra curto-circuito em potencial. Eu removi os pinos de parede CA do módulo do carregador e substituí-o por dois cabos que serão conectados a 120 VCA da parede atrás do meu carrilhão existente. Mas não remova os pinos nesta etapa até que façamos o teste na próxima etapa.

Se houver uma tomada de parede por perto, ou se você não se sentir confortável em conectar a fonte de alimentação diretamente à fiação da casa, você pode, opcionalmente, apenas conectar a fonte de alimentação modificada ao plugue da parede e passar o cabeamento ao carrilhão, embora pode não parecer tão limpo quanto conectá-lo diretamente à fiação da casa.

Veja uma das minhas fotos para ver que atrás do meu carrilhão está a fiação 120VAC e o transformador 16VAC para o carrilhão.

A saída do regulador de 3,3 V seria então conectada à placa de interface do ESP-01 de acordo com a etapa anterior.

Etapa 3: Atualizando o ESP-01

Nesta etapa, faremos um flash do ESP-01 com o esboço do arduino. Se você nunca atualizou o módulo ESP-01, pode seguir minhas instruções para começar:

Você pode encontrar meu esboço na minha página do github:

No esboço, você precisa, no mínimo, alterar as seguintes informações relativas à sua rede / configuração doméstica:

#define MQTT_SERVER "10.0.0.30" const char * ssid1 = "SSID"; const char * password1 = "MYSSIDpassword"; const char * ssid2 = "SSID1"; const char * password2 = "MYSSIDpassword";

Na minha rede doméstica, eu tenho 2 pontos de acesso diferentes que transmitem 2 SSIDs diferentes, e este esboço permitiria redundância conectando-se ao próximo SSID se a comunicação com o AP atual fosse perdida. Se você tiver apenas um SSID, preencha ssid1 e ssid2 com o mesmo valor.

Depois de fazer a modificação, carregue o esboço no ESP-01 e conecte o ESP-01 na placa de interface.

Etapa 4: execução de teste

Execução de teste
Execução de teste
Execução de teste
Execução de teste
Execução de teste
Execução de teste

Na etapa 1, construímos a placa de interface ESP-01 e, na etapa 2, temos a fonte de alimentação de 3,3 V para a placa ESP-01. Agora conectamos a saída da fonte de alimentação à placa de acordo com o diagrama do circuito, mostrado como V1.

Agora, a próxima etapa é conectar os terminais Trans / Porta do carrilhão às conexões da placa de interface mostradas como "Terminais do carrilhão da porta". Como meu carrilhão está montado no alto de uma parede, para o teste, passo temporariamente um longo par de cabos dos terminais do carrilhão até a placa para poder conectar a fonte de alimentação.

Para testar se nossa engenhoca funciona, o mais fácil seria monitorar mensagens MQTT na rede. Para fazer isso, você precisa abrir uma sessão SSH para o corretor mosquitto e emitir o seguinte comando:

mosquitto_sub -v -t '#'

O comando acima nos permitiria ver todas as mensagens MQTT chegando ao broker.

Agora conecte a fonte de alimentação à tomada da parede e, se tudo funcionar, em alguns segundos você deverá ver pelo menos a seguinte mensagem MQTT:

stat / DoorBell / LWT Online

Agora saia e toque a campainha, e você verá esta mensagem:

tele / campainha LIGADA

Se você vir essas mensagens, seu projeto é um sucesso.

Também incluí vários tópicos MQTT úteis no esboço que você pode usar:

"stat / DoorBellInfo": esta mensagem é enviada a cada minuto para fornecer tempo de atividade e outras informações.

"cmnd / DoorBellInfo": ESP-01 enviará informações se receber este tópico com valor de '1' (ascii = 49) "cmnd / DoorBellCPUrestart": ESP-01 será reiniciado se receber este tópico com valor de '1 '(ascii = 49) "cmnd / DoorBellCPUreset": ESP-01 será redefinido se receber este tópico com valor de' 1 '(ascii = 49)

"tele / FrontDoorBell": ESP-01 irá enviar mensagem neste tópico com valor de 'ON' se a campainha for pressionada

Etapa 5: Integrando a placa e a fonte de alimentação no carrilhão

Integrando a placa e a fonte de alimentação no carrilhão
Integrando a placa e a fonte de alimentação no carrilhão
Integrando a placa e a fonte de alimentação no carrilhão
Integrando a placa e a fonte de alimentação no carrilhão
Integrando a placa e a fonte de alimentação no carrilhão
Integrando a placa e a fonte de alimentação no carrilhão

Agora que nosso teste foi bem-sucedido, precisamos montar a placa e a fonte de alimentação dentro da campainha (se possível). No meu carrilhão existente, há um gabinete vazio que consegui cortar e abrir e colocar a fonte de alimentação dentro desse espaço. A placa ESP-01 não cabe naquele pequeno espaço, mas ainda cabe dentro da caixa geral de carrilhão. Acabei de usar uma fita dupla-face espessa para montar a placa de interface do ESP-01.

Agora podemos remover os pinos de metal de nosso carregador USB e substituí-los por um cabo mais grosso que podemos conectar à fiação da casa. Certifique-se de desligar o disjuntor que fornece eletricidade para o circuito do carrilhão.

Se não houver espaço suficiente para caber nosso projeto no carrilhão da porta existente, você precisará colocá-lo em uma caixa separada e montá-lo perto do carrilhão da porta.

Etapa 6: toque final

Toque final
Toque final

Agora que o projeto está funcionando e podemos publicar a mensagem MQTT para o broker, a próxima etapa é pensar em uma ideia o que fazer com isso.

Em meu projeto, eu uso o Node-RED para ouvir / assinar aquele tópico MQTT da campainha e anunciar para vários alto-falantes domésticos do Google. Além disso, também vinculei o fluxo a um nó de pushbullet para enviar notificação ao meu telefone android para que eu saiba se alguém toca a campainha, mesmo que eu não esteja em casa. Notificação pushbullet não é útil para alguns, mas tem sido muito útil algumas vezes para mim, juntamente com a câmera de vídeo na minha varanda, posso ver quem veio para entregar as entregas (geralmente eles tocam a campainha). Não posso confiar muito no recurso de detecção de movimento da câmera devido a várias interferências, principalmente sombras em movimento de árvores.

A imagem nesta etapa mostra o fluxo do Node-RED para fazer isso. Você também pode colar o fluxo da minha página do github em seu Node-RED:

O anúncio da página inicial do Google é apenas um exemplo para este projeto, mas acho que é o mais útil e prático. Você sempre pode fazer interface com outro ouvinte MQTT ou até mesmo usar o IFTTT para acionar outros dispositivos após o toque da campainha.

Divirta-se…

Recomendado: