- Delo regulatorja stropnih ventilatorjev na osnovi IoT
- Potrebni materiali za vezje za nadzor hitrosti ventilatorja
- Krmilno vezje regulatorja AC ventilatorja
- Zasnova PCB za IoT krmiljeni stropni ventilator
- Nastavitev računa Firebase
- Koda Arduino za nadzor regulatorja ventilatorjev z NodeMCU
- Izdelava aplikacije Fan Regulator z MIT App Inventor
- Testiranje vezja senzorja na dotik na osnovi ESP32
- Nadaljnje izboljšave
V tem članku gradimo vezje regulatorja AC ventilatorja, ki lahko nadzoruje hitrost ventilatorja z omejevanjem pretoka toka na ventilator. Izraz AC Ceiling Fan Regulator je zalogaj, zato ga bomo odslej preprosto imenovali regulator ventilatorja. Regulator ventilator vezje je bistvena sestavina, ki se uporablja za povečanje ali zmanjšanje hitrosti AC ventilatorja / motorja glede na potrebe. Nekaj let nazaj ste imeli na izbiro med običajnim regulatorjem ventilatorja z uporovnim tipom ali elektronskim regulatorjem, danes pa ga je vse zamenjalo vezje elektronskega ventilatorja.
V prejšnjem članku smo vam pokazali, kako lahko z Arduinom zgradite vezje za krmiljenje kota faze izmeničnega toka, ki je lahko nadziralo svetlost žarnice z žarilno nitko in tudi hitrost ventilatorja, tako da je stopnilo navzgor v tem članku bomo zgradili vezje AC stropnega ventilatorja na osnovi IoT. Ki bo lahko s pomočjo aplikacije Android nadzoroval hitrost vašega stropnega ventilatorja.
Delo regulatorja stropnih ventilatorjev na osnovi IoT
Vezje regulatorja ventilatorjev je preprosto vezje, ki lahko nadzoruje hitrost stropnega ventilatorja z izmeničnim tokom s spreminjanjem faznega kota sinusnega vala izmeničnega toka ali z enostavnimi izrazi natančnega nadzora TRIAC-a. Ker sem omenil vsa osnovna dela regulatorja vezja izmeničnega ventilatorja v regulaciji kota faze izmeničnega toka s člankom 555 Timer in PWM, se bomo osredotočili na dejansko zgradbo vezja. In še enkrat, če želite izvedeti več o tej temi, si oglejte tudi članek o zatemnilniku AC Light, ki uporablja Arduino in TRIAC Project.
Zgornji osnovni blokovni diagram prikazuje, kako vezje dejansko deluje. Kot sem že rekel, bomo s pomočjo Firebase IoT in NodeMCU ustvarili signal PWM, nato pa se signal PWM prenese skozi nizkofrekvenčni filter, ki bo nadziral vrata MOSFET-a, nato pa bo 555 časovnik krmilil dejanski TRIAC s pomočjo optičnega sklopnika.
V tem primeru aplikacija android spremeni vrednost v firebaseDB in ESP nenehno preverja morebitne spremembe tega DB, če pride do kakršne koli spremembe, ki se potegne navzdol in vrednost pretvori v signal PWM.
Potrebni materiali za vezje za nadzor hitrosti ventilatorja
Spodnja slika prikazuje material, uporabljen za izdelavo tega vezja, saj je narejen z zelo splošnimi komponentami, zato bi lahko vse našteto gradivo našli v vaši lokalni hobi trgovini.
Od predstavitvenega projekta sem v spodnji tabeli navedel tudi komponente in količino, za to pa uporabljam en sam kanal. Toda vezje je mogoče enostavno povečati glede na zahtevo.
- Vijačni priključek 5,04 mm priključek - 2
- Moški priključek 2,54 mm - 1
- 56K, 1W upor - 2
- 1N4007 Dioda - 4
- 0,1uF, 25V kondenzator - 2
- AMS1117 Regulator napetosti - 1
- 1000uF, 25V kondenzator - 1
- Vtičnica za enosmerni tok - 1
- 1K upor - 1
- Upor 470R - 2
- 47R upor - 2
- 82 K upori - 1
- 10 K uporov - 5
- Optični sklopnik PC817 - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 MOSFET - 1
- 3.3uF kondenzator - 1
- Priključitev žic - 5
- 0,1uF, 1KV kondenzator - 1
- ESP8266 (ESP-12E) Mikrokrmilnik - 1
Krmilno vezje regulatorja AC ventilatorja
Shema regulacijskega vezja ventilatorja IoT je prikazana spodaj, to vezje je zelo preprosto in uporablja generične komponente za doseganje nadzora faznega kota.
To vezje je sestavljeno iz zelo skrbno zasnovanih komponent. Šel bom skozi vsako in razložil vsak blok.
ESP8266 (ESP-12E) Wi-Fi čip:
To je prvi del našega kroga in to je del, v katerem smo veliko stvari spremenili, drugi deli pa ostanejo popolnoma enaki, če ste sledili prejšnjemu članku.
V tem razdelku smo povlekli nožice Enable, Reset in GPIO0, prav tako smo potegnili GPIO15 in Ground Pin, ki jih priporoča podatkovni list čipa. Kar zadeva programiranje, smo postavili 3pin glavo, ki razkriva TX, RX in ozemljitveni zatič, skozi katerega lahko čip zelo enostavno programiramo. Poleg tega smo namestili tipalno stikalo, s katerim je GPIO0 prizemljen, kar je nujen korak za vklop ESP v način programiranja. Za izhod, skozi katerega se generira signal PWM, smo izbrali pin GPIO14.
Opomba! V času programiranja moramo pritisniti gumb in napravo napajati z vtičnico enosmernega toka.
Vezje za zaznavanje ničelnega križanja:
Najprej je na našem seznamu vezje za zaznavanje prehoda nič, narejeno z dvema uporoma 56K, 1W v povezavi s štirimi diodami 1n4007 in optičnim sklopnikom PC817. In to vezje je odgovorno za zagotavljanje signala za prehod ničle na 555 IC časovnika. Fazo in nevtralni signal smo posneli tudi za nadaljnjo uporabo v odseku TRIAC.
AMS1117-3.3V Napetostni regulator:
Regulator napetosti AMS1117 se uporablja za napajanje vezja, vezje je odgovorno za napajanje celotnega vezja. Poleg tega smo kot odklopni kondenzator za IC AMS1117-3.3 uporabili dva kondenzatorja 1000uF in kondenzator 0,1uF.
Krmilno vezje s časovnikom NE555:
Na zgornji sliki je prikazano krmilno vezje 555 časovnika, 555 je konfiguriran v monostabilni konfiguraciji, tako da ko sproži signal iz vezja za zaznavanje prehoda nič, sprožilec 555 začne polniti kondenzator s pomočjo upora (na splošno), vendar ima naše vezje namesto upora MOSFET in z nadzorom vrat MOSFET-a nadzorujemo tok, ki teče v kondenzator, zato nadzorujemo čas polnjenja, zato nadzorujemo izhod 555 časovnikov.
TRIAC in vezje gonilnika TRIAC:
TRIAC deluje kot glavno stikalo, ki se dejansko vklopi in izklopi in tako nadzoruje izhod AC signala. Ko poganja TRIAC s pogonom MOC3021 Opto-Triac, ne poganja samo TRIAC-a, temveč zagotavlja tudi optično izolacijo, visokonapetostni kondenzator 0,01uF 2KV in upor 47R tvori snuber vezje, ki naše vezje ščiti pred visokonapetostni konici, ki se pojavijo, ko je priključen na induktivno obremenitev. Nesinusoidna narava vklopljenega AC signala je odgovorna za konice. Prav tako je odgovoren za vprašanja faktorja moči, vendar je to tema drugega članka.
Lowpass-filter in P-Channel MOSFET (deluje kot upor v vezju):
Upor 82K in kondenzator 3.3uF tvorijo nizkofrekvenčni filter, ki je odgovoren za glajenje visokofrekvenčnega signala PWM, ki ga ustvarja Arduino. Kot smo že omenili, P-Channel MOSFET deluje kot spremenljivi upor, ki nadzoruje čas polnjenja kondenzatorja. Nadzor nad njim je signal PWM, ki ga zniža nizkopasovni filter.
Zasnova PCB za IoT krmiljeni stropni ventilator
PCB za naše vezje stropnega ventilatorja IoT je zasnovan v enostranski plošči. Za načrtovanje PCB-ja sem uporabil programsko opremo za oblikovanje PCB Eagle, vendar lahko uporabite katero koli programsko opremo za oblikovanje po svoji izbiri. 2D-slika moje zasnove plošče je prikazana spodaj.
Za pravilno povezavo tal med vsemi komponentami se uporablja zadostno polnjenje tal. 3.3 V DC enosmerni vhod in 220 V AC vhod sta naseljena na levi strani, izhod je na desni strani PCB-ja. Celotno oblikovalsko datoteko za Eagle skupaj z Gerberjem lahko prenesete s spodnje povezave.
- Oblika PCB, datoteke GERBER in PDF za vezje stropnega ventilatorja
Ročno izdelani PCB:
Za udobje sem izdelal svojo ročno izdelano različico tiskanega vezja, ki je prikazana spodaj.
S tem je naša strojna oprema pripravljena v skladu s shemo vezja, zdaj moramo pripraviti aplikacijo za Android in Google firebase.
Nastavitev računa Firebase
Za naslednji korak moramo nastaviti račun Firebase. Vsa komunikacija bo potekala prek računa Firebase. Če želite nastaviti račun Firebase, pojdite na spletno mesto Firebase in kliknite »začni«.
Ko kliknete, se morate prijaviti s svojim Google Računom in
ko ste prijavljeni, morate ustvariti projekt s klikom na gumb Ustvari projekt.
S tem boste preusmerjeni na stran, ki je videti kot zgornja slika. Vnesite ime svojega projekta in kliknite nadaljevanje.
Še enkrat kliknite nadaljevanje.
Ko to storite, se morate strinjati z nekaterimi pogoji, tako da kliknete potrditveno polje, nato pa kliknite gumb za ustvarjanje projekta.
Če ste vse naredili pravilno, boste čez nekaj časa dobili takšno sporočilo. Ko končate, mora biti vaša konzola Firebase videti kot na spodnji sliki.
Zdaj moramo od tu zbrati dve stvari. Če želite to narediti, morate klikniti ime projekta, ki ste ga pravkar ustvarili. Zame je CelingFanRegulator, ko ga kliknete, boste dobili nadzorno ploščo, podobno spodnji sliki.
Kliknite nastavitve, nato nastavitve projekta, stran, ki jo boste dobili, bo videti kot spodnje slike.
Kliknite račun storitve -> skrivnost baze podatkov.
Kopirajte bazo podatkov in jo shranite nekam za kasnejšo uporabo.
Nato kliknite bazo podatkov v realnem času in kopirajte URL. hranite tudi za poznejšo uporabo.
In to je vse, kar zadeva ognjeno plat stvari.
Koda Arduino za nadzor regulatorja ventilatorjev z NodeMCU
Preprosta koda Arduino skrbi za komunikacijo med firebase in modulom ESP-12E, razlaga vezja in kode je podana spodaj. Najprej določimo vse potrebne knjižnice, naslednje knjižnice lahko prenesete iz danih povezav Arduino JSON knjižnica in knjižnico FirebaseArduino
#include
Za vzpostavitev komunikacije s Firebase bomo uporabili knjižnico FirebaseArduino .
// Nastavite jih za izvajanje primerov. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "your SSID" #defASS WIFWIDFIFWIDEWIFF_WideWIFF_defass WIFI # passv.
Nato smo definirali gostitelja firebase, firebase auth, ki smo ga prej shranili, ko smo ustvarjali račun firebase. Nato smo določili SSID in geslo našega usmerjevalnika.
String Resivedata; #define PWM_PIN 14;
Nato smo definirali spremenljivko tipa string, Resivedata, kjer bodo shranjeni vsi podatki, in definirali smo tudi PWM_PIN, kjer bomo dobili izhod PWM.
Nato v razdelku void setup () naredimo potrebno,
Serial.begin (9600); pinMode (PWM_PIN, IZHOD); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("povezovanje"); medtem ko (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); zamuda (500); } Serial.println (); Serial.print ("povezan:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Spremenljivka / vrednost", "FirstTestStrig");
Najprej omogočimo serijsko številko s klicem funkcije Serial.begin () . Nato smo PIN PWM nastavili kot IZHOD. Povezavo Wi-Fi začnemo s pomočjo funkcije WiFi.begin () in v funkcijo posredujemo SSID in geslo. Stanje povezave preverimo v zanki while in ko smo enkrat povezani, prekinemo zanko in nadaljujemo naprej. Nato priključeno sporočilo natisnemo z naslovom IP.
Končno začnemo komunikacijo s firebase s funkcijo Firebase.begin () in posredujemo parametre FIREBASE_HOST in FIREBASE_AUTH, ki smo jih določili prej. In niz nastavimo s funkcijo setString () , ki označuje konec nastavitvene funkcije. V razdelku void loop () ,
Resivedata = Firebase.getString ("Spremenljivka / vrednost"); Serial.println (Resivedata); analogWrite (PWM_PIN, zemljevid (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); zamuda (100);
Pokličemo funkcijo getString () s spremenljivko / vrednostjo, kjer so podatki shranjeni v ognjišču, primer bi bil podoben spodnji sliki -
Nato vrednost izpišemo samo za odpravljanje napak. Nato za preslikavo vrednosti uporabimo funkcijo map, 80 se uporablja, ker lahko v območju od 0 do 80 natančno nadzorujemo vrata MOSFET-a, za to vrednost pa je nekoliko odgovoren nizkopasovni filter RC. V tem obsegu vezje za nadzor faznega kota deluje natančno, vrednost lahko pokličete kot sladko točko strojne in programske opreme. Če se ukvarjate s tem projektom in se soočate s težavami, se morate poigrati z vrednostjo in rezultate določiti sami.
In po tem uporabljamo funkcijo analogWrite () za hranjenje podatkov in omogočimo PWM, po tem pa ponovno uporabimo funkcijo Serial.println () samo za pregled rezultata in na koncu s funkcijo zakasnitve zmanjšamo hit-count za firebase API, ki zaključuje naš program.
Izdelava aplikacije Fan Regulator z MIT App Inventor
S pomočjo AppInventor bomo izdelali aplikacijo za Android, ki bo komunicirala z firebase in bo pooblaščena za spreminjanje podatkov, ki so shranjeni v bazi podatkov firebase.
Če želite to narediti, pojdite na spletno mesto appInventors, prijavite se z Google Računom in sprejmite določila in pogoje. Ko to storite, se vam prikaže zaslon, ki je podoben spodnji sliki.
Kliknite ikono za zagon novega projekta in mu dajte ime in pritisnite V redu, ko boste to storili, se vam bo prikazal zaslon, kot je spodnja slika.
Ko tam morate najprej postaviti dve nalepki, pri čemer je treba drsnik malo spustiti, nato pa potegnite nekaj modulov in to sta modul FirebaseDB in spletni modul.
Modul firebaseDB komunicira z firebase, spletni modul se uporablja za h andle zahtevo. Kar izgleda kot spodnja slika.
Ko je to končano, morate povleči drsnik in nalepko, ki smo jo poimenovali PWM. Če se v tem trenutku zmedete, si lahko ogledate nekaj drugih vadnic v zvezi z izdelavo aplikacije z izumiteljem aplikacij.
Ko končamo s postopkom, kliknite ikono DB Firebase in vstavite žeton Firebase in URL Firebase, ki smo ga shranili med izdelavo računa Firebase.
Zdaj smo končali z odsekom za oblikovanje in morali smo nastaviti odsek bloka. Za to moramo klikniti gumb za blokado v zgornjem desnem kotu poleg oblikovalca.
Ko enkrat kliknete na drsnik, se vam prikaže dolg seznam modulov, izvlecite prvi modul in premaknite miško nad gumb za položaj palca, pozdravila vas bosta še dva modula, oba izvlecite ven. Te bomo uporabili kasneje.
Zdaj smo pritrdite thumbposition spremenljivko, jo zaokrožite in smo dobili vrednost položaja palec. Nato kliknemo na firebasedb in izvlečemo klicno vrednost oznake FirebaseDB.storeValue, da jo shranimo, moduliramo in pritrdimo na dno vrednosti položaja palca.
Ko končamo, s klikom na besedilni blok izvlečemo prazno polje z besedilom in ga pritrdimo z oznako, to je oznaka, ki smo jo v IDE Arduino nastavili za branje in zapisovanje podatkov v Firebase. Zdaj spremenljivki vrednosti palca priložite vrednost, ki jo želite shraniti. Če ste vse naredili pravilno, boste lahko s premikanjem drsnika spremenili vrednosti v firebaseDB.
- .Aia (shranjena datoteka) in.apk (prevedena datoteka)
Kar pomeni konec našega postopka izdelave aplikacij. Posnetek aplikacije za Android, ki smo jo pravkar ustvarili, je prikazan spodaj.
Testiranje vezja senzorja na dotik na osnovi ESP32
Za preizkus vezja sem vzporedno s stropnim ventilatorjem priključil žarnico z žarilno nitko in vezje napajal s 5V enosmernim adapterjem, kot lahko vidite na zgornji sliki, je drsnik aplikacije nastavljen na nizko, zato žarnica žari pri šibki svetlosti. In tudi ventilator se počasi vrti.
Nadaljnje izboljšave
Za to predstavitev je vezje narejeno na ročno izdelanem tiskanem vezju, vendar ga je mogoče zlahka zgraditi na kakovostnem tiskanem vezju, v mojih poskusih je velikost tiskanega vezja res velika zaradi velikosti komponente, vendar je v proizvodnem okolju mogoče zmanjšati z uporabo poceni komponent SMD, ugotovil sem, da uporaba časovnika 7555 namesto 555 časovnika močno poveča nadzor, poleg tega pa se poveča tudi stabilnost vezja.