Innholdsfortegnelse:

MQTT/Google Home DoorBell Bruke ESP-01: 6 trinn
MQTT/Google Home DoorBell Bruke ESP-01: 6 trinn

Video: MQTT/Google Home DoorBell Bruke ESP-01: 6 trinn

Video: MQTT/Google Home DoorBell Bruke ESP-01: 6 trinn
Video: Google accidentally made the ULTIMATE Smart Home Dashboard! 2024, November
Anonim
MQTT/Google Home DoorBell ved bruk av ESP-01
MQTT/Google Home DoorBell ved bruk av ESP-01

Har du noen gang savnet å svare på en gjest som ringte på døren din bare fordi du er i en del av huset som er for langt til å høre på dørklokken? som kjeller, soverom med lukket dør, eller kanskje du så på TV eller lyttet til musikk.

Hvis du, som meg, har en eller flere Google -høyttalere på flere steder i huset ditt, kan denne instruksen være det du trenger.

I denne instruksen skal jeg vise deg hvordan du legger til MQTT -klient til en eksisterende ringeklokke for å kommunisere med MQTT -megler med kunngjøring til google home / pushbullet, ved hjelp av NodeRED. Dette prosjektet erstatter ikke ringeklokken eller ringeklokken. Den bruker fremdeles vanlig mekanisk trykknapp for dørklokken.

Vi vil legge til ESP-01-modulen i det eksisterende 16VAC dørklokkesystemet og legge til MQTT-funksjonalitet for å sende melding til MQTT-megler (når dørklokkebryteren trykkes). MQTT -megler ville videresende meldingen til NodeRED. Ved mottak av MQTT -melding ville NodeRED sende kunngjøring til flere Google Home -enheter og eventuelt sende melding til mobiltelefon/nettleser via pushbullet.

Jeg har en lidenskap for DIY hjemmeautomatisering, og sakte å legge IOT til hjemmet mitt. Google home har vært en av de sentrale funksjonene i min hjemmeautomatisering.

Sønnen min ga meg ideen til dette prosjektet da han spurte meg om jeg kan få Google Home til å kunngjøre hver gang noen ringer på døren vår. Vi har 2 etasjer + ferdig kjelleren hjemme, og mange ganger kunne vi ikke høre klokkespillet når vi er i kjelleren eller oppe på soverommet med dør lukket eller med TV på.

Vi har 4 google home mini i huset vårt plassert på forskjellige steder/rom, og ved å bruke google homes til å annonsere en dørklokke, vet vi umiddelbart hvor som helst i huset om noen ringer på døren.

I huset mitt bruker jeg RaspberryPi ZeroW til å være vert for Mosquitto MQTT -server og NodeRED. Det har kjørt i over et år uten problemer.

Referanser:

  • Kabeldiagrammer for dørklokke:
  • Installer Mosquitto MQTT Broker på Raspberry Pi:
  • Installer NodeRED på Raspberry Pi:

Trinn 1: Lag Circuit to Interface ESP-01 og Door Chime

Lag Circuit to Interface ESP-01 og Door Chime
Lag Circuit to Interface ESP-01 og Door Chime
Lag Circuit to Interface ESP-01 og Door Chime
Lag Circuit to Interface ESP-01 og Door Chime
Lag Circuit to Interface ESP-01 og Door Chime
Lag Circuit to Interface ESP-01 og Door Chime

Det første trinnet ville være å lage kretsen som ville være grensesnittet mellom ESP-01 og Door Chime. Typisk dørklokke aktiveres når det er 16VAC mellom "TRANS (tidligere)" og "FRONT/BAK" pinner som vist på mitt første bilde. Spenningen vises på disse pinnene når du trykker på ringeknappen.

Kretsen jeg designet er å føle dette 16VAC -signalet og konvertere det til rundt 3,3VDC digitalt signal. Det er en grunnleggende halvbølge-likeretter dannet av D1 og C1. Vi trenger ikke å ha fullbølge-likeretter i denne situasjonen siden det er veldig lite belastning til DC-utgangen, noe som sparer oss for litt eiendom på tavlen. Jeg vil gjøre brettet så lite som mulig, slik at jeg kan plassere det inne i min eksisterende klokke.

R1 og R2 danner spenningsdeler for å få ned topp DC -spenningen til rundt 3,3V.

