- Mi a Node.js?
- Szükséges alkatrészek
- Kördiagramm
- A Node.js Framework beállítása
- A Johnny-Five könyvtár telepítése
- Villogó LED az Arduino és a Node.js fájlokkal
- A LED fényerejének szabályozása az Arduino és a Node.js Webszerver használatával
Számos példát láthattunk egy LED villogására különböző mikrovezérlőkkel és különböző programozási nyelvekkel. Ma egy nagyon népszerű JavaScript Node.js keretrendszert fogunk használni az Arduino Uno-hoz csatlakoztatott LED vezérléséhez. A Node.js segítségével a weboldal fényerejét is szabályozhatjuk az Arduino segítségével. Néhány változtatással és az ESP8266 használatával ez IoT-projektgé alakítható, ahol a LED bárhonnan vezérelhető.
Mi a Node.js?
A Node.js egy széles körben használt JavaScript-alapú keretrendszer, amely a Google Chrome JavaScript V8 motorjára épül, és amelyet I / O intenzív webalkalmazások, például egyoldalas alkalmazások, video streaming webhelyek stb. Fejlesztésére alkalmaznak.
Korábban egy informatív oktatóanyagot készítettünk a Node.js és a Raspberry Pi használatának megkezdéséről a LED vezérléséhez. Ebben az oktatóanyagban hasonló megközelítést fogunk követni, vagyis a LED-et két módszerrel vezérlik, például:
- Az egyszerű LED villog egy JavaScript-kód beírásával a Node.js keretrendszerbe.
- LED-es fényerő-szabályozás a Node.js keretrendszer és bármely webböngésző webes felületének használatával: Az Arduino UNO webszerverként fog működni, a HTML weboldal pedig egy PC-n vagy egy laptopon lesz tárolva.
Szükséges alkatrészek
Hardver:
- Arduino UNO Igazgatóság
- Vezette
- Ellenállás
Szoftver:
- Arduino IDE: Vázlat feltöltésére az Arduino UNO Board-ra.
- Firmata: Ez egy protokoll a különböző mikrovezérlőkkel való kommunikációhoz, a számítógépen, okostelefonon stb. Található szoftverekből. A Firmata firmware bármilyen mikrokontroller táblába betölthető (például Arduino, Teensy), és képes beszélni bármely laptopdal, PC-vel vagy okostelefonnal. A Firmata könyvtárhoz Arduino IDE tartozik, így nem kell bárhonnan letölteni. Készítettünk egy oktatóanyagot az Arduino Raspberry Pi vezérléséről a pyFirmata használatával.
- Johnny-Five: A Johnny-Five a JavaScript-alapú robotika és IoT platform, amelyet kódok JavaScript-be írására használnak, és hidat hoznak létre az Arduino táblák és a számítógép között. A Johnny-Five-t számos Arduino-kompatibilis táblával tesztelték, például Arduino UNO, NANO, Promini stb. Ebben az oktatóanyagban le kell töltenie a Johnny-Five könyvtárat annak összes funkciójának használatához. A telepítési útmutatót később ismertetjük ebben az oktatóanyagban.
Kördiagramm
A kapcsolási rajz nagyon egyszerű, csak egy LED-et kell csatlakoztatnunk az Arduinóval.A Node.js Framework beállítása
A kódolás és a fejlesztés megkezdése előtt le kell tölteni és be kell állítani a Node.js-t. A Node.js környezet letöltéséhez kövesse az egyszerű lépéseket.
1. lépés: - Töltse le a Node.js.exe fájlját a hivatalos weboldaláról.
2. lépés: - Futtassa az.exe fájlt, és kövesse a telepítőben megadott utasításokat.
3. lépés: - Indítsa újra a számítógépet, ahogyan azt a Node.js dokumentum javasolja, és használja a Node.js összes szolgáltatását
4. lépés: - A csomópont telepítésének ellenőrzéséhez nyissa meg a Parancssor parancsot, és írja be a Node –v parancsot
5. lépés: - Megjelenik a Node.js verzió, jelezve, hogy a Node.js telepítve van.
A Johnny-Five könyvtár telepítése
A Node.js letöltése után hozzon létre egy új mappát „LED_Control” néven a Documents alkalmazásban, hogy az összes projektfájl egy helyen maradjon. Minden projektfájl a „ LED_Control ” mappában marad. Most töltse le a Johnny-Five könyvtárat a „ LED_Control ” mappába. A letöltéshez kövesse az alábbi lépéseket:
1. lépés: - Nyissa meg a Parancssorot
2. lépés: - Lépjen a „ LED_Control ” mappába a „ cd ” paranccsal.
3. lépés: - Futtassa az ' npm install johnny-five' parancsot
4. lépés: - Ez telepíti a Johnny-Five összes függőségét.
5. lépés: - Telepítse az ebben az oktatóanyagban használt szükséges könyvtárakat is a LED fényerejének szabályozásához. Három könyvtárat használnak itt:
- expressz: HTTP szerver burkoló
- socket.i o: WebSockets könyvtár
- serialpor t: Soros port burkoló
5. lépés: - Futtassa az alábbi parancsokat egyenként a három könyvtár telepítéséhez.
npm install express npm install socket.io npm install serialport
Mint korábban elmondtuk, a projekt két részre oszlik:
- Először is, Arduino Villogó LED a Node.js-sel
- Másodszor: A LED-es fényerő szabályozása webes felületről az Arduino és a Node.js használatával.
Villogó LED az Arduino és a Node.js fájlokkal
A LED villogásához be kell állítani az Arduino-t a számítógéppel való kommunikációhoz.
Az Arduino UNO beállítása villogó LED-hez:
Annak érdekében, hogy az Arduino UNO elfogadja a Laptop és a Control LED közötti parancsot, a Firmata firmware-t be kell tölteni az Arduino UNO-ba. A Firmata firmware betöltéséhez kövesse az alábbi egyszerű lépéseket:
- Csatlakoztassa az Arduino UNO-t USB-kábellel
- Nyissa meg az Arduino IDE alkalmazást, és válassza az Arduino UNO kártyát (ha másik kártyát használ, válassza ki a megfelelőt) az Eszközök közül.
- Válassza ki a csatlakoztatott Arduino UNO megfelelő COM portját
- Most keresse meg a Firmata vázlatot a Menü -> Fájl -> Példák -> Firmata -> StandardFirmata menüpont használatával.
- Töltse fel a „StandardFirmata” vázlatot a Fájl -> Feltöltés menüpont kiválasztásával.
Ez betölti a Firmata vázlatot az Arduino UNO-ra, és az Arduino UNO készen áll bármilyen parancs elfogadására a számítógépről.
Node.js program írása villogó LED-hez:
A Node.js program megírásához nyisson meg bármilyen szövegszerkesztőt (Jegyzettömb, Notepad ++ stb.), Illessze be az oktatóanyag végén csatolt 'blink_led' kódot, és mentse el egy .js kiterjesztéssel, azaz (blink_led.js) a korábban létrehozott „LED_Control” mappában. A fontos lépéseket a blink_led.js kódfájlban tárgyaljuk.
Kezdetben határozza meg a mikrovezérlő gombját, ahová a LED csatlakozik. Ebben a példában a LED az Arduino UNO 5. tűjéhez csatlakozik. A „var” a Node.js-ben a változó deklarációját jelenti.
var led_pin = 5;
A Johnny-öt modult be kell vonni, és az ellátás igényeinek kell kiválasztani. A Node.js moduljai könyvtárak. A ' piepras () ' függvény hozzáfér a modulhoz.
var johnny_five = igény ("johnny-öt"); var arduino_board = new johnny_five.Board ();
A console.log utasítás hasonló a nyomtatási utasításhoz, és kinyomtatja az üzenetet. És a LED tüske kimeneti üzemmódra van állítva, és a megadott késleltetés a villogó led számára adódik.
console.log ("A LED villogni kezdett!"); var led = új johnny_five.Led (led_pin); led.blink (100);
A program futtatásához kövesse az alábbi lépéseket:
- Nyissa meg a Parancssor parancsot
- Keresse meg a „LED_Control” mappát a „cd” paranccsal
- Futtassa a „Csomópont led_blink.js” parancsot. Sikeres végrehajtása esetén a "LED elkezd villogni " felirat jelenik meg . ahogy az alábbi képen látható .
- A led villogni kezd az Arduino UNO Pin 5-ben.
- Ezzel befejezzük a bemutatónk első részét, azaz a Node.js-sel villogó LED-et
A LED fényerejének szabályozása az Arduino és a Node.js Webszerver használatával
Hasonlóan a LED villogásához a Node.js-sel, ebben a szakaszban is lesz néhány rész, azaz az Arduino UNO beállítása, a webes felület beállítása és a Node.js program írása.
Az Arduino UNO beállítása a LED fényerejének szabályozására:
Az Arduino UNO beállításához egyszerűen töltse fel az „ arduino_control.ino ” vázlatot az Arduino UNO táblára, és ennyi. Ezzel létrejön az Arduino Board. A teljes kódot HTML fájlokkal innen töltheti le. Az „ arduino_control.ino” kód fontos lépéseket követ.
Kezdetben az átviteli sebességet 9600-ra állítják.
Serial.begin (9600);
A soros port mindig keresi a bejövő bájtot, és a bájt az 5-ös érintkezőre van írva, amely egy PWM-pin.
míg (! Soros.elérhető ()); analogWrite (5, Soros.olvasás ());
Ez az. Ez beállítja az Arduino-t, hogy rögzítse a bájtot a PWM csapra, és megváltoztatja a LED fényerejét.
Webes felület beállítása:
A led fényerejének webes felületen történő szabályozásához egy kis HTML-kódot kell írni, hogy egy felület legyen a böngészőben. A kezelőfelülethez kövesse az alábbi egyszerű lépéseket:
- Hozzon létre egy új mappát „nyilvános” belsejében „LED_Control” mappában létrehozott előtt.
- Most töltse le az „index.html” és a „style.css” fájlokat, és helyezze át mindkét fájlt a fenti első lépésben létrehozott „nyilvános” mappába. A fájlok innen tölthetők le.
Ez létrehoz egy csúszkát a weboldalon a LED fényerejének szabályozásához a Node.js és az Arduino segítségével.
A LED-ek vezérlése weboldalról érdekes megtanulni, és más mikrovezérlőkkel is megtehető egy webszerver létrehozásával és a weboldal webszerveren történő tárolásával. Itt ellenőrizheti az összes webszerverrel kapcsolatos projektet.
A Node.js program írása a LED fényerejének szabályozására:
A következő lépés a „brightness_control.js” vázlat megírása a Node.js használatával, és a kód végrehajtása. A kód végrehajtása kicsit hasonló lesz, mint a Node.js LED villogása.
A Node.js program megírásához nyisson meg bármilyen szövegszerkesztőt (Jegyzettömb, Notepad ++ stb.), Illessze be az oktatóanyag végéhez csatolt 'brightness_control' kódot, és mentse el egy .js kiterjesztéssel, azaz (brightness_control.js) a korábban létrehozott „LED_Control” mappában. A kódot innen is letöltheti.
A Blink Led Node.js programhoz hasonlóan ez a szakasz modulokat (könyvtárat) is használ. Tartalmazza az „expressz”, a „http” és a „soros port” modult.
var express = igényelni ('express'); app = express (); szerver = szükség ('http'). createServer (alkalmazás); io = igényel ('socket.io'). figyel (szerver); var SerialPort = szükség ("serialport") //. SerialPort
Most állítsa be a COM portot és a sebességet. Ne feledje, hogy a Windows rendszerben mindig COM lesz a szám kiterjesztésével (COM6, COM4, COM24 stb.), Ezért állítsa be alább, ha szükséges a '/' után. Állítsa be a buadrate értéket is.
var serialPort = új SerialPort ("/ COM4", {baudRate: 9600});
Kezdje el hallgatni a szervert a 8080-as porton.
szerver.listen (8080);
Kezdetben állítsa a fényerőt 0-ra. Ezután rögzítse a fényerő adatait az IO-hoz a sockets modullal, amely egy websocket modul. Az adatokat a webes interfész fogadja a socket protokoll segítségével.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { brightness = data.value; var buf = new Buffer (1); buf.writeUInt8 (fényerő, 0); serialPort.write (buf);
Most bocsátja ki a LED fényerejét, amelyet az aljzattól a LED csapig kapott.
io.sockets.emit ('led', {érték: fényerő}); }); socket.emit ('led', {érték: fényerő}); });
Most csak a hibakeresés érdekében adjon hozzá egy nyomtatott utasítást a végén. A Console.log egy nyomtatott utasítás a Node.js fájlban.
console.log ("A webkiszolgáló elindult, keresse fel a böngésző 'http: // localhost: 8080' címét.");
Most a program futtatásához kövesse az alábbi lépéseket:
- Nyissa meg a Parancssor parancsot
- Keresse meg a „LED_Control” mappát a „cd” paranccsal
- Futtassa a „Csomópont fényessége_kontroll.js” parancsot. Sikeres végrehajtása esetén a "Web Server Started" felirat megjelenik a böngészőben a "http: // localhost: 8080" címen. " közvetlenül a parancs alatt .
- Most lépjen a böngészőjébe, és írja be az „localhost: 8080” parancsot az URL-be.
- A fényerő megváltoztatásához mozgassa a csúszkát 0-255 értékről.
Az alábbiakban mellékeljük mindkét szakasz teljes kódját és munkavideóját. Akkor is, ha bármilyen kétsége van vagy javaslata van, akkor az alábbi fórumon vagy megjegyzésen keresztül érhet el minket. Az összes kódfájl innen is letölthető.