- Vad är Node.js?
- Komponenter krävs
- Kretsschema
- Konfigurera Node.js Framework
- Installerar Johnny-Five Library
- Blinkande lysdiod med Arduino och Node.js
- Styr LED-ljusstyrka med Arduino och Node.js webbserver
Vi har sett många exempel på att blinka en LED med olika mikrokontroller och olika programmeringsspråk. Idag kommer vi att använda ett mycket populärt JavaScript-ramverk Node.js för att styra lysdioden ansluten till Arduino Uno. Vi kommer också att använda Node.js för att styra ljusstyrkan på LED från en webbsida med hjälp av Arduino. Genom några få justeringar och med hjälp av ESP8266 kan detta konverteras till ett IoT-projekt där lysdioden kan styras var som helst.
Vad är Node.js?
De Node.js är en allmänt använd JavaScript-baserade ramverk bygger på Google Chrome JavaScript V8-motor och tillämpas för att utveckla I / O intensiva webbapplikationer som en sida program, video streaming platser etc.
Vi har gjort en informativ handledning tidigare om Komma igång med Node.js och Raspberry Pi för att styra en LED. I denna handledning kommer vi att följa liknande tillvägagångssätt, dvs att lysdioden kommer att styras med två metoder som:
- Enkel LED blinkar genom att skriva en JavaScript-kod i Node.js-ramverket.
- LED-ljusstyrningskontroll med hjälp av Node.js-ramverk och ett webbgränssnitt från vilken webbläsare som helst: Arduino UNO fungerar som en webbserver och HTML-webbsidan kommer att vara värd på en PC eller bärbar dator.
Komponenter krävs
Hårdvara:
- Arduino UNO styrelse
- Led
- Motstånd
Programvara:
- Arduino IDE: För uppladdning av skiss till Arduino UNO Board.
- Firmata: Det är ett protokoll för att kommunicera med olika mikrokontroller från programvara på en dator, smartphone etc. Firmata-firmware kan laddas i vilket mikrokontrollkort som helst (som Arduino, Teensy) och kan prata med vilken bärbar dator, dator eller smartphone som helst. Firmata-biblioteket levereras med Arduino IDE, så du behöver inte ladda ner någonstans. Vi har gjort en handledning om hur du styr Arduino med Raspberry Pi med pyFirmata.
- Johnny-Five: Johnny-Five är den JavaScript-baserade robotik- och IoT-plattformen som används för att skriva koder i JavaScript och används för att skapa en bro mellan Arduino Boards och Computer. Johnny-Five har testats med en mängd olika Arduino-kompatibla kort som Arduino UNO, NANO, Promini, etc. I denna handledning måste Johnny-Five-biblioteket laddas ner för att kunna använda alla dess funktioner. Installationsguiden kommer att förklaras senare i denna handledning.
Kretsschema
Kretsschemat är väldigt enkelt, vi behöver bara ansluta en LED till Arduino.Konfigurera Node.js Framework
Innan kodning och utveckling påbörjas måste Node.js laddas ner och ställas in. Följ enkla steg för att ladda ner Node.js-miljön.
Steg 1: - Ladda ner.exe-filen av Node.js från dess officiella webbplats.
Steg 2: - Kör.exe och följ instruktionerna i installationsprogrammet.
Steg 3: - Starta om datorn så som den rekommenderas i Node.js-dokumentet och även använda alla funktionerna i Node.js
Steg 4: - För att kontrollera om noden har installerats öppnar du kommandotolken och skriver Node –v
Steg 5: - Node.js-versionen visas som anger att Node.js är installerat.
Installerar Johnny-Five Library
Nu efter nedladdning av Node.js skapar du en ny mapp med namnet “LED_Control” i dokument för att hålla alla projektfilerna på ett ställe. Varje projektfil sparas i mappen “ LED_Control ”. Ladda nu ner Johnny-Five-biblioteket i mappen “ LED_Control ”. Följ stegen nedan för att ladda ner:
Steg 1: - Öppna kommandotolken
Steg 2: - Gå till “ LED_Control ” -mappen genom att följa ” cd ” -kommandot.
Steg 3: - Kör kommandot ' npm install johnny-five'
Steg 4: - Detta kommer att installera alla beroenden hos Johnny-Five.
Steg 5: - Installera också nödvändiga bibliotek som används i denna handledning för att styra ljusstyrkan på LED. Det finns tre bibliotek som används här:
- express:
- socket.i o: WebSockets-bibliotek
- serialpor t: Seriell portomslag
Steg 5: - Kör kommandona nedan en efter en för att installera dessa tre bibliotek.
npm installera express npm installera uttaget .io npm installera serieport
Som sagt tidigare är projektet uppdelat i två delar:
- För det första Arduino Blinking LED med Node.js
- För det andra, Kontrollera LED-ljusstyrka från webbgränssnittet med Arduino och Node.js.
Blinkande lysdiod med Arduino och Node.js
För att blinka lysdioden måste Arduino ställas in för att kommunicera med datorn.
Ställa in Arduino UNO för blinkande LED:
För att få Arduino UNO att acceptera kommandot från Laptop till Control LED måste Firmata firmware laddas in i Arduino UNO. Följ dessa enkla steg för att ladda Firmata Firmware:
- Anslut Arduino UNO med USB-kabel
- Öppna Arduino IDE och välj Arduino UNO-kort (om du använder ett annat kort väljer du respektive) från Verktyg.
- Välj Respective COM-port för ansluten Arduino UNO
- Hitta nu Firmata-skissen med Meny -> Arkiv -> Exempel -> Firmata -> StandardFirmata.
- Ladda upp skissen "StandardFirmata" genom att gå till Arkiv -> Ladda upp.
Detta laddar Firmata-skissen på Arduino UNO och nu är Arduino UNO redo att acceptera alla kommandon från datorn.
Skriva Node.js-programmet för blinkande lysdiod:
För att skriva ett Node.js-program öppnar du vilken textredigerare som helst (Notepad, Notepad ++, etc.) och klistrar in "blink_led" -koden som är bifogad i slutet av den här självstudien och sparar den med tillägget ".js" dvs (blink_led.js) i "LED_Control" -mappen som skapades tidigare. Vi kommer att diskutera viktiga steg i kodfilen blink_led.js.
Definiera initialt stiftet på mikrokontrollern där led är ansluten. I detta exempel är lysdioden ansluten till stift 5 i Arduino UNO. 'Var' i Node.js representerar variabeldeklaration.
var led_pin = 5;
De johnny fem modul behöver ingå och styrelsen behöver väljas. Modulerna i Node.js är bibliotek. Funktionen " kräver () " kommer åt modulen.
var johnny_five = kräver ("johnny-five"); var arduino_board = new johnny_five.Board ();
Den console.log uttalande liknar utskrifts uttalande och det kommer att skrivas ut meddelandet. Och LED-stiftet är inställt på utgångsläge och den definierade fördröjningen ges till att blinka.
console.log ("LED har börjat blinka!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Följ stegen nedan för att köra programmet:
- Öppna kommandotolken
- Leta reda på "LED_Control" -mappen genom att följa kommandot 'cd'
- Kör kommandot 'Node led_blink.js'. Om det lyckats kommer det att visas "LED har börjat blinka!" som visas på bilden nedan .
- LED-lampan börjar blinka i Arduino UNO Pin 5.
- Och detta avslutar den första delen av vår handledning, dvs. Blinkande LED med Node.js
Styr LED-ljusstyrka med Arduino och Node.js webbserver
I likhet med att blinka en lysdiod med Node.js kommer det här avsnittet också att innehålla några delar, dvs att ställa in Arduino UNO, ställa in webbgränssnitt och skriva ett Node.js-program.
Ställa in Arduino UNO för att kontrollera ljusstyrkan på LED:
För att ställa in Arduino UNO laddar du bara upp skissen “ arduino_control.ino ” i Arduino UNO-styrelse och det är det. Detta kommer att ställa in Arduino Board. Du kan ladda ner hela koden med HTML-filer härifrån. Koden " arduino_control.ino" har följande viktiga steg.
Ursprungligen är baudhastigheten inställd på 9600.
Serial.begin (9600);
Den seriella porten letar alltid efter inkommande byte och byten skrivs till stift 5 som är en PWM-stift.
medan (! Serial.available ()); analogWrite (5, Serial.read ());
Det är allt. Detta kommer att ställa Arduino till att låsa byten till PWM- stift och kommer att ändra ljusstyrkan på LED.
Ställa in webbgränssnitt:
För att styra ljusstyrkan hos LED med webbgränssnitt skrivs en liten bit HTML-kod för att ha ett gränssnitt i webbläsaren. För att ha gränssnitt, följ enkla steg nedan:
- Skapa en ny mapp med namnet "offentlig" i "LED_Control" -mappen som skapades tidigare.
- Ladda ner filerna "index.html" och "style.css" och flytta båda filerna in i mappen "offentliga" som skapades i första steget ovan. Filer kan laddas ner härifrån.
Detta skapar en skjutreglage på webbsidan för att styra ljusstyrkan på LED med hjälp av Node.js och Arduino.
Att styra en lysdiod från webbsidan är intressant att lära sig och det kan göras med andra mikrokontroller genom att skapa en webbserver och vara värd för webbsidan på webbservern. Kontrollera alla webbserverrelaterade projekt här.
Skriva Node.js-programmet för att styra ljusstyrkan hos LED:
Nästa steg skulle vara att skriva "brightness_control.js" skiss med hjälp av Node.js och köra koden. Körningen av koden kommer att vara lite lik den blinkande lysdioden med Node.js.
För att skriva ett Node.js-program öppnar du vilken textredigerare som helst (Notepad, Notepad ++, etc.) och klistrar in 'brightness_control' -koden som bifogas i slutet av denna handledning och sparar den med en förlängning av '.js' dvs. (brightness_control.js) i "LED_Control" -mappen som skapades tidigare. Du kan också ladda ner koden härifrån.
I likhet med Blink Led Node.js-programmet kommer det här avsnittet också att använda moduler (bibliotek). Inkludera modulerna "express", "http" och "seriell port".
var express = kräver ('express'); app = express (); server = kräver ('http'). createServer (app); io = kräver ('socket.io'). lyssna (server); var SerialPort = kräver ("serialport") //. SerialPort
Ställ nu in COM-porten och baudrate. Observera att i Windows kommer det alltid att vara COM med förlängning av nummer (COM6, COM4, COM24 etc.), så ställ in nedan efter behov efter '/'. Ställ också in buadrate.
var serialPort = new SerialPort ("/ COM4", {baudRate: 9600});
Börja lyssna på servern vid port 8080.
server.listen (8080);
Ställ in ljusstyrkan från början. Lås sedan ljusstyrkedata till IO med sockets-modul, som är en websocket-modul. Uppgifterna kommer att tas emot via webbgränssnittet med hjälp av uttagsprotokoll.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { brightness = data.value; var buf = new Buffer (1); buf.writeUInt8 (brightness, 0)); serialPort.write (buf);
Avsänd nu LED-ljusstyrkan från uttaget till LED-stiftet.
io.sockets.emit ('led', {värde: ljusstyrka}); }); socket.emit ('led', {värde: ljusstyrka}); });
Nu bara för att felsöka, lägg till ett utskriftsuttalande i slutet. Console.log är ett utskriftsuttalande i Node.js.
console.log ("Webbserver startade, gå till 'http: // localhost: 8080' i din webbläsare.");
Kör nu programmet genom att följa stegen nedan:
- Öppna kommandotolken
- Leta reda på "LED_Control" -mappen genom att följa kommandot 'cd'
- Kör kommandot 'Node brightness_control.js'. Om det lyckades kommer det att visas "Webbserver startad gå till" http: // localhost: 8080 "i din webbläsare." strax under kommandot .
- Gå nu till din webbläsare och skriv “localhost: 8080” i webbadressen.
- För att ändra ljusstyrkan flyttar du bara skjutreglaget från 0-255 värden.
Den fullständiga koden och arbetsvideo för båda sektionerna bifogas nedan. Även om du har några tvivel eller förslag kan du nå oss via forumet eller kommentera nedan. Alla kodfiler kan också laddas ner härifrån.