- Materiale necesare
- Instalarea Node.js pe Raspberry Pi
- Clipește un LED folosind Node.js
- Node.js LED Blink script și explicație
- Schema circuitului pentru clipirea unui LED folosind Node.js
- Raspberry Pi
În tutorialele anterioare Raspberry Pi, am folosit mai multe limbaje de programare și software diferite pentru a controla Raspberry Pi, inclusiv Python, C încorporat, Flask etc. Pentru a extinde orizontul plăcii puternice Raspberry Pi, astăzi vom folosi un mediu JavaScript foarte popular (nod.js) pentru a controla Raspberry Pi GPIO-urile la nivel local și global, configurându-l ca server web. Inițial, Node.js a fost dezvoltat pentru Google Chrome, dar ulterior a fost deschis de la Google.
În acest tutorial, vom controla un LED, conectat la Raspberry Pi, folosind două metode
- Mai întâi vom scrie pur și simplu un cod JavaScript folosind Node.js pentru a clipi LED-ul
- În a doua metodă, vom crea o pagină HTML cu două butoane pentru a porni și opri LED-ul. Această pagină web HTML va fi găzduită pe raspberry pi și poate fi deschisă pe orice browser web. Așadar, aici Raspberry Pi va acționa ca server web
Materiale necesare
- Placă Raspberry pi cu Raspbian instalat în ea
- LED
În acest tutorial folosesc un monitor extern care utilizează cablu HDMI pentru a mă conecta cu Raspberry Pi. Dacă nu aveți monitor, puteți utiliza clientul SSH (Putty) sau serverul VNC pentru a vă conecta la Raspberry pi utilizând laptop sau computer. Dacă întâmpinați vreo dificultate, urmați Ghidul nostru pentru a ne uita cu Raspberry Pi.
Instalarea Node.js pe Raspberry Pi
Vom instala Node.js în placa noastră folosind următoarele comenzi.
Pasul 1: - Verificați mai întâi versiunea arm a plăcii dvs. raspberry pi utilizând această comandă.
uname -m
În cazul meu, versiunea este 7.
Pasul 2: - Descărcați programul de instalare copiind acest link în terminal. Nu uitați să modificați versiunea în linkul de mai jos.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Pasul 3: - Extrageți fișierele folosind comanda de mai jos
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Pasul 4: - În cele din urmă, executați aceste comenzi pentru a adăuga fișierele importante și în directoarele locale.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js este instalat acum în Raspberry Pi. Verificați versiunea nodului pentru confirmare folosind această comandă.
nod –versiune
Înainte de a crea un server Node.js, mai întâi vom vedea cum să scriem un script pentru a clipi un LED folosind node.js (pachetul npm onoff).
Clipește un LED folosind Node.js
Pentru a controla GPIO de pe Raspberry Pi folosind Node.js, vom folosi modulul onoff.
Vom folosi managerul de pachete npm pentru a instala modulul onoff folosind comanda de mai jos
npm instalare onoff
Acum, vom scrie un script pentru clipirea ledului. Deschideți editorul nano și dați numele fișierului folosind comanda
nano blink_led.js
Dacă sunteți un începător în Node.js și pachetele sale, puteți documenta npm pentru o mai bună înțelegere a scriptului.
Node.js LED Blink script și explicație
Mai întâi, declarați variabilele pentru led, delay și GPIO. Folosesc Raspberry Pi GPIO 4 pentru a conecta LED-ul.
var Gpio = require ('onoff'). Gpio; var LED = Gpio nou (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Acum, vom face o funcție pentru a începe clipirea.
funcția blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // setați ieșirea la 1 adică porniți ledul} else {LED.writeSync (0); // setați ieșirea la 0 adică opriți ledul }}
În mod similar, creați o funcție pentru a opri clipirea
funcția endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Dezexportează GPIO pentru resurse gratuite} setTimeout (endBlink, 10000);
Codul complet Node.js pentru LED-ul intermitent este dat la sfârșitul acestui tutorial. Deci, copiați și lipiți codul în fișierul led_blink.js , pe care l-am creat anterior folosind comanda nano , salvați fișierul folosind Ctrl + x, apoi apăsați Y și apăsați Enter.
Pentru a rula scriptul, deschideți terminalul și tastați comanda de mai jos:
nod blink_led.js
Veți vedea că LED-ul va clipi timp de 10 secunde și după aceea va înceta să clipească. Verificați funcționarea completă în videoclipul prezentat la sfârșitul acestui tutorial.
Schema circuitului pentru clipirea unui LED folosind Node.js
Raspberry Pi
Acum, vino la partea interesantă, aici vom crea propriul nostru server web de pe care putem controla GPIO de Raspberry pi folosind o pagină web.
Pentru aceasta, mai întâi trebuie să facem o pagină HTML și să scriem un script pentru a efectua o sarcină back-end, adică pentru a controla RPi GPIO.
Pasul 1: - Creați un director pentru a stoca toate fișierele la un loc.
mkdir nodejs_server
Pasul 2: - În folderul nodejs_server creați încă un folder pentru salvarea fișierului HTML.
cd nodejs_server mkdir views
Pasul 3: - Dacă doriți să adăugați imagini la pagina dvs. html, atunci ar trebui să faceți un alt folder numit public în directorul principal, adică în folderul nodejs_server . În folderul public, creați un folder imagine și stocați toate imaginile în acest folder.
Pasul 4: - Acum, vom crea o pagină HTML. Pentru aceasta, accesați directorul de vizualizări și deschideți editorul de text nano cu numele de fișier index.ejs
Nu există nimic fantezist în scenariu. Este doar un fișier HTML pentru a face butonul Pornit și Dezactivat.
Copiați lipiți codul HTML de mai jos în editorul de text nano și salvați-l.
Bine ați venit la Nodejs Server
Stare led: <% = status%>Pasul 5: - Acum, trebuie să scriem cod JavaScript. Folosim cadrul expres pentru noduri pentru a răspunde solicitărilor http efectuate de utilizator.
Puteți urmări linkul pentru a afla mai multe despre Node Express.
Deschideți terminalul și deschideți editorul de text nano cu numele de fișier index.js în folderul nodejs_server , apoi copiați și lipiți codul de script Java de mai jos și acest fișier.
var express = require ('express'); var app = express (); var cale = require ('cale'); var gpio = require ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('motor de vizualizare', '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')); returnează res.render ('index',{status: „Led este 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')); returnează res.render ('index', {status: "Led este Off"}); }); }); app.listen (3000, function () { console.log ('Serverul a început pe port: 3000!') })
Pasul 6: - În directorul nodejs_server , trebuie să executăm următoarea comandă pentru a instala bibliotecile node.js
instalare npm
Pasul 7: - Acum, serverul dvs. este gata să funcționeze. Pentru a porni serverul local, rulați următoarea comandă în directorul nodejs_server
nod index.js
veți vedea un mesaj în terminal că serverul dvs. este pornit la portul definit.
Pasul 8: - Acum deschideți browserul și deschideți adresa URL Raspberry Pi cu numărul de port, adică raspberrypi: 3000
Asigurați-vă că raspberry pi și laptopul în care deschideți browserul sunt conectate la aceeași rețea.
Veți vedea următoarea pagină în browser.
Acum, apăsați butonul LED On pentru a porni LED-ul și butonul LED Off pentru a opri LED-ul.