R3, TR1 og R4 danner en omformer for å gi omvendt logikk for ESP-01 GPIO-2. Dette er nødvendig for å gi logikk HØY under oppstart (med pull-up R4 og R5) for at ESP-01 skal starte fra flash. Når du trykker på dørklokkeknappen, presenterer den logikk LOW for GPIO-2. TR1 kan være en hvilken som helst liten NPN-transistor, i mitt tilfelle brukte jeg 2N3904.

V1 er en 3.3VDC strømforsyning som jeg bygde ved hjelp av en gammel 5V mobiltelefonlader kombinert med AMS1117 3.3VDC regulator som jeg vil vise i neste trinn.

For ESP-01-kontakten bruker jeg en 8-pinners standard IC-kontakt, og kutter plastbroene som skaper gapet mellom radene, og limer deretter de 2 radene sammen.

Trinn 2: 3.3VDC strømforsyning for ESP-01

3.3VDC strømforsyning for ESP-01
3.3VDC strømforsyning for ESP-01
3.3VDC strømforsyning for ESP-01
3.3VDC strømforsyning for ESP-01
3.3VDC strømforsyning for ESP-01
3.3VDC strømforsyning for ESP-01

I dette trinnet skal vi bygge 3.3VDC strømforsyning for ESP-01. Jeg har noen gamle 500mA og 700mA 5VDC USB-laderadapter som jeg planla på nytt for dette prosjektet. Vi trenger også 3.3VDC regulator for å senke 5V spenningen til 3.3V, for dette bruker jeg en billig forhåndsbygd AMS1117 basert regulator modul som jeg kjøpte fra ebay. Du kan søke etter "3.3V AMS1117 -modul" og finne det som fungerer for deg.

Denne 3.3V regulatormodulen er veldig liten at jeg faktisk kan stappe den inne i den originale 5V USB-laderkabinettet, noe som gjør den tryggere mot potensiell kortslutning. Jeg fjernet AC -veggpinnene fra ladermodulen og erstatter den med to kabler som skal kobles til 120VAC fra veggen bak min eksisterende klokke. Men ikke fjern prongene på dette trinnet før vi testkjører på neste trinn.

Hvis det er en stikkontakt i nærheten, eller hvis du ikke er komfortabel med å koble strømforsyningen direkte til husledninger, kan du eventuelt bare koble den modifiserte strømforsyningen til veggpluggen og kjøre kabling til klokkeslettet, selv om det er ser kanskje ikke så rent ut som å koble den direkte til husledninger.

Se et av bildene mine for å se at bak klokken min er 120VAC -ledninger og 16VAC -transformatoren for klokkespillet.

Utgang fra 3.3V-regulatoren vil deretter koble til ESP-01-grensesnittkortet i henhold til forrige trinn.

Trinn 3: Blinker ESP-01

I dette trinnet vil vi blinke ESP-01 med arduino-skisse. Hvis du aldri har blinket ESP-01-modulen, kan du følge instruksjonene mine for å komme i gang:

Du finner skissen min på github -siden min:

På skissen må du minst endre følgende informasjon om hjemmenettverket/oppsettet ditt:

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

I hjemmenettverket mitt har jeg 2 forskjellige tilgangspunkt som sender 2 forskjellige SSID -er, og denne skissen ville tillate redundans ved å koble til neste SSID hvis kommunikasjonen til den nåværende AP -en går tapt. Hvis du bare har én SSID, fyller du ut både ssid1 og ssid2 med samme verdi.

Når du har gjort endringen, laster du opp skissen til ESP-01, og plugger inn ESP-01 i grensesnittkortet.

Trinn 4: Testkjøring

Prøvekjøring
Prøvekjøring
Prøvekjøring
Prøvekjøring
Prøvekjøring
Prøvekjøring

Fra trinn 1 har vi bygget ESP-01-grensesnittkortet, og fra trinn 2 har vi 3,3V strømforsyning for ESP-01-kortet. Vi kobler nå strømforsyningsutgangen til kortet i henhold til kretsdiagrammet, vist som V1.

Nå er det neste trinnet å koble klokke Trans/Door -terminalene til grensesnittkorttilkoblingene som er vist som "Door Chime Terminaler". Siden klokkespillet mitt er montert høyt på en vegg, for testkjøringen, kjører jeg midlertidig et langt kabel fra klokkeklemmer til brettet, slik at jeg kan koble til strømforsyningen.

