- IoT lubų ventiliatorių reguliatoriaus darbas
- Medžiagos, reikalingos kintamosios srovės ventiliatoriaus greičio valdymo grandinei
- Kintamosios srovės ventiliatoriaus reguliatoriaus valdymo grandinė
- „IoT“ valdomo lubų ventiliatorių reguliatoriaus plokštės dizainas
- „Firebase“ paskyros nustatymas
- „Arduino“ kodas ventiliatoriaus reguliatoriui valdyti naudojant „NodeMCU“
- Ventiliatorių reguliatoriaus programos kūrimas naudojant „MIT App Inventor“
- ESP32 pagrindu veikiančio jutiklinio jutiklio grandinės testavimas
- Kiti patobulinimai
Šiame straipsnyje mes kuriame kintamosios srovės ventiliatoriaus reguliatoriaus grandinę, kuri sugeba valdyti ventiliatoriaus greitį, apribodama srovės srautą į ventiliatorių. Terminas „ AC lubų ventiliatoriaus reguliatorius“ yra gurkšnis, todėl nuo šiol jį tiesiog vadinsime ventiliatoriaus reguliatoriumi. Ventiliatorius reguliatorius grandinės yra esminis komponentas, kuris yra naudojamas siekiant padidinti arba sumažinti greitį AC ventiliatoriaus / variklio pagal poreikius. Praėjus keleriems metams, jūs turėjote pasirinkimą tarp įprasto varžinio tipo ventiliatoriaus reguliatoriaus arba elektroninio reguliatoriaus, tačiau šiais laikais visa tai pakeitė elektroninio ventiliatoriaus reguliatoriaus grandinė.
Ankstesniame straipsnyje mes jums parodėme, kaip galėtumėte sukurti kintamosios srovės fazės kampo valdymo grandinę su „Arduino“, kuri sugebėjo valdyti kaitrinės lemputės ryškumą ir taip pat reguliuoti ventiliatoriaus greitį, kad pakeltumėte laipsnį. šiame straipsnyje mes sukursime IoT pagrindu veikiančią kintamosios srovės lubų ventiliatoriaus reguliatoriaus grandinę. Kuris galės valdyti lubų ventiliatoriaus greitį „ Android“ programos pagalba.
IoT lubų ventiliatorių reguliatoriaus darbas
Ventiliatoriaus reguliatoriaus grandinė yra paprasta grandinė, galinti valdyti kintamosios srovės lubų ventiliatoriaus greitį, keičiant kintamosios srovės sinusinės bangos fazinį kampą arba paprastai tariant, tiksliai valdant TRIAC. Kaip jau minėjau visus pagrindinius kintamosios srovės ventiliatoriaus reguliatoriaus grandinės veikimus kintamosios srovės fazės kampo valdyme su 555 laikmačiu ir PWM straipsniu, mes sutelksime dėmesį į tikrąjį grandinės pastatymą. Ir dar kartą, jei norite sužinoti daugiau apie temą, taip pat patikrinkite straipsnį apie „AC Light Dimmer“ naudodami „Arduino“ ir „TRIAC Project“.
Pagrindinė aukščiau pateikta schema parodo, kaip iš tikrųjų veikia grandinė. Kaip jau sakiau anksčiau, mes generuosime PWM signalą naudodami „ Firebase IoT“ ir „NodeMCU“, tada PWM signalas bus perduotas per žemų dažnių filtrą, kuris valdys MOSFET vartus, po to valdys 555 laikmatis. faktinį TRIAC su optronu.
Tokiu atveju „Android“ programa keičia „ FirebaseDB“ vertę, o ESP nuolat tikrina, ar toje DB vyksta pakeitimai, jei įvyksta kokių nors pokyčių, kurie nukrenta ir vertė paverčiama PWM signalu
Medžiagos, reikalingos kintamosios srovės ventiliatoriaus greičio valdymo grandinei
Žemiau pateiktame paveikslėlyje parodyta medžiaga, naudojama kuriant šią grandinę, nes ji pagaminta iš labai bendrų komponentų, todėl turėtumėte sugebėti surasti visą išvardytą medžiagą savo vietos pomėgių parduotuvėje.
Aš taip pat išvardijau komponentus žemiau esančioje lentelėje su tipu ir kiekiu nuo jo parodomojo projekto, tam naudoju vieną kanalą. Tačiau grandinę galima lengvai padidinti pagal reikalavimą.
- Sraigtinio gnybto 5,04 mm jungtis - 2
- Vyrų antraštė 2,54 mm jungtis - 1
- 56K, 1W rezistorius - 2
- 1N4007 Diodas - 4
- 0.1uF, 25V kondensatorius - 2
- AMS1117 įtampos reguliatorius - 1
- 1000uF, 25V kondensatorius - 1
- Nuolatinės srovės lizdas - 1
- 1K rezistorius - 1
- 470R rezistorius - 2
- 47R rezistorius - 2
- 82 K rezistoriai - 1
- 10 K rezistoriai - 5
- PC817 optinis jungiklis - 1
- NE7555 IC - 1
- „MOC3021 Opto TriacDrive“ - 1
- IRF9540 MOSFET - 1
- 3.3uF kondensatorius - 1
- Laidų sujungimas - 5
- 0.1uF, 1KV kondensatorius - 1
- ESP8266 (ESP-12E) mikrovaldiklis - 1
Kintamosios srovės ventiliatoriaus reguliatoriaus valdymo grandinė
Už schematiškai DI ventiliatorius reguliatoriaus grandinės yra parodyta žemiau, ši grandinė yra labai paprastas ir naudoja bendruosius komponentus pasiekti fazės kampo kontrolę.
Ši grandinė susideda iš labai kruopščiai suprojektuotų komponentų. Aš pereisiu kiekvieną iš jų ir paaiškinsiu kiekvieną bloką.
ESP8266 (ESP-12E) „Wi-Fi“ lustas:
Tai yra pirmoji mūsų grandinės dalis, ir tai yra ta dalis, kurioje mes pakeitėme daug dalykų, kitos dalys išlieka visiškai tokios pačios, ty jei jūs laikėtės ankstesnio straipsnio.
Šiame skyriuje mes ištraukėme kaiščius „Enable“, „Reset“ ir „GPIO0“, taip pat ištraukėme „GPIO15“ ir „Ground Pin“, kuriuos rekomenduoja lusto duomenų lapas. Kalbant apie programavimą, mes įdėjome 3 kontaktų antraštę, atskleidžiančią TX, RX ir žemės kaištį, per kurį mes galime labai lengvai programuoti lustą. Be to, mes įdėjome lytėjimo jungiklį, kad GPIO0 būtų įjungtas į žemę. Tai yra būtinas žingsnis norint nustatyti ESP programavimo režime. Mes pasirinkome GPIO14 kaištį kaip išvestį, per kurią generuojamas PWM signalas.
Atkreipkite dėmesį! Programavimo metu turime paspausti mygtuką ir maitinti įrenginį DC barelio lizdu.
Nulio kirtimo aptikimo grandinė:
Pirma, mūsų sąraše yra nulio kirtimo aptikimo grandinė, pagaminta iš dviejų 56K, 1W rezistorių kartu su keturiais 1n4007 diodais ir PC817 optronu. Ši grandinė yra atsakinga už nulio kirtimo signalo teikimą 555 laikmačio IC. Be to, mes užfiksavome fazę ir neutralų signalą, kad galėtume jį toliau naudoti TRIAC skyriuje.
AMS1117-3.3V įtampos reguliatorius:
AMS1117 įtampos reguliatorius naudojamas grandinei maitinti, grandinė yra atsakinga už visos grandinės maitinimą. Be to, mes naudojome du 1000uF kondensatorius ir 0,1uF kondensatorių kaip AMS1117-3.3 IC atjungimo kondensatorių.
Valdymo grandinė su NE555 laikmačiu:
Aukščiau pateiktame paveikslėlyje parodyta 555 laikmačio valdymo grandinė, 555 yra sukonfigūruota monostabilioje konfigūracijoje, taigi, kai suveikimo signalas iš nulio kirtimo aptikimo grandinės pasiekia gaiduką, 555 laikmatis ima krauti kondensatorių rezistoriaus pagalba (apskritai), bet mūsų grandinėje vietoj rezistoriaus yra MOSFET, o valdydami MOSFET vartus, mes valdome srovę, einančią į kondensatorių, todėl mes kontroliuojame įkrovimo laiką, taigi mes valdome 555 laikmačių išvestį.
TRIAC ir TRIAC vairuotojo grandinė:
TRIAC veikia kaip pagrindinis jungiklis, kuris iš tikrųjų įsijungia ir išsijungia, tokiu būdu valdydamas kintamosios srovės signalo išvestį. Vairuodamas TRIAC naudodamas „MOC3021 Opto-Triac“ pavarą, jis ne tik valdo TRIAC, bet ir užtikrina optinę izoliaciją, 0,01uF 2KV aukštos įtampos kondensatorių, o 47R rezistorius sudaro trumpąją grandinę, kuri apsaugo mūsų grandinę nuo aukštos įtampos šuoliai, atsirandantys prijungus jį prie indukcinės apkrovos. Už smaigalius atsakingas ne sinusoidinis perjungto kintamosios srovės signalo pobūdis. Be to, ji yra atsakinga už galios faktoriaus klausimus, tačiau tai yra kito straipsnio tema.
Žemųjų dažnių filtras ir P kanalo MOSFET (veikia kaip grandinės rezistorius):
82K rezistorius ir 3.3uF kondensatorius sudaro žemo dažnio filtrą, kuris yra atsakingas už „Arduino“ sukurto aukšto dažnio PWM signalo išlyginimą. Kaip minėta anksčiau, P kanalo MOSFET veikia kaip kintamasis rezistorius, kuris kontroliuoja kondensatoriaus įkrovimo laiką. Jo valdymas yra PWM signalas, kurį išlygina žemų dažnių filtras.
„IoT“ valdomo lubų ventiliatorių reguliatoriaus plokštės dizainas
Mūsų IoT lubų ventiliatorių reguliatoriaus grandinės PCB yra sukurta vienpusėje plokštėje. Kurdamas savo PCB naudojau „Eagle“ PCB projektavimo programinę įrangą, tačiau galite naudoti bet kurią pasirinktą projektavimo programinę įrangą. 2D mano plokštės dizaino vaizdas parodytas žemiau.
Tinkamas žemės sujungimas tarp visų komponentų naudojamas pakankamu žemės užpildymu. 3,3 V nuolatinės srovės įvestis ir 220 voltų kintamosios srovės įvestis yra užpildytos kairėje pusėje, išvestis yra dešinėje PCB pusėje. Išsamų „Eagle“ dizaino failą kartu su „Gerber“ galite atsisiųsti iš toliau pateiktos nuorodos.
- PCB dizaino, GERBER ir PDF failai lubų ventiliatorių reguliatoriaus grandinei
Rankų darbo PCB:
Kad būtų patogiau, pasidariau savo rankomis pagamintą PCB versiją ir ji parodyta žemiau.
Tai atlikus, mūsų aparatinė įranga yra paruošta pagal schemą, dabar turime paruošti „Android“ programą ir „Google Firebase“.
„Firebase“ paskyros nustatymas
Norėdami atlikti kitą veiksmą, turime sukurti „Firebase“ paskyrą. Visas bendravimas vyks per „Firebase“ paskyrą. Norėdami nustatyti „Firebase“ paskyrą, eikite į „Firebase“ svetainę ir spustelėkite „pradėti“.
Spustelėję turite prisijungti naudodami „Google“ paskyrą ir
prisijungę, turite sukurti projektą spustelėdami mygtuką „Sukurti projektą“.
Tai atlikę jūs nukreipsite į puslapį, kuris atrodo kaip aukščiau pateiktas vaizdas. Įveskite savo projekto pavadinimą ir spustelėkite tęsti.
Dar kartą spustelėkite tęsti.
Kai tai padarysite, turite sutikti su kai kuriomis taisyklėmis ir nuostatomis spustelėdami žymimąjį laukelį, tada spustelėkite mygtuką Sukurti projektą.
Jei viską padarėte teisingai, po kurio laiko gausite tokią žinutę. Kai baigsite, „Firebase“ konsolė turėtų atrodyti taip, kaip paveikslėlyje žemiau.
Dabar turime surinkti du dalykus iš čia. Norėdami tai padaryti, turite spustelėti ką tik sukurto projekto pavadinimą. Man tai „ CelingFanRegulator“, kai spustelėsite jį, gausite prietaisų skydelį, panašų į toliau pateiktą paveikslėlį.
Spustelėkite nustatymus, tada projekto nustatymus, puslapis, kurį gausite, atrodys kaip žemiau esantys vaizdai.
Spustelėkite paslaugos abonementą -> duomenų bazės paslaptis.
Nukopijuokite duomenų bazės paslaptį ir laikykite ją kur nors vėliau.
Tada spustelėkite realaus laiko duomenų bazę ir nukopijuokite URL. taip pat pasilikite tai vėlesniam naudojimui.
Ir viskas, yra „ugnies bazės“ pusė.
„Arduino“ kodas ventiliatoriaus reguliatoriui valdyti naudojant „NodeMCU“
Paprastas „Arduino“ kodas rūpinasi komunikacija tarp „Firebase“ ir ESP-12E modulio, grandinės ir kodo paaiškinimas pateikiamas žemiau. Pirma, mes apibrėžiame visas reikalingas bibliotekas, galite atsisiųsti šias bibliotekas iš nurodytų nuorodų „Arduino JSON“ biblioteka ir „FirebaseArduino“ biblioteka
# įtraukti
Norėdami užmegzti ryšį su „ Firebase“, naudosime „ FirebaseArduino“ biblioteką.
// Nustatykite tai paleisti pavyzdžius. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "your SSID" #Pastatykite WASS
Be to, mes apibrėžė firebase šeimininką, firebase auth, kuriuos mes jau anksčiau išsaugotą kai mes buvome priėmimo firebase sąskaitą. Tada mes nustatėme savo maršrutizatoriaus SSID ir slaptažodį.
Stygos Resivedata; #define PWM_PIN 14;
Tada mes apibrėžėme eilutės tipo kintamąjį „ Resivedata“, kuriame bus saugomi visi duomenys, taip pat apibrėžėme PWM_PIN, kur gausime PWM išvestį.
Be to, į negaliojančiu Setup () skyriuje, mes būtina,
Serijos pradžia (9600); pinMode (PWM_PIN, OUTPUT); „WiFi.begin“ (WIFI_SSID, WIFI_PASSWORD); Serial.print („jungiantis“); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); vėlavimas (500); } Serial.println (); Serial.print („prijungtas:“); Serial.println („WiFi.localIP“ ()); „Firebase.begin“ (FIREBASE_HOST, FIREBASE_AUTH); „Firebase.setString“ („Kintamasis / vertė“, „FirstTestStrig“);
Pirma, mes įgaliname nuoseklųjį skambindami funkcija Serial.begin () . Tada mes nustatėme PWM kaištį kaip OUTPUT. „Wi-Fi“ ryšį pradedame naudodamiesi funkcija „ WiFi.begin ()“ ir funkcijoje perduodame SSID ir Slaptažodį. Mes patikriname ryšio būseną per tam tikrą laiką ir, prisijungę, mes nutraukiame kilpą ir tęsiame toliau. Tada atspausdiname prijungtą pranešimą su IP adresu.
Galiausiai pradedame ryšį su „ Firebase“ naudodami „ Firebase.begin ()“ funkciją ir perduodame anksčiau apibrėžtus parametrus FIREBASE_HOST ir FIREBASE_AUTH . Mes nustatėme eilutę su funkcija setString () , kuri žymi sąrankos funkcijos pabaigą. Į klaidinga kilpa () skyriuje,
Resivedata = Firebase.getString ("Kintamasis / reikšmė"); Serial.println („Resivedata“); analogWrite (PWM_PIN, žemėlapis (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println („Resivedata“); vėlavimas (100);
Mes vadiname funkciją „ getString ()“ su „ Variable / Value“, kai duomenys saugomi „Firebase“, pavyzdžiui, žemiau pateiktas vaizdas
Tada atspausdiname vertę tik derinimui. Toliau vertybei atvaizduoti naudojame žemėlapio funkciją, naudojama 80, nes 0–80 diapazone mes galime tiksliai valdyti MOSFET vartus, o RC žemų dažnių filtras yra šiek tiek atsakingas už šią vertę. Šiame diapazone fazinio kampo valdymo grandinė veikia tiksliai, vertę galite pavadinti aparatinės ir programinės įrangos programine įranga. Jei darote šį projektą ir susiduriate su problemomis, turite žaisti su verte ir patys nustatyti rezultatus.
Po to mes naudojame analogWrite () funkciją duomenims tiekti ir įjungti PWM, po to mes vėl naudojame Serial.println () funkciją, kad tik peržiūrėtume rezultatą, ir galiausiai mes naudojame vėlavimo funkciją, kad sumažintume hit-count į „firebase“ API, kuri baigia mūsų programą.
Ventiliatorių reguliatoriaus programos kūrimas naudojant „MIT App Inventor“
Padedami „ AppInventor“, mes sukursime „Android“ programą, kuri bendraus su „Firebase“ ir turės teisę keisti „Firebase“ duomenų bazėje saugomus duomenis.
Norėdami tai padaryti, eikite į „appInventors“ svetainę, prisijunkite naudodami „Google“ paskyrą ir sutikite su taisyklėmis ir nuostatomis. Kai tai padarysite, jums bus pateiktas ekranas, kuris atrodo kaip žemiau pateiktas paveikslėlis.
Spustelėkite pradėti naujo projekto piktogramą, suteikite jai pavadinimą ir paspauskite Gerai. Kai tai padarysite, jums bus pateiktas ekranas, panašus į žemiau esantį paveikslėlį.
Pirmiausia ten reikia įdėti dvi etiketes, kur reikia šiek tiek paslėpti slankiklį, tada reikia įsitraukti keletą modulių ir tai yra „ FirebaseDB“ modulis ir žiniatinklio modulis.
„ FirebaseDB“ modulis bendrauja su „Firebase“, žiniatinklio modulis naudojamas „Http“ užklausai valdyti. Kuris atrodo kaip paveikslėlis žemiau.
Kai tai bus padaryta, turite įsitraukti slankiklį ir etiketę, kurią pavadinome PWM, jei šiuo metu esate painus, galite patikrinti keletą kitų mokymo programų, susijusių su programos kūrimu su programos išradėju.
Baigę procesą, spustelėkite „Firebase DB“ piktogramą ir įdėkite „Firebase“ prieigos raktą bei „Firebase“ URL, kurį išsaugojome kurdami „Firebase“ paskyrą.
Dabar mes baigėme dizaino skyrių ir turime nustatyti bloko skyrių. Norėdami tai padaryti, turime spustelėti bloko mygtuką viršutiniame dešiniajame kampe šalia dizainerio.
Spustelėjus slankiklį, jums bus pateiktas ilgas modulių sąrašas, ištraukite pirmąjį modulį ir užveskite pelės žymeklį virš nykščio padėties mygtuko, būsite pasveikinti dar dviem moduliais, ištraukite juos abu. Mes ketiname juos naudoti vėliau.
Dabar pridedame nykščio kintamąjį, jį suapvaliname ir gauname nykščio padėties vertę. Tada spustelėsime „firebasedb“ ir ištrauksime skambučio „FirebaseDB.storeValue“ reikšmę, kad išsaugotumėte, moduliuotumėte ir pritvirtintumėte ją nykščio padėties vertės apačioje.
Atlikę, mes ištraukiame tuščią teksto laukelį spustelėdami teksto bloką ir pritvirtiname jį su žyma. Tai yra žyma, kurią mes nustatėme „Arduino IDE“, kad galėtume skaityti ir rašyti duomenis „Firebase“. Dabar pridėkite nykščio vertės kintamąjį prie vertės, kurią norite saugoti. Jei viską padarėte teisingai, paslankydami slankiklį, galėsite pakeisti „firebaseDB“ reikšmes.
- .Aia (išsaugotas failas) ir.apk (sukompiliuotas failas)
Tai žymi mūsų programų kūrimo proceso pabaigą. Žemiau pateikiama ką tik sukurtos „Android“ programos apžvalga.
ESP32 pagrindu veikiančio jutiklinio jutiklio grandinės testavimas
Norėdami išbandyti grandinę, aš prijungiau kaitinamąją lemputę lygiagrečiai prie lubų ventiliatoriaus ir maitinau grandinę 5 V nuolatinės srovės adapteriu, kaip matote aukščiau pateiktame paveikslėlyje, programos slankiklis yra nustatytas žemai, todėl lemputė šviečia esant mažam ryškumui. Ir ventiliatorius taip pat lėtai sukasi.
Kiti patobulinimai
Šioje demonstracijoje grandinė pagaminta ant rankų darbo PCB, tačiau grandinę galima lengvai pastatyti ant geros kokybės PCB. Mano eksperimentų metu PCB dydis yra tikrai mažas dėl komponento dydžio, tačiau gamybos aplinkoje jis galima sumažinti naudojant pigius SMD komponentus, pastebėjau, kad naudojant 7555 laikmatį, o ne 555 laikmatį, valdymas smarkiai padidėja, be to, padidėja ir grandinės stabilumas.