- IoT alapú mennyezeti ventilátor szabályozó működése
- A váltakozó áramú ventilátor sebességszabályozó áramköréhez szükséges anyagok
- AC ventilátor szabályozó vezérlő áramkör
- NYÁK-tervezés az IoT által vezérelt mennyezeti ventilátor szabályozóhoz
- Firebase-fiók beállítása
- Arduino kód a ventilátorszabályozó vezérléséhez a NodeMCU-val
- A ventilátorszabályozó alkalmazás kiépítése az MIT App Inventor segítségével
- Az ESP32 alapú érintésérzékelő áramkör tesztelése
- További fejlesztések
Ebben a cikkben egy AC ventilátor szabályozó áramkört építünk, amely képes szabályozni a ventilátor sebességét azáltal, hogy korlátozza a ventilátor áramát. Az AC mennyezeti ventilátor-szabályozó kifejezés falat, ezért ezentúl egyszerűen csak ventilátor-szabályozónak fogjuk nevezni. A ventilátor szabályozó áramköre kulcsfontosságú elem, amelyet az AC ventilátor / motor fordulatszámának az igényeknek megfelelő növelésére vagy csökkentésére használnak. Néhány évvel ezelőtt választhattál egy hagyományos rezisztív típusú ventilátor-szabályozó vagy egy elektronikus szabályozó között, de manapság mindezt felváltotta az elektronikus ventilátor-szabályozó áramkör.
Egy korábbi cikkünkben bemutattuk, hogyan építhetne egy AC fázis szögvezérlő áramkört egy Arduino-val, amely képes volt szabályozni az izzólámpa fényerejét és a ventilátor sebességét is, így fokozhatja azt ebben a cikkben egy IoT alapú AC mennyezeti ventilátor szabályozó áramkört építünk. Ami képes lesz a mennyezeti ventilátor sebességének szabályozására egy Android alkalmazás segítségével.
IoT alapú mennyezeti ventilátor szabályozó működése
A ventilátor szabályozó áramköre egy egyszerű áramkör, amely képes szabályozni az AC mennyezeti ventilátor sebességét az AC szinusz hullám fázisszögének megváltoztatásával vagy egyszerűbb kifejezéssel a TRIAC pontos vezérlésével. Mivel a váltakozó áramú ventilátor szabályozó áramkörének összes alapvető működését megemlítettem az AC fázisszög-szabályozás 555 időzítővel és PWM cikkel, az áramkör tényleges felépítésére fogunk koncentrálni. És még egyszer, ha többet szeretne megtudni a témáról, kérjük, olvassa el az AC Light Dimmer cikket is az Arduino és a TRIAC Project segítségével.
A fenti alapvető blokkdiagram bemutatja az áramkör tényleges működését. Mint korábban említettem, a Firebase IoT és a NodeMCU segítségével generálunk egy PWM jelet, majd a PWM jelet átadjuk az aluláteresztő szűrőn, amely egy MOSFET kapuját fogja irányítani, majd egy 555 időzítő vezérli a tényleges TRIAC optocsatoló segítségével.
Ebben az esetben az android alkalmazás megváltoztatja a firebaseDB értékét, és az ESP folyamatosan ellenőrzi az adott DB-vel kapcsolatos változásokat, ha bármilyen változás történik, amely lehúzódik, és az érték PWM-jellé alakul.
A váltakozó áramú ventilátor sebességszabályozó áramköréhez szükséges anyagok
Az alábbi képen látható az áramkör felépítéséhez használt anyag, mivel ez nagyon általános alkatrészekkel készül, ezért a felsorolt anyagokat meg kell találnia a helyi hobbiboltban.
A bemutató projekt óta az alábbi táblázatban felsoroltam az összetevőket típusokkal és mennyiségekkel, ehhez egyetlen csatornát használok. De az áramkör könnyen méretezhető a követelményeknek megfelelően.
- Csavaros kapocs 5,04 mm-es csatlakozó - 2
- Férfi fejléc 2,54 mm csatlakozó - 1
- 56K, 1W ellenállás - 2
- 1N4007 Dióda - 4
- 0.1uF, 25V kondenzátor - 2
- AMS1117 feszültségszabályozó - 1
- 1000uF, 25V kondenzátor - 1
- DC tápegység - 1
- 1K ellenállás - 1
- 470R ellenállás - 2
- 47R ellenállás - 2
- 82 K ellenállás - 1
- 10 K ellenállás - 5
- PC817 optocsatoló - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 MOSFET - 1
- 3.3uF kondenzátor - 1
- Vezetékek csatlakoztatása - 5
- 0.1uF, 1KV kondenzátor - 1
- ESP8266 (ESP-12E) mikrovezérlő - 1
AC ventilátor szabályozó vezérlő áramkör
Az IoT ventilátor szabályozó áramkörének vázlata az alábbiakban látható, ez az áramkör nagyon egyszerű, és általános komponenseket használ a fázisszög vezérléséhez.
Ez az áramkör nagyon gondosan megtervezett alkatrészekből áll. Végigmegyek, és elmagyarázom az egyes blokkokat.
ESP8266 (ESP-12E) Wi-Fi chip:
Ez az áramkörünk első része, és ez az a rész, ahol sok mindent megváltoztattunk, a többi rész pontosan ugyanaz marad, azaz ha követte az előző cikket.
Ebben a szakaszban felhúztuk az Enable, Reset és a GPIO0 csapokat, valamint lehúztuk a GPIO15-öt és a Ground Pin-t, amelyeket a chip adatlapja ajánl. Ami a programozást illeti, elhelyeztünk egy 3pin-es fejlécet, amely bemutatja a TX, RX és a földcsapot, amelyen keresztül nagyon könnyen programozhatjuk a chipet. Emellett egy tapintható kapcsolót is elhelyeztünk a GPIO0 földeléséhez. Ez szükséges lépés az ESP programozási módba állításához. Kimenetként a GPIO14 tűt választottuk, amelyen keresztül a PWM jel keletkezik.
Jegyzet! A programozáskor meg kell nyomnunk a gombot, és a DC tápcsatlakozóval kell bekapcsolni a készüléket.
Nulla keresztezésű detektáló áramkör:
Először is a listán szerepel a nulla keresztezésű érzékelő áramkör, amely két 56K, 1W ellenállással készült, négy 1n4007 diódával és egy PC817 optocsatolóval együtt. Ez az áramkör felelős azért, hogy a nulla kereszteződésű jelet az 555 időzítő IC felé továbbítsa. Ragasztottuk a fázist és a semleges jelet a TRIAC szakaszban történő további felhasználásra.
AMS1117-3,3V feszültségszabályozó:
Az áramellátáshoz az AMS1117 feszültségszabályozót használják, az áramkör az egész áramellátásért felelős. Ezenkívül két 1000uF kondenzátort és egy 0,1uF kondenzátort használtunk leválasztó kondenzátorként az AMS1117-3.3 IC-hez.
Vezérlő áramkör NE555 időzítővel:
A fenti képen az 555 időzítő vezérlő áramköre látható, az 555 monostabil konfigurációban van konfigurálva, így amikor a nulla kereszteződés érzékelő áramkörből érkező trigger jel eléri a ravaszt, az 555 időzítő egy ellenállás segítségével elkezdi tölteni a kondenzátort (általában), de az áramkörünkben van egy MOSFET az ellenállás helyett, és a MOSFET kapujának vezérlésével szabályozzuk a kondenzátorba áramló áramot, ezért szabályozzuk a töltési időt, így vezéreljük az 555 időzítők kimenetét.
TRIAC és a TRIAC-meghajtó áramkör:
A TRIAC főkapcsolóként működik, amely valóban be- és kikapcsol, így vezérli az AC jel kimenetét. A TRIAC vezetése az MOC3021 Opto-Triac meghajtó segítségével nemcsak a TRIAC-ot hajtja, hanem optikai szigetelést is biztosít, a 0,01uF 2KV nagyfeszültségű kondenzátort, a 47R ellenállás pedig egy áramkört képez, amely megvédi áramkörünket a nagyfeszültségű tüskék, amelyek induktív terheléshez kapcsolódnak. A bekapcsolt AC jel nem szinuszos jellege felelős a tüskékért. Emellett felelős a teljesítménytényezőkkel kapcsolatos kérdésekért, de ez egy másik cikk témája.
Aluláteresztő szűrő és P-csatornás MOSFET (ellenállásként működik az áramkörben):
A 82K ellenállás és a 3.3uF kondenzátor alkotják az aluláteresztő szűrőt, amely felelős az Arduino által generált nagyfrekvenciás PWM jel kisimításáért. Mint korábban említettük, a P-Channel MOSFET változó ellenállásként működik, amely szabályozza a kondenzátor töltési idejét. Ennek vezérlése a PWM jel, amelyet az aluláteresztő szűrő kisimít.
NYÁK-tervezés az IoT által vezérelt mennyezeti ventilátor szabályozóhoz
Az IoT mennyezeti ventilátor szabályozó áramkörének nyomtatott áramköre egyoldalas táblában van kialakítva. Az Eagle NYÁK tervező szoftvert használtam a NYÁK tervezéséhez, de bármilyen tetszőleges tervező szoftvert használhat. Az alaplapom 2D képe az alábbiakban látható.
Elegendő talajkitöltést használnak a megfelelő földelő csatlakozások kialakításához az összes alkatrész között. A 3,3 V DC bemenet és a 220 Volt AC bemenet a bal oldalon található, a kimenet a NYÁK jobb oldalán található. Az Eagle teljes tervfájlja és a Gerber az alábbi linkről tölthető le.
- NYÁK-tervező, GERBER és PDF fájlok a mennyezeti ventilátor szabályozó áramköréhez
Kézzel készített NYÁK:
A kényelem kedvéért elkészítettem a PCB kézzel készített változatát, amely az alábbiakban látható.
Ezzel a hardverünk készen áll a kapcsolási rajzunk szerint, most készen kell állnunk az androidos alkalmazásunkra és a Google firebase-re.
Firebase-fiók beállítása
A következő lépéshez létre kell hoznunk egy Firebase-fiókot. Az összes kommunikáció a firebase számlán fog menni. Firebase-fiók létrehozásához látogasson el a Firebase webhelyére, és kattintson a "Kezdés" gombra.
Ha rákattint, be kell jelentkeznie Google-fiókjával, és
miután bejelentkezett, létre kell hoznia egy projektet a Projekt létrehozása gombra kattintva.
Ezzel egy olyan oldalra irányít át, amely úgy néz ki, mint a fenti kép. Írja be a projekt nevét, és kattintson a folytatásra.
Kattintson ismét a folytatásra.
Miután ezt megtette, el kell fogadnia bizonyos feltételeket a jelölőnégyzetre kattintva, majd a projekt létrehozása gombra kell kattintania.
Ha mindent helyesen tett, egy idő után egy ilyen üzenetet kap. Miután elkészült, a firebase-konzoljának úgy kell kinéznie, mint az alábbi kép.
Most két dolgot kell innen összegyűjtenünk. Ehhez kattintson a most létrehozott projekt nevére. Számomra ez a CelingFanRegulator, ha rákattintasz, kapsz az alábbi képhez hasonló műszerfalat.
Kattintson a beállításokra, majd a projektbeállításokra, a kapott oldal az alábbi képeken fog kinézni.
Kattintson a service account -> database secret elemre .
Másolja az adatbázist titokban, és tartsa valahol későbbi felhasználásra.
Ezután kattintson a valós idejű adatbázisra, és másolja az URL-t. ezt későbbi felhasználásra is őrizze meg.
És ez minden, a dolgok tűzgátló oldala is benne van.
Arduino kód a ventilátorszabályozó vezérléséhez a NodeMCU-val
Egy egyszerű Arduino kód gondoskodik a firebase és az ESP-12E modul közötti kommunikációról, az áramkör és a kód magyarázatát alább adjuk meg. Először meghatározzuk az összes szükséges könyvtárat, letöltheti a következő könyvtárakat a megadott linkekről Arduino JSON könyvtár és a FirebaseArduino könyvtár
#include
A FirebaseArduino könyvtár segítségével fogjuk kialakítani a kapcsolatot a Firebase programmal.
// Állítsa be ezeket a példák futtatásához. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "SSID" "definiálja WASS
Ezután meghatároztuk a firebase gazdagépet, a firebase hitelesítést, amelyet korábban mentettünk, amikor a firebase fiókot készítettük. Ezután meghatároztuk az útválasztónk SSID-jét és jelszavát.
Karakterlánc Resivedata; #define PWM_PIN 14;
Ezután meghatároztunk egy string típusú változót, a Resivedata-t, ahol az összes adatot tárolni fogjuk, és meghatároztuk azt a PWM_PIN-t is, ahol a PWM kimenetet kapjuk.
Ezután a void setup () szakaszban megtesszük a szükségeseket,
Serial.begin (9600); pinMode (PWM_PIN, OUTPUT); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("összekötő"); while (WiFi.status ()! = WL_CONNECTED) {Soros.nyomtatás ("."); késés (500); } Soros.println (); Serial.print ("csatlakoztatva:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Változó / Érték", "FirstTestStrig");
Először engedélyezzük a sorozatot a Serial.begin () függvény meghívásával. Ezután a PWM csapot OUTPUT-ként állítottuk be. A WiFi.begin () függvény segítségével megkezdjük a Wi-Fi kapcsolatot, és a funkcióban átadjuk az SSID-t és a Jelszót. Mi ellenőrizze a kapcsolat állapotát while és ha csatlakozik, akkor a hurok, és tovább. Ezután kinyomtatjuk a csatlakoztatott üzenetet az IP-címmel.
Végül a Firebase.begin () függvénnyel kezdjük a kommunikációt a firebase-szel, és átadjuk a korábban definiált FIREBASE_HOST és FIREBASE_AUTH paramétereket. A sztringet pedig a setString () függvénnyel állítjuk be , amely a telepítési függvény végét jelöli. A void loop () szakaszban
Resivedata = Firebase.getString ("Változó / Érték"); Serial.println (Resivedata); analogWrite (PWM_PIN, térkép (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); késés (100);
A getString () függvényt Variable / Value-val hívjuk meg, ahol az adatokat a firebase tárolja, egy példa erre az alábbi kép lehet:
Ezután kinyomtatjuk az értéket csak a hibakereséshez. Ezután a térképfunkcióval térképezzük fel az értéket, a 80-at azért használjuk, mert a 0 - 80 tartományon belül képesek vagyunk pontosan vezérelni a MOSFET kapuját, és az RC aluláteresztő szűrő némileg felelős ezért az értékért. Ezen a tartományon belül a fázisszögvezérlő áramkör pontosan működik, az értéket hardver-szoftver édes pontnak nevezheti. Ha ezt a projektet végzi, és problémákkal szembesül, akkor el kell játszania az értéket, és magának kell meghatároznia az eredményeket.
Ezt követően az analógWrite () függvényt használjuk az adatok betáplálására és a PWM engedélyezésére, ezt követően ismét a Serial.println () függvényt használjuk csak az eredmény áttekintésére, végül pedig egy késleltetési funkcióval csökkentjük hit-count a firebase API-hoz, amely véget vet a programunknak.
A ventilátorszabályozó alkalmazás kiépítése az MIT App Inventor segítségével
Az AppInventor segítségével olyan androidos alkalmazást fogunk készíteni, amely kommunikálni fog a firebase-szel, és jogosult megváltoztatni a firebase adatbázisban tárolt adatokat.
Ehhez látogasson el az appInventors webhelyre, jelentkezzen be Google-fiókjával, és fogadja el az Általános Szerződési Feltételeket. Miután ezt megtette, megjelenik egy képernyő, amely úgy néz ki, mint az alábbi kép.
Kattintson az új projekt indítása ikonra, adjon neki egy nevet, és nyomja meg az OK gombot. Miután ezt megtette, megjelenik egy képernyő, mint az alábbi kép.
Ha odaér, először két címkét kell tennie , ahol a csúszkát kissé lejjebb kell tenni, majd be kell húznia néhány modult, ezek a FirebaseDB és a web-modulok.
A firebaseDB modul kommunikál a firebase a webmodul használják h andle a HTTP kérés. Ami úgy néz ki, mint az alábbi kép.
Miután ez megtörtént, be kell húznia a csúszkát és egy címkét, amelyet PWM-nek neveztünk el. Ha ebben a pillanatban összezavarodik, megnézhet néhány más oktatóanyagot, amelyek arról szólnak, hogyan készíthet egy alkalmazást az alkalmazás feltalálójával.
Miután befejeztük a folyamatot, kattintson a firebase DB ikonra, és tegye be a firebase tokent és a firebase URL-t, amelyet elmentettünk a firebase fiók létrehozása közben.
Most elkészültünk a tervezési résszel, és be kell állítanunk a blokk részt. Ehhez kattintson a blokk gombra a jobb felső sarokban a tervező mellett.
Miután rákattint a csúszkára, megjelenik a modulok hosszú listája, húzza ki az első modult, és vigye az egérmutatót a hüvelykujj-helyzet gomb fölé, és további két modullal fog köszönni, és húzza ki mindkettőt. Ezeket később felhasználjuk.
Most csatoljuk a thumbposition változót, kerekítjük és megkapjuk a hüvelykujj helyzetének értékét. Ezután rákattintunk a firebasedb-re, és kihúzzuk a FirebaseDB.storeValue hívóértéket a tároláshoz, modulozáshoz és a hüvelykujj helyzetének aljához csatolva.
Ha elkészült, a szövegblokkra kattintva kihúzunk egy üres szövegdobozt, és csatoljuk a címkéhez, ezt a címkét állítottuk be az Arduino IDE-ben az adatok beolvasására és a Firebase-be írására. Most csatolja a thumb érték változót a tárolni kívánt címke értékéhez. Ha mindent helyesen tett, a csúszka mozgatásával megváltoztathatja a firebaseDB értékeit.
- A.aia (mentett fájl) és.apk (lefordított fájl)
Ami az alkalmazáskészítési folyamatunk végét jelenti. Az alábbiakban bemutatjuk az imént létrehozott androidos alkalmazás pillanatképét.
Az ESP32 alapú érintésérzékelő áramkör tesztelése
Az áramkör teszteléséhez a mennyezeti ventilátorral párhuzamosan izzólámpát csatlakoztattam, és az áramkört 5 V DC adapterrel tápláltam, amint az a fenti képen látható, hogy az alkalmazás csúszkája alacsonyra van állítva, ezért az izzó gyengén világít. És a ventilátor is lassan forog.
További fejlesztések
Ehhez a bemutatáshoz az áramkört egy kézzel készített nyomtatott áramköri lapon készítik, de az áramkört könnyen fel lehet építeni egy jó minőségű NYÁK-ra. Kísérleteim szerint a NYÁK mérete valóban csekély az alkatrész mérete miatt, de gyártási környezetben olcsó SMD komponensek használatával csökkenthető, azt tapasztaltam, hogy az 555 időzítő helyett egy 7555 időzítőt használunk, ami nagymértékben növeli a vezérlést, továbbá nő az áramkör stabilitása is.