Sadržaj:

MQTT/Google kućno zvono na vratima pomoću ESP-01: 6 koraka
MQTT/Google kućno zvono na vratima pomoću ESP-01: 6 koraka

Video: MQTT/Google kućno zvono na vratima pomoću ESP-01: 6 koraka

Video: MQTT/Google kućno zvono na vratima pomoću ESP-01: 6 koraka
Video: Google Cloud based IoT system with MQTT - [TUTORIAL 1] 2024, Novembar
Anonim
MQTT/Google kućno zvono na vratima pomoću ESP-01
MQTT/Google kućno zvono na vratima pomoću ESP-01

Jeste li ikada propustili odgovoriti gostu koji vam je pozvonio samo zato što ste u dijelu kuće koji je predaleko da biste čuli zvono na vratima? poput podruma, spavaće sobe zatvorenih vrata ili ste možda gledali televiziju ili slušali muziku.

Ako poput mene imate jednog ili više google kućnih zvučnika na nekoliko lokacija u cijeloj kući, ovo uputstvo može biti ono što vam treba.

U ovom Instructable -u ću vam pokazati kako dodati MQTT klijenta postojećem zvonu na vratima kako biste komunicirali sa MQTT posrednikom uz najavu google home / pushbullet, koristeći NodeRED. Ovaj projekt ne zamjenjuje prekidač za zvono na vratima niti zvono. I dalje koristi uobičajeno mehaničko dugme za zvono na vratima.

Dodaćemo modul ESP-01 u postojeći sistem zvona na vratima od 16 VAC, dodajući MQTT funkcionalnost za slanje poruke MQTT brokeru (kada se pritisne prekidač za zvono). MQTT posrednik bi prenio poruku NodeRED -u. Nakon primanja MQTT poruke, NodeRED bi poslao najavu na više google kućnih uređaja, a opcionalno je poslao poruku na mobitel/preglednik putem pushbulleta.

Imam strast prema kućnoj automatizaciji „uradi sam“i polako dodajem IOT u svoj dom. Google home bio je jedna od centralnih funkcija u mojoj kućnoj automatizaciji.

Ideju za ovaj projekt dao mi je moj sin kada me je pitao mogu li učiniti da se Google oglasi svaki put kad nam neko pozvoni na vrata. Imamo 2 sprata + završen podrum, a mnogo puta nismo mogli čuti zvuk zvona dok smo u svom podrumu ili na spratu u spavaćoj sobi sa zatvorenim vratima ili sa uključenim televizorom.

U našoj kući imamo 4 google home mini koja su postavljena na različitim mjestima/sobama, a pomoću google domova za oglašavanje zvona na vratima, odmah znamo bilo gdje u kući da li je neko pozvonio na vrata.

U svojoj kući koristim RaspberryPi ZeroW za hostiranje Mosquitto MQTT servera i NodeRED -a. Radi već više od godinu dana bez ikakvih problema.

Reference:

  • Sheme ožičenja zvona na vratima:
  • Instalirajte Mosquitto MQTT Broker na Raspberry Pi:
  • Instalirajte NodeRED na Raspberry Pi:

Korak 1: Kreirajte krug za povezivanje ESP-01 i zvona vrata

Kreirajte krug za povezivanje ESP-01 i zvona vrata
Kreirajte krug za povezivanje ESP-01 i zvona vrata
Kreirajte krug za povezivanje ESP-01 i zvona vrata
Kreirajte krug za povezivanje ESP-01 i zvona vrata
Kreirajte krug za povezivanje ESP-01 i zvona vrata
Kreirajte krug za povezivanje ESP-01 i zvona vrata

Prvi korak bi bio stvaranje kola koje bi bilo sučelje između ESP-01 i zvona vrata. Uobičajeno zvono vrata aktivira se kada postoji 16VAC između pinova "TRANS (bivši)" i "PREDNJI/ZADNJI", kao što je prikazano na mojoj prvoj fotografiji. Napon se pojavljuje na tim pinovima kada se pritisne dugme zvona na vratima.

Krug koji sam dizajnirao treba osjetiti ovaj 16VAC signal i pretvoriti ga u digitalni signal od oko 3.3VDC. To je osnovni polutalasni ispravljač formiran od D1 i C1. U ovoj situaciji ne moramo imati punotalasni ispravljač jer ima jako malo opterećenja na istosmjernom izlazu, što nam štedi malo nekretnina na ploči. Želim učiniti ploču što je manje moguće kako bih je mogao postaviti unutar svog postojećeg zvona.

R1 i R2 tvore razdjelnik napona za smanjenje vršnog istosmjernog napona na oko 3,3 V.

R3, TR1 i R4 tvore pretvarač koji osigurava obrnutu logiku za ESP-01 GPIO-2. Ovo je potrebno kako bi se osigurala logika HIGH tokom pokretanja (sa pull-up R4 i R5) kako bi se ESP-01 pokrenuo sa blica. Kada se pritisne tipka za zvono na vratima, ona predstavlja logiku NISKA za GPIO-2. TR1 može biti bilo koji NPN tranzistor male snage, u mom slučaju koristio sam 2N3904.

V1 je napajanje od 3,3 VDC koje sam izgradio koristeći stari 5 V punjač za mobitel povezan s AMS1117 3,3 VDC regulatorom koji ću pokazati u sljedećem koraku.

Za utičnicu ESP-01 koristim 8-polnu standardnu IC utičnicu i režem plastične mostove koji stvaraju razmak između redova, a zatim lijepim 2 reda zajedno.

Korak 2: Napajanje 3.3VDC za ESP-01

3.3VDC napajanje za ESP-01
3.3VDC napajanje za ESP-01
3.3VDC napajanje za ESP-01
3.3VDC napajanje za ESP-01
3.3VDC napajanje za ESP-01
3.3VDC napajanje za ESP-01

U ovom koraku ćemo graditi 3.3VDC napajanje za ESP-01. Imam nekoliko starih 500mA i 700mA 5VDC USB punjača koji sam ponovo namjenio za ovaj projekt. Također nam je potreban regulator od 3,3 V DC za pad napona od 5 V na 3,3 V, za ovo koristim jeftini već ugrađeni regulator modula temeljen na AMS1117 koji sam kupio od ebaya. Možete tražiti "3.3V AMS1117 modul" i pronaći ono što vam odgovara.

Ovaj regulator napona 3.3V vrlo je mali pa ga mogu staviti u originalno kućište USB punjača od 5 V što ga čini sigurnijim od potencijalnog kratkog spoja. Uklonio sam zidne zupce naizmjenične struje iz modula punjača i zamijenio ih s dva kabela koji će biti spojeni na 120VAC sa zida iza mog postojećeg zvona. Ali nemojte uklanjati zupce na ovom koraku sve dok ne izvršimo probni rad na sljedećem koraku.

Ako je u blizini zidna utičnica ili ako vam nije ugodno ožičenje napajanja izravno na kućno ožičenje, po želji možete samo priključiti izmijenjeno napajanje u zidni utikač i provesti kablove do zvonca možda neće izgledati tako čisto kao spajanje izravno na kućno ožičenje.

Pogledajte jednu od mojih fotografija da vidite da se iza zvona nalazi ožičenje od 120VAC i 16VAC transformator za zvono.

Izlaz iz regulatora 3.3V bi se zatim spojio na ploču za sučelje ESP-01 prema prethodnom koraku.

Korak 3: Treptanje ESP-01

U ovom koraku blicat ćemo ESP-01 sa arduino skicom. Ako nikada niste bljeskali ESP-01 modul, možete slijediti moja uputstva za početak:

Moju skicu možete pronaći na mojoj github stranici:

Na skici, najmanje morate promijeniti sljedeće podatke koji se odnose na vašu kućnu mrežu/postavljanje:

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

U mojoj kućnoj mreži imam 2 različite pristupne tačke koje emituju 2 različita SSID -a, a ova skica bi omogućila redundanciju povezivanjem na sljedeći SSID ako se izgubi komunikacija sa trenutnom pristupnom tačkom. Ako imate samo jedan SSID, popunite ssid1 i ssid2 istom vrijednošću.

Nakon što izvršite izmjenu, otpremite skicu u ESP-01 i uključite ESP-01 u ploču za sučelje.

Korak 4: Probni rad

Test Run
Test Run
Test Run
Test Run
Test Run
Test Run

Od koraka 1 izgradili smo ploču za sučelje ESP-01, a od koraka 2 imamo napajanje od 3,3 V za ploču ESP-01. Sada povezujemo izlaz napajanja s pločom prema dijagramu kruga, prikazanom kao V1.

Sada je sljedeći korak povezivanje priključaka Trans/Door zvona na spojeve ploče sučelja prikazane kao "Stezaljke zvona vrata". Budući da je moje zvono postavljeno visoko na zid, za probnu vožnju privremeno provodim dugačak par kabela od priključaka za zvonce do ploče kako bih mogao priključiti napajanje.

Da bismo provjerili funkcionira li naša naprava, najlakše bi bilo nadzirati MQTT poruke u mreži. Da biste to učinili, morate otvoriti SSH sesiju posredniku komaraca i izdati sljedeću naredbu:

mosquitto_sub -v -t '#'

Gornja naredba omogućila bi nam da vidimo sve MQTT poruke koje dolaze u brokera.

Sada uključite napajanje u zidnu utičnicu i ako sve radi, za nekoliko sekundi trebali biste vidjeti barem sljedeću MQTT poruku:

stat/DoorBell/LWT na mreži

Sada izađite van i pozvonite na vrata i trebali biste vidjeti ovu poruku:

tele/zvono na vratima UKLJUČENO

Ako vidite te poruke, vaš je projekt uspješan.

U skicu sam uključio i nekoliko korisnih tema o MQTT -u koje možete koristiti:

"stat/DoorBellInfo": ova poruka se šalje svake minute radi pružanja neprekidnog rada i drugih informacija.

"cmnd/DoorBellInfo": ESP-01 će poslati informacije ako primi ovu temu s vrijednošću '1' (ascii = 49) "cmnd/DoorBellCPUrestart": ESP-01 će se ponovno pokrenuti ako primi ovu temu s vrijednošću '1 '(ascii = 49) "cmnd/DoorBellCPUreset": ESP-01 će se poništiti ako primi ovu temu s vrijednošću' 1 '(ascii = 49)

"tele/FrontDoorBell": ESP-01 će poslati poruku u ovoj temi sa vrijednošću "ON" ako se pritisne zvono na vratima

Korak 5: Integrirajte ploču i napajanje u zvono

Integriranje ploče i napajanja u zvono
Integriranje ploče i napajanja u zvono
Integriranje ploče i napajanja u zvono
Integriranje ploče i napajanja u zvono
Integriranje ploče i napajanja u zvono
Integriranje ploče i napajanja u zvono

Sada kada imamo uspješan probni rad, moramo sastaviti ploču i napajanje unutar zvona na vratima (ako je moguće). U mom postojećem zvonu postoji prazno kućište koje sam uspio otvoriti i uklopiti napajanje unutar tog prostora. Ploča ESP-01 se ne uklapa u to malo prostora, ali se ipak može uklopiti u ukupnu kutiju za zvonce. Upravo sam koristio debelu dvostranu traku za montiranje ploče za sučelje ESP-01.

Sada možemo ukloniti metalne zupce s USB punjača i zamijeniti ih debljim kabelom koji možemo spojiti na kućno ožičenje. Svakako isključite prekidač koji opskrbljuje električnom energijom krug zvona.

Ako nema dovoljno prostora za ugradnju našeg projekta u postojeći zvuk vrata, morat ćete ga staviti u zasebnu kutiju i montirati blizu zvona vrata.

Korak 6: Završni dodir

Final Touch
Final Touch

Sada kada je projekt uspješan i u stanju objaviti MQTT poruku posredniku, sljedeći korak je razmišljanje o tome što s tim učiniti.

U svom projektu koristim Node-RED da slušam/pretplatim se na tu MQTT temu zvona na vratima i najavim nekoliko google kućnih govornika. Osim toga, također sam povezao tok s pushbullet čvorom za slanje obavijesti na moj android telefon tako da znam da li neko zvoni na vrata čak i ako nisam kod kuće. Pushbullet obavijest nekima neće biti korisna, ali bilo mi je prilično korisno nekoliko puta, zajedno s video kamerom na prednjem trijemu, mogu vidjeti ko je došao da isporuči robu (obično zvoni na vrata). Ne mogu se mnogo osloniti na funkciju detekcije pokreta kamere zbog različitih smetnji, posebno pomicanja sjena drveća.

Slika na ovom koraku prikazuje tok NOD-RED kako bi se to postiglo. Također možete zalijepiti tok s moje github stranice na svoj Node-RED:

Googleova kućna najava samo je jedan primjer za ovaj projekt, ali mislim da je najkorisnija i najpraktičnija. Uvijek se možete povezati s drugim slušateljem MQTT -a ili čak pomoću IFTTT -a za pogon drugih uređaja nakon što pritisnete zvono na vratima.

Zabavi se…

Preporučuje se: