- Funcționarea unui regulator de ventilator de tavan bazat pe IoT
- Materiale necesare pentru circuitul de control al vitezei ventilatorului de curent alternativ
- Circuitul de control al regulatorului ventilatorului de curent alternativ
- Design PCB pentru regulatorul de ventilator de tavan controlat IoT
- Configurarea unui cont Firebase
- Cod Arduino pentru a controla regulatorul ventilatorului cu NodeMCU
- Construirea aplicației Regulator ventilator cu MIT App Inventor
- Testarea circuitului senzorului tactil bazat pe ESP32
- Îmbunătățiri suplimentare
În acest articol, construim un circuit de reglare a ventilatorului de curent alternativ, care poate controla viteza ventilatorului prin restricționarea fluxului de curent către ventilator. Termenul Regulator ventilator de tavan AC este o gură, prin urmare îl vom numi pur și simplu regulator ventilator de acum înainte. Un circuit de reglare a ventilatorului este o componentă crucială care este utilizată pentru a crește sau a micșora viteza unui ventilator / motor CA în funcție de necesități. Cu câțiva ani în urmă, ai avut de ales între un regulator convențional de tip rezistiv al ventilatorului sau un regulator electronic, dar în zilele noastre totul a fost înlocuit de circuitul regulatorului electronic al ventilatorului.
Într-un articol anterior, v-am arătat cum ați putea construi un circuit de control al unghiului de fază AC cu un Arduino care era capabil să controleze luminozitatea unui bec cu incandescență și, de asemenea, să controleze viteza unui ventilator, deci pentru a-l intensifica în acest articol, vom construi un circuit de reglare a ventilatorului de plafon AC bazat pe IoT. Care va putea controla viteza ventilatorului dvs. de tavan cu ajutorul unei aplicații Android.
Funcționarea unui regulator de ventilator de tavan bazat pe IoT
Circuitul regulatorului ventilatorului este un circuit simplu care este capabil să controleze viteza unui ventilator de plafon alternativ modificând unghiul de fază al undei sinusoidale CA sau, în termeni simpli, controlul precis al TRIAC. Așa cum am menționat toate funcționările de bază ale circuitului regulatorului ventilatorului de curent alternativ în articolul AC Phase Angle Control cu 555 Timer și articolul PWM, ne vom concentra asupra construcției reale a circuitului. Și din nou, dacă doriți să aflați mai multe despre subiect, vă rugăm să consultați și articolul despre AC Light Dimmer folosind Arduino și TRIAC Project.
Diagrama bloc de bază de mai sus arată cum funcționează circuitul. După cum am spus mai devreme, vom genera un semnal PWM cu ajutorul Firebase IoT și NodeMCU, apoi semnalul PWM va fi trecut prin filtrul low-pass care va controla poarta unui MOSFET după care un timer 555 va controla TRIAC propriu-zis cu ajutorul unui optocuplator.
În acest caz, aplicația pentru Android modifică valoarea din firebaseDB, iar ESP verifică în mod constant dacă există modificări care se întâmplă la acel DB dacă are loc o modificare care este trasă în jos și valoarea este convertită într-un semnal PWM
Materiale necesare pentru circuitul de control al vitezei ventilatorului de curent alternativ
Imaginea de mai jos prezintă materialul folosit pentru a construi acest circuit, deoarece acesta este realizat cu componente foarte generice, ar trebui să puteți găsi tot materialul listat în magazinul dvs. local de hobby-uri.
De asemenea, am enumerat componentele într-un tabel de mai jos cu tipul și cantitatea, deoarece este un proiect demonstrativ, folosesc un singur canal pentru a face acest lucru. Dar circuitul poate fi amplificat cu ușurință conform cerințelor.
- Conector cu șurub 5,04 mm - 2
- Conector antet masculin 2,54 mm - 1
- Rezistor 56K, 1W - 2
- 1N4007 Diodă - 4
- 0.1uF, 25V Condensator - 2
- Regulator de tensiune AMS1117 - 1
- 1000uF, 25V Condensator - 1
- Mufă de alimentare DC - 1
- Rezistor 1K - 1
- Rezistor 470R - 2
- Rezistor 47R - 2
- Rezistențe 82 K - 1
- Rezistențe 10 K - 5
- PC817 Optocuplor - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 MOSFET - 1
- Condensator 3.3uF - 1
- Conectarea firelor - 5
- 0.1uF, 1KV Condensator - 1
- Microcontroler ESP8266 (ESP-12E) - 1
Circuitul de control al regulatorului ventilatorului de curent alternativ
Schema pentru circuitul regulatorului ventilatorului IoT este prezentată mai jos, acest circuit este foarte simplu și folosește componente generice pentru a realiza controlul unghiului de fază.
Acest circuit este format din componente foarte atent proiectate. O să trec prin fiecare și să explic fiecare bloc.
Cip Wi-Fi ESP8266 (ESP-12E):
Aceasta este prima parte a circuitului nostru și este partea în care am schimbat o mulțime de lucruri, alte părți rămân exact la fel, adică dacă ați urmat articolul precedent.
În această secțiune, am tras pinii Enable, Reset și GPIO0, de asemenea, am tras GPIO15 și Ground Pin, care sunt recomandate de foaia tehnică a cipului. În ceea ce privește programarea, am plasat un antet cu 3 pini care expune TX, RX și pinul de masă prin care putem programa cipul foarte ușor. De asemenea, am pus un comutator tactil pentru a pune GPIO0 la sol, acesta este un pas necesar pentru a pune ESP în modul de programare. Am selectat pinul GPIO14 ca ieșire prin care este generat semnalul PWM.
Notă! În momentul programării, trebuie să apăsăm butonul și să alimentăm dispozitivul cu mufa DC.
Circuit de detectare a traversării zero:
În primul rând, pe lista noastră este circuitul de detectare a trecerii zero realizat cu două rezistențe de 56K, 1W împreună cu patru diode 1n4007 și un optocuplu PC817. Și acest circuit este responsabil pentru furnizarea semnalului de trecere zero către 555 timer IC. De asemenea, am eliminat faza și semnalul neutru pentru a le utiliza în continuare în secțiunea TRIAC.
Regulator de tensiune AMS1117-3.3V:
Regulatorul de tensiune AMS1117 este utilizat pentru alimentarea circuitului, circuitul este responsabil pentru furnizarea de energie întregului circuit. În plus, am folosit doi condensatori 1000uF și un condensator 0.1uF ca condensator de decuplare pentru IC AMS1117-3.3.
Circuit de control cu temporizator NE555:
Imaginea de mai sus arată circuitul de control al temporizatorului 555, modelul 555 este configurat într-o configurație monostabilă, astfel încât atunci când un semnal de declanșare din circuitul de detectare a trecerii zero lovește declanșatorul, temporizatorul 555 începe să încarce condensatorul cu ajutorul unui rezistor (în general), dar circuitul nostru are un MOSFET în locul unui rezistor și, controlând poarta MOSFET, controlăm curentul care merge la condensator, de aceea controlăm timpul de încărcare, de aceea controlăm ieșirea celor 555 temporizatoare.
TRIAC și circuitul driverului TRIAC:
TRIAC acționează ca întrerupătorul principal care pornește și oprește, astfel controlează ieșirea semnalului de curent alternativ. Conducerea TRIAC utilizând unitatea MOC3021 Opto-Triac, nu conduce doar TRIAC, ci oferă și izolare optică, condensatorul de înaltă tensiune 0,01uF 2KV, iar rezistorul 47R formează un circuit snubber, care ne protejează circuitul de vârfuri de înaltă tensiune care apar atunci când este conectat la o sarcină inductivă. Natura non-sinusoidală a semnalului alternativ AC este responsabilă pentru vârfuri. De asemenea, este responsabil pentru problemele legate de factorul de putere, dar acesta este un subiect pentru un alt articol.
MOSFET cu filtru de trecere și canal P (care acționează ca rezistor în circuit):
Rezistorul de 82K și condensatorul de 3,3 uF formează filtrul de trecere jos, care este responsabil pentru netezirea semnalului PWM de înaltă frecvență generat de Arduino. După cum sa menționat anterior, MOSFET-ul P-Channel acționează ca rezistor variabil, care controlează timpul de încărcare al condensatorului. Controlul acestuia este semnalul PWM care este netezit de filtrul low-pass.
Design PCB pentru regulatorul de ventilator de tavan controlat IoT
PCB-ul pentru circuitul nostru de regulator al ventilatorului de tavan IoT este proiectat într-o placă unilaterală. Am folosit software-ul de proiectare Eagle PCB pentru a-mi proiecta PCB-ul, dar puteți utiliza orice software de proiectare la alegere. Imaginea 2D a designului plăcii mele este prezentată mai jos.
O umplere suficientă la pământ este utilizată pentru a realiza conexiuni la pământ adecvate între toate componentele. Intrarea de 3.3V DC și intrarea de 220 Volt AC sunt populate în partea stângă, ieșirea este situată în partea dreaptă a PCB-ului. Fișierul complet de proiectare pentru Eagle împreună cu Gerber poate fi descărcat de pe linkul de mai jos.
- Design PCB, fișiere GERBER și PDF pentru circuitul regulatorului ventilatorului de tavan
PCB realizat manual:
Pentru comoditate, am realizat versiunea mea manuală a PCB-ului și este prezentată mai jos.
Cu aceasta, hardware-ul nostru este gata conform schemei noastre de circuite, acum trebuie să pregătim aplicația noastră Android și Google Firebase.
Configurarea unui cont Firebase
Pentru următorul pas, trebuie să configurăm un cont Firebase. Toată comunicarea va trece prin contul Firebase. Pentru a configura un cont Firebase, accesați site-ul web Firebase și faceți clic pe „Începeți”.
După ce faceți clic, trebuie să vă conectați cu contul dvs. Google și
după ce v-ați conectat, trebuie să creați un proiect făcând clic pe butonul Creați un proiect.
Dacă faceți acest lucru, veți fi redirecționat către o pagină care arată ca imaginea de mai sus. Tastați numele proiectului dvs. și faceți clic pe continuare.
Din nou, faceți clic pe continua.
După ce faceți acest lucru, trebuie să fiți de acord cu câțiva termeni și condiții făcând clic pe caseta de selectare, apoi trebuie să faceți clic pe butonul Creați proiect.
Dacă ați făcut totul corect, după ceva timp, veți primi un mesaj ca acesta. După ce ați terminat, consola dvs. Firebase ar trebui să arate ca imaginea de mai jos.
Acum trebuie să colectăm două lucruri de aici. Pentru a face acest lucru, trebuie să faceți clic pe numele proiectului pe care tocmai l-ați creat. Pentru mine, este CelingFanRegulator, după ce faceți clic pe acesta, veți obține un tablou de bord similar cu imaginea de mai jos.
Faceți clic pe setări, apoi pe setările proiectului, pagina pe care o veți obține va arăta ca imaginile de mai jos.
Faceți clic pe contul de serviciu -> secretul bazei de date.
Copiați secretul bazei de date și păstrați-l undeva pentru o utilizare ulterioară.
Apoi, faceți clic pe baza de date în timp real și copiați adresa URL. păstrați-l și pentru utilizare ulterioară.
Și asta este tot, există partea de bază a focului a lucrurilor.
Cod Arduino pentru a controla regulatorul ventilatorului cu NodeMCU
Un cod Arduino simplu are grijă de comunicarea dintre firebase și modulul ESP-12E, explicația circuitului și a codului este prezentată mai jos. În primul rând, definim toate bibliotecile necesare necesare, puteți descărca următoarele biblioteci din linkurile date Biblioteca Arduino JSON și biblioteca FirebaseArduino
#include
Vom folosi biblioteca FirebaseArduino pentru a stabili comunicarea cu firebase.
// Setați-le pentru a rula exemple. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "your SSID" #define WIFI_PASSWORD
Apoi, am definit gazda firebase, firebase auth, pe care o salvasem mai devreme când făceam contul firebase. Apoi am definit SSID-ul și parola routerului nostru.
String Resivedata; #define PWM_PIN 14;
Apoi, am definit o variabilă de tip șir, Resivedata în care vor fi stocate toate datele și am definit și PWM_PIN unde vom obține ieșirea PWM.
Apoi, în secțiunea void setup () , facem ceea ce este necesar,
Serial.begin (9600); pinMode (PWM_PIN, OUTPUT); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print („conectare”); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); întârziere (500); } Serial.println (); Serial.print ("conectat:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Variabilă / valoare", "FirstTestStrig");
Mai întâi, activăm serialul apelând funcția Serial.begin () . Apoi, am setat pinul PWM ca OUTPUT. Începem conexiunea Wi-Fi cu ajutorul funcției WiFi.begin () și trecem SSID-ul și parola în funcție. Verificăm starea conexiunii într-o buclă de timp și, odată conectat, rupem bucla și continuăm. Apoi, imprimăm mesajul conectat cu adresa IP.
În cele din urmă, vom începe comunicarea cu firebase cu Firebase.begin () funcție și vom trece FIREBASE_HOST și FIREBASE_AUTH parametrii pe care le - am definit mai devreme. Și setăm șirul cu funcția setString () , care marchează sfârșitul funcției de configurare. În secțiunea bucla de gol () ,
Resivedata = Firebase.getString ("Variabilă / valoare"); Serial.println (Resivedata); analogWrite (PWM_PIN, map (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); întârziere (100);
Numim funcția getString () cu Variabilă / Valoare unde datele sunt stocate în baza de foc, un exemplu ar fi ca imaginea de mai jos-
Apoi imprimăm valoarea doar pentru depanare. Apoi, folosim funcția de hartă pentru cartografierea valorii, 80 este utilizat deoarece, în intervalul 0 - 80, suntem capabili să controlăm cu precizie poarta MOSFET, iar filtrul lowpass RC este oarecum responsabil pentru această valoare. În acest interval, circuitul de control al unghiului de fază funcționează cu acuratețe, puteți apela valoarea ca un punct dulce hardware-software. Dacă faceți acest proiect și vă confruntați cu probleme, trebuie să vă jucați cu valoarea și să determinați singur rezultatele.
Și după aceea, folosim funcția analogWrite () pentru a alimenta datele și pentru a activa PWM, după aceea, folosim din nou funcția Serial.println () doar pentru a revizui rezultatul și, în cele din urmă, folosim o funcție de întârziere pentru a reduce hit-count la API-ul firebase care face sfârșitul programului nostru.
Construirea aplicației Regulator ventilator cu MIT App Inventor
Cu ajutorul AppInventor, vom crea o aplicație Android care va comunica cu Firebase și are autoritatea de a schimba datele stocate în baza de date Firebase.
Pentru aceasta, accesați site-ul web AppInventors, conectați-vă cu contul dvs. Google și acceptați termenii și condițiile. După ce o veți face, vi se va prezenta un ecran care arată ca imaginea de mai jos.
Faceți clic pe pictograma de pornire a unui nou proiect și dați-i un nume și apăsați OK, odată ce ați făcut-o, vi se va prezenta un ecran ca imaginea de mai jos.
Odată ajuns acolo, trebuie mai întâi să puneți două etichete, unde este să puneți glisorul puțin în jos, apoi trebuie să trageți câteva module și acestea sunt modulul FirebaseDB și modulul web.
Cele firebaseDB comunicatelor modulului cu firebase, modulul web este utilizat pentru a h andle solicitarea. Care arată ca imaginea de mai jos.
Odată ce ați terminat, trebuie să trageți glisorul și o etichetă pe care am denumit-o PWM, dacă vă confundați în acest moment, puteți consulta câteva alte tutoriale privind crearea unei aplicații cu un inventator de aplicații.
După ce am terminat procesul, faceți clic pe pictograma firebase DB și introduceți simbolul firebase și adresa URL a firebase pe care le-am salvat în timp ce creați contul firebase.
Acum, am terminat cu secțiunea de proiectare și trebuie să configurăm secțiunea bloc. Pentru a face acest lucru, trebuie să facem clic pe butonul de blocare din colțul din dreapta sus de lângă proiectant.
După ce faceți clic pe glisor și vi se va prezenta o listă lungă de module, scoateți primul modul și treceți mouse-ul peste butonul de poziție degetul mare, veți fi întâmpinat cu încă două module, scoateți-le pe amândouă. O să le folosim mai târziu.
Acum vom atașa thumbposition variabila, am rotunji și vom obține valoarea poziției degetului mare. Apoi, facem clic pe firebasedb și scoatem valoarea etichetei de apel FirebaseDB.storeValue pentru stocare, modul și o atașăm la partea de jos a valorii poziției degetului mare.
După ce ați terminat, scoatem o casetă de text goală făcând clic pe blocul de text și o atașăm cu eticheta, aceasta este eticheta pe care am setat-o în Arduino IDE pentru a citi și scrie datele pe firebase. Acum atașați variabila valoare degetului mare la valoarea pentru a stoca eticheta. Dacă ați făcut totul corect, mutând glisorul, veți putea modifica valorile din firebaseDB.
- .Aia (fișier salvat) și.apk (fișier compilat)
Ceea ce marchează sfârșitul procesului nostru de creare a aplicațiilor. Un instantaneu al aplicației Android pe care tocmai l-am creat este prezentat mai jos.
Testarea circuitului senzorului tactil bazat pe ESP32
Pentru a testa circuitul, am conectat un bec cu incandescență paralel cu ventilatorul de tavan și am alimentat circuitul cu un adaptor de 5V DC, după cum puteți vedea în imaginea de mai sus, glisorul aplicației este setat la scăzut, de aceea becul strălucește la luminozitate scăzută. Și ventilatorul se rotește, de asemenea, lent.
Îmbunătățiri suplimentare
Pentru această demonstrație, circuitul este realizat pe un PCB fabricat manual, dar circuitul poate fi construit cu ușurință pe un PCB de bună calitate, în experimentele mele, dimensiunea PCB este într-adevăr mică datorită dimensiunii componentelor, dar într-un mediu de producție, pot fi reduse folosind componente SMD ieftine, am găsit că folosind un temporizator 7555 în loc de un temporizator 555 crește controlul pe scară largă, în plus, crește și stabilitatea circuitului.