For å teste om vårt utstyr fungerer, er det enkleste å overvåke MQTT -meldinger i nettverket. For å gjøre det, må du åpne en SSH -økt for myggmegleren og utstede følgende kommando:

mygg_sub -v -t '#'

Kommandoen ovenfor vil tillate oss å se alle MQTT -meldinger som kommer inn i megleren.

Koble nå strømforsyningen til stikkontakten, og hvis alt fungerer, bør du i det minste se følgende MQTT -melding om noen få sekunder:

stat/DoorBell/LWT Online

Gå nå ut og ring på døren, og du bør se denne meldingen:

tele/dørklokke PÅ

Hvis du ser disse meldingene, er prosjektet ditt en suksess.

Jeg inkluderte også flere nyttige MQTT -emner i skissen som du kan bruke:

"stat/DoorBellInfo": denne meldingen sendes hvert minutt for å gi oppetid og annen informasjon.

"cmnd/DoorBellInfo": ESP-01 sender ut informasjon hvis den mottar dette emnet med verdien '1' (ascii = 49) "cmnd/DoorBellCPUrestart": ESP-01 starter på nytt hvis den mottar dette emnet med verdien '1' '(ascii = 49) "cmnd/DoorBellCPUreset": ESP-01 tilbakestilles hvis den mottar dette emnet med verdien' 1 '(ascii = 49)

"tele/FrontDoorBell": ESP-01 sender meldinger i dette emnet med verdien "PÅ" hvis det trykkes på dørklokken

Trinn 5: Integrering av brettet og strømforsyningen i klokkespillet

Integrering av brettet og strømforsyningen i klokkespillet
Integrering av brettet og strømforsyningen i klokkespillet
Integrering av brettet og strømforsyningen i klokkespillet
Integrering av brettet og strømforsyningen i klokkespillet
Integrering av brettet og strømforsyningen i klokkeslettet
Integrering av brettet og strømforsyningen i klokkeslettet

Nå som vi har den vellykkede testkjøringen, må vi montere brettet og strømforsyningen inne i ringeklokken (hvis mulig). I min eksisterende klokkeslett er det et tomt kabinett som jeg klarte å kutte opp og passe strømforsyningen inne i det rommet. ESP-01-kortet passer ikke inne i den lille plassen, men passer likevel inne i den generelle klokkekassen. Jeg brukte nettopp et tykt dobbeltsidig tape for å montere ESP-01-grensesnittkortet.

Nå kan vi fjerne metallpinnene fra USB -laderen og erstatte dem med en tykkere kabel som vi kan koble til husets ledninger. Sørg for å slå av strømbryteren som leverer strøm til klokkekretsen.

Hvis det ikke er nok plass til å passe vårt prosjekt inn i den eksisterende dørklokken, må du sette den i en egen eske og montere den nær dørklokken.

Trinn 6: Final Touch

Final Touch
Final Touch

Nå som vi har fått prosjektet til å fungere og kan publisere MQTT -melding til megler, er neste trinn å tenke på hva vi skal gjøre med det.

I prosjektet mitt bruker jeg Node-RED til å lytte/abonnere på det MQTT-emnet på dørklokken og kunngjøre for flere Google-høyttalere. I tillegg til det, koblet jeg også strømmen til en pushbullet -node for å sende varsel til min Android -telefon, så jeg vet om noen ringer på døra selv om jeg ikke er hjemme. Pushbullet -varsling kan ikke være nyttig for noen, men det har vært ganske nyttig et par ganger for meg, kombinert med videokamera på verandaen min, kan jeg se hvem som kom for å slippe leveranser (de ringer vanligvis på døren). Jeg kan ikke stole mye på kameraets bevegelsesdetekteringsfunksjon på grunn av forskjellige forstyrrelser, spesielt bevegelse av skygger av trær.

Bildet på dette trinnet viser Node-RED-strømmen for å oppnå dette. Du kan også lime inn strømmen fra github-siden min i Node-RED:

Googles hjemmemeddelelse er bare ett eksempel på dette prosjektet, men jeg tror det er det mest nyttige og praktiske. Du kan alltid koble til en annen MQTT -lytter, eller til og med bruke IFTTT til å kjøre andre enheter når du ringer på døren.

Ha det gøy…

Anbefalt: