- Kružni dijagram za automatizaciju kuće kojim upravlja Google Assistant
- Postavljanje aplikacije Blynk
- Postavljanje IFTTT-a s Google Asistentom i Blynkom za čitanje niza
- Programiranje Arduina za automatizaciju kuće Blynk
- Izrada PCB-a pomoću PCBGoGo-a
- Sastavljanje PCB-a
- Spajanje ploče s izmjeničnim jedinicama / produžnim pločama
Napredom u virtualnim asistentima kao što su Google Assistant i Alexa, aplikacije za kućnu automatizaciju i glasovno upravljanje postaju normalne. Sada smo sami izgradili mnoge projekte automatizacije kuće, od jednostavnih automatskih svjetla stubišta do internetske automatizirane kućne automatizacije temeljene na IoT-u koristeći Raspberry Pi. Ali ovaj je projekt ovdje drugačiji, ideja ovdje je stvoriti praktičnu ploču za automatizaciju kuće koja se može uklopiti u naše jedinice napajanja izmjeničnim naponom na našim zidovima i ostati skrivena unutar nje. Ploča ne bi smjela prekidati normalan rad prekidača naše jedinice pogona, odnosno trebala bi se UKLJUČITI ili ISKLJUČITI i ručnim prekidačima. I bez da se to kaže, trebao bi također moći kontrolirati isto opterećenje glasom pomoću google asistenta, a također postaviti tajmer tako da se bilo koje opterećenje može automatski UKLJUČITI ili ISKLJUČITI tijekom unaprijed određenog doba dana.
Ovaj je projekt vrlo sličan našem pametnom Wi-Fi utikaču ESP8266, ali budući da ćemo koristiti ESP12, imat ćemo više GPIO pinova koji nam omogućuju istovremeno upravljanje četiri AC opterećenja. Također, budući da smo integrirali Blynk i Google Assistant, projekt postaje zanimljiv i praktičan za upotrebu. Za ovaj smo projekt izgradili pločice koristeći uslugu izrade PCB PCBGOGO. U kasnijem odjeljku članka pružili smo Gerberovu datoteku dizajniranu za strujni krug i objasnili cjelovit postupak naručivanja PCB-a s PCBGOGO.
Upozorenje: Ovaj projekt uključuje rad s izmjeničnim naponom. Imajte na umu da pri radu s visokim izmjeničnim naponima treba biti izuzetno oprezan. Ako ste novi, vodite računa o tome da vas nadzire iskusna osoba.
Kružni dijagram za automatizaciju kuće kojim upravlja Google Assistant
Kompletni dijagram sklopa za kućnu automatizaciju nalazi se u nastavku.

Kao što vidite, sklop je vrlo jednostavan, započnimo objašnjenje od Wi-Fi modula ESP12E. Također možete pogledati video u nastavku za detaljno objašnjenje projekta. Modul se može programirati baš poput nodeMCU razvojnih ploča i smanjuje puno prostora. Prema zadanim postavkama, kada je uključen, ESP12E ulazi u način rada. Da bismo ga programirali, moramo upotrijebiti gumb Reset i Flash. To znači da ESP12 stavite u način programiranja, pritisnite i držite tipku za poništavanje i bljeskalicu, a zatim otpustite tipku za poništavanje. Ovo će pokrenuti ESP12E pritisnutim gumbom bljeskalice, sada otpustite gumb bljeskalice i ESP12E će ući u način programiranja. Nakon programiranja, morate ponovno pritisnuti gumb za resetiranje da biste pokrenuli ESP12E u normalnom načinu rada da biste izvršili preneseni program. Kinovi za programiranje Rx, Rx,i Ground su produženi kako bi se mogli povezati s FTDI pločom ili USB u TTL pretvaračem. Obavezno spojite Tx pin ESP12 s Rx pinom programera i obrnuto.

Ostale iglice zastavice I1 do I4 i R1 do R4 koriste se za spajanje prekidača i releja. Igle od I1 do I4 znače ulazne igle. Svi ovi klinovi podržavaju unutarnji pull-up otpornik, tako da samo moramo spojiti prekidače na produžnom okviru na naš ulazni pin kroz padajući otpor, kao što je prikazano dolje.

Slično tome, izlazne iglice releja R1 do R4 koriste se za upravljanje relejima. Koristili smo standardni sklop upravljačkog releja s diodama BC547 i IN4007, kao što je prikazano u nastavku. Imajte na umu da releje treba pokretati s 5 V, ali izlazni pinovi ESP12E imaju samo 3,3 V. Dakle, za pogon releja obavezna je upotreba tranzistora. Također smo postavili LED u osnovni put tranzistora, tako da će se kad god se tranzistor aktivira, LED također uključiti.

Konačno, za napajanje svih naših krugova koristili smo Hi-Link AC-DC pretvarač za pretvorbu naših 220V AC u 5V DC. Tih se 5V DC pretvara u 3,3V pomoću AMS117-3,3V regulatora napona. 5V se koristi za aktiviranje releja, a 3,3V za napajanje Wi-Fi modula ESP21.

Postavljanje aplikacije Blynk
Prethodno smo izgradili mnoge Blynk projekte poput Wi-Fi kontroliranog Arduino Robota, tako da nećemo ulaziti u detalje postavljanja aplikacije blynk. Ali da pojednostavimo, jednostavno instalirajte aplikaciju, stvorite novi projekt za NodeMCU i počnite postavljati svoje widgete kao što je prikazano u nastavku.

Koristio sam virtualne igle V1 do V4 za upravljanje relejem 1 do 4 na našem projektu. Svakako promijenite vrstu gumba za prebacivanje. Opcija odbrojavanja također se može koristiti za automatsko pokretanje virtualnih pinova tijekom zadanog vremena, čak i ako je telefon isključen. Ovdje sam, na primjer, upotrijebio tajmer samo za virtualni pin V1, ali ako je potrebno, možete ga koristiti za sva četiri pina.

Obavezno preuzmite vrijednost tokena blynk auth sa stranice projekta. Samo kliknite ikonu matice (zaokruženo crvenom bojom na gornjoj slici) i kopirajte autenski token pomoću opcije copy all i zalijepite ga negdje na sigurno, trebat će nam prilikom programiranja Arduino ploče.

Postavljanje IFTTT-a s Google Asistentom i Blynkom za čitanje niza
Google asistent za kućnu automatizaciju najjednostavnije je koristiti IFTTT. Također smo ranije izgradili mnoge IFTTT projekte s NodeMCU i Raspberry Pi. U ovom ćemo projektu koristiti aplikaciju Blynk za pokretanje web udice pomoću Google asistenta. Vrlo je sličan našem projektu kućne automatizacije glasom i FM radiom kontroliranim glasom. Osim toga, ovdje ćemo koristiti blynk s IFTTT-om za slanje niza što ga čini puno lakšim i zanimljivijim.
U osnovi, koristit ćemo virtualni pin V5 i V6 na blynk-u za slanje naredbe okidača. V5 će se koristiti za naredbe za uključivanje, a V6 za naredbe za isključivanje. Na primjer, ako kažemo uključi televizor i lampu. Niz naredbe ovdje "TV i žarulja" poslat će se NodeMCU-u pomoću API-ja. Sintaksa API-ja je kao u nastavku.
http://188.166.206.43//update/V5?value=TV i lampa
Sada sve što moramo učiniti u IFTTT-u je da google asistenta koristimo kao IF, a webhooks-a kao TO, pa poslušajte ovu naredbu i pošaljite podatke NodeMCU-u pomoću gore spomenutog API-ja. Uključeni obrazac apleta prikazan je dolje.

