Innholdsfortegnelse:
- Trinn 1: Lag Circuit to Interface ESP-01 og Door Chime
- Trinn 2: 3.3VDC strømforsyning for ESP-01
- Trinn 3: Blinker ESP-01
- Trinn 4: Testkjøring
- Trinn 5: Integrering av brettet og strømforsyningen i klokkespillet
- Trinn 6: Final Touch
Video: MQTT/Google Home DoorBell Bruke ESP-01: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
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
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
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
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
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
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:
Hvordan bruke DS1307 Bruke Arduino: 7 trinn
Hvordan bruke DS1307 Bruke Arduino: DS1307 er en sanntidsklokke IC (RTC). Denne IC brukes til å gi tidsdata. Tildelt tid starter fra sekunder, minutt, timer, dager, dato, måned og år. Denne IC krever ytterligere eksterne komponenter som Crystal og 3,6V batterier. Krystall
Hvordan bruke en tenåring til å skrive ut bilder på Splatoon 2 Bruke SplatPost -skriveren: 10 trinn
Hvordan bruke en tenåring til å skrive ut bilder på Splatoon 2 Bruke SplatPost -skriveren: I denne instruksen vil jeg vise hvordan du bruker SplatPost -skriveren av ShinyQuagsire. Uten klare instruksjoner ville noen som ikke har erfaring med kommandolinjen ha litt problemer. Målet mitt er å forenkle trinnene ned til poi
Neopixel Ws2812 Rainbow LED-glød med M5stick-C - Kjører Rainbow på Neopixel Ws2812 Bruke M5stack M5stick C Bruke Arduino IDE: 5 trinn
Neopixel Ws2812 Rainbow LED-glød med M5stick-C | Running Rainbow på Neopixel Ws2812 Bruke M5stack M5stick C Bruke Arduino IDE: Hei folkens i denne instruksen, vi lærer hvordan du bruker neopixel ws2812 LED eller led strip eller led matrise eller led ring med m5stack m5stick-C utviklingstavle med Arduino IDE, og vi skal lage et regnbuemønster med den
Komme i gang med Esp 8266 Esp-01 Med Arduino IDE - Installere Esp -kort i Arduino Ide og Programmering Esp: 4 trinn
Komme i gang med Esp 8266 Esp-01 Med Arduino IDE | Installere Esp Boards i Arduino Ide og Programmering Esp: I denne instruksjonene skal vi lære hvordan du installerer esp8266 boards i Arduino IDE og hvordan du programmerer esp-01 og laster opp kode i den. Siden esp boards er så populære, så jeg tenkte på å rette opp en instruks for dette og de fleste mennesker står overfor problemer
Hvordan bruke Wiimote som en datamus ved å bruke stearinlys som sensor !!: 3 trinn
Slik bruker du Wiimote som en datamus ved å bruke stearinlys som en sensor !!: Denne guiden viser deg hvordan du kobler din Wii -fjernkontroll (Wiimote) til din PC og bruker den som en mus