- Materials necessaris
- Instal·lació de Node.js a Raspberry Pi
- Parpellejant un LED mitjançant Node.js
- Node.js LED Blink script i explicació
- Diagrama de circuits per parpellejar un LED mitjançant Node.js
- Raspberry Pi
En anteriors tutorials de Raspberry Pi, hem utilitzat diversos llenguatges de programació i programes diferents per controlar Raspberry Pi, inclosos Python, C incrustat, Flask, etc..js) per controlar els GPIO de Raspberry Pi localment i globalment configurant-lo com a servidor web. Inicialment, Node.js es va desenvolupar per a Google Chrome, però posteriorment va ser obert per Google.
En aquest tutorial, controlarem un LED connectat a Raspberry Pi mitjançant dos mètodes
- Primer, simplement escrivim un codi JavaScript mitjançant Node.js per parpellejar el LED
- En el segon mètode, crearem una pàgina HTML amb dos botons per encendre i apagar el LED. Aquesta pàgina web HTML s’allotjarà a raspberry pi i es podrà obrir a qualsevol navegador web. Per tant, aquí Raspberry Pi actuarà com a servidor web
Materials necessaris
- Taula Raspberry pi amb Raspbian instal·lat
- LED
En aquest tutorial estic fent servir un monitor extern amb cable HDMI per connectar-me amb Raspberry Pi. Si no teniu monitor, podeu utilitzar el client SSH (Putty) o el servidor VNC per connectar-vos a Raspberry pi mitjançant un ordinador portàtil o un ordinador. Si trobeu alguna dificultat, seguiu la nostra Guia de fixació amb Raspberry Pi.
Instal·lació de Node.js a Raspberry Pi
Instal·larem Node.js al nostre tauler mitjançant les ordres següents.
Pas 1: primer comproveu la versió arm de la vostra placa raspberry pi mitjançant aquesta ordre.
uname -m
En el meu cas, la versió és 7.
Pas 2: - Descarregueu l'instal·lador copiant aquest enllaç al terminal. No oblideu canviar la versió a l’enllaç que es mostra a continuació.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Pas 3: - Extraieu els fitxers mitjançant l'ordre següent
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Pas 4: - Finalment, executeu aquestes ordres per afegir també els fitxers importants als directoris locals.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js ja està instal·lat al vostre Raspberry Pi. Comproveu la versió del node per confirmar-la mitjançant aquesta ordre.
node –versió
Abans d'anar a crear un servidor Node.js, primer veurem com escriure un script per parpellejar un LED mitjançant node.js (paquet onpm onoff).
Parpellejant un LED mitjançant Node.js
Per controlar el GPIO al Raspberry Pi mitjançant Node.js, utilitzarem el mòdul onoff.
Utilitzarem el gestor de paquets npm per instal·lar el mòdul onoff mitjançant l'ordre següent
npm install onoff
Ara escriurem un guió per parpellejar de led. Obriu l’ editor nano i doneu el nom al fitxer mitjançant l’ordre
nano blink_led.js
Si sou principiant a Node.js i els seus paquets, podeu obtenir la documentació de npm per a una millor comprensió de l'script.
Node.js LED Blink script i explicació
En primer lloc, declareu les variables de led, delay i GPIO. Estic fent servir Raspberry Pi GPIO 4 per connectar el LED.
var Gpio = require ('onoff'). Gpio; var LED = Gpio nou (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Ara farem una funció per iniciar el parpelleig.
funció blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // estableix la sortida a 1 és a dir, encén el led} else {LED.writeSync (0); // estableix la sortida a 0 és a dir, apaga el led }}
De la mateixa manera, feu una funció per aturar el parpelleig
funció endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // No exporteu GPIO a recursos gratuïts} setTimeout (endBlink, 10000);
El codi Node.js complet per al LED parpellejant es dóna al final d’aquest tutorial. Per tant, copieu i enganxeu el codi al fitxer led_blink.js , que hem creat prèviament mitjançant l' ordre nano , deseu el fitxer amb Ctrl + x i, a continuació, premeu Y i premeu Intro.
Per executar l'script, obriu el terminal i escriviu l'ordre següent:
node blink_led.js

Veureu que el LED parpellejarà durant 10 segons i després deixarà de parpellejar. Comproveu el funcionament complet al vídeo que apareix al final d’aquest tutorial.
Diagrama de circuits per parpellejar un LED mitjançant Node.js


Raspberry Pi
Ara, arribeu a la part interessant, aquí farem el nostre propi servidor web des del qual podrem controlar GPIO de Raspberry pi mitjançant una pàgina web.
Per a això, primer hem de fer una pàgina HTML i escriure un script per realitzar tasques de back-end, és a dir, per controlar el RPi GPIO.
Pas 1: - Feu un directori per emmagatzemar tots els fitxers en un sol lloc.
mkdir nodejs_server
Pas 2: - A la carpeta nodejs_server, feu una carpeta més per desar el fitxer HTML.
cd nodejs_server vistes mkdir
Pas 3: - Si voleu afegir imatges a la vostra pàgina HTML, hauríeu de fer pública una altra carpeta anomenada dins del directori principal, és a dir, a la carpeta nodejs_server . A la carpeta pública, feu una carpeta d'imatges i emmagatzemeu totes les imatges d'aquesta carpeta.
Pas 4: - Ara farem una pàgina HTML. Per a això, aneu al directori de visualitzacions i obriu un editor de text nano amb el nom de fitxer index.ejs
El guió no té res de fantàstic. És només un fitxer HTML per activar i desactivar el botó.
Copieu i enganxeu el codi HTML següent a l' editor de text nano i deseu-lo.
Benvingut a Nodejs Server
Estat del led: <% = status%>Pas 5: - Ara hem d’escriure codi JavaScript. Estem utilitzant un framework express de node per respondre a les sol·licituds http realitzades per l'usuari.
Podeu seguir l'enllaç per obtenir més informació sobre Node Express.
Terminal i obert obert nano editor de text amb index.js nom de fitxer en nodejs_server carpeta, a continuació, copiar i enganxar el codi següent script java i aquesta imatge.
var express = require ('express'); var app = express (); var path = require ('ruta'); var gpio = require ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('motor de visualització', 'ejs'); app.use (express.static (path.join (__ dirname, 'públic')))); console.log (path.join (__ dirname, 'públic')); 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, 'públic')); retorna res.render ('index',{status: "Led està activat"}); }); }); 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 ('El servidor s'ha iniciat al port: 3000!') })
Pas 6: - Dins del directori nodejs_server , hem d'executar l'ordre següent per instal·lar biblioteques de node.js
Instal·lació de npm
Pas 7: - Ara, el vostre servidor està a punt per funcionar. Per iniciar el servidor local, executeu l'ordre següent al directori nodejs_server
node index.js
veureu un missatge al terminal que indica que el vostre servidor s’inicia al port definit.

Pas 8: - Ara obriu el navegador i obriu l'URL de Raspberry Pi amb el número de port, és a dir, raspberrypi: 3000
Assegureu-vos que el raspberry pi i l'ordinador portàtil on obriu el navegador estiguin connectats a la mateixa xarxa.
Veureu la pàgina següent al navegador.

Ara, premeu el botó LED On per encendre el LED i el botó LED Off per apagar el LED.
