- Ano ang Node.js?
- Kinakailangan ang Mga Bahagi
- Diagram ng Circuit
- Pag-set up ng Node.js Framework
- Pag-install ng Johnny-Five Library
- Blinking LED kasama ang Arduino at Node.js
- Pagkontrol sa Liwanag ng LED gamit ang Arduino at Node.js Webserver
Nakita namin ang maraming mga halimbawa ng Blinking isang LED gamit ang iba't ibang mga Microcontroller at iba't ibang mga wika ng programa. Ngayon, gagamit kami ng isang tanyag na balangkas ng JavaScript na Node.js upang makontrol ang LED na konektado sa Arduino Uno. Gagamitin din namin ang Node.js upang makontrol ang liwanag ng LED mula sa isang webpage gamit ang Arduino. Sa pamamagitan ng ilang mga pag-aayos at paggamit ng ESP8266, maaari itong mai-convert sa isang proyekto ng IoT kung saan maaaring makontrol ang LED mula saanman.
Ano ang Node.js?
Ang Node.js ay isang malawakang ginamit na balangkas na batay sa JavaScript na itinayo sa JavaScript ng V8 Engine ng Google Chrome at inilapat sa pagbuo ng I / O masinsinang mga web application tulad ng mga solong pahina na application, mga video streaming site atbp
Natapos namin ang isang impormasyong nagbibigay kaalaman dati sa pagsisimula sa Node.js at Raspberry Pi upang makontrol ang isang LED. Sa tutorial na ito, susundan namin ang magkatulad na diskarte hal, ang LED ay makokontrol gamit ang dalawang pamamaraan tulad ng:
- Simpleng LED blink sa pamamagitan ng pagsulat ng isang JavaScript code sa balangkas ng Node.js.
- Control ng Liwanag ng LED Gamit ang balangkas ng Node.js at isang web interface mula sa anumang browser: Ang Arduino UNO ay kikilos bilang isang webserver at ang web page ng HTML ay mai-host sa isang PC o Laptop.
Kinakailangan ang Mga Bahagi
Hardware:
- Arduino UNO Board
- Pinangunahan
- Resistor
Software:
- Arduino IDE: Para sa pag-upload ng sketch sa Arduino UNO Board.
- Firmata: Ito ay isang protokol para sa pakikipag-usap sa iba't ibang mga microcontroller mula sa software sa isang computer, smartphone, atbp. Ang Firmata firmware ay maaaring mai-load sa anumang board ng microcontroller (tulad ng Arduino, Teensy) at makakausap ang anumang laptop, PC o smartphone. Ang Firmata Library ay mayroong Arduino IDE, kaya't hindi na kailangang mag-download mula sa kahit saan. Natapos na namin ang isang tutorial sa pagkontrol sa Arduino sa Raspberry Pi gamit ang pyFirmata.
- Johnny-Five: Johnny-Five ay ang JavaScript Base Robotics at IoT platform na ginamit upang magsulat ng mga code sa JavaScript at Ginamit upang makagawa ng tulay sa pagitan ng Arduino Boards at Computer. Ang Johnny-Five ay nasubukan na may iba't ibang mga Arduino na katugmang Mga Lupon tulad ng Arduino UNO, NANO, Promini, atbp. Sa tutorial na ito, ang Johnny-Five library ay kailangang i-download upang magamit ang lahat ng mga tampok nito. Ang gabay sa pag-install ay ipapaliwanag sa susunod sa tutorial na ito.
Diagram ng Circuit
Napaka-basic ng diagram ng circuit, kailangan lang naming kumonekta sa isang LED kasama ng Arduino.Pag-set up ng Node.js Framework
Bago simulan ang pag-coding at pag-unlad, ang Node.js ay kailangang i-download at i-set up. Para sa pag-download ng kapaligiran sa Node.js sundin lamang ang mga simpleng hakbang.
Hakbang 1: - I - download ang.exe file ng Node.js mula sa opisyal na website.
Hakbang 2: - Patakbuhin ang.exe at sundin ang mga ibinigay na tagubilin sa installer.
Hakbang 3: - I - restart ang iyong computer dahil inirerekumenda ito sa Node.js Document at gamitin din ang lahat ng mga tampok ng Node.js
Hakbang 4: - Upang suriin kung na-install na ang node, buksan ang Command Prompt at i-type ang Node –v
Hakbang 5: - Ang bersyon ng Node.js ay ipapakita na nagpapahiwatig na naka-install ang Node.js.
Pag-install ng Johnny-Five Library
Ngayon pagkatapos i-download ang Node.js, lumikha ng isang bagong Folder na pinangalanang "LED_Control" sa Mga Dokumento upang mapanatili ang lahat ng mga file ng proyekto sa isang lugar. Ang bawat file ng proyekto ay itatago sa folder na " LED_Control ". I-download ngayon ang Johnny-Five Library sa folder na " LED_Control ". Upang mag-download, sundin ang mga hakbang sa ibaba:
Hakbang 1: - Buksan ang Prompt ng Command
Hakbang 2: - Pumunta sa Folder na " LED_Control " sa pamamagitan ng pagsunod sa utos na ' cd '.
Hakbang 3: - Patakbuhin ang Command ' npm install johnny-five'
Hakbang 4: - I -install nito ang lahat ng mga dependency ng Johnny-Five.
Hakbang 5: - Mag- install din ng mga kinakailangang aklatan na ginamit sa tutorial na ito para sa pagkontrol ng liwanag ng LED. Mayroong tatlong mga silid aklatan na ginamit dito:
- ipahayag: HTTP server wrapper
- socket.i o: WebSockets library
- serialpor t: Serial port wrapper
Hakbang 5: - Patakbuhin ang mga utos sa ibaba isa-isa upang mai-install ang tatlong mga aklatan na ito.
npm i-install ang express npm i-install ang socket.io npm i-install ang serialport
Tulad ng sinabi sa mas maaga ang proyekto ay nahahati sa dalawang bahagi:
- Una, Arduino Blinking LED na may Node.js
- Pangalawa, Pagkontrol sa Liwanag ng LED mula sa web interface gamit ang Arduino at Node.js.
Blinking LED kasama ang Arduino at Node.js
Upang kumurap ng LED, ang Arduino ay dapat na I-set up upang makipag-usap sa Computer.
Pag-set up ng Arduino UNO para sa Blinking LED:
Upang matanggap ang Arduino UNO ng utos mula sa Laptop to Control LED, ang Firmata firmware ay kailangang mai-load sa Arduino UNO. Upang mai-load ang Firmata Firmware, sundin lamang ang mga simpleng hakbang na ito:
- Ikonekta ang Arduino UNO gamit ang USB cable
- Buksan ang Arduino IDE at piliin ang Arduino UNO board (Kung gumagamit ng iba pang board pagkatapos ay piliin ang kani-kanilang isa) mula sa Mga Tool.
- Piliin ang Port ng Gumagalang COM ng konektado sa Arduino UNO
- Hanapin ngayon ang Firmata Sketch gamit ang Menu -> File -> Mga Halimbawa -> Firmata -> StandardFirmata.
- I-upload ang sketch na "StandardFirmata" sa pamamagitan ng pagpunta sa File -> I-upload.
Ilo-load nito ang Firmata Sketch papunta sa Arduino UNO at ngayon ang Arduino UNO ay handa nang tanggapin ang anumang utos mula sa computer.
Pagsusulat ng Node.js na programa para sa Blinking LED:
Upang magsulat ng isang program na Node.js buksan ang anumang text editor (Notepad, Notepad ++, atbp.) At i-paste ang code na 'blink_led' na nakakabit sa dulo ng tutorial na ito at i-save ito sa isang extension ng '.js' ie (blink_led.js) sa folder na "LED_Control" na nilikha dati. Tatalakayin namin ang mahahalagang hakbang sa blink_led.js code file.
Paunang tukuyin ang Pin ng microcontroller kung saan ang led ay konektado. Sa halimbawang ito, ang LED ay konektado sa Pin 5 ng Arduino UNO. Ang 'var' sa Node.js ay kumakatawan sa variable na deklarasyon.
var led_pin = 5;
Ang johnny-five module ay kailangang isama at ang board ay kailangang mapili. Ang mga modyul sa Node.js ay mga aklatan. Ang function na ' nangangailangan () ' ay maa-access ang module.
var johnny_five = nangangailangan ("johnny-five"); var arduino_board = bagong johnny_five.Board ();
Ang pahayag ng console.log ay katulad ng pahayag sa pag-print at magpi-print ito ng mensahe. At ang LED pin ay nakatakda sa output mode at ang tinukoy na pagkaantala ay ibinibigay sa blink led.
console.log ("Nagsimula ang Blinking!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Ngayon upang patakbuhin ang programa sundin ang mga hakbang sa ibaba:
- Buksan ang Command Prompt
- Hanapin ang folder na "LED_Control" sa pamamagitan ng pagsunod sa utos ng 'cd'
- Patakbuhin ang utos na 'Node led_blink.js'. Kung matagumpay na naisagawa ay ipapakita nito ang "LED has Started Blinking!" tulad ng ipinakita sa imahe sa ibaba .
- Ang nangunguna ay magsisimulang kumurap sa Arduino UNO Pin 5.
- At tinatapos nito ang unang bahagi ng aming tutorial ie Blinking LED na may Node.js
Pagkontrol sa Liwanag ng LED gamit ang Arduino at Node.js Webserver
Katulad ng Blinking isang LED na may Node.js, ang seksyon na ito ay magkakaroon din ng ilang mga bahagi ie ie-set up ng Arduino UNO, Pagse-set up ng Web Interface at Pagsulat ng isang programa na Node.js.
Pagse-set up ng Arduino UNO upang makontrol ang Liwanag ng LED:
Upang mai- set up ang Arduino UNO, i-upload lamang ang sketch na " arduino_control.ino " sa Arduino UNO board at iyon lang. Ise-set up nito ang Arduino Board. Maaari mong i-download ang kumpletong code na may mga HTML file mula rito. Ang code na " arduino_control.ino" ay sumusunod sa mahahalagang hakbang na kasangkot.
Sa una ang rate ng baud ay nakatakda sa 9600.
Serial.begin (9600);
Ang serial port ay laging naghahanap ng papasok na byte at ang byte ay nakasulat sa Pin 5 na isang PWM Pin.
habang (! Serial.available ()); analogWrite (5, Serial.read ());
Ayan yun. Itatakda nito ang Arduino upang mailagay ang byte sa PWM pin at babaguhin ang ningning ng LED.
Pagse-set up ng Web Interface:
Upang makontrol ang liwanag ng humantong gamit ang web interface, isang maliit na piraso ng HTML code ang nakasulat upang magkaroon ng isang interface sa Browser. Upang masundan ang interface ng mga simpleng hakbang sa ibaba:
- Lumikha ng isang bagong folder na pinangalanang "pampubliko" sa loob ng folder na "LED_Control" na nilikha dati.
- I-download ngayon ang mga file na "index.html" at "style.css" at ilipat ang parehong mga file sa loob ng folder na "publiko" na nilikha sa unang hakbang sa itaas. Maaaring mai-download ang mga file mula rito.
Lilikha ito ng isang slider sa webpage upang makontrol ang liwanag ng LED gamit ang Node.js at Arduino.
Ang pagkontrol ng isang LED mula sa webpage ay kagiliw-giliw na matutunan at magagawa ito sa iba pang microcontroller sa pamamagitan ng paglikha ng isang webserver at i-host ang webpage sa webserver. Suriin dito ang lahat ng mga proyekto na nauugnay sa webserver.
Pagsusulat ng Node.js na programa upang makontrol ang Liwanag ng LED:
Susunod na hakbang ay ang pagsusulat ng sketch na "brightness_control.js" gamit ang Node.js at pagpapatupad ng code. Ang pagpapatupad ng code ay magiging katulad ng Blinking isang LED na may Node.js.
Upang magsulat ng isang program na Node.js buksan ang anumang text editor (Notepad, Notepad ++, atbp.) At i-paste ang 'brightness_control ” code na naka-attach sa dulo ng tutorial na ito at i-save ito sa isang extension ng '.js ' ie (brightness_control.js) sa folder na "LED_Control" na nilikha dati. Maaari mo ring i-download ang code mula dito.
Katulad ng Blink Led Node.js na programa, ang seksyon na ito ay gagamit din ng mga module (library). Isama ang module na 'express', 'http' at 'serial port'.
var express = nangangailangan ('express'); app = express (); server = nangangailangan ('http'). createServer (app); io = nangangailangan ('socket.io'). makinig (server); var SerialPort = nangangailangan ("serialport") //. SerialPort
Itakda ngayon ang COM port at baudrate. Tandaan na sa mga bintana, palagi itong magiging COM na may extension ng numero (COM6, COM4, COM24 atbp.), Kaya't itakda sa ibaba kung kinakailangan pagkatapos ng '/'. Itakda din ang buadrate.
var serialPort = bagong SerialPort ("/ COM4", {baudRate: 9600});
Simulang makinig sa server sa port 8080.
server.listen (8080);
Itakda ang liwanag sa 0 una. Pagkatapos ay ilagay ang data ng ningning sa IO na may mga socket module, na isang websocket module. Ang data ay tatanggap ng Web Interface gamit ang socket protocol.
io.sockets.on ('koneksyon', pagpapaandar (socket) { socket.on ('led', function (data) { brightness = data.value; var buf = new Buffer (1); buf.writeUInt8 (brightness, 0); serialPort.write (buf);
Ngayon naglalabas ng LED na halaga ng ningning na nakuha mula sa socket hanggang sa LED pin.
io.sockets.emit ('led', {halaga: ningning}); }); socket.emit ('led', {halaga: ningning}); });
Ngayon lamang upang mai-debug, magdagdag ng isang pahayag na naka-print sa dulo. Ang Console.log ay isang pahayag na naka-print sa Node.js.
console.log ("Nagsimula ang Web Server pumunta sa 'http: // localhost: 8080' sa iyong Browser.");
Ngayon upang patakbuhin ang programa sa pamamagitan ng pagsunod sa mga hakbang sa ibaba:
- Buksan ang Command Prompt
- Hanapin ang folder na "LED_Control" sa pamamagitan ng pagsunod sa utos ng 'cd'
- Patakbuhin ang utos na 'Node brightness_control.js'. Kung matagumpay na naisagawa ay ipapakita nito ang "Nagsimula ang Web Server pumunta sa" http: // localhost: 8080 "sa iyong Browser." sa ibaba lamang ng utos .
- Pumunta ngayon sa iyong browser at i-type ang "localhost: 8080" sa url.
- Upang baguhin ang liwanag ilipat lamang ang slider mula sa 0-255 na halaga.
Ang kumpletong code at gumaganang video ng parehong seksyon ay nakakabit sa ibaba. Gayundin kung mayroon kang anumang pagdududa o mungkahi maabot mo kami sa pamamagitan ng forum o puna sa ibaba. Maaari ring mai-download ang lahat ng mga file ng code mula dito.