- Co to jest Node.js?
- Wymagane składniki
- Schemat obwodu
- Konfigurowanie struktury Node.js.
- Instalowanie biblioteki Johnny-Five
- Migająca dioda LED z Arduino i Node.js.
- Sterowanie jasnością LED za pomocą Arduino i serwera WWW Node.js.
Widzieliśmy wiele przykładów migania diody LED przy użyciu różnych mikrokontrolerów i różnych języków programowania. Dzisiaj będziemy używać bardzo popularne ramy JavaScript node.js kontrolować LED podłączony do Arduino Uno. Użyjemy również Node.js do kontrolowania jasności diody LED ze strony internetowej za pomocą Arduino. Za pomocą kilku poprawek i za pomocą ESP8266 można to przekształcić w projekt IoT, w którym diodą LED można sterować z dowolnego miejsca.
Co to jest Node.js?
W node.js jest powszechnie stosowane ramy JavaScript oparte wbudowany w Google Chrome JavaScript V8 i stosowane w tworzeniu I / O intensywne aplikacji internetowych, takich jak aplikacje pojedynczej strony, video streaming stronach itp
Wcześniej zrobiliśmy samouczek informacyjny dotyczący rozpoczęcia pracy z Node.js i Raspberry Pi w celu sterowania diodą LED. W tym samouczku będziemy postępować w podobny sposób, tj. Dioda LED będzie sterowana za pomocą dwóch metod, takich jak:
- Proste miganie diody LED, pisząc kod JavaScript w środowisku Node.js.
- Kontrola jasności diod LED przy użyciu frameworka Node.js i interfejsu internetowego z dowolnej przeglądarki: Arduino UNO będzie działać jako serwer sieciowy, a strona internetowa HTML będzie hostowana na komputerze PC lub laptopie.
Wymagane składniki
Sprzęt komputerowy:
- Płytka Arduino UNO
- Doprowadziło
- Rezystor
Oprogramowanie:
- Arduino IDE: do wgrywania szkicu na płytkę Arduino UNO.
- Firmata: Jest to protokół do komunikacji z różnymi mikrokontrolerami z oprogramowania na komputerze, smartfonie itp. Oprogramowanie Firmata można załadować na dowolną płytkę mikrokontrolera (np. Arduino, Teensy) i może komunikować się z dowolnym laptopem, komputerem stacjonarnym lub smartfonem. Biblioteka Firmata jest dostarczana z Arduino IDE, więc nie ma potrzeby pobierania z dowolnego miejsca. Zrobiliśmy samouczek dotyczący sterowania Arduino za pomocą Raspberry Pi przy użyciu pyFirmata.
- Johnny-Five: Johnny-Five to platforma robotyki opartej na języku JavaScript i IoT używana do pisania kodów w języku JavaScript i używana do tworzenia pomostów między płytami Arduino i komputerem. Johnny-Five zostały przetestowane z różnymi płytkami kompatybilnymi z Arduino, takimi jak Arduino UNO, NANO, Promini, itp. W tym samouczku biblioteka Johnny-Five musi zostać pobrana, aby móc korzystać ze wszystkich jej funkcji. Przewodnik instalacji zostanie wyjaśniony w dalszej części tego samouczka.
Schemat obwodu
Schemat obwodu jest bardzo prosty, wystarczy podłączyć diodę do Arduino.Konfigurowanie struktury Node.js.
Przed rozpoczęciem kodowania i programowania należy pobrać i skonfigurować Node.js. Aby pobrać środowisko Node.js, wykonaj proste czynności.
Krok 1: - Pobierz plik.exe Node.js z jego oficjalnej strony internetowej.
Krok 2: - Uruchom plik.exe i postępuj zgodnie z instrukcjami w instalatorze.
Krok 3: - Uruchom ponownie komputer zgodnie z zaleceniami zawartymi w dokumencie Node.js, a także użyj wszystkich funkcji Node.js
Krok 4: - Aby sprawdzić, czy węzeł został zainstalowany, otwórz wiersz polecenia i wpisz Node –v
Krok 5: - Wersja Node.js zostanie wyświetlona wskazując, że Node.js jest zainstalowany.
Instalowanie biblioteki Johnny-Five
Teraz po pobraniu Node.js utwórz nowy folder o nazwie „LED_Control” w Dokumentach, aby zachować wszystkie pliki projektu w jednym miejscu. Każdy plik projektu będzie przechowywany w folderze „ LED_Control ”. Teraz pobierz bibliotekę Johnny-Five do folderu „ LED_Control ”. Aby pobrać, wykonaj poniższe czynności:
Krok 1: - Otwórz wiersz polecenia
Krok 2: - Przejdź do folderu „ LED_Control ”, wykonując polecenie „ cd ”.
Krok 3: - Uruchom polecenie „ npm install johnny-five”
Krok 4: - Spowoduje to zainstalowanie wszystkich zależności Johnny-Five.
Krok 5: - Zainstaluj również niezbędne biblioteki używane w tym samouczku do kontrolowania jasności diody LED. Wykorzystywane są tutaj trzy biblioteki:
- express: opakowanie serwera
- socket.i o: biblioteka WebSockets
- serialpor t: opakowanie portu szeregowego
Krok 5: - Uruchom kolejno poniższe polecenia, aby zainstalować te trzy biblioteki.
npm install express npm install socket.io npm install serialport
Jak powiedziano wcześniej, projekt jest podzielony na dwie części:
- Po pierwsze, migająca dioda Arduino z Node.js.
- Po drugie, kontrolowanie jasności diod LED z interfejsu internetowego za pomocą Arduino i Node.js.
Migająca dioda LED z Arduino i Node.js.
Aby migać dioda LED, Arduino musi być skonfigurowane do komunikacji z komputerem.
Konfiguracja Arduino UNO dla migającej diody LED:
Aby Arduino UNO zaakceptowało polecenie z laptopa do kontrolki LED, oprogramowanie Firmata musi zostać załadowane do Arduino UNO. Aby załadować oprogramowanie sprzętowe, wykonaj następujące proste kroki:
- Podłącz Arduino UNO za pomocą kabla USB
- Otwórz Arduino IDE i wybierz płytę Arduino UNO (jeśli używasz innej płyty, wybierz odpowiednią) z Narzędzia.
- Wybierz odpowiedni port COM podłączonego Arduino UNO
- Teraz znajdź szkic Firmata za pomocą Menu -> Plik -> Przykłady -> Firmata -> StandardFirmata.
- Prześlij szkic „StandardFirmata”, przechodząc do Plik -> Prześlij.
Spowoduje to załadowanie szkicu Firmata do Arduino UNO, a teraz Arduino UNO jest gotowe do przyjęcia dowolnego polecenia z komputera.
Pisanie programu Node.js dla migającej diody LED:
Aby napisać program Node.js, otwórz dowolny edytor tekstu (Notepad, Notepad ++ itp.) I wklej kod „blink_led” dołączony na końcu tego samouczka i zapisz go z rozszerzeniem „.js” tj. (Blink_led.js) w utworzonym wcześniej folderze „LED_Control”. Omówimy ważne kroki w pliku kodu blink_led.js.
Najpierw zdefiniuj Pin mikrokontrolera, do którego jest podłączona dioda LED. W tym przykładzie dioda LED jest podłączona do Pin 5 Arduino UNO. „Zmienna” w Node.js reprezentuje deklarację zmiennej.
var led_pin = 5;
Należy dołączyć moduł johnny-five i wybrać kartę. Moduły w Node.js to biblioteki. Funkcja „ require () ” uzyska dostęp do modułu.
var johnny_five = require ("johnny-five"); var arduino_board = new johnny_five.Board ();
Instrukcja console.log jest podobna do instrukcji print i spowoduje wyświetlenie komunikatu. A pin LED jest ustawiony na tryb wyjściowy, a zdefiniowane opóźnienie jest podawane do migania diody.
console.log ("Dioda LED zaczęła migać!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Teraz, aby uruchomić program, wykonaj poniższe czynności:
- Otwórz wiersz polecenia
- Zlokalizuj folder „LED_Control”, wykonując polecenie „cd”
- Uruchom polecenie „Node led_blink.js”. Po pomyślnym wykonaniu pokaże "Dioda LED zaczęła migać!" jak pokazano na poniższym obrazku .
- Dioda zacznie migać w Arduino UNO Pin 5.
- I to kończy pierwszą część naszego samouczka, tj. Migająca dioda LED w Node.js
Sterowanie jasnością LED za pomocą Arduino i serwera WWW Node.js.
Podobnie jak miganie diodą LED w Node.js, ta sekcja również będzie zawierała kilka części, np. Konfigurowanie Arduino UNO, konfigurowanie interfejsu internetowego i pisanie programu Node.js.
Konfiguracja Arduino UNO do sterowania jasnością diody LED:
Aby skonfigurować Arduino UNO, po prostu prześlij szkic „ arduino_control.ino ” do płyty Arduino UNO i to wszystko. Spowoduje to skonfigurowanie płyty Arduino. Możesz pobrać pełny kod z plikami HTML stąd. Kod „ arduino_control.ino” obejmuje następujące ważne kroki.
Początkowo szybkość transmisji jest ustawiona na 9600.
Serial.begin (9600);
Port szeregowy zawsze szuka przychodzącego bajtu, a bajt jest zapisywany na pinie 5, który jest pinem PWM.
while (! Serial.available ()); analogWrite (5, Serial.read ());
Otóż to. Spowoduje to ustawienie Arduino na zatrzaśnięcie bajtu do pinu PWM i zmieni jasność diody LED.
Konfigurowanie interfejsu internetowego:
Aby kontrolować jasność diody za pomocą interfejsu internetowego, jeden mały fragment kodu HTML jest napisany, aby mieć interfejs w przeglądarce. Aby mieć interfejs, wykonaj poniższe proste czynności:
- Utwórz nowy folder o nazwie „public” w folderze „LED_Control” utworzonym wcześniej.
- Teraz pobierz pliki „index.html” i „style.css” i przenieś oba pliki do folderu „publicznego” utworzonego w pierwszym kroku powyżej. Pliki można pobrać stąd.
Spowoduje to utworzenie suwaka na stronie internetowej do sterowania jasnością diody LED za pomocą Node.js i Arduino.
Sterowanie diodą LED ze strony internetowej jest interesujące i można to zrobić z innym mikrokontrolerem, tworząc serwer sieciowy i udostępniając stronę internetową na serwerze sieciowym. Sprawdź wszystkie projekty związane z serwerem internetowym tutaj.
Pisanie programu Node.js do sterowania jasnością diody LED:
Następnym krokiem byłoby napisanie szkicu „ Brightness_control.js ” przy użyciu Node.js i wykonanie kodu. Wykonanie kodu będzie nieco podobne do migania diody LED w Node.js.
Aby napisać program Node.js, otwórz dowolny edytor tekstu (Notepad, Notepad ++ itp.) I wklej kod „Brightness_control” dołączony na końcu tego samouczka i zapisz go z rozszerzeniem „.js”, tj. (Bright_control.js) w utworzonym wcześniej folderze „LED_Control”. Możesz również pobrać kod stąd.
Podobnie jak w programie Blink Led Node.js, ta sekcja również będzie używać modułów (biblioteki). Dołącz moduły „express”, „http” i „port szeregowy”.
var express = require ('express'); app = express (); server = require ('http'). createServer (aplikacja); io = require ('socket.io'). Listen (serwer); var SerialPort = require ("serialport") //. SerialPort
Teraz ustaw port COM i prędkość transmisji. Zauważ, że w Windows zawsze będzie to COM z rozszerzeniem numeru (COM6, COM4, COM24 itd.), Więc ustaw poniżej zgodnie z wymaganiami po '/'. Ustaw również buadrate.
var serialPort = nowy SerialPort ("/ COM4", {baudRate: 9600});
Rozpocznij nasłuchiwanie serwera na porcie 8080.
server.listen (8080);
Początkowo ustaw jasność na 0. Następnie zatrzaskuj dane jasności do IO za pomocą modułu gniazd, który jest modułem sieciowym. Dane zostaną odebrane przez interfejs sieciowy przy użyciu protokołu gniazda.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { jasność = data.value; var buf = new Buffer (1); buf.writeUInt8 (jasność, 0); serialPort.write (buf);
Teraz emituj wartość jasności LED pobraną z gniazda do pinu LED.
io.sockets.emit ('led', {wartość: jasność}); }); socket.emit ('led', {wartość: jasność}); });
Teraz, aby debugować, dodaj na końcu instrukcję print. Console.log to instrukcja drukowania w Node.js.
console.log ("Uruchomiono serwer WWW, przejdź do 'http: // localhost: 8080' w przeglądarce.");
Teraz, aby uruchomić program, wykonaj poniższe czynności:
- Otwórz wiersz polecenia
- Zlokalizuj folder „LED_Control”, wykonując polecenie „cd”
- Uruchom polecenie „Węzeł Brightness_control.js”. Po pomyślnym uruchomieniu wyświetli się komunikat „Uruchomiono serwer WWW, przejdź do„ http: // localhost: 8080 ”w przeglądarce”. tuż pod poleceniem .
- Teraz przejdź do przeglądarki i wpisz w adresie URL „localhost: 8080”.
- Aby zmienić jasność, wystarczy przesunąć suwak z wartości 0-255.
Kompletny kod i wideo pracuje z obu części jest załączony poniżej. Również jeśli masz jakiekolwiek wątpliwości lub sugestie, możesz skontaktować się z nami za pośrednictwem forum lub komentarza poniżej. Wszystkie pliki z kodem można również pobrać stąd.