- Wymagane materiały
- Instalowanie Node.js na Raspberry Pi
- Miga diodą LED za pomocą Node.js.
- Skrypt migania diody Node.js i wyjaśnienie
- Schemat obwodu migania diody LED za pomocą Node.js.
- Raspberry Pi
W poprzednich samouczkach Raspberry Pi używaliśmy wielu różnych języków programowania i oprogramowania do sterowania Raspberry Pi, w tym Python, embedded C, Flask itp. Aby poszerzyć horyzont potężnej płyty Raspberry Pi, dzisiaj użyjemy bardzo popularnego środowiska opartego na.js), aby kontrolować GPIO Raspberry Pi lokalnie, jak również globalnie, konfigurując go jako serwer sieciowy. Początkowo Node.js został opracowany dla przeglądarki Google Chrome, ale później został udostępniony na zasadach open source przez Google.
W tym samouczku będziemy sterować diodą LED podłączoną do Raspberry Pi na dwa sposoby
- Najpierw po prostu napiszemy kod JavaScript za pomocą Node.js, aby zamrugać diodą LED
- W drugiej metodzie utworzymy stronę HTML z dwoma przyciskami do włączania i wyłączania diody LED. Ta strona internetowa HTML będzie hostowana na Raspberry Pi i może być otwierana w dowolnej przeglądarce internetowej. Więc tutaj Raspberry Pi będzie działać jako serwer WWW
Wymagane materiały
- Płytka Raspberry pi z zainstalowanym Raspbianem
- DOPROWADZIŁO
W tym samouczku używam monitora zewnętrznego za pomocą kabla HDMI do połączenia z Raspberry Pi. Jeśli nie masz monitora, możesz użyć klienta SSH (Putty) lub serwera VNC, aby połączyć się z Raspberry pi za pomocą laptopa lub komputera. Jeśli napotkasz jakiekolwiek trudności, postępuj zgodnie z naszym przewodnikiem Pierwsze kroki z Raspberry Pi.
Instalowanie Node.js na Raspberry Pi
Zainstalujemy Node.js na naszej płycie za pomocą następujących poleceń.
Krok 1: - Najpierw sprawdź wersję arm swojej płyty raspberry pi za pomocą tego polecenia.
uname -m
W moim przypadku wersja to 7.
Krok 2: - Pobierz instalator, kopiując ten link w terminalu. Nie zapomnij zmienić wersji w linku podanym poniżej.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Krok 3: - Wyodrębnij pliki za pomocą poniższego polecenia
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Krok 4: - Na koniec wykonaj te polecenia, aby dodać ważne pliki również do lokalnych katalogów.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js jest teraz zainstalowany w Twoim Raspberry Pi. Sprawdź wersję węzła w celu potwierdzenia za pomocą tego polecenia.
węzeł - wersja
Przed utworzeniem serwera Node.js najpierw zobaczymy, jak napisać skrypt, który będzie migał diodą LED za pomocą node.js (pakiet npm onoff).
Miga diodą LED za pomocą Node.js.
Aby sterować GPIO na Raspberry Pi za pomocą Node.js, użyjemy modułu onoff.
Użyjemy menedżera pakietów npm do zainstalowania modułu onoff za pomocą poniższego polecenia
npm install onoff
Teraz napiszemy skrypt do migania diody. Otwórz edytor nano i podaj nazwę pliku za pomocą polecenia
nano blink_led.js
Jeśli jesteś początkującym użytkownikiem Node.js i jego pakietów, możesz udokumentować npm, aby lepiej zrozumieć skrypt.
Skrypt migania diody Node.js i wyjaśnienie
Najpierw zadeklaruj zmienne dla led, opóźnienia i GPIO. Do podłączenia diody używam Raspberry Pi GPIO 4.
var Gpio = require ('onoff'). Gpio; var LED = nowy Gpio (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Teraz stworzymy funkcję, która rozpocznie miganie.
funkcja blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // ustaw wyjście na 1, tzn. włącz diodę} else {LED.writeSync (0); // ustaw wyjście na 0, czyli wyłącz diodę }}
Podobnie, utwórz funkcję, która przestanie migać
function endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Przenieś GPIO do wolnych zasobów} setTimeout (endBlink, 10000);
Pełny kod Node.js dla migającej diody LED znajduje się na końcu tego samouczka. A więc skopiuj i wklej kod do pliku led_blink.js , który stworzyliśmy wcześniej za pomocą polecenia nano , zapisz plik używając Ctrl + x, następnie wciśnij Y i wciśnij Enter.
Aby uruchomić skrypt, otwórz terminal i wpisz poniższe polecenie:
węzeł blink_led.js
Zobaczysz, że dioda LED będzie migać przez 10 sekund, a następnie przestanie migać. Sprawdź całą pracę w filmie podanym na końcu tego samouczka.
Schemat obwodu migania diody LED za pomocą Node.js.
Raspberry Pi
Teraz przejdźmy do interesującej części, tutaj mamy zamiar stworzyć własny serwer WWW, z którego będziemy mogli sterować GPIO Raspberry pi za pomocą strony internetowej.
W tym celu musimy najpierw stworzyć stronę HTML i napisać skrypt, który będzie wykonywał zadanie back-end, tj. Kontrolował RPi GPIO.
Krok 1: - Utwórz katalog do przechowywania wszystkich plików w jednym miejscu.
mkdir nodejs_server
Krok 2: - W folderze nodejs_server utwórz jeszcze jeden folder do zapisania pliku HTML.
cd nodejs_server mkdir views
Krok 3: - Jeśli chcesz dodać obrazy do swojej strony html, powinieneś utworzyć inny folder o nazwie public w głównym katalogu, tj. W folderze nodejs_server . W folderze publicznym utwórz folder obrazów i przechowuj wszystkie obrazy w tym folderze.
Krok 4: - Teraz zrobimy stronę HTML. W tym celu przejdź do katalogu views i otwórz edytor tekstu nano z nazwą pliku index.ejs
W scenariuszu nie ma nic wyszukanego. To tylko plik HTML, aby utworzyć przycisk włączania i wyłączania.
Skopiuj, wklej poniższy kod HTML w edytorze tekstu nano i zapisz go.
Witamy na serwerze Nodejs
Stan diody: <% = status%>Krok 5: - Teraz musimy napisać kod JavaScript. Używamy struktury Node Express do odpowiadania na żądania HTTP wykonywane przez użytkownika.
Możesz kliknąć łącze, aby dowiedzieć się więcej o Node Express.
Otwórz terminal i otwórz edytor tekstu nano z nazwą pliku index.js w folderze nodejs_server , a następnie skopiuj i wklej poniższy kod skryptu java i ten plik.
var express = require ('express'); var app = express (); var path = require ('path'); var gpio = require ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('silnik widoku', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', function (req, res) { res.render ('index', {status: "Naciśnij przycisk"}); }); 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: "Dioda jest włączona"}); }); }); 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 ('Serwer uruchomiony na porcie: 3000!') })
Krok 6: - W katalogu nodejs_server musimy wykonać następujące polecenie, aby zainstalować biblioteki node.js
npm install
Krok 7: - Teraz twój serwer jest gotowy do pracy. Aby uruchomić serwer lokalny, uruchom następującą komendę w katalogu nodejs_server
węzeł index.js
zobaczysz komunikat w terminalu, że twój serwer jest uruchomiony na określonym porcie.
Krok 8: - Teraz otwórz przeglądarkę i otwórz URL Raspberry Pi z numerem portu, np. Raspberrypi: 3000
Upewnij się, że twój Raspberry Pi i laptop, w którym otwierasz przeglądarkę, są połączone z tą samą siecią.
W przeglądarce zobaczysz następującą stronę.
Teraz naciśnij przycisk LED On , aby włączyć diodę LED i przycisk LED Off , aby wyłączyć diodę LED.