- Kas yra Node.js?
- Būtini komponentai
- Grandinės schema
- Node.js sistemos nustatymas
- „Johnny-Five“ bibliotekos diegimas
- Mirksintis šviesos diodas su „Arduino“ ir „Node.js“
- LED ryškumo valdymas naudojant „Arduino“ ir „Node.js“ tinklo serverį
Mes matėme daugybę šviesos diodo mirksėjimo pavyzdžių, naudojant skirtingus mikrovaldiklius ir skirtingas programavimo kalbas. Šiandien mes naudosime labai populiarią „JavaScript“ sistemą „ Node.js“ valdydami šviesos diodą, prijungtą prie „Arduino Uno“. Taip pat naudosime „Node.js“ norėdami valdyti LED ryškumą iš tinklalapio naudodami „Arduino“. Keliais pakeitimais ir naudojant ESP8266, tai galima paversti IoT projektu, kuriame šviesos diodą galima valdyti iš bet kur.
Kas yra Node.js?
„ Node.js“ yra plačiai naudojama „Java“ pagrindu sukurta sistema, sukurta „Google Chrome“ „JavaScript V8“ variklyje ir naudojama kuriant intensyvias įvesties / išvesties žiniatinklio programas, pvz., Vieno puslapio programas, vaizdo įrašų srautinio perdavimo svetaines ir kt.
Anksčiau mes atlikome informacinę pamoką apie „Node.js“ ir „Raspberry Pi“ darbo pradžią, kad galėtume valdyti šviesos diodą. Šioje pamokoje mes laikysimės panašaus požiūrio, ty šviesos diodas bus valdomas dviem būdais, tokiais kaip:
- Paprastas šviesos diodas mirksi rašydamas „JavaScript“ kodą „Node.js“ sistemoje.
- Šviesos diodų ryškumo valdymas naudojant „Node.js“ sistemą ir žiniatinklio sąsają iš bet kurios naršyklės: „Arduino UNO“ veiks kaip interneto serveris, o HTML tinklalapis bus priglobtas asmeniniame kompiuteryje arba nešiojamajame kompiuteryje.
Būtini komponentai
Techninė įranga:
- „Arduino“ UNO valdyba
- Vadovavo
- Rezistorius
Programinė įranga:
- „Arduino IDE“: eskizui įkelti į „Arduino UNO Board“.
- „Firmata“: tai yra ryšio su įvairiais mikrovaldikliais, naudojant programinę įrangą kompiuteryje, išmaniajame telefone ir kt., Protokolas. Firmata programinę-aparatinę programinę įrangą galima įkelti į bet kurią mikrovaldiklio plokštę (pvz., „Arduino“, „Teensy“) ir ji gali kalbėti su bet kuriuo nešiojamuoju kompiuteriu, asmeniniu kompiuteriu ar išmaniuoju telefonu. „Firmata“ bibliotekoje yra „Arduino IDE“, todėl nereikia atsisiųsti iš bet kurios vietos. Mes atlikome „Arduino“ valdymo su „Raspberry Pi“ pamoką, naudojant „pyFirmata“.
- „Johnny-Five“: „ Johnny-Five“ yra „JavaScript“ pagrindu sukurta robotikos ir daiktų interneto platforma, naudojama rašyti kodus „JavaScript“ ir naudojama tiltui tarp „Arduino“ plokščių ir kompiuterio sukurti. „Johnny-Five“ buvo išbandyti naudojant įvairias su „Arduino“ suderinamas lentas, tokias kaip „Arduino UNO“, „NANO“, „Promini“ ir kt. Šioje pamokoje norint atsisiųsti visas „Johnny-Five“ bibliotekas, reikia naudotis visomis jos funkcijomis. Diegimo vadovas bus paaiškintas vėliau šioje pamokoje.
Grandinės schema
Grandinės schema yra labai paprasta, mums tiesiog reikia prijungti šviesos diodą su „Arduino“.Node.js sistemos nustatymas
Prieš pradedant kodavimą ir kūrimą, „Node.js“ reikia atsisiųsti ir sukonfigūruoti. Norėdami atsisiųsti „Node.js“ aplinką, atlikite paprastus veiksmus.
1 žingsnis: - Atsisiųskite „Node.js“.exe failą iš savo oficialios svetainės.
2 žingsnis: - Paleiskite.exe ir vykdykite pateiktas diegimo programos instrukcijas.
3 žingsnis: - Perkraukite kompiuterį, kaip rekomenduojama dokumente „Node.js“, taip pat naudoti visas „Node.js“ funkcijas
4 žingsnis: - Norėdami patikrinti, ar mazgas įdiegtas, atidarykite komandų eilutę ir įveskite mazgą –v
5 žingsnis: - Bus rodoma „Node.js“ versija, nurodanti, kad „Node.js“ yra įdiegtas.
„Johnny-Five“ bibliotekos diegimas
Atsisiuntę „Node.js “, „Dokumentuose “ sukurkite naują aplanką pavadinimu „LED_Control“, kad visi projekto failai būtų laikomi vienoje vietoje. Kiekvienas projekto failas bus laikomas aplanke „ LED_Control “. Dabar atsisiųskite „Johnny-Five“ biblioteką aplanke „ LED_Control “. Norėdami atsisiųsti, atlikite toliau nurodytus veiksmus:
1 veiksmas: - atidarykite komandinę eilutę
2 žingsnis: - Eikite į aplanką „ LED_Control “ vykdydami komandą „ CD “.
3 žingsnis: - Paleiskite komandą „ npm install johnny-five“
4 žingsnis: - Tai įdiegs visas „Johnny-Five“ priklausomybes.
5 žingsnis: - Taip pat įdiekite reikalingas bibliotekas, naudojamas šioje pamokoje, kad galėtumėte valdyti LED ryškumą. Čia naudojamos trys bibliotekos:
- express: HTTP serverio pakuotė
- socket.i o: „WebSockets“ biblioteka
- serialpor t: nuosekliojo prievado pakuotė
5 žingsnis: - Vykdykite toliau pateiktas komandas po vieną, kad įdiegtumėte šias tris bibliotekas.
NPM įdiegti aiškų NPM įdiegti socket.io NPM įdiegti serialport
Kaip pasakojo anksčiau, projektas yra padalintas į dvi dalis:
- Pirma, „ Arduino“ mirksi LED su „Node.js“
- Antra, LED ryškumo valdymas iš interneto sąsajos naudojant „Arduino“ ir „Node.js“.
Mirksintis šviesos diodas su „Arduino“ ir „Node.js“
Norėdami mirksėti šviesos diodu, „Arduino“ turi būti nustatytas taip, kad galėtų bendrauti su kompiuteriu.
„Arduino UNO“ nustatymas mirksinčiam šviesos diodui:
Norint, kad „Arduino UNO“ priimtų komandą iš nešiojamojo kompiuterio į valdymo LED, „Firmata“ programinę-aparatinę įrangą reikia įkelti į „Arduino UNO“. Norėdami įkelti „Firmata“ programinę įrangą, atlikite šiuos paprastus veiksmus:
- Prijunkite „Arduino UNO“ naudodami USB laidą
- Atidarykite „ Arduino IDE“ ir iš „Tools“ pasirinkite „Arduino UNO“ plokštę (jei naudojate kitą plokštę, pasirinkite atitinkamą).
- Pasirinkite prijungtą „Arduino UNO“ atitinkamą COM prievadą
- Dabar raskite „Firmata“ eskizą naudodamiesi meniu -> failas -> pavyzdžiai -> „Firmata“ -> „StandardFirmata“.
- Įkelkite „StandardFirmata“ eskizą eidami į Failas -> Įkelti.
Tai įkels „Firmata“ eskizą į „Arduino UNO“, o dabar „Arduino UNO“ yra pasirengusi priimti bet kokią komandą iš kompiuterio.
„Node.js“ programos rašymas mirksinčiam šviesos diodui:
Norėdami parašyti „Node.js“ programą, atidarykite bet kurį teksto rengyklę („Notepad“, „Notepad ++“ ir kt.) Ir įklijuokite šios pamokos pabaigoje pridėtą kodą „blink_led“ ir išsaugokite jį naudodami „.js“ plėtinį, ty (blink_led.js) anksčiau sukurtame aplanke „LED_Control“. Svarbius veiksmus aptarsime blink_led.js kodo faile.
Iš pradžių nustatykite mikrovaldiklio kaištį, kur prijungtas laidas. Šiame pavyzdyje šviesos diodas yra prijungtas prie „Arduino UNO“ 5 kaiščio. „Node.js“ „var“ reiškia kintamojo deklaraciją.
var led_pin = 5;
Reikia įtraukti „ johnny-five“ modulį ir pasirinkti lentą. „Node.js“ moduliai yra bibliotekos. Funkcija „ reikalauti () “ pasieks modulį.
var johnny_five = reikalauti ("johnny-five"); var arduino_board = new johnny_five.Board ();
„ Console.log“ sakinys yra panašus į ataskaitos spausdinimą ir jis atspausdins pranešimą. LED kaištis yra nustatytas į išėjimo režimą ir nustatomas uždelsimas suteikiamas mirksėti.
console.log ("Šviesos diodas pradėjo mirksėti!"); var led = naujas johnny_five.Led (led_pin); led.blink (100);
Dabar, norėdami paleisti programą, atlikite toliau nurodytus veiksmus:
- Atidarykite komandinę eilutę
- Raskite "LED_Control" aplanke po "cd" komanda
- Vykdykite komandą „Mazgas led_blink.js“. Jei jis bus sėkmingai įvykdytas, bus rodoma „LED pradėjo mirksėti!“ kaip parodyta paveikslėlyje žemiau .
- Šviesos diodas pradės mirksėti „Arduino UNO Pin 5“.
- Tai užbaigia pirmąją mūsų mokymo programos dalį, ty mirksi šviesos diodas su „Node.js“
LED ryškumo valdymas naudojant „Arduino“ ir „Node.js“ tinklo serverį
Panašiai kaip mirksi LED su Node.js, šiame skyriuje taip pat bus keletas dalių, ty „Arduino UNO“ nustatymas, žiniatinklio sąsajos nustatymas ir „Node.js“ programos rašymas.
„Arduino UNO“ nustatymas LED ryškumui valdyti:
Norėdami nustatyti „Arduino UNO“, tiesiog įkelkite eskizą „ arduino_control.ino “ į „Arduino UNO“ plokštę ir viskas. Tai sukurs „Arduino“ valdybą. Čia galite atsisiųsti visą kodą su HTML failais. Kodas „ arduino_control.ino“ turi atlikti šiuos svarbius veiksmus.
Iš pradžių duomenų perdavimo sparta nustatoma 9600.
Serijos pradžia (9600);
Nuoseklusis prievadas visada ieško gaunamo baito, o baitas įrašomas į 5 kontaktą, kuris yra PWM kaištis.
o (! Serial.available ()); analogWrite (5, Serial.read ());
Viskas. Tai nustatys „Arduino“ užfiksuoti baitą į PWM kaištį ir pakeis LED ryškumą.
Interneto sąsajos nustatymas:
Norėdami valdyti LED ryškumą naudodamiesi žiniatinklio sąsaja, parašoma viena nedidelė HTML kodo dalis, kuri turi sąsają naršyklėje. Norėdami turėti sąsają, atlikite toliau nurodytus paprastus veiksmus:
- Sukurti naują aplanką, pavadintą "visuomenė" viduje "LED_Control" sukurtą aplanką anksčiau.
- Dabar atsisiųskite failus „index.html“ ir „style.css“ ir perkelkite abu failus į aplanką „public“, sukurtą atlikus pirmąjį žingsnį. Failus galima atsisiųsti iš čia.
Tai sukurs tinklalapio slankiklį, kad būtų galima valdyti LED ryškumą naudojant „Node.js“ ir „Arduino“.
Valdyti šviesos diodą iš tinklalapio yra įdomu išmokti, ir tai galima padaryti su kitais mikrovaldikliais, sukuriant interneto serverį ir priglobus tinklalapį interneto serveryje. Čia patikrinkite visus su interneto serveriu susijusius projektus.
„Node.js“ programos rašymas norint valdyti šviesos diodų ryškumą:
Kitas žingsnis bus „Brightness_control.js“ eskizo rašymas naudojant „Node.js“ ir kodo vykdymas. Kodo vykdymas bus šiek tiek panašus į šviesos diodo mirksėjimą naudojant „Node.js“.
Norėdami parašyti „Node.js“ programą, atidarykite bet kurį teksto rengyklę („Notepad“, „Notepad ++“ ir kt.) Ir įklijuokite šios programos pabaigoje pridedamą kodą „brightness_control“ ir išsaugokite jį naudodami „.js“ plėtinį, ty (brightness_control.js). anksčiau sukurtame aplanke „LED_Control“. Taip pat galite atsisiųsti kodą iš čia.
Panašiai kaip „Blink Led Node.js“ programoje, šiame skyriuje taip pat bus naudojami moduliai (biblioteka). Įtraukite modulius „express“, „http“ ir „serial port“.
var express = reikalauti ('express'); app = express (); serveris = reikalauti ('http'). createServer (programa); io = reikalauti ('socket.io'). klausytis (serveris); = reikalauti ("serialport") //. SerialPort
Dabar nustatykite COM prievadą ir baudos greitį. Atminkite, kad languose jis visada bus COM su numerio plėtiniu (COM6, COM4, COM24 ir kt.), Todėl nustatykite toliau, kaip reikalaujama po „/“. Taip pat nustatykite buadratą.
var serialPort = nauja SerialPort ("/ COM4", {baudRate: 9600});
Pradėkite klausytis serverio 8080 prievade.
serveris.klausyk (8080);
Iš pradžių nustatykite ryškumą 0. Tada užfiksuokite ryškumo duomenis prie IO su lizdų moduliu, kuris yra interneto lizdo modulis. Duomenys bus gaunami per interneto sąsają naudojant „socket“ protokolą.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { brightness = data.value; var buf = new Buffer (1); buf.writeUInt8 (ryškumas, 0); serialPort.write (buf);
Dabar skleidžia šviesos diodo ryškumo vertę, gautą iš lizdo iki LED kaiščio.
io.sockets.emit ('vedė', {vertė: ryškumas}); }); socket.emit ('vedė', {vertė: ryškumas}); });
Tiesiog norėdami derinti, pabaigoje pridėkite atspausdintą pareiškimą. „Console.log“ yra „Node.js“ spausdinimo ataskaita.
console.log ("Tinklo serveris paleistas, naršyklėje eikite į" http: // localhost: 8080 ".);
Dabar paleiskite programą atlikdami toliau nurodytus veiksmus:
- Atidarykite komandinę eilutę
- Raskite "LED_Control" aplanke po "cd" komanda
- Paleiskite komandą „Node brightness_control.js“. Jei jis bus sėkmingai įvykdytas, jo naršyklėje bus rodoma „Web Server Started“, eikite į „http: // localhost: 8080“. šiek tiek žemiau komandos .
- Dabar eikite į savo naršyklę ir URL įveskite „localhost: 8080“.
- Norėdami pakeisti ryškumą, tiesiog perkelkite slankiklį nuo 0 iki 255 reikšmių.
Visą kodą ir darbo vaizdo Abu skyriuje pridedamas žemiau. Be to, jei turite kokių nors abejonių ar pasiūlymų, galite susisiekti su mumis per forumą arba komentarą žemiau. Visus kodo failus taip pat galima atsisiųsti iš čia.