- Materiali richiesti
- Installazione di Node.js su Raspberry Pi
- Lampeggiante un LED utilizzando Node.js
- Node.js LED Blink script e spiegazione
- Schema del circuito per lampeggiare un LED utilizzando Node.js
- Raspberry Pi
Nei precedenti tutorial Raspberry Pi, abbiamo utilizzato molti diversi linguaggi di programmazione e software per controllare Raspberry Pi inclusi Python, C incorporato, Flask ecc. Per espandere l'orizzonte della potente scheda Raspberry Pi, oggi utilizzeremo un ambiente basato su JavaScript molto popolare (Node.js) per controllare i GPIO Raspberry Pi localmente e globalmente configurandolo come server web. Inizialmente, Node.js è stato sviluppato per Google Chrome, ma in seguito è stato reso open source da Google.
In questo tutorial, controlleremo un LED, collegato a Raspberry Pi, utilizzando due metodi
- Per prima cosa scriveremo semplicemente un codice JavaScript utilizzando Node.js per far lampeggiare il LED
- Nel secondo metodo, creeremo una pagina HTML con due pulsanti per accendere e spegnere il LED. Questa pagina Web HTML sarà ospitata su Raspberry Pi e può essere aperta su qualsiasi browser Web. Quindi qui Raspberry Pi fungerà da server web
Materiali richiesti
- Scheda Raspberry Pi con Raspbian installato al suo interno
- GUIDATO
In questo tutorial utilizzo un monitor esterno utilizzando il cavo HDMI per connettermi a Raspberry Pi. Se non disponi di un monitor, puoi utilizzare il client SSH (Putty) o il server VNC per connetterti a Raspberry pi utilizzando laptop o computer. Se trovi qualche difficoltà, segui la nostra Guida introduttiva a Raspberry Pi.
Installazione di Node.js su Raspberry Pi
Installeremo Node.js nella nostra scheda utilizzando i seguenti comandi.
Passaggio 1: - Prima controlla la versione arm della tua scheda Raspberry Pi usando questo comando.
uname -m
Nel mio caso, la versione è 7.
Passaggio 2: - Scarica il programma di installazione copiando questo collegamento nel terminale. Non dimenticare di modificare la versione nel link indicato di seguito.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Passaggio 3: - Estrai i file utilizzando il comando seguente
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Passaggio 4: - Infine, eseguire questi comandi per aggiungere anche i file importanti alle directory locali.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js è ora installato nel tuo Raspberry Pi. Verificare la versione del nodo per la conferma utilizzando questo comando.
node –version
Prima di creare un server Node.js, vedremo innanzitutto come scrivere uno script per far lampeggiare un LED utilizzando node.js (pacchetto npm onoff).
Lampeggiante un LED utilizzando Node.js
Per controllare il GPIO sul Raspberry Pi utilizzando Node.js, useremo il modulo onoff.
Useremo NPM gestore di pacchetti da installare OnOff modulo usando il comando di seguito
npm installa onoff
Ora, scriveremo uno script per il lampeggiamento del led. Apri nano editor e dai il nome al file usando il comando
nano blink_led.js
Se sei un principiante in Node.js e nei suoi pacchetti, puoi consultare la documentazione di npm per una migliore comprensione dello script.
Node.js LED Blink script e spiegazione
Per prima cosa, dichiara le variabili per led, delay e GPIO. Sto usando Raspberry Pi GPIO 4 per collegare il LED.
var Gpio = require ('onoff'). Gpio; var LED = nuovo Gpio (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Ora creeremo una funzione per avviare il lampeggio.
funzione blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // imposta l'output a 1, ovvero accende il led} else {LED.writeSync (0); // imposta l'output a 0, ovvero spegne il led }}
Allo stesso modo, crea una funzione per interrompere il lampeggiamento
funzione endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Annulla esportazione GPIO per liberare risorse} setTimeout (endBlink, 10000);
Alla fine di questo tutorial viene fornito il codice Node.js completo per il LED lampeggiante. Quindi copia e incolla il codice nel file led_blink.js , che abbiamo creato in precedenza utilizzando il comando nano , salva il file usando Ctrl + x, quindi premi Y e premi invio.
Per eseguire lo script, apri il terminale e digita il comando seguente:
node blink_led.js
Vedrai che il LED lampeggerà per 10 secondi, dopodiché smetterà di lampeggiare. Controlla il funzionamento completo nel video fornito alla fine di questo tutorial.
Schema del circuito per lampeggiare un LED utilizzando Node.js
Raspberry Pi
Ora, vieni alla parte interessante, qui creeremo il nostro server web da cui possiamo controllare GPIO di Raspberry pi usando una pagina web.
Per questo, prima dobbiamo creare una pagina HTML e scrivere uno script per eseguire attività di back-end, ovvero per controllare l'RPi GPIO.
Passaggio 1: - Crea una directory per archiviare tutti i file in un unico posto.
mkdir nodejs_server
Passaggio 2: - All'interno della cartella nodejs_server crea un'altra cartella per salvare il file HTML.
cd nodejs_server mkdir viste
Passaggio 3: - Se desideri aggiungere immagini alla tua pagina html, dovresti creare un'altra cartella denominata public all'interno della directory principale, ovvero nella cartella nodejs_server . Nella cartella pubblica, crea cartella immagini e archivia tutte le immagini in questa cartella.
Passaggio 4: - Ora creeremo una pagina HTML. Per questo, vai alla directory delle visualizzazioni e apri l' editor di testo nano con nome file index.ejs
Non c'è niente di speciale nella sceneggiatura. È solo un file HTML per creare pulsanti di accensione e spegnimento.
Copia incolla il codice HTML sottostante nell'editor di testo nano e salvalo.
Benvenuto nel server Nodejs
Stato led: <% = status%>Passaggio 5: - Ora dobbiamo scrivere il codice JavaScript. Stiamo utilizzando il framework node express per rispondere alle richieste http eseguite dall'utente.
Puoi seguire il link per saperne di più su Node Express.
Apri il terminale e apri l' editor di testo nano con il nome del file index.js nella cartella nodejs_server , quindi copia e incolla il codice java script sottostante e questo file.
var express = require ('express'); var app = express (); var path = require ('percorso'); var gpio = require ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('motore di visualizzazione', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', function (req, res) { res.render ('index', {status: "Press Button"}); }); app.post ('/ led / on', function (req, res) { gpio.write (7, true, function (err) { if (err) throw err; console.log ('Written True to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index',{status: "Led is On"}); }); }); app.post ('/ led / off', function (req, res) { gpio.write (7, false, function (err) { if (err) throw err; console.log ('Written False to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index', {status: "Led is Off"}); }); }); app.listen (3000, function () { console.log ('Server Started on Port: 3000!') })
Passaggio 6: - All'interno della directory nodejs_server , dobbiamo eseguire il seguente comando per installare le librerie di node.js
npm install
Passaggio 7: - Ora il tuo server è pronto per funzionare. Per avviare il server locale, eseguire il seguente comando all'interno della directory nodejs_server
node index.js
vedrai un messaggio nel terminale che il tuo server è avviato alla porta definita.
Passaggio 8: - Ora apri il browser e apri l'URL di Raspberry Pi con il numero di porta, ad esempio raspberrypi: 3000
Assicurati che il tuo Raspberry Pi e il laptop in cui stai aprendo il browser siano collegati alla stessa rete.
Vedrai la seguente pagina nel browser.
Ora, premere il pulsante LED On per accendere il LED e il pulsante LED Off per spegnere il LED.