- Cos'è Node.js?
- Componenti richiesti
- Schema elettrico
- Configurazione di Node.js Framework
- Installazione della libreria Johnny-Five
- LED lampeggiante con Arduino e Node.js
- Controllo della luminosità dei LED utilizzando Arduino e Node.js Webserver
Abbiamo visto numerosi esempi di lampeggiamento di un LED utilizzando diversi microcontrollori e diversi linguaggi di programmazione. Oggi utilizzeremo un framework JavaScript molto popolare Node.js per controllare il LED collegato ad Arduino Uno. Useremo anche Node.js per controllare la luminosità del LED da una pagina web usando Arduino. Con alcune modifiche e utilizzando ESP8266, questo può essere convertito in un progetto IoT in cui il LED può essere controllato da qualsiasi luogo.
Cos'è Node.js?
Le Node.js è un framework basato su JavaScript ampiamente utilizzato costruita su JavaScript V8 Engine di Google Chrome e applicata per lo sviluppo di I / O intensive applicazioni web quali le applicazioni una sola pagina, video siti di streaming, ecc
Abbiamo fatto un tutorial informativo in precedenza su Come iniziare con Node.js e Raspberry Pi per controllare un LED. In questo tutorial, seguiremo un approccio simile, ovvero il LED verrà controllato utilizzando due metodi come:
- Il LED lampeggia semplicemente scrivendo un codice JavaScript nel framework Node.js.
- Controllo della luminosità dei LED utilizzando il framework Node.js e un'interfaccia web da qualsiasi browser: Arduino UNO fungerà da server web e la pagina web HTML sarà ospitata su un PC o laptop.
Componenti richiesti
Hardware:
- Scheda Arduino UNO
- Guidato
- Resistore
Software:
- IDE Arduino: per caricare lo schizzo sulla scheda UNO di Arduino.
- Firmata: è un protocollo per comunicare con diversi microcontrollori dal software su un computer, smartphone, ecc. Il firmware Firmata può essere caricato su qualsiasi scheda microcontrollore (come Arduino, Teensy) ed è in grado di parlare con qualsiasi laptop, PC o smartphone. Firmata Library viene fornita con l'IDE di Arduino, quindi non è necessario scaricarla da nessuna parte. Abbiamo fatto un tutorial sul controllo di Arduino con Raspberry Pi usando pyFirmata.
- Johnny-Five: Johnny-Five è la piattaforma IoT e robotica basata su JavaScript utilizzata per scrivere codici in JavaScript e utilizzata per creare un ponte tra le schede Arduino e il computer. Johnny-Five è stato testato con una varietà di schede compatibili con Arduino come Arduino UNO, NANO, Promini, ecc. In questo tutorial, la libreria Johnny-Five deve essere scaricata per utilizzare tutte le sue funzionalità. La guida all'installazione verrà spiegata più avanti in questo tutorial.
Schema elettrico
Lo schema del circuito è molto semplice, dobbiamo solo collegare un LED con Arduino.Configurazione di Node.js Framework
Prima di iniziare la codifica e lo sviluppo, è necessario scaricare e configurare Node.js. Per scaricare l'ambiente Node.js basta seguire semplici passaggi.
Passaggio 1: - Scarica il file.exe di Node.js dal suo sito web ufficiale.
Passaggio 2: - Esegui il file.exe e segui le istruzioni fornite nel programma di installazione.
Passaggio 3: - Riavvia il computer come consigliato nel documento Node.js e anche per utilizzare tutte le funzionalità di Node.js
Passaggio 4: - Per verificare se il nodo è stato installato, aprire il prompt dei comandi e digitare Node –v
Passaggio 5: - La versione di Node.js verrà visualizzata indicando che Node.js è installato.
Installazione della libreria Johnny-Five
Ora, dopo aver scaricato Node.js, crea una nuova cartella denominata "LED_Control" in Documents per mantenere tutti i file di progetto in un unico posto. Ogni file di progetto verrà conservato nella cartella " LED_Control ". Ora scarica la libreria Johnny-Five nella cartella " LED_Control ". Per scaricare, segui i passaggi seguenti:
Passaggio 1: - Apri il prompt dei comandi
Passaggio 2: - Vai alla cartella " LED_Control " seguendo il comando " cd ".
Passaggio 3: - Esegui il comando " npm install johnny-five"
Passaggio 4: - Questo installerà tutte le dipendenze di Johnny-Five.
Passaggio 5: - Installa anche le librerie necessarie utilizzate in questo tutorial per controllare la luminosità del LED. Ci sono tre librerie usate qui:
- express: wrapper del server
- socket.i o: libreria WebSocket
- serialpor t: wrapper della porta seriale
Passaggio 5: - Esegui i seguenti comandi uno per uno per installare queste tre librerie.
npm install express npm install socket.io npm install serialport
Come detto in precedenza il progetto si divide in due parti:
- In primo luogo, LED lampeggiante di Arduino con Node.js
- In secondo luogo, il controllo della luminosità dei LED dall'interfaccia web utilizzando Arduino e Node.js.
LED lampeggiante con Arduino e Node.js
Per far lampeggiare il LED, Arduino deve essere configurato per comunicare con il computer.
Configurazione di Arduino UNO per LED lampeggiante:
Per fare in modo che Arduino UNO accetti il comando dal laptop al LED di controllo, il firmware Firmata deve essere caricato su Arduino UNO. Per caricare il firmware del firmware, segui questi semplici passaggi:
- Collega Arduino UNO utilizzando il cavo USB
- Apri Arduino IDE e seleziona la scheda Arduino UNO (se usi un'altra scheda, seleziona la rispettiva) da Strumenti.
- Seleziona la rispettiva porta COM di Arduino UNO connesso
- Ora trova lo schizzo Firmata usando Menu -> File -> Esempi -> Firmata -> StandardFirmata.
- Carica lo schizzo "StandardFirmata" andando su File -> Carica.
Questo caricherà il Firmata Sketch su Arduino UNO e ora Arduino UNO è pronto per accettare qualsiasi comando dal computer.
Scrittura del programma Node.js per LED lampeggiante:
Per scrivere un programma Node.js aprire un qualsiasi editor di testo (Blocco note, Blocco note ++, ecc.) E incollare il codice "blink_led" allegato alla fine di questo tutorial e salvarlo con un'estensione di ".js", ovvero (blink_led.js) nella cartella "LED_Control" creata in precedenza. Discuteremo i passaggi importanti nel file di codice blink_led.js.
Definire inizialmente il Pin del microcontrollore a cui è collegato il led. In questo esempio, il LED è collegato al Pin 5 di Arduino UNO. La "var" in Node.js rappresenta la dichiarazione della variabile.
var led_pin = 5;
Il modulo johnny-five deve essere incluso e la scheda deve essere selezionata. I moduli in Node.js sono librerie. La funzione ' require () ' accederà al modulo.
var johnny_five = require ("johnny-five"); var arduino_board = nuovo johnny_five.Board ();
L' istruzione console.log è simile all'istruzione print e stamperà il messaggio. E il pin del LED è impostato sulla modalità di uscita e il ritardo definito viene assegnato al LED lampeggiante.
console.log ("Il LED ha iniziato a lampeggiare!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Ora per eseguire il programma segui i passaggi seguenti:
- Apri il prompt dei comandi
- Individua la cartella "LED_Control" seguendo il comando "cd"
- Esegui il comando "Node led_blink.js". Se eseguito con successo, mostrerà "Il LED ha iniziato a lampeggiare!" come mostrato nell'immagine sotto .
- Il led inizierà a lampeggiare nel Pin 5 di Arduino UNO.
- E questo termina la prima parte del nostro tutorial, ovvero LED lampeggiante con Node.js
Controllo della luminosità dei LED utilizzando Arduino e Node.js Webserver
Simile al lampeggiare di un LED con Node.js, questa sezione avrà anche alcune parti, ad esempio Configurazione di Arduino UNO, Configurazione dell'interfaccia Web e Scrittura di un programma Node.js.
Configurazione di Arduino UNO per controllare la luminosità del LED:
Per configurare Arduino UNO, è sufficiente caricare lo sketch " arduino_control.ino " nella scheda Arduino UNO e il gioco è fatto. Questo imposterà la scheda Arduino. Puoi scaricare il codice completo con i file HTML da qui. Il codice " arduino_control.ino" prevede i seguenti passaggi importanti.
Inizialmente il baud rate è impostato a 9600.
Serial.begin (9600);
La porta seriale cerca sempre il byte in arrivo e il byte viene scritto sul Pin 5 che è un Pin PWM.
while (! Serial.available ()); analogWrite (5, Serial.read ());
Questo è tutto. Questo imposterà Arduino in modo che agganci il byte al pin PWM e cambierà la luminosità del LED.
Configurazione dell'interfaccia Web:
Per controllare la luminosità del led utilizzando l'interfaccia web, viene scritto un piccolo pezzo di codice HTML per avere un'interfaccia nel browser. Per avere l'interfaccia segui i semplici passaggi seguenti:
- Creare una nuova cartella denominata "public" all'interno della cartella "LED_Control" creata in precedenza.
- Ora scarica i file "index.html" e "style.css" e sposta entrambi i file all'interno della cartella "public" creata nel primo passaggio precedente. I file possono essere scaricati da qui.
Questo creerà uno slider sulla pagina web per controllare la luminosità del LED usando Node.js e Arduino.
Il controllo di un LED dalla pagina web è interessante da imparare e può essere fatto con altri microcontrollori creando un server web e ospitando la pagina web sul server web. Controlla qui tutti i progetti relativi al server web.
Scrittura del programma Node.js per controllare la luminosità del LED:
Il prossimo passo sarebbe scrivere lo schizzo "luminosità_control.js" utilizzando Node.js ed eseguire il codice. L'esecuzione del codice sarà un po 'simile al lampeggiare di un LED con Node.js.
Per scrivere un programma Node.js, apri un qualsiasi editor di testo (Blocco note, Blocco note ++, ecc.) E incolla il codice "luminosità_controllo" allegato alla fine di questo tutorial e salvalo con un'estensione di ".js", ovvero (luminosità_controllo.js) nella cartella "LED_Control" creata in precedenza. Puoi anche scaricare il codice da qui.
Simile al programma Blink Led Node.js, questa sezione utilizzerà anche i moduli (libreria). Includere il modulo "express", "http" e "porta seriale".
var express = require ('express'); app = express (); server = require ('http'). createServer (app); io = require ('socket.io'). listen (server); var SerialPort = require ("serialport") //. SerialPort
Ora imposta la porta COM e il baudrate. Si noti che in Windows sarà sempre COM con estensione del numero (COM6, COM4, COM24 ecc.), Quindi impostare di seguito come richiesto dopo "/". Imposta anche buadrate.
var serialPort = new SerialPort ("/ COM4", {baudRate: 9600});
Inizia ad ascoltare il server sulla porta 8080.
server.listen (8080);
Impostare inizialmente la luminosità su 0. Quindi aggancia i dati di luminosità a IO con il modulo socket, che è un modulo websocket. I dati verranno ricevuti dall'interfaccia Web utilizzando il protocollo socket.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { luminosità = data.value; var buf = new Buffer (1); buf.writeUInt8 (luminosità, 0); serialPort.write (buf);
Ora emette il valore di luminosità del LED ottenuto dallo zoccolo al pin del LED.
io.sockets.emit ('led', {valore: luminosità}); }); socket.emit ('led', {valore: luminosità}); });
Ora solo per eseguire il debug, aggiungi un'istruzione print alla fine. Console.log è un'istruzione print in Node.js.
console.log ("Server Web avviato vai a 'http: // localhost: 8080' nel tuo browser.");
Ora per eseguire il programma seguendo i passaggi seguenti:
- Apri il prompt dei comandi
- Individua la cartella "LED_Control" seguendo il comando "cd"
- Esegui il comando "Node luminosità_control.js". Se eseguito con successo, mostrerà "Web Server Started go to" http: // localhost: 8080 "nel tuo browser." appena sotto il comando .
- Ora vai al tuo browser e digita "localhost: 8080" nell'URL.
- Per modificare la luminosità è sufficiente spostare il dispositivo di scorrimento da 0 a 255 valori.
Il codice completo e il video di lavoro di entrambe le sezioni sono allegati di seguito. Inoltre, se hai dubbi o suggerimenti, puoi contattarci tramite forum o commentare qui sotto. Tutti i file di codice possono anche essere scaricati da qui.