Sommario:

MQTT/Google Home DoorBell con ESP-01: 6 passaggi
MQTT/Google Home DoorBell con ESP-01: 6 passaggi

Video: MQTT/Google Home DoorBell con ESP-01: 6 passaggi

Video: MQTT/Google Home DoorBell con ESP-01: 6 passaggi
Video: ESP8266 + MQTT + Home Assistant 2024, Novembre
Anonim
MQTT/Google Home Campanello con ESP-01
MQTT/Google Home Campanello con ESP-01

Ti è mai mancato di rispondere a un ospite che ha suonato alla tua porta solo perché ti trovi in una parte della casa troppo lontana per sentire il suono del campanello? come il seminterrato, la camera da letto con la porta chiusa o forse stavi guardando la TV o ascoltando musica.

Se come me, hai uno o più altoparlanti Google Home in diversi punti della casa, questo istruibile potrebbe essere ciò di cui hai bisogno.

In questo Instructable ti mostrerò come aggiungere il client MQTT a un campanello esistente per comunicare con il broker MQTT con annuncio a google home / pushbullet, utilizzando NodeRED. Questo progetto non sostituisce l'interruttore del campanello né il cicalino. Utilizza ancora un normale pulsante meccanico per il campanello.

Aggiungeremo il modulo ESP-01 al sistema di campanello 16VAC esistente aggiungendo la funzionalità MQTT per inviare un messaggio al broker MQTT (quando viene premuto l'interruttore del campanello). Il broker MQTT trasmetterebbe il messaggio a NodeRED. Dopo aver ricevuto il messaggio MQTT, NodeRED invierà un annuncio a più dispositivi Google Home e facoltativamente invierà anche un messaggio al cellulare/browser tramite pushbullet.

Ho una passione per la domotica fai-da-te e aggiungo lentamente IOT alla mia casa. Google home è stata una delle funzioni centrali della mia automazione domestica.

Mio figlio mi ha dato l'idea per questo progetto quando mi ha chiesto se posso far annunciare a Google Home ogni volta che qualcuno suona il campanello. Abbiamo 2 piani + finitura seminterrato a casa, e molte volte non siamo riusciti a sentire il campanello quando siamo nel nostro seminterrato o al piano di sopra in camera da letto con la porta chiusa o con la TV accesa.

Abbiamo 4 google home mini nella nostra casa posizionati in vari luoghi/stanze e, utilizzando google home per annunciare un campanello, sappiamo immediatamente in qualsiasi punto della casa se qualcuno suona il campanello.

A casa mia, utilizzo RaspberryPi ZeroW per ospitare il server Mosquitto MQTT e NodeRED. Funziona da più di un anno senza alcun problema.

Riferimenti:

  • Schemi di cablaggio del campanello:
  • Installa Mosquitto MQTT Broker su Raspberry Pi:
  • Installa NodeRED su Raspberry Pi:

Passaggio 1: creare il circuito per interfacciare ESP-01 e Door Chime

Crea il circuito per interfacciare ESP-01 e Door Chime
Crea il circuito per interfacciare ESP-01 e Door Chime
Crea il circuito per interfacciare ESP-01 e Door Chime
Crea il circuito per interfacciare ESP-01 e Door Chime
Crea il circuito per interfacciare ESP-01 e Door Chime
Crea il circuito per interfacciare ESP-01 e Door Chime

Il primo passo sarebbe creare il circuito che sarebbe l'interfaccia tra ESP-01 e Door Chime. Il tipico campanello della porta viene attivato quando c'è un 16VAC tra i pin "TRANS (ex)" e "FRONT/REAR" come mostrato nella mia prima foto. La tensione presente su quei pin quando viene premuto il pulsante del campanello.

Il circuito che ho progettato è quello di rilevare questo segnale da 16 V CA e convertirlo in un segnale digitale di circa 3,3 V CC. È un raddrizzatore a semionda di base formato da D1 e C1. Non abbiamo bisogno di avere un raddrizzatore a onda intera in questa situazione poiché c'è pochissimo carico sull'uscita DC, risparmiandoci un po' di spazio sulla scheda. Voglio rendere la scheda il meno possibile in modo da poterla posizionare all'interno del mio cicalino esistente.

R1 e R2 formano un divisore di tensione per ridurre la tensione CC di picco fino a circa 3,3 V.

R3, TR1 e R4 formano un inverter per fornire la logica inversa per ESP-01 GPIO-2. Ciò è necessario per fornire la logica HIGH durante l'avvio (con il pull-up R4 e R5) affinché ESP-01 si avvii da flash. Quando viene premuto il pulsante del campanello, presenta la logica LOW al GPIO-2. TR1 può essere un qualsiasi transistor NPN di piccola potenza, nel mio caso ho usato 2N3904.

Il V1 è un alimentatore da 3,3 V CC che ho costruito utilizzando un vecchio caricatore per cellulare da 5 V accoppiato con il regolatore AMS1117 3,3 V CC che mostrerò nel passaggio successivo.

Per la presa ESP-01, utilizzo una presa IC standard a 8 pin e taglio i ponti di plastica che creano lo spazio tra le file, quindi incollo le 2 file insieme.

Passaggio 2: alimentatore da 3,3 V CC per ESP-01

Alimentatore 3.3VDC per ESP-01
Alimentatore 3.3VDC per ESP-01
Alimentatore 3.3VDC per ESP-01
Alimentatore 3.3VDC per ESP-01
Alimentatore 3.3VDC per ESP-01
Alimentatore 3.3VDC per ESP-01

In questo passaggio, costruiremo l'alimentatore da 3,3 V CC per ESP-01. Ho alcuni vecchi adattatori per caricabatterie USB da 500 mA e 700 mA 5 V CC che ho riproposto per questo progetto. Abbiamo anche bisogno di un regolatore da 3,3 V CC per ridurre la tensione da 5 V a 3,3 V, per questo sto usando un modulo regolatore basato su AMS1117 precostruito economico che ho acquistato da ebay. Puoi cercare "modulo AMS1117 da 3,3 V" e trovare ciò che funziona per te.

Questo modulo regolatore da 3,3 V è molto piccolo e posso effettivamente inserirlo all'interno della custodia del caricatore USB da 5 V originale, rendendolo più sicuro da potenziali cortocircuiti. Ho rimosso i poli della parete CA dal modulo del caricatore e l'ho sostituita con due cavi che saranno collegati a 120 V CA dalla parete dietro il mio cicalino esistente. Ma non rimuovere i poli in questo passaggio fino a quando non eseguiamo il test nel passaggio successivo.

Se c'è una presa a muro nelle vicinanze, o se non ti senti a tuo agio con il cablaggio dell'alimentatore direttamente al cablaggio della casa, puoi facoltativamente semplicemente collegare l'alimentatore modificato alla presa a muro e far passare il cablaggio al cicalino, sebbene potrebbe non sembrare pulito come collegarlo direttamente al cablaggio della casa.

Guarda una delle mie foto per vedere che dietro il mio cicalino c'è il cablaggio da 120 V CA e il trasformatore da 16 V CA per il cicalino.

L'uscita dal regolatore a 3,3 V si collegherebbe quindi alla scheda di interfaccia ESP-01 secondo il passaggio precedente.

Passaggio 3: lampeggio dell'ESP-01

In questo passaggio, lampeggeremo l'ESP-01 con lo schizzo di arduino. Se non hai mai eseguito il flashing del modulo ESP-01, puoi seguire le mie istruzioni per iniziare:

Puoi trovare il mio schizzo nella mia pagina github:

Nello schizzo, come minimo è necessario modificare le seguenti informazioni relative alla rete/configurazione domestica:

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

Nella mia rete domestica, ho 2 punti di accesso diversi che trasmettono 2 SSID diversi e questo schizzo consentirebbe la ridondanza collegandosi al SSID successivo se la comunicazione con l'AP corrente viene persa. Se hai un solo SSID, popola ssid1 e ssid2 con lo stesso valore.

Una volta apportata la modifica, carica lo schizzo in ESP-01 e collega ESP-01 alla scheda di interfaccia.

Passaggio 4: esecuzione di prova

Prova
Prova
Prova
Prova
Prova
Prova

Dal passaggio 1 abbiamo costruito la scheda di interfaccia ESP-01 e dal passaggio 2 abbiamo l'alimentatore da 3,3 V per la scheda ESP-01. Ora colleghiamo l'uscita dell'alimentatore alla scheda secondo lo schema elettrico, mostrato come V1.

Ora il passaggio successivo consiste nel collegare i terminali Trans/Door del campanello ai collegamenti della scheda di interfaccia indicati come "Terminali del campanello". Poiché il mio cicalino è montato in alto su una parete, per la prova di funzionamento, faccio passare temporaneamente una lunga coppia di cavi dai terminali del cicalino alla scheda in modo da poter collegare l'alimentatore.

Per verificare se il nostro aggeggio funziona, il modo più semplice sarebbe monitorare i messaggi MQTT nella rete. Per fare ciò, è necessario aprire una sessione SSH al broker mosquitto ed emettere il seguente comando:

mosquitto_sub -v -t '#'

Il comando precedente ci consentirebbe di vedere tutti i messaggi MQTT in arrivo nel broker.

Ora collega l'alimentatore alla presa a muro e, se tutto funziona, in pochi secondi dovresti almeno vedere il seguente messaggio MQTT:

stat/DoorBell/LWT Online

Ora vai fuori e suona il campanello e dovresti vedere questo messaggio:

tele/campanello ON

Se vedi quei messaggi, il tuo progetto è un successo.

Ho anche incluso diversi argomenti MQTT utili nello sketch che puoi usare:

"stat/DoorBellInfo": questo messaggio viene inviato ogni minuto per fornire uptime e altre informazioni.

"cmnd/DoorBellInfo": ESP-01 invierà informazioni se riceve questo argomento con valore '1' (ascii=49)"cmnd/DoorBellCPUrestart": ESP-01 si riavvierà se riceve questo argomento con valore '1 ' (ascii=49)"cmnd/DoorBellCPUreset": ESP-01 si reimposterà se riceve questo argomento con valore '1' (ascii=49)

"tele/FrontDoorBell": ESP-01 invierà un messaggio in questo argomento con il valore di 'ON' se viene premuto il campanello

Passaggio 5: integrazione della scheda e dell'alimentatore nel campanello

Integrazione della scheda e dell'alimentatore nel campanello
Integrazione della scheda e dell'alimentatore nel campanello
Integrazione della scheda e dell'alimentatore nel campanello
Integrazione della scheda e dell'alimentatore nel campanello
Integrazione della scheda e dell'alimentatore nel campanello
Integrazione della scheda e dell'alimentatore nel campanello

Ora che abbiamo eseguito con successo il nostro test, dobbiamo assemblare la scheda e l'alimentatore all'interno del nostro campanello (se possibile). Nel mio cicalino esistente, c'è un involucro vuoto che sono stato in grado di aprire e inserire l'alimentatore all'interno di quello spazio. La scheda ESP-01 non si adatta a quel poco spazio, ma si adatta comunque all'intera scatola del cicalino. Ho appena usato uno spesso nastro biadesivo per montare la scheda di interfaccia ESP-01.

Ora possiamo rimuovere i poli metallici dal nostro caricatore USB e sostituirli con un cavo più spesso che possiamo collegare al cablaggio di casa. Assicurati di spegnere l'interruttore di circuito che fornisce l'elettricità al circuito del cicalino.

Se non c'è abbastanza spazio per inserire il nostro progetto nel campanello della porta esistente, dovrai inserirlo in una scatola separata e montarlo vicino al campanello della porta.

Passaggio 6: tocco finale

Tocco finale
Tocco finale

Ora che abbiamo il progetto funzionante e siamo in grado di pubblicare il messaggio MQTT sul broker, il passo successivo è pensare a cosa farne.

Nel mio progetto, utilizzo Node-RED per ascoltare/iscrivermi a quell'argomento MQTT del campanello e annunciare a diversi oratori domestici di Google. Oltre a ciò, ho anche collegato il flusso a un nodo pushbullet per inviare una notifica al mio telefono Android in modo da sapere se qualcuno suona il campanello anche se non sono a casa. La notifica pushbullet non è stata utile ad alcuni, ma è stata abbastanza utile per me un paio di volte, insieme alla videocamera sulla mia veranda, posso vedere chi è venuto a lasciare le consegne (di solito suonano il campanello). Non posso fare molto affidamento sulla funzione di rilevamento del movimento della fotocamera a causa di varie interferenze, in particolare le ombre in movimento degli alberi.

L'immagine in questo passaggio mostra il flusso Node-RED per ottenere ciò. Puoi anche incollare il flusso dalla mia pagina github nel tuo Node-RED:

L'annuncio di Google home è solo un esempio per questo progetto, ma penso che sia il più utile e pratico. Puoi sempre interfacciarti con altri ascoltatori MQTT o persino utilizzare IFTTT per guidare altri dispositivi quando viene premuto il campanello.

Divertiti…

Consigliato: