- Potřebné materiály
- Instalace Node.js na Raspberry Pi
- Bliká LED pomocí Node.js
- Blikající skript LED Node.js a vysvětlení
- Schéma zapojení pro blikání LED pomocí Node.js
- Raspberry Pi
V předchozích výukových programech Raspberry Pi jsme k ovládání Raspberry Pi používali mnoho různých programovacích jazyků a softwarových programů, včetně Pythonu, embedded C, Flask atd. Abychom rozšířili horizont výkonné desky Raspberry Pi, dnes budeme používat velmi populární prostředí založené na JavaScriptu (Node.js) k ovládání GPIO Raspberry Pi lokálně i globálně nastavením jako webový server. Zpočátku byl Node.js vyvinut pro Google Chrome, ale později byl otevřený od Googlu.
V tomto tutoriálu budeme ovládat LED, připojenou k Raspberry Pi, pomocí dvou metod
- Nejprve jednoduše napíšeme kód JavaScript pomocí Node.js, abychom Blink LED
- V druhé metodě vytvoříme stránku HTML se dvěma tlačítky pro zapnutí a vypnutí LED. Tato webová stránka HTML bude hostována na malinovém pi a lze ji otevřít v jakémkoli webovém prohlížeči. Raspberry Pi zde tedy bude fungovat jako webový server
Potřebné materiály
- Deska Raspberry pi s nainstalovaným Raspbian
- VEDENÝ
V tomto tutoriálu používám externí monitor pomocí kabelu HDMI pro připojení k Raspberry Pi. Pokud nemáte monitor, můžete se připojit k Raspberry pi pomocí notebooku nebo počítače pomocí klienta SSH (Putty) nebo serveru VNC. Pokud narazíte na potíže, postupujte podle našeho průvodce Začínáme s Raspberry Pi.
Instalace Node.js na Raspberry Pi
Node.js nainstalujeme na naši desku pomocí následujících příkazů.
Krok 1: - Nejprve pomocí tohoto příkazu zkontrolujte verzi ramene vaší desky maliny pi.
uname -m
V mém případě je verze 7.
Krok 2: - Stáhněte si instalační program zkopírováním tohoto odkazu do terminálu. Nezapomeňte změnit verzi v níže uvedeném odkazu.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Krok 3: - Extrahujte soubory pomocí níže uvedeného příkazu
tar -xvf uzel-v4.6.1-linux-armvl.tar.gz
Krok 4: - Nakonec proveďte tyto příkazy a přidejte také důležité soubory do místních adresářů.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js je nyní nainstalován ve vašem Raspberry Pi. Pomocí tohoto příkazu zkontrolujte verzi uzlu pro potvrzení.
verze uzlu
Před vytvořením serveru Node.js nejprve uvidíme, jak napsat skript pro blikání LED pomocí node.js (balíček npm onoff).
Bliká LED pomocí Node.js
K ovládání GPIO na Raspberry Pi pomocí Node.js použijeme modul onoff.
Pro instalaci modulu onoff pomocí níže uvedeného příkazu použijeme správce balíčků npm
npm install onoff
Nyní napíšeme skript pro blikání LED. Otevřete nano editor a pomocí příkazu pojmenujte soubor
nano blink_led.js
Pokud jste v Node.js začátečník a jeho balíčky, můžete pro lepší pochopení skriptu použít dokumentaci npm.
Blikající skript LED Node.js a vysvětlení
Nejprve deklarujte proměnné pro led, delay a GPIO. Pro připojení LED používám Raspberry Pi GPIO 4.
var Gpio = require ('onoff'). Gpio; var LED = nový Gpio (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Nyní provedeme funkci pro spuštění mrknutí.
funkce blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // nastavit výstup na 1, tj. zapnout led} else {LED.writeSync (0); // nastavit výstup na 0, tj. vypnout led }}
Podobně proveďte funkci k zastavení blikání
funkce endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Unexport GPIO to free resources} setTimeout (endBlink, 10 000);
Kompletní kód Node.js pro blikající LED je uveden na konci tohoto kurzu. Takže zkopírujte a vložte kód do souboru led_blink.js , který jsme vytvořili dříve pomocí příkazu nano , uložte soubor pomocí Ctrl + x, stiskněte Y a stiskněte klávesu Enter.
Chcete-li spustit skript, otevřete terminál a zadejte následující příkaz:
uzel blink_led.js
Uvidíte, že LED bude blikat po dobu 10 sekund a poté přestane blikat. Zkontrolujte kompletní práci ve videu uvedeném na konci tohoto tutoriálu.
Schéma zapojení pro blikání LED pomocí Node.js
Raspberry Pi
Nyní pojďme k té zajímavé části, kde si vytvoříme vlastní webový server, ze kterého můžeme ovládat GPIO Raspberry pi pomocí webové stránky.
K tomu nejdříve musíme vytvořit stránku HTML a napsat skript k provedení back-endové úlohy, tj. K ovládání RPi GPIO.
Krok 1: - Vytvořte adresář pro uložení všech souborů na jednom místě.
mkdir nodejs_server
Krok 2: - Uvnitř složky nodejs_server vytvořte ještě jednu složku pro uložení souboru HTML.
cd nodejs_server mkdir zobrazení
Krok 3: - Pokud chcete přidat obrázky na svou html stránku, měli byste v hlavním adresáři, tj. Ve složce nodejs_server, vytvořit další složku s názvem public. Ve veřejné složce vytvořte složku s obrázky a uložte všechny obrázky do této složky.
Krok 4: - Nyní vytvoříme stránku HTML. Přejděte do adresáře zobrazení a otevřete nano textový editor s názvem index.ejs
Ve scénáři není nic fantastického. Je to jen soubor HTML, který slouží k zapnutí a vypnutí tlačítka.
Zkopírujte níže uvedený kód HTML do nano textového editoru a uložte jej.
Vítejte na serveru Nodejs
Stav LED: <% = stav%>Krok 5: - Nyní musíme napsat kód JavaScript. Pomocí uzlového expresního rámce reagujeme na požadavky HTTP prováděné uživatelem.
Kliknutím na odkaz se dozvíte více o Node Express.
Otevřete terminál a otevřete textový editor nano s názvem index.js ve složce nodejs_server , poté zkopírujte a vložte níže uvedený kód skriptu Java a tento soubor.
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 svítí"}); }); }); 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: - Uvnitř adresáře nodejs_server musíme provést následující příkaz k instalaci knihoven node.js
instalace NPM
Krok 7: - Váš server je nyní připraven k práci. Chcete-li spustit místní server, spusťte následující příkaz v adresáři nodejs_server
uzel index.js
v terminálu uvidíte zprávu, že je váš server spuštěn na definovaném portu.
Krok 8: - Nyní otevřete prohlížeč a otevřete adresu URL Raspberry Pi s číslem portu, tj. Raspberrypi : 3000
Ujistěte se, že vaše malina pi a notebook, ve kterém otevíráte prohlížeč, jsou připojeny ke stejné síti.
V prohlížeči se zobrazí následující stránka.
Nyní stiskněte tlačítko LED On pro zapnutí LED a tlačítko LED Off pro vypnutí LED.