- Rad regulatora stropnih ventilatora zasnovan na IoT-u
- Materijali potrebni za krug za regulaciju brzine ventilatora izmjenične struje
- Upravljački krug regulatora ventilatora izmjenične struje
- Dizajn PCB-a za IoT kontrolirani regulator stropnih ventilatora
- Postavljanje Firebase računa
- Arduino kod za upravljanje regulatorom ventilatora s NodeMCU
- Izrada aplikacije Regulator ventilatora pomoću MIT App Inventora
- Testiranje sklopa osjetnika dodira na temelju ESP32
- Daljnja poboljšanja
U ovom članku gradimo krug regulatora ventilatora izmjenične struje koji može kontrolirati brzinu ventilatora ograničavajući protok struje prema ventilatoru. Pojam AC stropni regulator ventilatora zalogaj je pa ćemo ga od sada jednostavno nazivati regulatorom ventilatora. Regulator ventilatora sklop je ključna komponenta koja se koristi za povećanje ili smanjenje brzine od AC ventilatora / motora u skladu s potrebama. Prije nekoliko godina imali ste mogućnost izbora između konvencionalnog regulatora ventilatora otpornog tipa ili elektroničkog regulatora, ali danas je sve to zamijenjeno krugom elektroničkog regulatora ventilatora.
U prethodnom članku pokazali smo vam kako možete izraditi krug za regulaciju kuta izmjenične faze s Arduinom koji je mogao kontrolirati svjetlinu žarulje sa žarnom niti, a također i brzinu ventilatora, tako da ga pojačate u ovom ćemo članku izraditi sklop regulatora AC stropnih ventilatora zasnovan na IoT-u. Koji će moći kontrolirati brzinu vašeg stropnog ventilatora uz pomoć Android aplikacije.
Rad regulatora stropnih ventilatora zasnovan na IoT-u
Krug regulatora ventilatora jednostavan je sklop koji može kontrolirati brzinu stropnog ventilatora izmjeničnom strukturom mijenjajući fazni kut izmjeničnog sinusnog vala ili jednostavnim riječima preciznu kontrolu TRIAC-a. Kao što sam spomenuo sve osnovne radnje kruga regulatora izmjeničnog ventilatora u regulaciji kuta izmjenične faze s člankom 555 Timer i PWM, koncentrirat ćemo se na stvarnu izgradnju kruga. I opet, ako želite saznati više o toj temi, također pogledajte članak o zatamnjivanju AC svjetla koristeći Arduino i TRIAC Project.

Gornji osnovni blok dijagram prikazuje kako sklop zapravo radi. Kao što sam ranije rekao, generirat ćemo PWM signal uz pomoć Firebase IoT i NodeMCU, a zatim će PWM signal biti propušten kroz niskopropusni filtar koji će kontrolirati vrata MOSFET-a, nakon čega će tajmer 555 kontrolirati stvarni TRIAC uz pomoć optičkog sklopnika.
U ovom slučaju, android aplikacija mijenja vrijednost u firebaseDB, a ESP neprestano provjerava ima li promjena koje se događaju s tim DB-om ako se dogodi neka promjena koja se povuče prema dolje i vrijednost se pretvori u PWM signal
Materijali potrebni za krug za regulaciju brzine ventilatora izmjenične struje
Na slici dolje prikazan je materijal koji se koristi za izgradnju ovog kruga, jer je napravljen od vrlo generičkih komponenata, sav navedeni materijal trebali biste moći pronaći u lokalnoj hobi trgovini.
Također sam naveo komponente u donjoj tablici s vrstom i količinom od svog demonstracijskog projekta, za to koristim jedan kanal. Ali sklop se lako može povećati prema zahtjevu.
- Vijčani priključak 5,04 mm konektor - 2
- Priključak za muški priključak 2,54 mm - 1
- Otpornik 56K, 1W - 2
- 1N4007 Dioda - 4
- 0,1uF, 25V kondenzator - 2
- AMS1117 Regulator napona - 1
- Kondenzator 1000uF, 25V - 1
- Istosmjerna utičnica - 1
- 1K otpornik - 1
- Otpornik 470R - 2
- Otpornik 47R - 2
- Otpornici 82 K - 1
- Otpornici 10 K - 5
- Optički sprežnik PC817 - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 MOSFET - 1
- Kondenzator 3.3uF - 1
- Spajanje žica - 5
- 0,1uF, 1KV kondenzator - 1
- ESP8266 (ESP-12E) Mikrokontroler - 1
Upravljački krug regulatora ventilatora izmjenične struje
Shema za IoT krug regulatora ventilatora prikazana je u nastavku, ovaj je sklop vrlo jednostavan i koristi generičke komponente za postizanje kontrole faznog kuta.

