- Kaj je Node.js?
- Potrebne komponente
- Shema vezja
- Nastavitev ogrodja Node.js
- Namestitev knjižnice Johnny-Five
- Utripajoča LED z Arduino in Node.js
- Nadzor svetlosti LED z uporabo spletnega strežnika Arduino in Node.js
Videli smo številne primere utripanja LED z različnimi mikrokrmilniki in različnimi programskimi jeziki. Danes bomo uporabili zelo priljubljen okvir JavaScript Node.js za nadzor LED priključen na Arduino Uno. Uporabili bomo tudi Node.js za nadzor svetlosti LED s spletne strani s pomočjo Arduina. Z nekaj popravki in uporabo ESP8266 je to mogoče pretvoriti v projekt IoT, kjer je LED mogoče upravljati od kjer koli.
Kaj je Node.js?
V Node.js se pogosto uporabljajo okvir, ki temelji JavaScript temelji na Google Chrome JavaScript V8 in se uporabljajo pri razvoju I / O intenzivne spletne aplikacije, kot so aplikacije ene strani, video streaming straneh itd
Že prej smo naredili informativno vadnico o Uvodu z Node.js in Raspberry Pi za nadzor LED. V tej vadnici bomo sledili podobnemu pristopu, tj. LED bo nadzorovan z dvema metodama, kot so:
- Preprosto utripa LED, tako da v okvir Node.js napišete kodo JavaScript.
- Nadzor svetlosti LED z uporabo okvira Node.js in spletnega vmesnika iz katerega koli brskalnika: Arduino UNO bo deloval kot spletni strežnik, spletna stran HTML pa bo gostovala v osebnem računalniku ali prenosnem računalniku.
Potrebne komponente
Strojna oprema:
- Odbor Arduino UNO
- LED
- Upor
Programska oprema:
- Arduino IDE: za nalaganje skice na Arduino UNO Board.
- Firmata: To je protokol za komunikacijo z različnimi mikrokrmilniki iz programske opreme v računalniku, pametnem telefonu itd. Firmata vdelano programsko opremo je mogoče naložiti v katero koli ploščo mikrokrmilnika (kot so Arduino, Teensy) in je sposobna govoriti s katerim koli prenosnikom, osebnim računalnikom ali pametnim telefonom. Knjižnica Firmata je opremljena z Arduino IDE, zato je ni treba nikamor prenašati. Naredili smo vadnico o nadzoru Arduina z Raspberry Pi s pomočjo pyFirmata.
- Johnny-Five: Johnny-Five je platforma za robotiko in IoT na osnovi JavaScript, ki se uporablja za pisanje kod v JavaScript in se uporablja za povezavo med ploščami Arduino in računalnikom. Johnny-Five so bili preizkušeni na različnih ploščah, združljivih z Arduino, kot so Arduino UNO, NANO, Promini itd. V tej vadnici je treba prenesti knjižnico Johnny-Five, da boste lahko uporabili vse njene funkcije. Navodila za namestitev bodo razložena kasneje v tej vadnici.
Shema vezja
Shema vezij je zelo osnovna, z Arduinom moramo le povezati LED.Nastavitev ogrodja Node.js
Pred začetkom kodiranja in razvoja je treba Node.js prenesti in nastaviti. Za prenos okolja Node.js sledite preprostim korakom.
1. korak: - Prenesite datoteko.exe datoteke Node.js z njegove uradne spletne strani.
2. korak: - Zaženite.exe in sledite navodilom v namestitvenem programu.
3. korak: - Znova zaženite računalnik, kot je priporočeno v dokumentu Node.js, in tudi za uporabo vseh funkcij Node.js
4. korak: - Če želite preveriti, ali je vozlišče nameščeno, odprite ukazni poziv in vnesite Node –v
5. korak: - Prikazana bo različica Node.js, kar pomeni, da je Node.js nameščen.
Namestitev knjižnice Johnny-Five
Zdaj po prenosu Node.js ustvarite novo mapo z imenom »LED_Control« v dokumentih, da bodo vse projektne datoteke na enem mestu. Vsaka projektna datoteka bo shranjena v mapi » LED_Control «. Zdaj prenesite knjižnico Johnny-Five v mapo » LED_Control «. Za prenos sledite spodnjim korakom:
1. korak: - Odprite ukazni poziv
2. korak: - Pojdite na mapo » LED_Control «, tako da sledite ukazu » cd «.
3. korak: - zaženite ukaz ' npm install johnny-five'
4. korak: - S tem boste namestili vse odvisnosti Johnny-Five.
5. korak: - Namestite tudi potrebne knjižnice, ki se uporabljajo v tej vadnici za nadzor svetlosti LED. Tu se uporabljajo tri knjižnice:
- express: ovitek strežnika
- socket.i o: knjižnica WebSockets
- serialpor t: ovitek serijskih vrat
5. korak: - Za namestitev teh treh knjižnic zaženite spodnje ukaze enega za drugim.
npm namestite ekspresno npm namestite socket.io npm namestite serialport
Kot smo že povedali, je projekt razdeljen na dva dela:
- Prvič, Arduino utripajoča LED z Node.js
- Drugič, nadzor svetlosti LED iz spletnega vmesnika z uporabo Arduino in Node.js.
Utripajoča LED z Arduino in Node.js
Če utripa LED, je treba Arduino nastaviti za komunikacijo z računalnikom.
Nastavitev Arduino UNO za utripajočo LED:
Če želite, da Arduino UNO sprejme ukaz s prenosnega računalnika na LED za nadzor, je treba vdelano programsko opremo Firmata naložiti v Arduino UNO. Če želite naložiti vdelano programsko opremo Firmata, sledite tem preprostim korakom:
- Arduino UNO povežite s kablom USB
- Odprite Arduino IDE in v orodjih izberite ploščo Arduino UNO (če uporabljate drugo ploščo, izberite ustrezno).
- Izberite ustrezna vrata COM priključenega Arduino UNO
- Zdaj poiščite skico Firmata s pomočjo menija -> datoteka -> primeri -> Firmata -> StandardFirmata.
- Skico »StandardFirmata« naložite tako, da odprete Datoteka -> Naloži.
S tem bo Firmata Sketch naložen na Arduino UNO in zdaj je Arduino UNO pripravljen sprejeti kateri koli ukaz iz računalnika.
Pisanje programa Node.js za utripajočo LED:
Če želite napisati program Node.js, odprite kateri koli urejevalnik besedil (Notepad, Notepad ++ itd.) In prilepite kodo blink_led, priloženo na koncu te vadnice, in jo shranite s pripono '.js', tj. (Blink_led.js) v prej ustvarjeni mapi »LED_Control«. O pomembnih korakih bomo razpravljali v kodni datoteki blink_led.js.
Sprva določite pin mikrokrmilnika, kamor je led povezan. V tem primeru je LED priključen na pin 5 Arduino UNO. 'Var' v Node.js predstavlja deklaracijo spremenljivke.
var led_pin = 5;
Vključiti je treba modul johnny-pet in izbrati ploščo. Moduli v Node.js so knjižnice. Funkcija ' require () ' bo dostopala do modula.
var johnny_five = require ("johnny-five"); var arduino_board = new johnny_five.Board ();
Console.log izjava je podobna izjavi tisk in ga natisne sporočilo. LED-zatič je nastavljen na izhodni način in določena zakasnitev je nastavljena na utripanje.
console.log ("LED je začela utripati!"); var led = nov johnny_five.Led (led_pin); led.blink (100);
Zdaj za zagon programa sledite spodnjim korakom:
- Odprite ukazni poziv
- Poiščite "LED_Control" mapo z naslednjim "cd" ukaz
- Zaženite ukaz 'Node led_blink.js'. Če bo uspešno izveden, bo prikazano "LED je začela utripati!" kot je prikazano na spodnji sliki .
- LED bo začel utripati v Arduino UNO Pin 5.
- S tem je zaključen prvi del naše vadnice, tj. Utripajoča LED z Node.js
Nadzor svetlosti LED z uporabo spletnega strežnika Arduino in Node.js
Podobno kot utripanje LED z Node.js bo tudi v tem razdelku nekaj delov, npr. Nastavitev Arduino UNO, Nastavitev spletnega vmesnika in Pisanje programa Node.js.
Nastavitev Arduino UNO za nadzor svetlosti LED:
Če želite nastaviti Arduino UNO, preprosto naložite skico " arduino_control.ino " na ploščo Arduino UNO in to je to. To bo postavilo Arduino Board. Celotno kodo z datotekami HTML lahko prenesete od tukaj. Koda “ arduino_control.ino” vključuje naslednje pomembne korake.
Najprej je bila hitrost prenosa 9600.
Serial.begin (9600);
Zaporedna vrata vedno iščejo dohodni bajt, bajt pa je zapisan na Pin 5, ki je PWM Pin.
while (! Serial.available ()); analogWrite (5, Serial.read ());
To je to. To bo nastavilo Arduino, da priklene bajt na pin PWM in bo spremenilo svetlost LED.
Nastavitev spletnega vmesnika:
Za nadzor svetlosti LED z uporabo spletnega vmesnika je napisan majhen delček kode HTML, ki ima vmesnik v brskalniku. Če želite imeti vmesnik, sledite spodnjim korakom:
- Ustvarite novo mapo z imenom "public" znotraj mape "LED_Control", ustvarjene prej.
- Zdaj prenesite datoteki "index.html" in "style.css" ter obe datoteki premaknite v mapo "public", ustvarjeno v prvem koraku zgoraj. Datoteke lahko prenesete od tukaj.
To bo ustvarilo drsnik na spletni strani za nadzor svetlosti LED z uporabo Node.js in Arduino.
Upravljanje LED s spletne strani se je zanimivo naučiti in to je mogoče storiti z drugim mikrokrmilnikom z ustvarjanjem spletnega strežnika in gostovanjem spletne strani na spletnem strežniku. Tukaj preverite vse projekte, povezane s spletnim strežnikom.
Pisanje programa Node.js za nadzor svetlosti LED:
Naslednji korak bi bil pisanje skice »brightness_control.js« z uporabo Node.js in izvajanje kode. Izvedba kode bo nekoliko podobna utripanju LED z Node.js.
Če želite napisati program Node.js, odprite kateri koli urejevalnik besedil (Notepad, Notepad ++ itd.) In prilepite kodo 'brightness_control', priloženo na koncu te vadnice, in jo shranite s pripono '.js', tj. (Brightness_control.js) v prej ustvarjeni mapi »LED_Control«. Kodo lahko prenesete tudi od tukaj.
Podobno kot program Blink Led Node.js bo tudi v tem razdelku uporabljeni moduli (knjižnica). Vključite modul 'express', 'http' in 'serial port'.
var express = require ('express'); app = express (); strežnik = zahteva ('http'). createServer (aplikacija); io = require ('socket.io'). listen (strežnik); var SerialPort = require ("serialport") //
Zdaj nastavite vrata COM in baudrate. Upoštevajte, da bo v oknih vedno COM z razširitvijo številke (COM6, COM4, COM24 itd.), Zato nastavite spodaj, kot je zahtevano za '/'. Nastavite tudi buadrate.
var serialPort = nov SerialPort ("/ COM4", {baudRate: 9600});
Začnite poslušati strežnik na vratih 8080.
server.listen (8080);
Prvotno nastavite svetlost na 0. Nato podatke o svetlosti pritrdite na IO z modulom vtičnic, ki je modul spletne vtičnice. Podatke bo prejel spletni vmesnik z uporabo vtičnice.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { brightness = data.value; var buf = new Buffer (1); buf.writeUInt8 (svetlost, 0); serialPort.write (buf);
Zdaj oddajte vrednost svetlosti LED, ki jo dobite od vtičnice do zatiča LED.
io.sockets.emit ('led', {vrednost: svetlost}); }); socket.emit ('led', {vrednost: svetlost}); });
Zdaj samo za odpravljanje napak dodajte izjavo za tiskanje na koncu. Console.log je stavek za tiskanje v Node.js.
console.log ("Začel se je spletni strežnik, v brskalniku pojdite na 'http: // localhost: 8080'.");
Zdaj zaženite program tako, da sledite spodnjim korakom:
- Odprite ukazni poziv
- Poiščite "LED_Control" mapo z naslednjim "cd" ukaz
- Zaženite ukaz 'Node brightness_control.js'. Če bo uspešno izveden, bo v brskalniku prikazano sporočilo »Zagon spletnega strežnika pojdite na http: // localhost: 8080«. tik pod ukazom .
- Zdaj pojdite v brskalnik in v url vnesite »localhost: 8080«.
- Če želite spremeniti svetlost, drsnik premaknite na 0-255 vrednosti.
Celotno kodo in delajo video obeh oddelkih je priložena spodaj. Če imate kakršen koli dvom ali predlog, nas lahko kontaktirate prek spodnjega foruma ali komentarja. Vse kodne datoteke lahko prenesete tudi od tukaj.