- Ce este Node.js?
- Componente necesare
- Diagrama circuitului
- Configurarea cadrului Node.js
- Instalarea bibliotecii Johnny-Five
- LED intermitent cu Arduino și Node.js
- Controlul luminozității LED-urilor folosind Arduino și Node.js Webserver
Am văzut numeroase exemple de clipire a unui LED folosind diferite microcontrolere și diferite limbaje de programare. Astăzi, vom folosi un framework JavaScript foarte popular Node.js pentru a controla LED-ul conectat la Arduino Uno. De asemenea, vom folosi Node.js pentru a controla luminozitatea LED-urilor de pe o pagină web folosind Arduino. Prin câteva modificări și folosind ESP8266, acesta poate fi transformat într-un proiect IoT în care LED-ul poate fi controlat de oriunde.
Ce este Node.js?
The Node.js este un cadru bazat pe JavaScript utilizat pe scară largă construit pe JavaScript V8 Motorul Google Chrome și aplicate în curs de dezvoltare I / O intensive aplicații web, cum ar fi aplicațiile cu o singură pagină, site - uri de streaming video, etc.
Am făcut anterior un tutorial informativ despre Noțiuni introductive despre Node.js și Raspberry Pi pentru a controla un LED. În acest tutorial, vom urma o abordare similară, adică LED-ul va fi controlat folosind două metode, cum ar fi:
- LED-ul simplu clipește scriind un cod JavaScript în cadrul Node.js.
- Controlul luminozității cu LED-uri Utilizând cadrul Node.js și o interfață web de la orice browser: Arduino UNO va acționa ca un server web și pagina web HTML va fi găzduită pe un PC sau laptop.
Componente necesare
Hardware:
- Consiliul UN Arduino
- LED
- Rezistor
Software:
- Arduino IDE: Pentru încărcarea schiței pe Arduino UNO Board.
- Firmata: Este un protocol pentru comunicarea cu diferite microcontrolere de la software pe computer, smartphone etc. Firmata Firmata poate fi încărcată pe orice placă de microcontroler (cum ar fi Arduino, Teensy) și este capabilă să vorbească cu orice laptop, computer sau smartphone. Biblioteca Firmata vine cu Arduino IDE, deci nu este nevoie să descărcați de oriunde. Am făcut un tutorial despre controlul Arduino cu Raspberry Pi folosind pyFirmata.
- Johnny-Five: Johnny-Five este platforma IoT bazată pe robotică și JavaScript folosită pentru a scrie coduri în JavaScript și este utilizată pentru a face o punte între plăcile Arduino și computer. Johnny-Five a fost testat cu o varietate de plăci compatibile Arduino, cum ar fi Arduino UNO, NANO, Promini etc. În acest tutorial, biblioteca Johnny-Five trebuie descărcată pentru a putea folosi toate caracteristicile sale. Ghidul de instalare va fi explicat mai târziu în acest tutorial.
Diagrama circuitului
Diagrama circuitului este foarte simplă, trebuie doar să conectăm un LED cu Arduino.Configurarea cadrului Node.js
Înainte de a începe codarea și dezvoltarea, Node.js trebuie descărcat și configurat. Pentru descărcarea mediului Node.js, urmați pași simpli.
Pasul 1: - Descărcați fișierul.exe al Node.js de pe site-ul său oficial.
Pasul 2: - Rulați.exe și urmați instrucțiunile date în programul de instalare.
Pasul 3: - Reporniți computerul, așa cum este recomandat în documentul Node.js și, de asemenea, să utilizați toate caracteristicile Node.js
Pasul 4: - Pentru a verifica dacă nodul a fost instalat, deschideți Command Prompt și tastați Node –v
Pasul 5: - Versiunea Node.js va fi afișată indicând faptul că Node.js este instalat.
Instalarea bibliotecii Johnny-Five
Acum, după descărcarea Node.js, creați un nou folder numit „LED_Control” în Documente pentru a păstra toate fișierele de proiect într-un singur loc. Fiecare fișier de proiect va fi păstrat în folderul „ LED_Control ”. Descărcați acum biblioteca Johnny-Five din folderul „ LED_Control ”. Pentru descărcare, urmați pașii de mai jos:
Pasul 1: - Deschideți linia de comandă
Pasul 2: - Accesați folderul „ LED_Control ” urmând comanda „ cd ”.
Pasul 3: - Rulați comanda „ npm install johnny-five”
Pasul 4: - Aceasta va instala toate dependențele Johnny-Five.
Pasul 5: - Instalați, de asemenea, bibliotecile necesare utilizate în acest tutorial pentru controlul luminozității LED-urilor. Există trei biblioteci utilizate aici:
- express: împachetare server
- socket.i o: biblioteca WebSockets
- serialpor t: Serial port wrapper
Pasul 5: - Rulați comenzile de mai jos una câte una pentru a instala aceste trei biblioteci.
npm install express npm install socket.io npm install serialport
După cum am spus mai devreme, proiectul este împărțit în două părți:
- În primul rând, LED-ul Arduino intermitent cu Node.js
- În al doilea rând, controlul luminozității LED-urilor din interfața web utilizând Arduino și Node.js.
LED intermitent cu Arduino și Node.js
Pentru a clipi LED-ul, Arduino trebuie configurat pentru a comunica cu computerul.
Configurarea Arduino UNO pentru LED-ul intermitent:
Pentru a face ca Arduino UNO să accepte comanda de la Laptop la Control LED, firmware-ul Firmata trebuie încărcat în Arduino UNO. Pentru a încărca firmware-ul Firmata, urmați acești pași simpli:
- Conectați Arduino UNO utilizând un cablu USB
- Deschideți Arduino IDE și selectați placa Arduino UNO (Dacă utilizați altă placă, selectați-o pe una respectivă) din Instrumente.
- Selectați portul COM respectiv al Arduino UNO conectat
- Acum găsiți schița Firmata folosind Meniu -> Fișier -> Exemple -> Firmata -> StandardFirmata.
- Încărcați schița „StandardFirmata” accesând Fișier -> Încărcare.
Aceasta va încărca Firmata Sketch pe Arduino UNO și acum Arduino UNO este gata să accepte orice comandă de pe computer.
Scrierea programului Node.js pentru LED-ul intermitent:
Pentru a scrie un program Node.js, deschideți orice editor de text (Notepad, Notepad ++ etc.) și lipiți codul „blink_led” atașat la sfârșitul acestui tutorial și salvați-l cu o extensie „.js”, adică (blink_led.js) în folderul „LED_Control” creat anterior. Vom discuta pașii importanți în fișierul de cod blink_led.js.
Definiți inițial Pinul microcontrolerului unde este conectat ledul. În acest exemplu, LED-ul este conectat la Pinul 5 al Arduino UNO. „Var” în Node.js reprezintă declarația variabilă.
var led_pin = 5;
Cele -johnny cinci module trebuie să fie inclusă și nevoile de bord care urmează să fie selectate. Modulele din Node.js sunt biblioteci. Funcția „ require () ” va accesa modulul.
var johnny_five = require ("johnny-five"); var arduino_board = new johnny_five.Board ();
Declarația console.log este similară cu declarația print și va imprima mesajul. Și pinul LED este setat în modul de ieșire, iar întârzierea definită este dată pentru ledul intermitent.
console.log („LED-ul a început să clipească!”); var led = new johnny_five.Led (led_pin); led.blink (100);
Acum, pentru a rula programul, urmați pașii de mai jos:
- Deschideți linia de comandă
- Găsiți folderul „LED_Control” urmând comanda „cd”
- Rulați comanda „Node led_blink.js”. Dacă este executat cu succes, va apărea „LED-ul a început să clipească!” așa cum se arată în imaginea de mai jos .
- Ledul va începe să clipească în Arduino UNO Pin 5.
- Și aceasta termină prima parte a tutorialului nostru, adică LED-uri intermitente cu Node.js
Controlul luminozității LED-urilor folosind Arduino și Node.js Webserver
Similar cu clipirea unui LED cu Node.js, această secțiune va avea, de asemenea, câteva părți, de exemplu, Configurarea Arduino UNO, Configurarea interfeței web și Scrierea unui program Node.js.
Configurarea Arduino UNO pentru controlul luminozității LED-urilor:
Pentru a configura Arduino UNO, pur și simplu încărcați schița „ arduino_control.ino ” pe placa Arduino UNO și gata . Aceasta va configura placa Arduino. Puteți descărca codul complet cu fișiere HTML de aici. Codul „ arduino_control.ino ” implică următorii pași importanți.
Inițial viteza de transmisie este setată la 9600.
Serial.begin (9600);
Portul serial caută întotdeauna octetul de intrare, iar octetul este scris în Pinul 5, care este un Pin PWM.
while (! Serial.available ()); analogWrite (5, Serial.read ());
Asta e. Acest lucru va seta Arduino să blocheze octetul la pinul PWM și va schimba luminozitatea LED-ului.
Configurarea interfeței web:
Pentru a controla luminozitatea ledului folosind interfața web, o mică bucată de cod HTML este scrisă pentru a avea o interfață în browser. Pentru a avea interfață, urmați pașii simpli de mai jos:
- Creați un folder nou denumit „public” în dosarul „LED_Control” creat anterior.
- Acum descărcați fișierele „index.html” și „style.css” și mutați ambele fișiere în folderul „public” creat la primul pas de mai sus. Fișierele pot fi descărcate de aici.
Aceasta va crea un glisor pe pagina web pentru a controla luminozitatea LED-urilor folosind Node.js și Arduino.
Controlul unui LED de pe pagina web este interesant de învățat și se poate face cu alt microcontroler prin crearea unui server web și găzduirea paginii web pe serverul web. Verificați aici toate proiectele legate de serverul web.
Scrierea programului Node.js pentru a controla Luminozitatea LED-ului:
Următorul pas ar fi scrierea schiței „brightness_control.js” folosind Node.js și executarea codului. Executarea codului va fi puțin similară cu LED- ul Blinking an cu Node.js.
Pentru a scrie un program Node.js, deschideți orice editor de text (Notepad, Notepad ++ etc.) și lipiți codul „brightness_control” atașat la sfârșitul acestui tutorial și salvați-l cu o extensie „.js”, adică (brightness_control.js) în folderul „LED_Control” creat anterior. De asemenea, puteți descărca codul de aici.
Similar programului Blink Led Node.js, această secțiune va utiliza și module (bibliotecă). Includeți modulul „expres”, „http” și „portul serial”.
var express = require ('express'); app = express (); server = require ('http'). createServer (app); io = require ('socket.io'). asculta (server); var SerialPort = require ("serialport") //. SerialPort
Acum setați portul COM și rata de transmisie. Rețineți că în Windows, va fi întotdeauna COM cu extensia numărului (COM6, COM4, COM24 etc.), așa că setați mai jos după cum este necesar după „/”. De asemenea, setați buadrate.
var serialPort = new SerialPort ("/ COM4", {baudRate: 9600});
Începeți să ascultați serverul la portul 8080.
server.listen (8080);
Setați luminozitatea la 0 inițial. Apoi blocați datele de luminozitate la IO cu modulul sockets, care este un modul web. Datele vor fi recepționate prin interfața web utilizând protocolul socket.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { luminositate = data.value; var buf = new Buffer (1); buf.writeUInt8 (luminozitate, 0); serialPort.write (buf);
Acum emiteți valoarea luminozității LED-urilor obținute de la priză la pinul LED.
io.sockets.emit ('led', {valoare: luminozitate}); }); socket.emit ('led', {valoare: luminozitate}); });
Acum, doar pentru a depana, adăugați o declarație de imprimare la sfârșit. Console.log este o declarație tipărită în Node.js.
console.log („Serverul web a început, accesați„ http: // localhost: 8080 ”din browserul dvs.”);
Acum, pentru a rula programul urmând pașii de mai jos:
- Deschideți linia de comandă
- Găsiți folderul „LED_Control” urmând comanda „cd”
- Rulați comanda „Node brightness_control.js”. Dacă este executat cu succes, va apărea „Web Server Started, accesați„ http: // localhost: 8080 „în browserul dvs.”. chiar sub comanda .
- Acum, accesați browserul și tastați „localhost: 8080” în adresa URL.
- Pentru a schimba luminozitatea, mutați glisorul de la 0-255 valori.
Codul complet și video de lucru de ambele secțiuni este atașată mai jos. De asemenea, dacă aveți orice îndoială sau sugestie, atunci ne puteți contacta prin forum sau comentariu de mai jos. Toate fișierele de cod pot fi descărcate și de aici.