Ovaj krug čine vrlo pažljivo dizajnirane komponente. Proći ću kroz svaki i objasniti svaki blok.
ESP8266 (ESP-12E) Wi-Fi čip:
Ovo je prvi dio našeg kruga i to je dio u kojem smo promijenili puno stvari, ostali dijelovi ostaju potpuno isti, tj. Ako ste slijedili prethodni članak.

U ovom smo odjeljku izvukli igle Enable, Reset i GPIO0, također smo izvukli GPIO15 i Ground Pin, koji su preporučeni u tablici podataka čipa. Što se tiče programiranja, postavili smo 3pin zaglavlje koje izlaže TX, RX i uzemljeni pin kroz koji možemo vrlo lako programirati čip. Također, postavili smo taktilni prekidač za stavljanje GPIO0 na zemlju, ovo je neophodan korak za stavljanje ESP-a u način programiranja. Za izlaz putem kojeg se generira PWM signal odabrali smo pin GPIO14.
Bilješka! U vrijeme programiranja moramo pritisnuti tipku i napajati uređaj DC priključkom za cijev.
Krug za otkrivanje nule-križanja:
Prvo, na našem je popisu sklop za detekciju presijecanja nule izrađen s dva otpora od 56K, 1W u kombinaciji s četiri diode 1n4007 i optičkim sklopnikom PC817. A ovaj je krug odgovoran za pružanje signala prelaska nule na IC 555 tajmera. Također, zalijepili smo fazu i neutralni signal kako bismo ih dalje koristili u odjeljku TRIAC.
AMS1117-3.3V Regulator napona:
Regulator napona AMS1117 koristi se za napajanje kruga, krug je odgovoran za opskrbu cijelim krugom. Uz to, koristili smo dva kondenzatora od 1000uF i kondenzator od 0,1uF kao odvojni kondenzator za IC AMS1117-3.3.
Upravljački krug s NE555 timerom:
Gornja slika prikazuje upravljački krug 555 timera, 555 je konfiguriran u monostabilnoj konfiguraciji, pa kad signal okidača iz kruga otkrivanja nule-križanja pogodi okidač, 555 timer počinje puniti kondenzator uz pomoć otpornika (općenito), ali naš krug ima MOSFET umjesto otpornika, a upravljajući vratima MOSFET-a kontroliramo struju koja ide prema kondenzatoru, zato kontroliramo vrijeme punjenja pa stoga kontroliramo izlaz 555 timera.
TRIAC i krug TRIAC-vozača:
TRIAC djeluje kao glavni prekidač koji se zapravo uključuje i isključuje te tako kontrolira izlaz AC signala. Vozeći TRIAC pomoću MOC3021 Opto-Triac-pogona, on ne pokreće samo TRIAC, već također pruža optičku izolaciju, visokonaponski kondenzator 0,01uF 2KV, a otpor 47R tvori snuber krug, koji štiti naš krug od visokonaponski skokovi koji se javljaju kada je spojen na induktivno opterećenje, Nesinusoidna priroda preklopljenog izmjeničnog signala odgovorna je za šiljke. Također je odgovoran za pitanja faktora snage, ali to je tema za drugi članak.
Niskopropusni filtar i P-kanalni MOSFET (djeluju kao otpornik u krugu):
Otpor 82K i kondenzator 3.3uF čine niskopropusni filtar koji je odgovoran za izravnavanje visokofrekventnog PWM signala koji generira Arduino. Kao što je prethodno spomenuto, P-kanalni MOSFET djeluje kao promjenjivi otpor koji kontrolira vrijeme punjenja kondenzatora. Upravljanje njime je PWM signal koji izravnava niskopropusni filtar.
Dizajn PCB-a za IoT kontrolirani regulator stropnih ventilatora
PCB za naš sklop IoT stropnog regulatora ventilatora dizajniran je u jednostranoj ploči. Za dizajn svoje PCB-a koristio sam softver za dizajn Eagle PCB-a, ali možete koristiti bilo koji softver za dizajn po vašem izboru. 2D slika mog dizajna ploče prikazana je u nastavku.

Dovoljno punjenja zemljom koristi se za uspostavljanje pravilnih spojeva uzemljenja između svih komponenata. Ulaz istosmjerne struje od 3,3 V i ulaz za izmjeničnu struju od 220 volti naseljeni su s lijeve strane, a izlaz je smješten na desnoj strani PCB-a. Kompletnu datoteku dizajna za Eagle zajedno s Gerberom možete preuzeti s donje poveznice.
- Dizajn PCB-a, GERBER i PDF datoteke za krug stropnog ventilatora
Ručno izrađena PCB:
Radi praktičnosti izradio sam svoju ručno izrađenu verziju PCB-a i ona je prikazana u nastavku.

