- Az Arduino automatizált redőnyök készítéséhez szükséges alkatrészek
- A redőnyök vezérlése az Arduino segítségével
- Tervezze meg és építse meg az ablaktekercset
- A motortartó és a redőny 3D nyomtatása
- Áramkör az Arduino vakok vezérléséhez
- Blynk alkalmazás Arduino vakvezérléshez
- A NodeMCU programozása a vakok vezérlésére a Blynk segítségével
- Az árnyékolók vezérlése a Google Segéd segítségével
- Arduino alapú automatikus ablaktábla vezérlés - bemutató
"Jó reggelt kívánok. 7 óra van. Malibuban 72 fokos az idő… ”- ezek voltak a JARVIS első szavai, amikor bemutatták őket a Marvel Cinematics Univerzumban. A legtöbb Iron Man rajongónak képesnek kell lennie arra, hogy felidézze ezt a jelenetet, és ne feledje, hogy a JARVIS képes volt kinyitni egy ablakot (egyfajta) reggel, és tájékoztatni az időt és az időjárást. A filmben a szemüveg valóban átlátszó érintőképernyőkből készült, így a JARVIS képes volt feketéről átlátszóvá váltani, és az időjárási statisztikákat is megjelenítette rajta. De a valóságban messze vagyunk az átlátszó érintőképernyőktől, és annál közelebb kerülhetünk az ablaktáblák vagy korlátok automatikus vezérléséhez.
Tehát ebben a projektben pontosan ezt fogjuk építeni, építünk egy automatizált motoros rolót, amely előre meghatározott időpontokban automatikusan kinyílik és bezárul. Korábban számos otthoni automatizálási projektet építettünk, amelyek során automatizáltuk a lámpákat, motorokat stb. Ha érdekli, ellenőrizheti őket. Tehát visszatérve ezek az Arduino vezérlésű redőnyök parancsokat is átvehetnek a Google asszisztensétől, így hangparancsokkal távolról is kinyithatja vagy bezárhatja az ablaktáblákat. Érdekes? Akkor építsük fel.
Az Arduino automatizált redőnyök készítéséhez szükséges alkatrészek
A projekt viszonylag egyszerű, és nincs sok összetevőre szükség. Csak gyűjtse össze az alább felsorolt elemeket.
- NodeMCU
- Léptetőmotor - 28BYJ-48
- Léptető motor meghajtó modul
- LM117-3,3V
- Kondenzátorok (10uf, 1uf)
- 12 V DC adapter
- Perf Board
- Forrasztókészlet
- 3d nyomtató
A redőnyök vezérlése az Arduino segítségével
Most sokféle árnyékoló van a piacon, de a leggyakrabban használt kötél gyöngyökkel van ellátva (az alábbiakban látható módon), amely kihúzható a redőnyök kinyitására vagy bezárására.
Amikor ezt a körkötelet az óramutató járásával megegyező irányba húzzuk, kinyílnak az árnyékolók, és amikor ezt a kötelet az óramutató járásával ellentétes irányba húzzuk, akkor az árnyékolók bezáródnak. Tehát, ha automatizálnánk ezt a folyamatot, csak annyit kell tennünk, hogy egy motor segítségével húzzuk meg ezt a kötelet az óramutató járásával megegyező vagy az óramutató járásával ellentétes irányba, és ezzel készen is vagyunk. Valójában ezt fogjuk tenni ebben a projektben; a 28BYJ-48 léptetőmotort egy NodeMCU-val együtt fogjuk használni a gyöngyös kötél meghúzására.
Tervezze meg és építse meg az ablaktekercset
A projekt elektronikai része meglehetősen egyszerű és egyenes volt, a kihívást jelentő része a Blind Gear felépítése volt, amely meg tudta húzni a gyöngyös kötelet. Kezdjük tehát ezt a cikket a vak fogaskerék tervezésével, nem fogok belemerülni a fogaskerék tervezésének részleteibe, de ez az alapötlet segíteni fog Önnek. A kötél képe, rajta a gyöngyökkel, alább látható.
Ismét sokféle kötél létezik, de a leggyakrabban használt kötelek az egyes gyöngyök középpont közötti távolsága 6 mm, az egyes gyöngyök átmérője pedig 4 mm. Ezen információk felhasználásával megkezdhetjük felszerelésünk tervezését. Ha a redőny kötelének méretei megegyeznek a tárgyaltakkal, egyszerűen kihagyhatja ezt a lépést, és letöltheti a cikkben található STL fájlt, és kinyomtathatja a felszerelést. Ha kötélének más a gyöngyszeme elrendezése, akkor így kell megterveznie a redőnyöket.
Úgy döntöttem, hogy 24 gyöngy lesz a sebességváltómon, hogy optimális méretet kapjak a fogaskerékről. Bármely számot kiválaszthatja ehhez közel, hogy a fogaskerék nagy vagy kicsi legyen. Tehát most már tudjuk, hogy az egyes gyöngyök közötti távolság 6 mm, és 24 gyöngy kell a felszerelésünkön. Mindkettőt megsokszorozva megkapjuk a fogaskerék kerületét. Ezekkel az adatokkal kiszámíthatja a fogaskerék sugarát. Amint a fenti képen látható, a fogaskerék átmérője 46 mm körüli volt. De ne feledje, hogy ez nem a fogaskerék tényleges átmérője, mert nem vettük figyelembe a gyöngy átmérőjét, amely 4 mm. Tehát a fogaskerék tényleges átmérője 42 mm lesz, sok fogaskereket kinyomtattam és teszteltem, mielőtt megtaláltam volna a legjobban megfelelőt. Ha nem foglalkozik tervekkel,csak töltse le és nyomtassa ki a következő bekezdés STL fájljait, és folytassa a projektet.
A motortartó és a redőny 3D nyomtatása
A fogaskerékkel együtt szükségünk lesz egy kis burkolatra is, amelyet a falra lehet fúrni, és amely a léptetőmotort a helyén tartja. Az alábbiakban mind a ház, mind a fogaskerék látható.
A teljes tervfájlokat és az STL fájlokat az alábbiakban megadott Arduino Blind Control Thingiverse oldalon találja. Csak letöltheti és kinyomtathatja a redőnyt és a motorházat.
Töltse le a Blind Gear és Motor Case STL fájljait
Áramkör az Arduino vakok vezérléséhez
Miután elkészült a fogaskerékkel és az összeszereléssel, könnyen folytathatja az elektronika és a szoftver részt. Az IoT vakvezérlő projekt teljes kapcsolási rajza az alábbiakban látható.
Egy 12 V-os adaptert használtunk a teljes telepítéshez; az LM1117-3,3V szabályozó átalakítja a 12 V-ot 3,3 V-ra, amely a NodeMCU kártya áramellátására használható. A léptetőmotor meghajtó modulja közvetlenül a 12 V-os adapterről táplálkozik. Megpróbáltam 5 V-on működtetni a léptetőmotort, de akkor nem nyújtott elegendő nyomatékot a rolók meghúzásához, ezért győződjön meg róla, hogy 12 V-ot is használ.
Ettől eltekintve az áramkör nagyon egyszerű. Ha még nem ismeri a léptetőmotorokat, akkor tanulmányozza a léptetőmotor alapjait, hogy megértse, hogyan működik és miként használható mikrovezérlővel.
Blynk alkalmazás Arduino vakvezérléshez
Mielőtt belekezdenénk a vakok vezérlésének Arduino programjába, nyissa meg a blynk alkalmazást, és hozzon létre néhány gombot, amelyek segítségével kinyithatjuk vagy bezárhatjuk a rolót. Erre később is szükségünk lesz, hogy ellenőrizhessük a Google otthonából.
Épp most adtam hozzá két gombot a redőnyök kinyitásához és bezárásához, valamint egyszeri nyitással a redőnyök minden nap 10:00 órakor történő nyitásához. Több időzítővel felveheti a rolót a nap különböző időközönként. Alapvetően, amikor le kell zárnunk a redőnyöket, ki kell váltanunk a V1 virtuális csapot, és amikor a redőnyöket ki kell nyitnunk, akkor a virtuális V2 tűt kell kiváltanunk. A léptetőmotor vezérlésére szolgáló program az itt lenyomott gomb alapján az Arduino IDE-re lesz írva, ugyanezt az alábbiakban tárgyaljuk.
A NodeMCU programozása a vakok vezérlésére a Blynk segítségével
A vakvezérlő projekt teljes ESP8266 kódja az oldal alján található. Programunknak várnia kell a blynk alkalmazás parancsára, és ennek alapján a léptetőmotort az óramutató járásával megegyező vagy az óramutató járásával ellentétes irányba kell forgatnunk. A kód fontos szegmenseit az alábbiakban tárgyaljuk.
Áramköri ábra szerint az 1, 2, 3 és 4 digitális csapokat használtuk a nodemcu-n a léptető motor vezérléséhez. Tehát létre kell hoznunk egy példányt, amelyet steppernek hívunk, ezek segítségével a csapok segítségével, az alábbiak szerint. Figyeljük meg, hogy a csapokat az 1., 3., 2. és 4. sorrendben definiáltuk. Szándékosan történt, és nem hiba; cserélnünk kell a 2. és a 3. csapot a motor megfelelő működéséhez.
// hozza létre a stepper osztály egy példányát a steps and pins használatával Stepper stepper (STEPS, D1, D3, D2, D4);
A következő lépésben meg kell osztanunk a blynk alkalmazás hitelesítési tokenünket és azokat a Wi-Fi hitelesítő adatokat, amelyekhez az IoT Blind vezérlőnket csatlakoztatni kell. Ha nem biztos abban, hogyan szerezheti be ezt a Blynk hitelesítési jogkivonatot, olvassa el a Blynk LED Control projektet, ahol megismerheti a blynk alkalmazás alapjait és használatát.
// Meg kell szereznie az Auth Tokent a Blynk alkalmazásban. // Lépjen a Projektbeállítások oldalra (dióikon). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // A WiFi hitelesítő adatai. // A jelszó beállítása "" a nyitott hálózatokhoz. char ssid = "CircuitDigest"; char pass = "dummy123";
Továbblépve a kódunkkal, a telepítési funkció után két módszert definiáltunk a blynk számára. Mint korábban említettük, meg kell határoznunk, hogy a V1 és V2 virtuális csapoknak mit kell tennie. Az alábbiakban a kódot adjuk meg.
BLYNK_WRITE (V1) // ZÁRJUK A ROLLOKAT {Serial.println ("Blind Blinds"); if (nyitva == igaz) {for (int c_val = 0; c_val <= 130; c_val ++) // forgatás az óramutató járásával ellentétes irányban a záráshoz {stepper.step (c_val); hozam(); } zárt = igaz; nyitott = hamis; disable_motor (); // használat után mindig kívánatos léptetőmotorok az energiafogyasztás és a fűtés csökkentése érdekében}} BLYNK_WRITE (V2) // NYITJUK A ROLLOKAT {Serial.println ("Vakok nyitása"); if (zárt == igaz) {for (int cc_val = 0; cc_val> = -130; cc_val--) // forogás az óramutató járásával megegyező irányban a nyitáshoz {stepper.step (cc_val); hozam(); } nyitott = igaz; zárt = hamis; } disable_motor (); // használat után mindig kívánatos léptetőmotorok az energiafogyasztás és a fűtés csökkentése érdekében}
Amint láthatja, a V1-et használják a redőnyök bezárására, a V2-et pedig a redőnyök kinyitására. A for hurok a motorok forgatásához az óramutató járásával megegyező vagy az óramutató járásával ellentétes irányba 130 lépésenként. Kísérleteztem a rolóimmal, hogy megállapítsam, hogy 130 lépéssel képes vagyok teljesen kinyitni és bezárni a rolóimat. Számod változhat. Az alábbiakban látható a for hurok a léptetőmotor óramutató járásával megegyező és az óramutató járásával ellentétes irányba történő forgatásához.
for (int c_val = 0; c_val <= 130; c_val ++) // forgatás az óramutató járásával ellentétes irányban a {stepper.step (c_val) bezárásához; hozam(); } for (int cc_val = 0; cc_val> = -130; cc_val--) // forogás az óramutató járásával megegyező irányban a {stepper.step (cc_val) megnyitásához; hozam(); }
Két logikai változót is észrevehetünk programunkban „nyitva” és „zárva”. Ezt a két változót alkalmazzák annak megakadályozására, hogy a motor kétszer kinyissa vagy bezárja a rolót. Ez azt jelenti, hogy a redőnyök csak akkor nyílnak ki, amikor korábban zárva voltak, és csak akkor nyílnak meg, amikor korábban nyitva voltak.
Hogyan lehet növelni a 28BJY-48 léptető motor fordulatszámát?
A 28BJY-48 léptetőmotor használatának egyik hátránya, hogy nagyon lassú. Ezeket a motorokat eredetileg nagy pontosságú, kis fordulatszámú alkalmazásokban gyártották, ezért ne számítson arra, hogy ezek a motorok nagy sebességgel forognak. Ha növelni szeretné a léptetőmotor sebességét az Arduino használatával, két paramétert változtathat meg. Az egyik a #define STEPS 64, azt tapasztaltam, hogy amikor a lépéseket 64-nek definiáljuk, a motor viszonylag gyorsabb volt. Egy másik paraméter a stepper.setSpeed (500); Ismét 500-at találtam optimális értéknek, bármi más, ami valójában lassabbá teszi a léptetőmotort.
Tud-e más módot e motorok sebességének növelésére? Ha igen, hagyja őket az alábbi megjegyzés részben.
Hogyan lehet megakadályozni a léptetőmotor túlmelegedését?
A léptetőmotorokat mindig le kell kapcsolni, ha nem használják őket, hogy megakadályozzák a túlmelegedést. A léptetőmotor letiltása nagyon egyszerű; csak változtassa meg a léptetőmotort alacsonyra állító mind a négy GPIO érintkező érintkezési állapotát. Ez nagyon fontos, különben motorja nagyon felmelegedhet + 12 V-nál, és véglegesen károsíthatja magát. A léptetőmotor letiltására szolgáló program az alábbiakban található.
void disable_motor () // a fűtés elkerülése érdekében kapcsolja ki a motort {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Az árnyékolók vezérlése a Google Segéd segítségével
A blynk API-t fogjuk használni a rolók vezérléséhez a Google asszisztensen keresztül. Ez hasonló lesz a Voice Controlled Home automatizálási projektünkhöz, ezért ellenőrizze, ha érdekli. Alapvetően ki kell váltanunk az alábbi linket, amikor egy előre meghatározott kifejezést mondunk a Google Segédnek.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Győződjön meg róla, hogy megváltoztatta a hitelesítési tokent a blynk alkalmazás által biztosítottra. Ezt a linket akár a Chrome böngészőjében is tesztelheti, hogy a várakozásoknak megfelelően működjön-e. Most, hogy a kapcsolat kész, egyszerűen át kell lépnünk az IFTTT-re, és létre kell hoznunk két kisalkalmazást, amelyek kiválthatják a virtuális V1 és V2 tűket, amikor azt kérjük, hogy zárjuk be és nyissuk ki a rolót. Megint nem térek ki ennek részleteire, mert ezt sokszor megtettük. Ha további segítségre van szüksége, olvassa el ezt a Voice vezérelt FM rádió projektet, csak cserélje ki az adafruit szolgáltatásokat webhookokra. A kivonatom képernyőképét is megosztom referenciaként.
Arduino alapú automatikus ablaktábla vezérlés - bemutató
Miután az áramkör és a 3D nyomtatott burkolatok elkészültek, csak szerelje fel a készüléket a falra két lyuk fúrásával a falon. A szerelési beállításomat az alábbi képek mutatják.
Ezt követően ellenőrizze, hogy vakjai nyitott állapotban vannak-e, majd kapcsolja be az áramkört. Most megpróbálhatja bezárni a rolót a blynk alkalmazásból vagy a Google Segédről, és működnie kell. Beállíthatja az időzítőket is a blynk alkalmazásban, hogy automatikusan megnyitja és bezárja a rolót a nap egy adott időszakában.
A projekt teljes kidolgozása megtalálható az alábbi videóban; ha bármilyen kérdése van, írja meg bátran az alábbi megjegyzés részben. Fórumunkat más technikai megbeszélésekhez is felhasználhatja.