- IoT balstīta griestu ventilatora regulatora darbība
- Nepieciešamie materiāli maiņstrāvas ventilatora ātruma vadības ķēdei
- Maiņstrāvas ventilatora regulatora vadības ķēde
- PCB dizains IoT kontrolētajam griestu ventilatora regulatoram
- Firebase konta izveide
- Arduino kods ventilatora regulatora kontrolei ar NodeMCU
- Ventilatora regulatora lietotnes izveide ar MIT App Inventor
- ESP32 bāzes skārienjutīgo shēmas pārbaude
- Turpmākie uzlabojumi
Šajā rakstā mēs veidojam maiņstrāvas ventilatora regulatora shēmu, kas spēj kontrolēt ventilatora ātrumu, ierobežojot strāvas plūsmu uz ventilatoru. Termins AC griestu ventilatora regulators ir kumosiņš, tāpēc no šī brīža mēs to vienkārši sauksim par ventilatora regulatoru. Ventilators regulators ķēde ir būtisks elements, kas tiek izmantots, lai palielinātu vai samazinātu ātrumu no AC Fan / motoru atbilstoši vajadzībām. Dažus gadus atpakaļ jums bija izvēle starp parasto rezistīvā tipa ventilatora regulatoru vai elektronisko regulatoru, taču mūsdienās to visu aizstāj elektroniskā ventilatora regulatora shēma.
Iepriekšējā rakstā mēs jums parādījām, kā jūs varētu izveidot maiņstrāvas fāzes leņķa vadības ķēdi ar Arduino, kas spēja kontrolēt kvēlspuldzes spilgtumu un kontrolēt arī ventilatora ātrumu, lai to palielinātu. šajā rakstā mēs izveidosim IoT balstītu maiņstrāvas griestu ventilatora regulatora ķēdi. Kas varēs kontrolēt jūsu griestu ventilatora ātrumu ar Android lietojumprogrammas palīdzību.
IoT balstīta griestu ventilatora regulatora darbība
Ventilatora regulatora ķēde ir vienkārša shēma, kas spēj kontrolēt maiņstrāvas griestu ventilatora ātrumu, mainot maiņstrāvas sinusoidālā viļņa fāzes leņķi vai vienkāršā izteiksmē precīzu TRIAC vadību. Tā kā es esmu minējis visus maiņstrāvas ventilatora regulatora ķēdes pamatdarbus maiņstrāvas fāzes leņķa kontrolē ar 555 taimeri un PWM rakstu, mēs koncentrēsimies uz ķēdes faktisko izveidi. Un vēlreiz, ja vēlaties uzzināt vairāk par šo tēmu, lūdzu, pārbaudiet arī rakstu par AC Light Dimmer, izmantojot Arduino un TRIAC Project.
Iepriekšējā bloka diagramma parāda, kā ķēde faktiski darbojas. Kā jau teicu iepriekš, mēs izveidosim PWM signālu ar Firebase IoT un NodeMCU palīdzību, pēc tam PWM signāls tiks izvadīts caur zemfrekvences filtru, kas kontrolēs MOSFET vārtus, pēc tam 555 taimeris kontrolēs faktiskais TRIAC ar optronu palīdzību.
Šajā gadījumā Android lietotne maina FirebaseDB vērtību, un ESP pastāvīgi pārbauda visas izmaiņas, kas notiek ar šo DB, ja notiek kādas izmaiņas, kas tiek novilktas un vērtība tiek pārveidota par PWM signālu
Nepieciešamie materiāli maiņstrāvas ventilatora ātruma vadības ķēdei
Zemāk redzamajā attēlā parādīts materiāls, kas izmantots šīs ķēdes izveidošanai, jo tas ir izgatavots ar ļoti vispārīgiem komponentiem, tāpēc jums vajadzētu būt iespējai atrast visu uzskaitīto materiālu savā vietējā hobiju veikalā.
Kopš tā demonstrācijas projekta zemāk esošajā tabulā esmu uzskaitījis komponentus ar veidu un daudzumu, es to izmantoju vienā kanālā. Bet ķēdi var viegli palielināt atbilstoši prasībām.
- Skrūves spailes 5,04 mm savienotājs - 2
- Vīriešu galvenes 2,54 mm savienotājs - 1
- 56K, 1W rezistors - 2
- 1N4007 Diode - 4
- 0.1uF, 25V kondensators - 2
- AMS1117 sprieguma regulators - 1
- 1000uF, 25V kondensators - 1
- Līdzstrāvas ligzda - 1
- 1K rezistors - 1
- 470R rezistors - 2
- 47R rezistors - 2
- 82 K rezistori - 1
- 10 K rezistori - 5
- PC817 optiskais savienotājs - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 MOSFET - 1
- 3.3uF kondensators - 1
- Savienojošie vadi - 5
- 0.1uF, 1KV kondensators - 1
- ESP8266 (ESP-12E) mikrokontrolleris - 1
Maiņstrāvas ventilatora regulatora vadības ķēde
Par shematisks IoT ventilatora regulators ķēdes ir redzams zemāk, šī shēma ir ļoti vienkārša un izmanto vispārējos sastāvdaļas, lai sasniegtu fāzes leņķa kontroli.
Šī shēma sastāv no ļoti rūpīgi izstrādātiem komponentiem. Es iziešu katru no tiem un paskaidrošu katru bloku.
ESP8266 (ESP-12E) Wi-Fi mikroshēma:
Šī ir mūsu ķēdes pirmā daļa, un tā ir tā daļa, kurā mēs esam daudz ko mainījuši, citas daļas paliek tieši tādas pašas, ti, ja esat ievērojis iepriekšējo rakstu.
Šajā sadaļā mēs esam izvilkuši tapas Iespējot, Atiestatīt un GPIO0, kā arī esam nojaukuši GPIO15 un Zemes tapu, ko iesaka mikroshēmas datu lapa. Kas attiecas uz programmēšanu, mēs esam ievietojuši 3pin galveni, parādot TX, RX un zemes tapu, caur kuru mēs varam ļoti viegli ieprogrammēt mikroshēmu. Turklāt mēs esam ievietojuši taustes slēdzi, lai GPIO0 novietotu zemē, tas ir nepieciešams solis, lai ESP iestatītu programmēšanas režīmā. Kā izeju mēs izvēlējāmies GPIO14 tapu, caur kuru tiek ģenerēts PWM signāls.
Piezīme! Programmēšanas laikā mums ir jānospiež poga un jādarbina ierīce ar DC barelu ligzdu.
Nulles šķērsošanas noteikšanas shēma:
Pirmkārt, mūsu sarakstā ir nulles šķērsošanas noteikšanas ķēde, kas izgatavota ar diviem 56K, 1W rezistoriem kopā ar četrām 1n4007 diodēm un PC817 optronu. Šī ķēde ir atbildīga par nulles šķērsošanas signāla nodrošināšanu 555 taimera IC. Arī mēs esam pielīmējuši fāzi un neitrālu signālu, lai to tālāk izmantotu sadaļā TRIAC.
AMS1117-3.3V sprieguma regulators:
AMS1117 sprieguma regulatoru izmanto ķēdes darbināšanai, ķēde ir atbildīga par strāvas padevi visai ķēdei. Turklāt kā AMS1117-3.3 IC atvienošanas kondensatoru esam izmantojuši divus 1000uF kondensatorus un 0,1uF kondensatoru.
Vadības shēma ar NE555 taimeri:
Iepriekš redzamajā attēlā redzama 555 taimera vadības ķēde, 555 ir konfigurēta monostabilā konfigurācijā, tādēļ, kad sprūda signāls no nulles šķērsošanas noteikšanas ķēdes trāpās, 555 taimeris sāk uzlādēt kondensatoru ar rezistora palīdzību (parasti), bet mūsu ķēdē rezistora vietā ir MOSFET, un, kontrolējot MOSFET vārtiņus, mēs kontrolējam kondensatora plūsmu, tāpēc mēs kontrolējam uzlādes laiku, tādējādi kontrolējot 555 taimeru izvadi.
TRIAC un TRIAC vadītāja shēma:
TRIAC darbojas kā galvenais slēdzis, kas faktiski ieslēdzas un izslēdzas, tādējādi kontrolējot maiņstrāvas signāla izvadi. Braucot ar TRIAC, izmantojot MOC3021 Opto-Triac disku, tas ne tikai vada TRIAC, bet arī nodrošina optisko izolāciju, 0,01uF 2KV augstsprieguma kondensatoru, un 47R rezistors veido snubber ķēdi, kas aizsargā mūsu ķēdi no augstsprieguma tapas, kas rodas, kad tas ir savienots ar induktīvo slodzi. Par tapām ir atbildīgs pārslēgtā maiņstrāvas signāla nesinoidiskais raksturs. Turklāt tā ir atbildīga par jaudas koeficienta jautājumiem, taču tā ir cita raksta tēma.
Zemfrekvences filtrs un P-kanāla MOSFET (darbojas kā ķēdes rezistors):
82K rezistors un 3.3uF kondensators veido zemfrekvences filtru, kas ir atbildīgs par Arduino radītā augstfrekvences PWM signāla izlīdzināšanu. Kā iepriekš minēts, P-Channel MOSFET darbojas kā mainīgais rezistors, kas kontrolē kondensatora uzlādes laiku. To kontrolē PWM signāls, kuru izlīdzina zemfrekvences filtrs.
PCB dizains IoT kontrolētajam griestu ventilatora regulatoram
Mūsu IoT griestu ventilatora regulatora shēmas PCB ir veidota vienpusējā dēlī. Esmu izmantojis Eagle PCB projektēšanas programmatūru sava PCB noformēšanai, taču jūs varat izmantot jebkuru izvēlēto projektēšanas programmatūru. Mana dēļa dizaina 2D attēls ir parādīts zemāk.
Lai izveidotu pareizus zemes savienojumus starp visiem komponentiem, tiek izmantots pietiekams zemes piepildījums. 3,3 V līdzstrāvas ieeja un 220 voltu maiņstrāvas ieeja ir aizpildīta kreisajā pusē, izeja atrodas PCB labajā pusē. Pilnu Eagle dizaina failu kopā ar Gerber var lejupielādēt no saites zemāk.
- PCB dizaina, GERBER un PDF faili griestu ventilatora regulatora shēmai
Roku darbs PCB:
Ērtības labad es izgatavoju savu PCB versiju ar rokām, un tā ir parādīta zemāk.
Tādējādi mūsu aparatūra ir gatava atbilstoši mūsu shēmai, tagad mums ir jāsagatavo mūsu android lietojumprogramma un Google firebase.
Firebase konta izveide
Nākamajai darbībai mums ir jāizveido firebase konts. Visa saziņa notiks caur firebase kontu. Lai izveidotu Firebase kontu, dodieties uz Firebase vietni un noklikšķiniet uz Sākt.
Pēc noklikšķināšanas jums jāpiesakās, izmantojot savu Google kontu, un
kad esat pieteicies, jums jāizveido projekts, noklikšķinot uz pogas Izveidot projektu.
To darot, jūs novirzīsit uz lapu, kas izskatās kā iepriekš redzamais attēls. Ierakstiet sava projekta nosaukumu un noklikšķiniet uz turpināt.
Atkal noklikšķiniet uz turpināt.
Kad esat to izdarījis, jums jāpiekrīt dažiem noteikumiem un nosacījumiem, noklikšķinot uz izvēles rūtiņas, pēc tam noklikšķiniet uz pogas Izveidot projektu.
Ja esat visu izdarījis pareizi, pēc kāda laika jūs saņemsit šādu ziņojumu. Kad būsiet pabeidzis, firebase konsolei vajadzētu izskatīties kā zemāk redzamais attēls.
Tagad mums no šejienes ir jāsavāc divas lietas. Lai to izdarītu, jums jānoklikšķina uz tikko izveidotā projekta nosaukuma. Man tas ir CelingFanRegulator, kad jūs noklikšķināsit uz tā, jūs saņemsiet informācijas paneli, kas līdzīgs zemāk redzamajam attēlam.
Noklikšķiniet uz iestatījumiem, pēc tam projekta iestatījumi, iegūtā lapa izskatīsies kā zemāk redzamie attēli.
Noklikšķiniet uz servisa konts -> datu bāzes noslēpums.
Kopējiet datu bāzes noslēpumu un glabājiet to kaut kur vēlākai izmantošanai.
Pēc tam noklikšķiniet uz reāllaika datu bāzes un nokopējiet URL. saglabājiet to arī vēlākai izmantošanai.
Un tas ir viss, lietas ir ar uguns bāzes pusi.
Arduino kods ventilatora regulatora kontrolei ar NodeMCU
Vienkāršs Arduino kods rūpējas par komunikāciju starp firebase un ESP-12E moduli, ķēdes un koda skaidrojums ir sniegts zemāk. Pirmkārt, mēs definējam visas nepieciešamās bibliotēkas, jūs varat lejupielādēt šādas bibliotēkas no norādītajām saitēm Arduino JSON bibliotēka un FirebaseArduino bibliotēka
# iekļaut
Mēs izmantosim FirebaseArduino bibliotēku, lai izveidotu saziņu ar Firebase .
// Iestatiet tos, lai palaistu piemērus. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "your SSID" #Define WASS
Pēc tam mēs esam definējuši firebase resursdatoru, firebase auth, kuru mēs jau iepriekš saglabājām, veidojot firebase kontu. Tad mēs esam definējuši mūsu maršrutētāja SSID un paroli.
Stīgu Resivedata; #define PWM_PIN 14;
Pēc tam mēs esam definējuši virknes tipa mainīgo Resivedata, kur tiks glabāti visi dati, un mēs arī definējām PWM_PIN, kur mēs iegūsim PWM izvadi.
Pēc tam sadaļā void setup () mēs darām visu nepieciešamo,
Sērijas sākums (9600); pinMode (PWM_PIN, OUTPUT); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("savienojums"); while (WiFi.status ()! = WL_CONNECTED) {Seriālā.druka ("."); kavēšanās (500); } Seriālais.println (); Serial.print ("savienots:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Mainīgais / Vērtība", "FirstTestStrig");
Pirmkārt, mēs iespējojam sēriju, izsaucot funkciju Serial.begin () . Tālāk mēs esam iestatījuši PWM tapu kā OUTPUT. Mēs sākam Wi-Fi savienojumu ar WiFi.begin () funkcijas palīdzību, un mēs funkcijā nododam SSID un Paroli. Mēs pārbaudīt savienojuma statusu kādā kamēr cilpa , un pēc tam, kad pievienots, mēs pārkāpjam cilpu un turpināt. Tālāk mēs izdrukājam pievienoto ziņojumu ar IP adresi.
Visbeidzot, mēs sākam saziņu ar firebase ar Firebase.begin () funkciju un mēs nododam parametrus FIREBASE_HOST un FIREBASE_AUTH, kurus esam definējuši iepriekš. Un mēs iestatījām virkni ar funkciju setString () , kas iezīmē iestatīšanas funkcijas beigas. In neesošu cilpa () apakšpunktā,
Resivedata = Firebase.getString ("Mainīgais / Vērtība"); Serial.println (Resivedata); analogWrite (PWM_PIN, karte (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); kavēšanās (100);
Mēs saucam funkciju getString () ar mainīgo / vērtību, kur dati tiek glabāti firebase, piemēram, piemēram, attēls zemāk-
Tad mēs drukājam vērtību tikai atkļūdošanai. Pēc tam vērtības kartēšanai mēs izmantojam kartes funkciju, 80 tiek izmantots, jo diapazonā no 0 līdz 80 mēs varam precīzi kontrolēt MOSFET vārtus, un RC zemfrekvences filtrs ir nedaudz atbildīgs par šo vērtību. Šajā diapazonā fāzes leņķa vadības ķēde darbojas precīzi, vērtību varat saukt par aparatūras-programmatūras saldo vietu. Ja jūs darāt šo projektu un saskaras ar problēmām, jums jāspēlē ar vērtību un pašiem jānosaka rezultāti.
Pēc tam mēs izmantojam funkciju analogWrite (), lai ievadītu datus un iespējotu PWM, pēc tam mēs atkal izmantojam funkciju Serial.println (), lai tikai pārskatītu rezultātu, un, visbeidzot, mēs izmantojam kavēšanās funkciju, lai samazinātu hit-count uz firebase API, kas beidzas ar mūsu programmu.
Ventilatora regulatora lietotnes izveide ar MIT App Inventor
Ar AppInventor palīdzību mēs izveidosim android lietotni, kas sazināsies ar firebase un kurai būs tiesības mainīt firebase datu bāzē saglabātos datus.
Lai to izdarītu, dodieties uz vietni appInventors, piesakieties ar savu Google kontu un piekrītiet noteikumiem un nosacījumiem. Kad tas būs izdarīts, jums tiks parādīts ekrāns, kas izskatās kā zemāk redzamais attēls.
Noklikšķiniet uz Sākt jaunu projektu ikonas un piešķiriet tam nosaukumu un nospiediet Labi. Kad tas būs izdarīts, jums tiks parādīts ekrāns, piemēram, zemāk redzamais attēls.
Kad tur esat, vispirms ir jāievieto divas etiķetes, kur tas ir, lai nedaudz novietotu slīdni, pēc tam jums jāievieto daži moduļi, un tie ir FirebaseDB modulis un tīmekļa modulis.
Par firebaseDB modulis sazinās ar firebase, tad web modulis tiek izmantots, lai h andle HTTP pieprasījumu. Kas izskatās kā zemāk redzamais attēls.
Kad tas ir izdarīts, jums jāvelk slīdnis un etiķete, kuru mēs nosaucām par PWM, ja jūs šobrīd sajaucaties, varat pārbaudīt dažas citas apmācības par lietotnes izveidošanu ar lietotņu izgudrotāju.
Kad process ir pabeigts, noklikšķiniet uz firebase DB ikonas un ievietojiet firebase marķieri un firebase URL, kuru esam saglabājuši, veidojot firebase kontu.
Tagad mēs esam pabeiguši dizaina sadaļu, un mums ir jāiestata bloka sadaļa. Lai to izdarītu, mums jānoklikšķina uz bloka pogas augšējā labajā stūrī blakus dizaineram.
Kad esat noklikšķinājis uz slīdņa, jums tiks parādīts garš moduļu saraksts, izvelciet pirmo moduli un virziet peles kursoru virs īkšķa pozīcijas pogas, jūs sagaidīs vēl divi moduļi, izvelciet abus. Mēs tos izmantosim vēlāk.
Tagad mēs pievienojam īkšķa mainīgo lielumu, noapaļojam un iegūstam īkšķa pozīcijas vērtību. Pēc tam mēs noklikšķinām uz firebasedb un izvelkam zvana FirebaseDB.storeValue tagu vērtību, lai to saglabātu, moduļotu un piestiprinātu īkšķa pozīcijas vērtības apakšdaļā.
Kad tas ir izdarīts, mēs izvelkam tukšu tekstlodziņu, noklikšķinot uz teksta bloka, un pievienojam to ar tagu, tas ir tags, kuru esam iestatījuši Arduino IDE, lai lasītu un ierakstītu datus Firebase. Tagad pievienojiet īkšķa vērtības mainīgo vērtībai, kas jāuzglabā tagā. Ja esat visu izdarījis pareizi, pārvietojot slīdni, varēsiet mainīt firebaseDB vērtības.
- .Aia (saglabāts fails) un.apk (kompilēts fails)
Tas iezīmē mūsu lietotņu veidošanas procesa beigas. Tikko izveidotās android lietojumprogrammas momentuzņēmums, kas parādīts zemāk.
ESP32 bāzes skārienjutīgo shēmas pārbaude
Lai pārbaudītu ķēdi, esmu pievienojis kvēlspuldzi paralēli griestu ventilatoram un esmu darbinājis ķēdi ar 5V līdzstrāvas adapteri, kā redzams iepriekš redzamajā attēlā, lietotnes slīdnis ir iestatīts uz zemu, tāpēc spuldze spīd zemā spilgtumā. Un arī ventilators griežas lēnām.
Turpmākie uzlabojumi
Šajā demonstrācijā shēma tiek veidota uz rokām darinātas PCB, taču shēmu var viegli veidot uz labas kvalitātes PCB. Manos eksperimentos PCB izmērs ir patiešām mazs, pateicoties komponentu izmēram, bet ražošanas vidē tas var samazināt, izmantojot lētus SMD komponentus, es atklāju, ka 7555 taimera izmantošana 555 taimera vietā ievērojami palielina kontroli, turklāt palielinās arī ķēdes stabilitāte.