- Apa itu Node.js?
- Komponen Diperlukan
- Diagram Sirkuit
- Menyiapkan Kerangka Node.js
- Memasang Johnny-Five Library
- LED berkedip dengan Arduino dan Node.js
- Mengontrol Kecerahan LED menggunakan Arduino dan Node.js Webserver
Kami telah melihat banyak contoh Berkedip LED menggunakan Mikrokontroler yang berbeda dan bahasa pemrograman yang berbeda. Hari ini, kita akan menggunakan framework JavaScript Node.js yang sangat populer untuk mengontrol LED yang terhubung ke Arduino Uno. Kami juga akan menggunakan Node.js untuk mengontrol kecerahan LED dari halaman web menggunakan Arduino. Dengan beberapa penyesuaian dan menggunakan ESP8266, ini dapat diubah menjadi proyek IoT di mana LED dapat dikontrol dari mana saja.
Apa itu Node.js?
The Node.js adalah banyak digunakan kerangka kerja berbasis JavaScript dibangun di atas JavaScript V8 mesin Google Chrome dan diterapkan dalam mengembangkan I / O aplikasi web yang intensif seperti aplikasi satu halaman, streaming video situs dll
Kami telah melakukan tutorial informatif sebelumnya tentang Memulai dengan Node.js dan Raspberry Pi untuk mengontrol LED. Dalam tutorial ini, kita akan mengikuti pendekatan serupa yaitu LED akan dikontrol menggunakan dua metode seperti:
- LED sederhana berkedip dengan menulis kode JavaScript di framework Node.js.
- Kontrol Kecerahan LED Menggunakan kerangka kerja Node.js dan antarmuka web dari browser apa pun: Arduino UNO akan bertindak sebagai server web dan halaman web HTML akan dihosting di PC atau Laptop.
Komponen Diperlukan
Perangkat keras:
- Dewan Arduino UNO
- LED
- Penghambat
Perangkat lunak:
- Arduino IDE: Untuk mengunggah sketsa ke Arduino UNO Board.
- Firmata: Ini adalah protokol untuk berkomunikasi dengan mikrokontroler yang berbeda dari perangkat lunak di komputer, smartphone, dll. Firmata firmware dapat dimuat di papan mikrokontroler apa pun (seperti Arduino, Teensy) dan dapat berbicara dengan laptop, PC atau smartphone apa pun. Perpustakaan Firmata hadir dengan Arduino IDE, jadi tidak perlu mengunduh dari mana pun. Kami telah melakukan tutorial tentang mengendalikan Arduino dengan Raspberry Pi menggunakan pyFirmata.
- Johnny-Five: Johnny-Five adalah Platform Robotika dan IoT Berbasis JavaScript yang digunakan untuk menulis kode dalam JavaScript dan Digunakan untuk menjembatani antara Arduino Boards dan Komputer. Johnny-Five telah diuji dengan berbagai Papan yang kompatibel dengan Arduino seperti Arduino UNO, NANO, Promini, dll. Dalam tutorial ini, perpustakaan Johnny-Five harus diunduh untuk menggunakan semua fiturnya. Panduan instalasi akan dijelaskan nanti dalam tutorial ini.
Diagram Sirkuit
Diagram sirkuit sangat mendasar, kita hanya perlu menghubungkan LED dengan Arduino.Menyiapkan Kerangka Node.js
Sebelum memulai pengkodean dan pengembangan, Node.js harus diunduh dan disiapkan. Untuk mengunduh lingkungan Node.js cukup ikuti langkah-langkah sederhana.
Langkah 1: - Unduh file.exe Node.js dari situs resminya.
Langkah 2: - Jalankan.exe dan ikuti instruksi yang diberikan di penginstal.
Langkah 3: - Restart komputer Anda seperti yang disarankan dalam Dokumen Node.js dan juga untuk menggunakan semua fitur Node.js
Langkah 4: - Untuk memeriksa apakah node telah diinstal, buka Command Prompt dan ketik Node –v
Langkah 5: - Versi Node.js akan ditampilkan yang menunjukkan Node.js diinstal.
Memasang Johnny-Five Library
Sekarang setelah mengunduh Node.js, buat Folder baru bernama "LED_Control" di Dokumen untuk menyimpan semua file proyek di satu tempat. Setiap file proyek akan disimpan di folder " LED_Control ". Sekarang unduh Johnny-Five Library di folder " LED_Control ". Untuk mengunduh, ikuti langkah-langkah di bawah ini:
Langkah 1: - Buka Command Prompt
Langkah 2: - Buka Folder " LED_Control " dengan mengikuti perintah ' cd '.
Langkah 3: - Jalankan Command ' npm install johnny-five'
Langkah 4: - Ini akan menginstal semua dependensi Johnny-Five.
Langkah 5: - Instal juga pustaka yang diperlukan yang digunakan dalam tutorial ini untuk mengontrol kecerahan LED. Ada tiga perpustakaan yang digunakan di sini:
- express: Pembungkus server
- socket.i o: perpustakaan WebSockets
- serialpor t: Pembungkus port serial
Langkah 5: - Jalankan perintah di bawah ini satu per satu untuk menginstal ketiga perpustakaan ini.
npm install express npm install socket.io npm install serialport
Seperti yang diceritakan sebelumnya, proyek ini dibagi menjadi dua bagian:
- Pertama, Arduino Blinking LED dengan Node.js
- Kedua, Mengontrol Kecerahan LED dari antarmuka web menggunakan Arduino dan Node.js.
LED berkedip dengan Arduino dan Node.js
Untuk mengedipkan LED, Arduino harus diatur untuk berkomunikasi dengan Komputer.
Menyiapkan Arduino UNO untuk LED Berkedip:
Agar Arduino UNO menerima perintah dari Laptop ke Control LED, firmware Firmata harus di-load ke Arduino UNO. Untuk memuat Firmata Firmware, cukup ikuti langkah-langkah sederhana ini:
- Hubungkan Arduino UNO menggunakan kabel USB
- Buka Arduino IDE dan pilih papan Arduino UNO (Jika menggunakan papan lain, pilih masing-masing) dari Alat.
- Pilih port COM masing-masing dari Arduino UNO yang terhubung
- Sekarang temukan Firmata Sketch menggunakan Menu -> File -> Example -> Firmata -> StandardFirmata.
- Unggah sketsa "StandardFirmata" dengan membuka File -> Unggah.
Ini akan memuat Firmata Sketch ke Arduino UNO dan sekarang Arduino UNO siap menerima perintah apa pun dari komputer.
Penulisan program Node.js untuk Blinking LED:
Untuk menulis program Node.js, buka editor teks apa saja (Notepad, Notepad ++, dll.) Dan tempel kode 'blink_led' yang dilampirkan di akhir tutorial ini dan simpan dengan ekstensi '.js' yaitu (blink_led.js) di folder "LED_Control" yang dibuat sebelumnya. Kami akan membahas langkah-langkah penting dalam file kode blink_led.js.
Awalnya tentukan Pin mikrokontroler tempat led terhubung. Dalam contoh ini, LED terhubung ke Pin 5 Arduino UNO. 'Var' di Node.js mewakili deklarasi variabel.
var led_pin = 5;
The johnny-lima modul kebutuhan untuk dimasukkan dan kebutuhan papan untuk dipilih. Modul di Node.js adalah perpustakaan. Fungsi ' require () ' akan mengakses modul.
var johnny_five = membutuhkan ("johnny-five"); var arduino_board = new johnny_five.Board ();
The console.log pernyataan ini mirip dengan pernyataan cetak dan akan mencetak pesan. Dan pin LED diatur ke mode output dan penundaan yang ditentukan diberikan ke led berkedip.
console.log ("LED Telah Mulai Berkedip!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Sekarang untuk menjalankan program ikuti langkah-langkah di bawah ini:
- Buka Command Prompt
- Cari folder "LED_Control" dengan mengikuti perintah 'cd'
- Jalankan perintah 'Node led_blink.js'. Jika berhasil dijalankan maka akan muncul tampilan "LED has Started Blinking!" seperti yang ditunjukkan pada gambar di bawah ini .
- LED akan mulai berkedip di Arduino UNO Pin 5.
- Dan ini menyelesaikan bagian pertama dari tutorial kita yaitu Blinking LED dengan Node.js
Mengontrol Kecerahan LED menggunakan Arduino dan Node.js Webserver
Mirip dengan Blinking LED dengan Node.js, bagian ini juga akan memiliki beberapa bagian yaitu Menyiapkan Arduino UNO, Menyiapkan Antarmuka Web dan Menulis program Node.js.
Menyiapkan Arduino UNO untuk mengontrol Kecerahan LED:
Untuk mengatur Arduino UNO, cukup unggah sketsa “ arduino_control.ino ” ke papan Arduino UNO dan hanya itu. Ini akan mengatur Papan Arduino. Anda dapat mengunduh kode lengkap dengan file HTML dari sini. Kode " arduino_control.ino" mengikuti langkah-langkah penting berikut ini.
Awalnya baud rate diatur pada 9600.
Serial.begin (9600);
Port serial selalu mencari byte yang masuk dan byte tersebut ditulis ke Pin 5 yang merupakan Pin PWM.
while (! Serial.available ()); analogWrite (5, Serial.read ());
Itu dia. Ini akan mengatur Arduino untuk mengunci byte ke pin PWM dan akan mengubah kecerahan LED.
Menyiapkan Antarmuka Web:
Untuk mengontrol kecerahan led menggunakan antarmuka web, sepotong kecil kode HTML ditulis untuk memiliki antarmuka di Browser. Untuk memiliki antarmuka, ikuti langkah-langkah sederhana di bawah ini:
- Buat folder baru bernama "publik" di dalam folder "LED_Control" yang dibuat sebelumnya.
- Sekarang unduh file "index.html" dan "style.css" dan pindahkan kedua file ke dalam folder "publik" yang dibuat pada langkah pertama di atas. File dapat diunduh dari sini.
Ini akan membuat slider di halaman web untuk mengontrol kecerahan LED menggunakan Node.js dan Arduino.
Mengontrol LED dari halaman web menarik untuk dipelajari dan dapat dilakukan dengan mikrokontroler lain dengan membuat webserver dan menghosting halaman web di webserver. Periksa semua proyek terkait server web di sini.
Penulisan program Node.js untuk mengontrol Brightness of LED:
Langkah selanjutnya adalah menulis sketsa “brightness_control.js” menggunakan Node.js dan mengeksekusi kodenya. Eksekusi kode akan sedikit mirip dengan Berkedip LED dengan Node.js.
Untuk menulis program Node.js, buka editor teks apa saja (Notepad, Notepad ++, dll.) Dan tempel kode 'brightness_control ”yang dilampirkan di akhir tutorial ini dan simpan dengan ekstensi '.js ' ie (brightness_control.js) di folder "LED_Control" yang dibuat sebelumnya. Anda juga dapat mengunduh kode dari sini.
Mirip dengan program Blink Led Node.js, bagian ini juga akan menggunakan modul (library). Sertakan modul 'express', 'http' dan 'serial port'.
var express = membutuhkan ('express'); app = express (); server = membutuhkan ('http'). createServer (app); io = membutuhkan ('socket.io']. mendengarkan (server); var SerialPort = membutuhkan ("serialport") //. SerialPort
Sekarang atur port COM dan baudrate. Perhatikan bahwa di windows, itu akan selalu COM dengan ekstensi nomor (COM6, COM4, COM24 dll), jadi setel di bawah ini sesuai kebutuhan setelah '/'. Atur juga buadrate.
var serialPort = new SerialPort ("/ COM4", {baudRate: 9600});
Mulailah mendengarkan server di port 8080.
server.listen (8080);
Atur kecerahan pada 0 pada awalnya. Kemudian kaitkan data kecerahan ke IO dengan modul soket, yang merupakan modul websocket. Data tersebut akan diterima oleh Web Interface menggunakan protokol socket.
io.sockets.on ('koneksi', fungsi (soket) { socket.on ('led', function (data) { brightness = data.value; var buf = new Buffer (1); buf.writeUInt8 (kecerahan, 0); serialPort.write (buf);
Sekarang pancarkan nilai kecerahan LED yang didapat dari soket ke pin LED.
io.sockets.emit ('led', {value: brightness}); }); socket.emit ('led', {value: brightness}); });
Sekarang hanya untuk men-debug, tambahkan pernyataan cetak di bagian akhir. Console.log adalah pernyataan cetak di Node.js.
console.log ("Server Web Dimulai, buka 'http: // localhost: 8080' di Browser Anda.");
Sekarang untuk menjalankan program dengan mengikuti langkah-langkah di bawah ini:
- Buka Command Prompt
- Cari folder "LED_Control" dengan mengikuti perintah 'cd'
- Jalankan perintah 'Node brightness_control.js'. Jika berhasil dijalankan maka akan muncul "Web Server Started pergi ke" http: // localhost: 8080 "di Browser Anda." tepat di bawah perintah .
- Sekarang masuk ke browser Anda dan ketik "localhost: 8080" di url.
- Untuk mengubah kecerahan cukup pindahkan slider dari nilai 0-255.
The kode lengkap dan video bekerja dari kedua bagian terlampir di bawah ini. Juga jika Anda memiliki keraguan atau saran, Anda dapat menghubungi kami melalui forum atau komentar di bawah ini. Semua file kode juga dapat diunduh dari sini.