Napominjemo da prilikom izrade recepta za Google asistenta morate odabrati opciju recite frazu s sastojkom teksta. Slično tome, isto morate ponoviti i za virtualni pin V6 da biste isključili releje. Za detalje možete pogledati videozapis na dnu ove stranice.
Programiranje Arduina za automatizaciju kuće Blynk
Kompletni Arduino kôd za ovaj projekt nalazi se na dnu ove stranice. Objašnjenje istog je sljedeće. Prije toga provjerite možete li koristiti Blynk i Program NodeMCU iz Arduino IDE-a. Ako ne slijedite početak rada s člankom ESP12. Također, dodajte biblioteku blynk u Arduino IDE pomoću upravitelja ploče.
Kao i uvijek, kod započinjemo definiranjem ulaznih i izlaznih pinova, ovdje će ulaz biti iz prekidača, a izlaz iz releja. Definirali smo nazive pinova za sva četiri prekidača kao sw i releje kao rel, kao što možete vidjeti dolje.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
U sljedećoj fazi morate unijeti neke vjerodajnice kao što su blynk auth token i korisničko ime i lozinka za Wi-Fi usmjerivač na koji bi se trebao povezati vaš nodeMCU. Token blink auth može se dobiti iz aplikacije blynk. O tome ćemo saznati više u odjeljku postavljanja aplikacije blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // dobiti iz aplikacije blynk char ssid = "home_wifi"; char pass = "fakepass123";
Dalje, dali smo definiciju funkcije nazvane read_switch_toggle () . U ovoj ćemo funkciji usporediti trenutno i prethodno stanje naših sklopki. Ako je prekidač uključen ili isključen, tj. Ako je prekidač prebačen. Doći će do promjene stanja prekidača, funkcija će nadgledati tu promjenu i vratiti broj prekidača. Ako se ne otkrije nikakva promjena, vratit će se 0.
int read_switch_toggle () {rezultat int = 0; // Zabilježimo sve prethodne vrijednosti za (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Očitavanje trenutnog statusa prekidača crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // uspoređujemo trenutno i pvs stanje za (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // ako se bilo koji prekidač prebaci, dobivamo broj prekidača kao rezultat vraćanja rezultata; } inače rezultat = 0; // ako nema rezultata promjene 0} vrati rezultat; // vrati rezultat}
Dalje, imamo kod za aplikaciju blynk. Upotrijebit ćemo virtualni pin V1 do V6 za nadzor naše pametne razvodne kutije. Pribadače V1 do V4 služit će za upravljanje relejima 1 do 4, izravno iz aplikacije blynk. Donji kod pokazuje što se događa kada se V1 pokrene iz aplikacije blynk. Jednostavno očitamo status (HIGH ili LOW) i u skladu s tim kontroliramo relej.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Slično tome, virtualne igle mogu se koristiti i za čitanje niza iz aplikacije blynk. Kasnije ćemo naučiti kako poslati niz s Googleovog asistenta na NodeMCU pomoću IFTTT-a i Google asistenta, ali zasad ćemo vidjeti kako NodeMCU kôd čita ovaj niz i traži određenu ključnu riječ i u skladu s tim pokreće relej.
U donjem kodu možete vidjeti da kada se aktivira virtualni pin V5, dobivamo niz koji je proslijedio u varijablu niza koja se naziva ON_message . Zatim pomoću ove varijable niza i metode inderOf pretražujemo jesu li prisutne ključne riječi poput „lampica“, „LED“, „glazba“, „TV“, ako da, uključujemo to određeno opterećenje. Ako se otkrije ključna riječ "sve", uključujemo sve. Isto se može učiniti i za V6 za isključivanje releja. O tome ćemo više razumjeti kad uđemo u odjeljak IFTTT.
BLYNK_WRITE (V5) {Niz ON_message = param.asStr (); Serial.println (ON_message); if (ON_message.indexOf ("lampica")> = 0) digitalWrite (rel1, HIGH); ako (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("music")> = 0) digitalWrite (rel3, HIGH); if (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("everything")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Napokon, unutar funkcije petlje, moramo samo provjeriti je li bilo koji gumb promijenio položaj prekidača. Ako je odgovor da, tada koristimo kućište sklopke kao što je prikazano u nastavku za prebacivanje položaja tog određenog releja.
prekidač (toggle_pin) {slučaj 0: prekid; slučaj 1: Serial.println ("Uključivanje releja 1"); digitalWrite (rel1, relay_state); pauza; slučaj 2: Serial.println ("Prebacivanje releja 2"); digitalWrite (rel2, relay_state); pauza; slučaj 3: Serial.println ("Prebacivanje releja 3"); digitalWrite (rel3, relay_state); pauza; slučaj 4: Serial.println ("Prebacivanje releja 4"); digitalWrite (rel4, relay_state); pauza; }}
Izrada PCB-a pomoću PCBGoGo-a
Sada razumijemo kako sheme funkcioniraju, možemo nastaviti s izradom PCB-a za naš projekt automatizacije kuće. Izgled PCB-a za gornji sklop također je dostupan za preuzimanje kao Gerber s veze.
- Preuzmite GERBER za automatsku automatizaciju kuće pomoću Google asistenta
Sad je naš dizajn spreman, vrijeme je da se izrade pomoću datoteke Gerber. Da biste PCB izveli s PCBGOGO, vrlo je jednostavno, jednostavno slijedite korake u nastavku -
1. korak: Uđite na www.pcbgogo.com, prijavite se ako ste prvi put. Zatim na karticu PCB Prototype unesite dimenzije vaše PCB-a, broj slojeva i broj PCB-a koji vam je potreban. Pod pretpostavkom da je PCB 80 cm × 80 cm, možete postaviti dimenzije kao što je prikazano dolje.

Korak 2: Nastavite klikom na gumb Quote Now . Bit ćete preusmjereni na stranicu na kojoj možete postaviti nekoliko dodatnih parametara ako je potrebno, poput razmaka trase, itd. Ali uglavnom će zadane vrijednosti raditi u redu. Ovdje moramo uzeti u obzir jedino cijenu i vrijeme. Kao što vidite, vrijeme izrade je samo 2-3 dana i košta samo 5 USD za našu PCB. Tada možete odabrati željeni način otpreme na temelju vaših zahtjeva.

Korak 3: Posljednji korak je prijenos Gerber datoteke i nastavak plaćanja. Da bi osigurao nesmetan postupak, PCBGOGO provjerava je li vaša Gerber datoteka valjana prije nego što nastavi s plaćanjem. Na ovaj način možete biti sigurni da je vaša PCB pogodna za proizvodnju i da će vas kontaktirati kao da ste predani.
Sastavljanje PCB-a
Nakon što je ploča naručena, stigla je do mene nakon nekoliko dana putem kurira u lijepo označenoj dobro spakiranoj kutiji i kao i uvijek, kvaliteta PCB-a bila je nevjerojatna. PCB koji sam primio prikazan je u nastavku. Kao što vidite, i gornji i donji sloj su ispali očekivano.

Sve su šupljine i jastučići bili odgovarajuće veličine. Trebalo mi je oko 15 minuta da se sklopim na pločicu PCB-a da dobijem radni krug. Sastavljena ploča prikazana je dolje.

Spajanje ploče s izmjeničnim jedinicama / produžnim pločama
Ploča je dizajnirana za pričvršćivanje unutar AC utičnica u našim domovima. Ali zarad ovog projekta koristit ćemo produžni okvir. Ako želite trajnije rješenje, spojite to unutar utičnica za naizmjeničnu struju, kao što vidite ispod, duljina PCB-a je dovoljno kompaktna da se može staviti u utičnicu za izmjeničnu struju.

Obavezno slijedite sigurnosne mjere predostrožnosti tijekom rada s mrežnom mrežom. Slijedite donju shemu da biste razumjeli kako povezati svoje releje i prekidače s našom pločicom.

Dijagram povezivanja ne radi samo za jedan relej i prekidač, ali možete isto ponoviti i za preostala tri. Nakon što su veze završene, vaša bi ploča trebala izgledati ovako

Nakon što se veze naprave, provjerite jeste li ih dobro pričvrstili vijčanim stezaljkama, a za dodatnu sigurnost upotrijebite i vruće ljepilo. Spakirajte sve natrag u kutiju i trebali bismo biti spremni za testiranje. Kompletni rad ovog projekta možete pronaći u videu ispod.
Nadam se da ste uživali u članku i naučili nešto korisno. Ako imate pitanja, ostavite ih u odjeljku za komentare ispod ili koristite naše forume.
