- Potrebné materiály
- Inštalácia Node.js na Raspberry Pi
- Blikanie LED pomocou Node.js
- Node.js LED blikajúci skript a vysvetlenie
- Schéma zapojenia, ktorá bliká LED pomocou kódu Node.js
- Malinový koláč
V predchádzajúcich tutoriáloch Raspberry Pi sme na ovládanie Raspberry Pi používali rôzne programovacie jazyky a softvér, vrátane Pythonu, embedded C, Flask atď. Aby sme rozšírili obzor výkonnej dosky Raspberry Pi, dnes budeme používať veľmi populárne prostredie založené na JavaScripte (Node.js) ovládať GPIO Raspberry Pi lokálne aj globálne nastavením ako webový server. Spočiatku bol súbor Node.js vyvinutý pre prehliadač Google Chrome, neskôr ho však Google otvoril.
V tomto tutoriále budeme ovládať LED, spojenú s Raspberry Pi, dvoma spôsobmi
- Najskôr jednoducho napíšeme kód JavaScriptu pomocou Node.js, aby sme zablikali LED
- V druhej metóde vytvoríme stránku HTML s dvoma tlačidlami na zapnutie a vypnutie LED. Táto webová stránka HTML bude hostená na malinovej pi a dá sa otvoriť v ľubovoľnom webovom prehliadači. Takže tu bude Raspberry Pi fungovať ako webový server
Potrebné materiály
- Doska Raspberry pi s nainštalovaným Raspbian
- LED
V tomto výučbe používam externý monitor pomocou kábla HDMI na pripojenie k Raspberry Pi. Ak nemáte monitor, môžete sa pomocou klienta SSH (Putty) alebo servera VNC pripojiť k počítaču Raspberry pi pomocou prenosného počítača alebo počítača. Ak narazíte na akýkoľvek problém, postupujte podľa nášho sprievodcu Začíname s Raspberry Pi.
Inštalácia Node.js na Raspberry Pi
Node.js nainštalujeme na našu dosku pomocou nasledujúcich príkazov.
Krok 1: - Najskôr pomocou tohto príkazu skontrolujte verziu ramena dosky Raspberry pi.
nemenovať -m
V mojom prípade je verzia 7.
Krok 2: - Stiahnite si inštalátor skopírovaním tohto odkazu do terminálu. Nezabudnite zmeniť verziu pomocou odkazu uvedeného nižšie.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Krok 3: - Extrahujte súbory pomocou nasledujúceho príkazu
tar -xvf uzol-v4.6.1-linux-armvl.tar.gz
Krok 4: - Nakoniec vykonaním týchto príkazov pridajte dôležité súbory aj do miestnych adresárov.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js je teraz nainštalovaný na vašom Raspberry Pi. Pomocou tohto príkazu skontrolujte verziu uzla na potvrdenie.
verzia uzla
Pred vytvorením servera Node.js najskôr uvidíme, ako napísať skript na blikanie LED pomocou node.js (balíček npm onoff).
Blikanie LED pomocou Node.js
Na ovládanie GPIO na Raspberry Pi pomocou Node.js použijeme modul onoff.
Na inštaláciu modulu onoff použijeme správcu balíkov npm pomocou nižšie uvedeného príkazu
npm install onoff
Teraz napíšeme skript pre blikanie led. Otvorte nano editor a pomocou príkazu pomenujte súbor
nano blink_led.js
Ak ste v balíku Node.js začiatočníci, môžete si pre lepšie pochopenie skriptu prečítať dokumentáciu npm.
Node.js LED blikajúci skript a vysvetlenie
Najskôr deklarujte premenné pre led, delay a GPIO. Na pripojenie LED používam Raspberry Pi GPIO 4.
var Gpio = require ('vypnuté'). Gpio; var LED = nové Gpio (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Teraz urobíme funkciu na spustenie blikania.
funkcia blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // nastav výstup na 1 tj. zapni led} else {LED.writeSync (0); // nastaviť výstup na 0, tj vypnúť led }}
Podobne urobte funkciu na zastavenie blikania
funkcia endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Neexport GPIO na voľné zdroje} setTimeout (endBlink, 10 000);
Kompletný kód Node.js pre blikajúcu LED je uvedený na konci tohto tutoriálu. Takže skopírujte a vložte kód do súboru led_blink.js , ktorý sme vytvorili predtým pomocou príkazu nano , uložte súbor pomocou Ctrl + x, potom stlačte kláves Y a stlačte kláves Enter.
Ak chcete spustiť skript, otvorte terminál a zadajte nasledujúci príkaz:
uzol blink_led.js
Uvidíte, že LED bude blikať 10 sekúnd a potom prestane blikať. Skontrolujte úplnú prácu vo videu uvedenom na konci tohto tutoriálu.
Schéma zapojenia, ktorá bliká LED pomocou kódu Node.js
Malinový koláč
Poďme na zaujímavú časť, kde vytvoríme vlastný webový server, z ktorého môžeme ovládať GPIO Raspberry pi pomocou webovej stránky.
Za týmto účelom najskôr musíme vytvoriť stránku HTML a napísať skript, aby sme mohli vykonať zadnú úlohu, tj. Ovládať RPi GPIO.
Krok 1: - Vytvorte adresár na uloženie všetkých súborov na jednom mieste.
mkdir nodejs_server
Krok 2: - Vo vnútri priečinka nodejs_server vytvorte ešte jeden priečinok na uloženie súboru HTML.
cd nodejs_server mkdir pohľady
Krok 3: - Ak chcete na svoju stránku html pridať obrázky, mali by ste v hlavnom adresári vytvoriť nový priečinok s verejnosťou, tj v priečinku nodejs_server . Vo verejnom priečinku vytvorte priečinok s obrázkami a uložte všetky obrázky do tohto priečinka.
Krok 4: - Teraz vytvoríme stránku HTML. Prejdite do adresára zobrazení a otvorte nano textový editor s názvom index.ejs
V scenári nie je nič fantázie. Je to iba súbor HTML, pomocou ktorého môžete vytvoriť tlačidlo Zapnúť a Vypnúť.
Skopírujte, vložte nasledujúci HTML kód do nano textového editora a uložte ho.
Vitajte na serveri Nodejs
Stav LED: <% = stav%>Krok 5: - Teraz musíme napísať kód JavaScript. Na reagovanie na požiadavky http vykonané používateľom používame framework node express.
Kliknutím na odkaz sa dozviete viac o aplikácii Node Express.
Otvorte terminál a otvorte nano textový editor s názvom index.js v priečinku nodejs_server , potom skopírujte a prilepte nižšie uvedený kód skriptu java a tento súbor.
var express = require ('express'); var app = express (); var path = require ('cesta'); var gpio = require ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('view engine', '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 svieti"}); }); }); 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!') })
Krok 6: - V adresári nodejs_server musíme vykonať nasledujúci príkaz na inštaláciu knižníc node.js
inštalácia NPM
Krok 7: - Váš server je teraz pripravený na prácu. Lokálny server spustíte spustením nasledujúceho príkazu v adresári nodejs_server
uzol index.js
v termináli uvidíte správu, že váš server je spustený na definovanom porte.
Krok 8: - Teraz otvorte prehliadač a otvorte adresu URL Raspberry Pi s číslom portu, tj. Raspberrypi : 3000
Uistite sa, že vaše malinové pi a prenosný počítač, v ktorom otvárate prehliadač, sú pripojené k rovnakej sieti.
V prehliadači sa zobrazí nasledujúca stránka.
Teraz stlačte tlačidlo LED zapnuté , aby sa rozsvietila LED, a tlačidlo LED vypnuté , aby sa LED vypla.