S ovim je naš hardver spreman prema našem dijagramu sklopa, sada moramo pripremiti našu android aplikaciju i Google firebase.

Postavljanje Firebase računa
Za sljedeći korak moramo postaviti Firebase račun. Sva komunikacija ići će putem računa Firebasea. Da biste postavili Firebase račun, idite na Firebase web mjesto i kliknite na "započeti".

Nakon što kliknete, morate se prijaviti sa svojim Google računom i

nakon što se prijavite, trebate stvoriti projekt klikom na gumb izradi projekt.

To će vas preusmjeriti na stranicu koja izgleda poput gornje slike. Upišite naziv svog projekta i kliknite Nastavi.

Ponovno kliknite Nastavi.

Nakon što to učinite, morate prihvatiti neke uvjete i odredbe klikom na potvrdni okvir, zatim trebate kliknuti na gumb za stvaranje projekta.

Ako ste sve učinili ispravno, nakon nekog vremena dobit ćete ovakvu poruku. Kad završite, vaša firebase konzola trebala bi izgledati poput donje slike.

Sada odavde moramo prikupiti dvije stvari. Da biste to učinili, morate kliknuti na naziv projekta koji ste upravo stvorili. Za mene je CelingFanRegulator, nakon što kliknete na njega, dobit ćete nadzornu ploču sličnu slici dolje.

Kliknite postavke, a zatim postavke projekta, stranica koju ćete dobiti izgledat će poput slika u nastavku.

Kliknite račun usluge -> tajna baza podataka.

Kopirajte bazu podataka u tajnosti i čuvajte je negdje za kasniju upotrebu.

