- Paggawa ng isang IoT based Ceiling Fan Regulator
- Mga Materyal na Kinakailangan para sa AC Fan Speed Control Circuit
- AC Fan Regulator Control Circuit
- Disenyo ng PCB para sa IoT Controlled Ceiling Fan Regulator
- Pag-set up ng Isang Firebase Account
- Arduino Code upang Makontrol ang Fan Regulator sa NodeMCU
- Pagbuo ng Fan Regulator App Na May MIT App Inventor
- Pagsubok sa ESP32 Batay sa Touch Sensor Circuit
- Karagdagang Mga Pagpapahusay
Sa artikulong ito, nagtatayo kami ng isang AC Fan Regulator Circuit, na makokontrol ang bilis ng fan sa pamamagitan ng paghihigpit sa daloy ng kasalukuyang sa fan. Ang terminong AC Ceiling Fan Regulator ay isang masigasig, kaya't tatawagin lamang namin ito bilang isang fan regulator mula ngayon. Ang isang fan regulator circuit ay isang mahalagang sangkap na ginagamit upang madagdagan o mabawasan ang bilis ng isang AC Fan / motor alinsunod sa mga pangangailangan. Ilang taon na ang nakakalipas, mayroon kang pagpipilian sa pagitan ng isang maginoo na resistive type fan regulator o isang electronic regulator, ngunit sa panahong ito lahat ay napalitan ng electronic fan regulator circuit.
Sa isang nakaraang artikulo, ipinakita namin sa iyo kung paano ka makakagawa ng isang AC Phase Angle Control Circuit gamit ang isang Arduino na nakontrol ang ningning ng isang maliwanag na bombilya at kinokontrol din ang bilis ng isang Fan, kaya't mapataas ito ng isang bingaw sa artikulong ito, magtatayo kami ng isang circuit ng AC Ceiling Fan Regulator na batay sa IoT. Alin ang makakapigil sa bilis ng iyong ceiling fan sa tulong ng isang Android Application.
Paggawa ng isang IoT based Ceiling Fan Regulator
Ang circuit ng Fan Regulator ay isang simpleng circuit na magagawang kontrolin ang bilis ng isang AC ceiling fan sa pamamagitan ng pagbabago ng anggulo ng phase ng AC sine wave o sa simpleng mga term na tumpak na kontrol ng TRIAC. Tulad ng nabanggit ko ang lahat ng mga pangunahing gawain ng AC fan regulator circuit sa AC Phase Angle Control na may 555 Timer at PWM na artikulo, magtutuon kami sa aktwal na pagbuo ng circuit. At muli kung nais mong malaman ang tungkol sa paksa, mangyaring suriin din ang artikulo sa AC Light Dimmer gamit ang Arduino at TRIAC Project.
Ang pangunahing diagram ng block sa itaas ay nagpapakita kung paano gumagana ang circuit. Tulad ng sinabi ko kanina, makakabuo kami ng isang signal ng PWM sa tulong ng Firebase IoT at NodeMCU, pagkatapos ang signal ng PWM ay ipapasa sa low-pass filter na makokontrol ang gate ng isang MOSFET pagkatapos nito ay makokontrol ang isang 555 timer ang tunay na TRIAC sa tulong ng isang optocoupler.
Sa kasong ito, binabago ng Android app ang halaga sa firebaseDB at patuloy na sinusuri ng ESP ang anumang mga pagbabago na nangyayari sa DB na iyon kung may anumang pagbabago na mahuhulog at ang halaga ay mai -convert sa isang signal ng PWM
Mga Materyal na Kinakailangan para sa AC Fan Speed Control Circuit
Ipinapakita ng imahe sa ibaba ang materyal na ginamit upang maitayo ang circuit na ito, dahil ginawa ito ng mga napaka-generic na bahagi, dapat mong mahanap ang lahat ng nakalistang materyal sa iyong lokal na tindahan ng libangan.
Inilista ko rin ang mga sangkap sa isang talahanayan sa ibaba na may uri at dami mula noong isang proyekto sa pagpapakita, gumagamit ako ng isang solong channel upang magawa ito. Ngunit ang circuit ay maaaring madaling maiakma ayon sa bawat kinakailangan.
- Screw Terminal 5.04mm Connector - 2
- Male Header 2.54mm Connector - 1
- 56K, 1W Resistor - 2
- 1N4007 Diode - 4
- 0.1uF, 25V Capacitor - 2
- AMS1117 Voltage Regulator - 1
- 1000uF, 25V Capacitor - 1
- DC Power Jack - 1
- 1K Resistor - 1
- 470R Resistor - 2
- 47R Resistor - 2
- 82 K Resistors - 1
- 10 K Resistors - 5
- PC817 Optocoupler - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 MOSFET - 1
- 3.3uF Capacitor - 1
- Mga Koneksyon sa Mga Wire - 5
- 0.1uF, 1KV Capacitor - 1
- ESP8266 (ESP-12E) Microcontroller - 1
AC Fan Regulator Control Circuit
Ang eskematiko para sa IoT fan regulator circuit ay ipinapakita sa ibaba, ang circuit na ito ay napaka-simple at gumagamit ng mga generic na bahagi upang makamit ang phase control ng anggulo.
Ang circuit na ito ay binubuo ng mga bahagi na napakaingat na dinisenyo. Dadaan ako sa bawat isa at ipapaliwanag ang bawat bloke.
ESP8266 (ESP-12E) Wi-Fi Chip:
Ito ang unang bahagi ng aming circuit at ito ang bahagi kung saan binago namin ang maraming mga bagay, ang iba pang mga bahagi ay mananatiling eksaktong pareho, ibig sabihin kung sinundan mo ang nakaraang artikulo.
Sa seksyong ito, nakuha namin ang mga pin na Paganahin, I-reset, at GPIO0, din, hinila namin ang GPIO15 at ang Ground Pin, na inirerekomenda ng datasheet ng maliit na tilad. Tulad ng para sa pagprogram, inilagay namin ang isang 3pin header na inilalantad ang TX, RX, at ang ground pin kung saan madali naming mai-program ang chip. Gayundin, naglagay kami ng isang tactile switch upang ilagay sa ground ang GPIO0, ito ay isang kinakailangang hakbang upang mailagay ang ESP sa mode ng pagprograma. Pinili namin ang GPIO14 pin bilang output kung saan nabubuo ang signal ng PWM.
Tandaan! Sa oras ng pagprograma, kailangan nating pindutin ang pindutan at i-power ang aparato gamit ang DC barrel jack.
Zero-Crossing Detection Circuit:
Una, sa aming listahan ay ang circuit ng detection na zero-tawiran na ginawa gamit ang dalawang 56K, 1W resistors kasabay ng apat na 1n4007 diode at isang PC817 optocoupler. At ang circuit na ito ay responsable para sa pagbibigay ng zero-tawiran signal sa 555 timer IC. Gayundin, nai-tape namin ang phase at ang walang signal na signal upang higit na magamit ito sa seksyon ng TRIAC.
AMS1117-3.3V Voltage Regulator:
Ang regulator ng boltahe ng AMS1117 ay ginagamit upang paandarin ang circuit, responsable ang circuit para sa pagbibigay ng lakas sa buong circuit. Bilang karagdagan, gumamit kami ng dalawang 1000uF capacitor at isang 0.1uF capacitor bilang isang decoupling capacitor para sa AMS1117-3.3 IC.
Kontrolin ang Circuit gamit ang NE555 Timer:
Ipinapakita ng imahe sa itaas ang 555 timer control circuit, ang 555 ay naka-configure sa isang monostable na pagsasaayos, kaya't kapag ang isang signal ng gatilyo mula sa zero-crossing detection circuit ay pinindot ang gatilyo, nagsisimula ang 555 timer na singilin ang capacitor sa tulong ng isang resistor (sa pangkalahatan), ngunit ang aming circuit ay may isang MOSFET kapalit ng isang risistor, at sa pamamagitan ng pagkontrol sa gate ng MOSFET, kinokontrol namin ang kasalukuyang pagpunta sa capacitor, kaya't kinokontrol namin ang oras ng pagsingil kaya't kinokontrol namin ang output ng 555 timer.
TRIAC at ang TRIAC-Driver Circuit:
Ang TRIAC ay kumikilos bilang pangunahing switch na kung saan ay aktwal na naka-on at naka-off kaya kinokontrol ang output ng AC signal. Pagmamaneho ng TRIAC gamit ang MOC3021 Opto-Triac-drive, hindi lamang nito hinihimok ang TRIAC, ngunit nagbibigay din ito ng optikal na paghihiwalay, ang 0.01uF 2KV mataas na boltahe na capacitor, at ang 47R risistor ay bumubuo ng isang snubber circuit, na pinoprotektahan ang aming circuit mula sa mataas na boltahe na mga spike na nagaganap kapag ito ay konektado sa isang inductive load, Ang di-sinusoidal na likas na katangian ng lumipat na AC signal ay responsable para sa mga pako. Gayundin, responsable ito para sa mga isyu sa factor ng kuryente, ngunit iyon ay isang paksa para sa isa pang artikulo.
Lowpass-Filter at P-Channel MOSFET (Gumaganap bilang Resistor sa Circuit):
Ang resistors ng 82K at ang capacitor ng 3.3uF ay bumubuo ng mababang pass filter na responsable para sa pagpapakinis ng signal ng PWM na dalas ng dalas na nabuo ng Arduino. Tulad ng naunang nabanggit, ang P-Channel MOSFET ay gumaganap bilang variable resistor, na kumokontrol sa oras ng pagsingil ng capacitor. Ang pagkontrol nito ay ang signal ng PWM na na-swabe ng low-pass filter.
Disenyo ng PCB para sa IoT Controlled Ceiling Fan Regulator
Ang PCB para sa aming circuit ng IoT Ceiling Fan Regulator ay dinisenyo sa isang solong panig na board. Gumamit ako ng software ng disenyo ng Eagle PCB upang idisenyo ang aking PCB ngunit maaari mong gamitin ang anumang software ng disenyo na iyong pinili. Ang imahe ng 2D ng aking disenyo ng board ay ipinapakita sa ibaba.
Ginagamit ang sapat na pagpuno sa lupa upang makagawa ng wastong mga koneksyon sa lupa sa lahat ng mga bahagi. Ang input ng 3.3V DC at ang input ng 220 Volt AC ay pinunan sa kaliwang bahagi, ang output ay matatagpuan sa kanang bahagi ng PCB. Ang kumpletong file ng disenyo para sa Eagle kasama ang Gerber ay maaaring ma-download mula sa link sa ibaba.
- Disenyo ng PCB, GERBER & PDF na mga file para sa Ceiling Fan Regulator Circuit
Handmade PCB:
Para sa kaginhawaan, ginawa ko ang aking bersyon na gawa sa kamay ng PCB at ipinakita ito sa ibaba.
Sa pamamagitan nito, ang aming hardware ay handa na alinsunod sa aming diagram ng circuit, ngayon kailangan naming ihanda ang aming android application at ang Google firebase.
Pag-set up ng Isang Firebase Account
Para sa susunod na hakbang, kailangan naming mag-set up ng isang firebase account. Ang lahat ng komunikasyon ay dadaan sa firebase account. Upang mag-set up ng isang firebase account, pumunta sa website ng Firebase at mag-click sa 'magsimula'.
Kapag nag-click ka, kailangan mong mag-log in gamit ang iyong Google account, at
sa sandaling naka-log in ka, kailangan mong lumikha ng isang proyekto sa pamamagitan ng pag-click sa lumikha ng isang pindutan ng proyekto.
Ang paggawa nito ay magre-redirect sa iyo sa isang pahina na kamukha ng imahe sa itaas. I-type ang pangalan ng iyong proyekto at i-click ang magpatuloy.
Muli, i-click ang magpatuloy.
Kapag nagawa mo na, kailangan mong sumang-ayon sa ilang mga tuntunin at kundisyon sa pamamagitan ng pag-click sa checkbox, sa susunod, kailangan mong mag-click sa pindutan ng lumikha ng proyekto.
Kung nagawa mo nang tama ang lahat, pagkatapos ng ilang oras, makakakuha ka ng isang mensahe na tulad nito. Kapag natapos na, ang iyong firebase console ay dapat magmukhang imahe sa ibaba.
Ngayon kailangan naming mangolekta ng dalawang bagay mula dito. Upang magawa iyon, kailangan mong mag-click sa pangalan ng proyekto na iyong nilikha. Para sa akin, ito ay CelingFanRegulator, sa sandaling mag-click dito, makakakuha ka ng isang dashboard na katulad ng imahe sa ibaba.
Mag-click sa mga setting, pagkatapos ay ang mga setting ng proyekto, ang pahina na makukuha mo ay magiging katulad ng mga imahe sa ibaba.
Mag-click sa service account -> lihim sa database.
Kopyahin ang lihim ng database at itago ito sa isang lugar para magamit sa paglaon.
Susunod, mag-click sa real-time na database at kopyahin ang URL. itago din yan para magamit sa paglaon.
At iyon lang, mayroong sa firebase na bahagi ng mga bagay.
Arduino Code upang Makontrol ang Fan Regulator sa NodeMCU
Ang isang simpleng Arduino code ay nangangalaga sa komunikasyon sa pagitan ng firebase at ng module na ESP-12E, ang paliwanag sa circuit at code ay ibinibigay sa ibaba, Una, tinukoy namin ang lahat ng kinakailangang mga aklatan na kinakailangan, maaari mong i-download ang mga sumusunod na aklatan mula sa mga naibigay na link Arduino JSON library at FirebaseArduino library
# isama
Gagamitin namin ang library ng FirebaseArduino upang maitaguyod ang komunikasyon sa firebase.
// Itakda ang mga ito upang magpatakbo ng mga halimbawa. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "iyong SSID" #define WIFI_SSID "iyong SSID" #define WIFI_SSID "iyong SSID" #define WIFI_SSID "iyong SSID" #define WIFI_SSID "iyong SSID" #define WIFI_SSID "iyong SSID"
Susunod, tinukoy namin ang host ng firebase, firebase auth, na na-save namin kanina noong ginagawa namin ang firebase account. Pagkatapos ay tinukoy namin ang SSID at password ng aming router.
Strive Resivedata; # tukuyin ang PWM_PIN 14;
Susunod, tinukoy namin ang isang variable ng uri ng string, Resiveata kung saan maiimbak ang lahat ng data at tinukoy din namin ang PWM_PIN kung saan makukuha namin ang output ng PWM.
Susunod, sa seksyon ng walang bisa na pag-setup () , ginagawa namin ang kinakailangan,
Serial.begin (9600); pinMode (PWM_PIN, OUTPUT); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("pagkonekta"); habang (WiFi.status ()! = WL_CONNected) {Serial.print ("."); pagkaantala (500); } Serial.println (); Serial.print ("konektado:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Variable / Value", "FirstTestStrig");
Una, pinapagana namin ang serial sa pamamagitan ng pagtawag sa function na Serial.begin () . Susunod, itinakda namin ang PWM pin bilang OUTPUT. Sinisimula namin ang koneksyon sa Wi-Fi sa tulong ng pag- andar ng WiFi.begin () at ipinapasa namin ang pagpapaandar ng SSID at Password. Sinusuri namin ang katayuan ng koneksyon sa isang habang loop at sa sandaling nakakonekta, sinisira namin ang loop at magpatuloy. Susunod, nai-print namin ang nakakonektang mensahe sa IP address.
Sa wakas, sinisimulan namin ang komunikasyon sa firebase na may Firebase.begin () function at ipinapasa namin ang mga FIREBASE_HOST at FIREBASE_AUTH na mga parameter na naitala namin nang mas maaga. At itinakda namin ang string na may setString () na pagpapaandar, na markahan ang pagtatapos ng pag-andar ng pag-setup. Sa seksyon ng void loop () ,
Resivedata = Firebase.getString ("Variable / Value"); Serial.println (Resivedata); analogWrite (PWM_PIN, mapa (Resiveata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); pagkaantala (100);
Tinatawag namin ang pagpapaandar na getString () na may Variable / Halaga kung saan nakaimbak ang data sa firebase, isang halimbawa ang magiging katulad ng imahe sa ibaba-
Pagkatapos ay nai-print namin ang halaga para lamang sa pag-debug. Susunod, ginagamit namin ang pagpapaandar ng mapa upang mapa ang halaga, 80 ang ginagamit dahil sa loob ng saklaw na 0 - 80, nagagawa naming makontrol nang wasto ang gate ng MOSFET, at ang RC lowpass filter ay medyo responsable para sa halagang ito. Sa loob ng saklaw na ito, tumpak na nagpapatakbo ang circuit ng control ng angulo ng phase, maaari mong tawagan ang halaga bilang isang sweet-spot ng software na software. Kung ginagawa mo ang proyektong ito at harapin ang mga isyu, kailangan mong i-play ang halaga at tukuyin ang mga resulta sa iyong sarili.
At pagkatapos nito, ginagamit namin ang pagpapaandar ng analogWrite () upang pakainin ang data at paganahin ang PWM, pagkatapos nito, ginagamit namin ang pagpapaandar na Serial.println () muli lamang upang suriin ang resulta, at sa wakas, gumagamit kami ng isang pagpapaandar na pagpapaandar upang mabawasan ang hit-count sa firebase API na nagtatapos sa aming programa.
Pagbuo ng Fan Regulator App Na May MIT App Inventor
Sa tulong ng AppInventor, gagawa kami ng isang android app na makikipag- usap sa firebase at may awtoridad na baguhin ang data na nakaimbak sa firebase database.
Upang magawa iyon, pumunta sa website ng appInventors, mag-log in gamit ang iyong Google account, at tanggapin ang mga tuntunin at kundisyon. Kapag ginawa mo ito, bibigyan ka ng isang screen na mukhang ang imahe sa ibaba.
Mag-click sa pagsisimula ng isang bagong icon ng proyekto at bigyan ito ng isang pangalan at pindutin ang OK, sa sandaling gawin mo ito, bibigyan ka ng isang screen tulad ng imahe sa ibaba.
Sa sandaling doon kailangan mo munang ilagay ang dalawang mga label, kung saan ito ay upang ilagay ang slider nang kaunti pababa, sa susunod ay kailangan mong kumuha ng ilang mga module at sila ang module ng FirebaseDB at ang web-module.
Ang module ng firebaseDB ay nakikipag-usap sa firebase, ang web module ay ginagamit upang h andle ang Http na kahilingan. Alin ang hitsura ng imahe sa ibaba.
Kapag tapos na iyon, kailangan mong hilahin ang slider at isang label na pinangalanan naming PWM, kung nalilito ka sa sandaling ito, maaari mong suriin ang ilang iba pang mga tutorial tungkol sa paggawa ng isang app sa isang imbentor ng app.
Pagkatapos naming matapos ang proseso, mag-click sa icon ng firebase DB at ilagay sa firebase token at ang firebase URL na nai-save namin habang ginagawa ang firebase account.
Ngayon, tapos na kami sa seksyon ng disenyo at kailangan naming i-set up ang seksyon ng bloke. Upang magawa iyon, kailangan nating i-click ang pindutan ng pag-block sa kanang sulok sa itaas sa tabi ng taga-disenyo.
Sa sandaling mag-click sa slider at bibigyan ka ng isang mahabang listahan ng mga module, hilahin ang unang module, at i-hover ang iyong mouse sa pindutan ng thumb-posisyon, sasalubungin ka ng dalawa pang mga module, hilahin ang pareho sa kanila. Gagamitin namin ang mga iyon sa paglaon.
Ngayon ay ikinakabit namin ang variable ng thumbposition , ikinulong namin ito at nakukuha namin ang halaga ng posisyon ng hinlalaki. Susunod, nag-click kami sa firebasedb at hinugot ang tawag na FirebaseDB.storeValue na halaga ng tag upang maiimbak, module at ilakip ito sa ilalim ng halaga ng posisyon ng hinlalaki.
Kapag tapos na, naglabas kami ng isang walang laman na textbox sa pamamagitan ng pag-click sa bloke ng teksto at ilakip ito sa tag, ito ang tag na itinakda namin sa Arduino IDE upang mabasa at isulat ang data sa firebase. Ngayon ilakip ang variable na halaga ng hinlalaki sa halagang iimbak na tag. Kung nagawa mo nang tama ang lahat, sa pamamagitan ng paglipat ng slider, magagawa mong baguhin ang mga halaga sa firebaseDB.
- Ang.aia (nai-save na file) at.apk (pinagsamang file)
Alin ang nagmamarka ng pagtatapos ng aming proseso ng paggawa ng app. Ang isang snapshot ng android application na nilikha lamang namin ay ipinakita sa ibaba.
Pagsubok sa ESP32 Batay sa Touch Sensor Circuit
Upang subukan ang circuit, nakakonekta ako sa isang maliwanag na bombilya na parallel sa kisame fan, at pinapagana ko ang circuit na may isang 5V DC adapter, tulad ng nakikita mo sa larawan sa itaas, ang slider ng app ay nakatakda sa mababang, iyon ang dahilan kung bakit ang bombilya ay kumikinang sa mababang ningning. At ang fan ay mabagal ding umiikot.
Karagdagang Mga Pagpapahusay
Para sa pagpapakitang ito, ang circuit ay ginawa sa isang handmade PCB ngunit ang circuit ay maaaring madaling maitayo sa isang mahusay na kalidad ng PCB, sa aking mga eksperimento, ang laki ng PCB ay talagang dahil sa laki ng bahagi, ngunit sa isang kapaligiran sa produksyon, ito ay maaaring mabawasan sa pamamagitan ng paggamit ng murang mga bahagi ng SMD, nahanap ko ang paggamit ng isang 7555 timer sa halip na isang 555 timer na dagdagan ang kontrol nang malawakan, saka, ang pagtaas ng katibayan ay tumataas din.