Zatim kliknite bazu podataka u stvarnom vremenu i kopirajte URL. zadržite i za kasniju upotrebu.
I to je sve, važna je stvar stvari.
Arduino kod za upravljanje regulatorom ventilatora s NodeMCU
Jednostavni Arduino kôd brine se za komunikaciju između firebasea i modula ESP-12E, objašnjenje sklopa i koda dato je u nastavku. Prvo definiramo sve potrebne potrebne knjižnice, sljedeće biblioteke možete preuzeti s danih veza Arduino JSON knjižnica i FirebaseArduino knjižnica
#include
Koristit ćemo knjižnicu FirebaseArduino za uspostavljanje komunikacije s firebaseom.
// Postavite ih za pokretanje primjera. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "your SSID" #define WIFWIFI # passVide WIFI # passVide WIFI # passVide
Dalje, definirali smo firebase domaćina, firebase auth, koji smo ranije spremili prilikom izrade firebase računa. Tada smo definirali SSID i lozinku našeg usmjerivača.
String Resivedata; #define PWM_PIN 14;
Dalje, definirali smo varijablu tipa string, Resivedata gdje će se pohraniti svi podaci, a definirali smo i PWM_PIN gdje ćemo dobiti PWM izlaz.
Dalje, u odjeljku void setup () radimo potrebno,
Serial.begin (9600); pinMode (PWM_PIN, IZLAZ); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("povezivanje"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); kašnjenje (500); } Serial.println (); Serial.print ("povezano:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Varijabla / vrijednost", "FirstTestStrig");
Prvo omogućujemo serijski poziv pozivanjem funkcije Serial.begin () . Dalje, postavili smo PWM pin kao IZLAZ. Wi-Fi vezu započinjemo uz pomoć funkcije WiFi.begin () te u funkciju prosljeđujemo SSID i lozinku. Status veze provjeravamo u while petlji, a nakon povezivanja prekinemo petlju i nastavljamo dalje. Dalje, ispisujemo povezanu poruku s IP adresom.
Konačno, započinjemo komunikaciju s firebaseom pomoću funkcije Firebase.begin () i prosljeđujemo parametre FIREBASE_HOST i FIREBASE_AUTH koje smo prethodno definirali. A niz postavljamo funkcijom setString () koja označava kraj funkcije postavljanja. U odjeljku void loop () ,
Resivedata = Firebase.getString ("Varijabla / vrijednost"); Serial.println (Resivedata); analogWrite (PWM_PIN, mapa (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); kašnjenje (100);
Pozivamo funkciju getString () s varijablom / vrijednošću gdje su podaci pohranjeni u firebaseu, primjer bi bio poput slike ispod-

Zatim ispisujemo vrijednost samo za otklanjanje pogrešaka. Dalje, za mapiranje vrijednosti koristimo funkciju karte, koristi se 80, jer u rasponu od 0 - 80 možemo precizno kontrolirati vrata MOSFET-a, a za tu vrijednost donekle je odgovoran RC niskopropusni filtar. Unutar ovog raspona, krug za upravljanje faznim kutom radi točno, vrijednost možete nazvati slatko-hardverskim softverskim dijelom. Ako radite ovaj projekt i suočavate se s problemima, morate se poigrati vrijednošću i sami odrediti rezultate.
I nakon toga koristimo funkciju analogWrite () za unos podataka i omogućavanje PWM-a, nakon toga ponovno koristimo funkciju Serial.println () samo da bismo pregledali rezultat, i na kraju koristimo funkciju odgode kako bismo smanjili brojanje pogodaka za firebase API što čini kraj našeg programa.
Izrada aplikacije Regulator ventilatora pomoću MIT App Inventora
Uz pomoć AppInventor napravit ćemo android aplikaciju koja će komunicirati s firebaseom i koja ima ovlast mijenjati podatke koji su pohranjeni u firebase bazi podataka.
Da biste to učinili, idite na web mjesto appInventors, prijavite se svojim Google računom i prihvatite uvjete i odredbe. Kad to učinite, prikazat će vam se zaslon koji izgleda poput slike u nastavku.

Kliknite na ikonu za pokretanje novog projekta i dajte mu ime i pritisnite U redu, nakon što to učinite, prikazat će vam se zaslon poput donje slike.

Kad tamo trebate prvo staviti dvije naljepnice, gdje je ovo malo staviti klizač, zatim trebate povući neke module, a to su FirebaseDB modul i web-modul.
Modul firebaseDB komunicira s firebaseom, web modul se koristi za h andle Http zahtjev. Što izgleda poput donje slike.

Kad je to gotovo, morate povući klizač i naljepnicu koju smo nazvali PWM. Ako se u ovom trenutku zbunite, možete pogledati neke druge vodiče u vezi s izradom aplikacije s izumiteljem aplikacija.
Nakon što završimo s postupkom, kliknite ikonu Firebase DB i stavite Firebase žeton i Firebase URL koji smo spremili tijekom izrade Firebase računa.

Sada smo završili s dijelom za dizajn i moramo postaviti blok odjeljak. Da bismo to učinili, moramo kliknuti gumb blok u gornjem desnom kutu pokraj dizajnera.

Jednom kada kliknete na klizač i prikazat će vam se dugačak popis modula, izvucite prvi modul i zadržite pokazivač miša iznad gumba za položaj palca, dočekat će vas još dva modula, izvucite oba. Koristit ćemo ih kasnije.

Sada smo priložiti thumbposition varijablu, možemo ga zaokružuju i dobili smo vrijednost položaj palca. Dalje, kliknemo na firebasedb i izvučemo poziv oznake FirebaseDB.storeValue za spremanje, moduliranje i pričvršćivanje na dno vrijednosti položaja palca.

Nakon završetka izvlačimo prazan okvir za tekst klikom na blok teksta i pričvršćujemo ga oznakom, to je oznaka koju smo postavili u Arduino IDE za čitanje i pisanje podataka u firebaseu. Sada priložite varijablu vrijednosti palca vrijednosti koju želite pohraniti. Ako ste sve učinili ispravno, pomicanjem klizača moći ćete mijenjati vrijednosti u firebaseDB.
- .Aia (spremljena datoteka) i.apk (prevedena datoteka)
Što označava kraj našeg postupka izrade aplikacija. Snimka android aplikacije koju smo upravo stvorili prikazana je u nastavku.

Testiranje sklopa osjetnika dodira na temelju ESP32
Da bih testirao krug, spojio sam žarulju sa žarnom niti paralelno sa stropnim ventilatorom, a krug sam napajao 5V DC adapterom, kao što vidite na gornjoj slici, klizač aplikacije postavljen je na nizak nivo, zato žarulja svijetli pri maloj svjetlini. A ventilator se također polako okreće.
Daljnja poboljšanja
Za ovu demonstraciju sklop je napravljen na ručno izrađenoj PCB-u, ali sklop se lako može izgraditi na dobroj kvaliteti PCB-a, u mojim eksperimentima veličina PCB-a je stvarno mala zbog veličine komponente, ali u proizvodnom okruženju, može se smanjiti korištenjem jeftinih SMD komponenata, otkrio sam da pomoću tajmera 7555 umjesto tajmera 555 pojačano povećava kontrolu, štoviše, povećava se i stabilnost sklopa.
