- Apa itu Node.js?
- Komponen Diperlukan
- Rajah Litar
- Menyiapkan Rangka Kerja Node.js
- Memasang Perpustakaan Johnny-Five
- LED berkelip dengan Arduino dan Node.js
- Mengawal Kecerahan LED menggunakan Arduino dan Node.js Webserver
Kami telah melihat banyak contoh Mengedipkan LED menggunakan Mikrokontroler yang berbeza dan bahasa pengaturcaraan yang berbeza. Hari ini, kami akan menggunakan Node.js framework JavaScript yang sangat popular untuk mengawal LED yang disambungkan ke Arduino Uno. Kami juga akan menggunakan Node.js untuk mengawal kecerahan LED dari laman web menggunakan Arduino. Dengan sedikit perubahan dan menggunakan ESP8266, ini dapat diubah menjadi projek IoT di mana LED dapat dikendalikan dari mana saja.
Apa itu Node.js?
The Node.js adalah kerangka kerja JavaScript yang digunakan secara meluas yang dibina di Mesin V8 JavaScript Google Chrome dan diterapkan dalam mengembangkan aplikasi web intensif I / O seperti aplikasi satu halaman, laman streaming video dll.
Kami telah melakukan tutorial informatif sebelumnya mengenai Bermula dengan Node.js dan Raspberry Pi untuk mengawal LED. Dalam tutorial ini, kita akan mengikuti pendekatan yang serupa iaitu LED akan dikendalikan menggunakan dua kaedah seperti:
- LED sederhana berkelip dengan menulis kod JavaScript dalam kerangka Node.js.
- LED Brightness Control Menggunakan kerangka Node.js dan antara muka web dari mana-mana penyemak imbas: Arduino UNO akan bertindak sebagai pelayan laman web dan laman web HTML akan dihoskan di PC atau Laptop.
Komponen Diperlukan
Perkakasan:
- Lembaga Arduino UNO
- Diketuai
- Perintang
Perisian:
- Arduino IDE: Untuk memuat naik lakaran ke Arduino UNO Board.
- Firmata: Ini adalah protokol untuk berkomunikasi dengan mikrokontroler yang berbeza dari perisian pada komputer, telefon pintar, dll. Firmata firmware boleh dimuat di mana-mana papan mikrokontroler (seperti Arduino, Teensy) dan dapat bercakap dengan komputer riba, PC atau telefon pintar mana pun. Perpustakaan Firmata dilengkapi dengan Arduino IDE, jadi tidak perlu memuat turun dari mana saja. Kami telah melakukan tutorial mengendalikan Arduino dengan Raspberry Pi menggunakan pyFirmata.
- Johnny-Five: Johnny-Five adalah platform Robotik Berasaskan JavaScript dan IoT yang digunakan untuk menulis kod dalam JavaScript dan Digunakan untuk membuat jambatan antara Arduino Boards dan Computer. Johnny-Five telah diuji dengan pelbagai Papan yang serasi dengan Arduino seperti Arduino UNO, NANO, Promini, dan lain-lain. Dalam tutorial ini, perpustakaan Johnny-Five harus dimuat turun untuk menggunakan semua ciri-cirinya. Panduan pemasangan akan dijelaskan kemudian dalam tutorial ini.
Rajah Litar
Gambarajah litar sangat asas, kita hanya perlu menyambungkan LED dengan Arduino.Menyiapkan Rangka Kerja Node.js
Sebelum memulakan pengekodan dan pengembangan, Node.js mesti dimuat turun dan disediakan. Untuk memuat turun persekitaran Node.js ikuti langkah mudah.
Langkah 1: - Muat turun fail.exe Node.js dari laman web rasminya.
Langkah 2: - Jalankan.exe dan ikuti arahan yang diberikan dalam pemasang.
Langkah 3: - Hidupkan semula komputer anda seperti yang disarankan dalam Dokumen Node.js dan juga gunakan semua ciri Node.js
Langkah 4: - Untuk memeriksa apakah node telah dipasang, buka Prompt Perintah dan ketik Node –v
Langkah 5: - Versi Node.js akan dipaparkan menunjukkan Node.js dipasang.
Memasang Perpustakaan Johnny-Five
Sekarang setelah memuat turun Node.js, buat Folder baru bernama "LED_Control" dalam Dokumen untuk menyimpan semua fail projek di satu tempat. Setiap fail projek akan disimpan dalam folder " LED_Control ". Sekarang muat turun Perpustakaan Johnny-Five dalam folder " LED_Control ". Untuk memuat turun, ikuti langkah di bawah:
Langkah 1: - Buka Prompt Perintah
Langkah 2: - Pergi ke Folder " LED_Control " dengan mengikuti arahan ' cd '.
Langkah 3: - Jalankan Perintah ' npm install johnny-five'
Langkah 4: - Ini akan memasang semua kebergantungan Johnny-Five.
Langkah 5: - Pasang juga perpustakaan yang diperlukan yang digunakan dalam tutorial ini untuk mengawal kecerahan LED. Terdapat tiga perpustakaan yang digunakan di sini:
- express: Pembungkus pelayan
- socket.i o: Perpustakaan WebSockets
- serialpor t: Pembungkus port bersiri
Langkah 5: - Jalankan arahan di bawah ini satu demi satu untuk memasang tiga perpustakaan ini.
npm pasang express npm pasang socket.io npm pasang serialport
Seperti yang diberitahu sebelumnya, projek ini terbahagi kepada dua bahagian:
- Pertama, Arduino Blinking LED dengan Node.js
- Kedua, Mengawal Kecerahan LED dari antara muka web menggunakan Arduino dan Node.js.
LED berkelip dengan Arduino dan Node.js
Untuk mengedipkan LED, Arduino harus disiapkan untuk berkomunikasi dengan Komputer.
Menyiapkan Arduino UNO untuk LED Berkedip:
Untuk membuat Arduino UNO menerima arahan dari Laptop ke Control LED, firmware Firmata harus dimuat ke Arduino UNO. Untuk memuatkan Firmata Firmware, ikuti langkah mudah berikut:
- Sambungkan Arduino UNO menggunakan kabel USB
- Buka Arduino IDE dan pilih papan Arduino UNO (Jika menggunakan papan lain maka pilih yang lain) dari Alat.
- Pilih port COM masing-masing dari Arduino UNO yang bersambung
- Sekarang cari Sketsa Firmata menggunakan Menu -> Fail -> Contoh -> Firmata -> StandardFirmata.
- Muat naik lakaran "StandardFirmata" dengan pergi ke Fail -> Muat naik.
Ini akan memuatkan Sketsa Firmata ke Arduino UNO dan sekarang Arduino UNO bersedia menerima sebarang arahan dari komputer.
Menulis program Node.js untuk LED Berkedip:
Untuk menulis program Node.js buka mana-mana editor teks (Notepad, Notepad ++, dll.) Dan tampal kod 'blink_led' yang dilampirkan pada akhir tutorial ini dan simpan dengan pelanjutan '.js' iaitu (blink_led.js) dalam folder "LED_Control" yang dibuat sebelumnya. Kami akan membincangkan langkah-langkah penting dalam fail kod blink_led.js.
Mula-mula menentukan Pin mikrokontroler di mana dipimpin disambungkan. Dalam contoh ini, LED disambungkan ke Pin 5 dari Arduino UNO. The 'var' dalam Node.js mewakili deklarasi berubah-ubah
var led_pin = 5;
The johnny lima modul yang perlu dimasukkan dan keperluan kapal untuk dipilih. Modul di Node.js adalah perpustakaan. Fungsi ' memerlukan () ' akan mengakses modul.
var johnny_five = memerlukan ("johnny-lima"); var arduino_board = johnny_five.Board baru ();
The console.log kenyataan adalah sama dengan kenyataan cetak dan ia akan mencetak mesej. Dan pin LED diatur ke mod output dan kelewatan yang ditentukan diberikan kepada lampu berkedip.
console.log ("LED telah mula berkelip!"); var led = johnny_five.Led baru (led_pin); led.blink (100);
Sekarang untuk menjalankan program ikuti langkah-langkah di bawah:
- Buka Prompt Perintah
- Cari folder "LED_Control" dengan mengikuti arahan 'cd'
- Jalankan arahan 'Node led_blink.js'. Sekiranya berjaya dilaksanakan, ia akan menunjukkan "LED Telah Mula Berkelip!" seperti yang ditunjukkan dalam gambar di bawah .
- LED akan mula berkelip di Arduino UNO Pin 5.
- Dan ini menyelesaikan bahagian pertama tutorial kami iaitu Blinking LED dengan Node.js
Mengawal Kecerahan LED menggunakan Arduino dan Node.js Webserver
Mirip dengan Berkedip LED dengan Node.js, bahagian ini juga akan mempunyai beberapa bahagian iaitu Menyiapkan Arduino UNO, Menyiapkan Antaramuka Web dan Menulis program Node.js.
Menyiapkan Arduino UNO untuk mengawal Kecerahan LED:
Untuk menyiapkan Arduino UNO, cukup muat naik lakaran " arduino_control.ino " ke papan Arduino UNO dan itu saja. Ini akan menubuhkan Arduino Board. Anda boleh memuat turun kod lengkap dengan fail HTML dari sini. The " arduino_control.ino" kod telah mengikuti langkah-langkah penting yang terlibat.
Pada mulanya kadar baud ditetapkan pada 9600.
Serial.begin (9600);
Port bersiri selalu mencari bait masuk dan bait ditulis ke Pin 5 yang merupakan Pin PWM.
sementara (! bersiri. tersedia ()); analogWrite (5, Serial.read ());
Itu sahaja. Ini akan menetapkan Arduino untuk memasukkan bait ke pin PWM dan akan mengubah kecerahan LED.
Menyiapkan Antaramuka Web:
Untuk mengawal kecerahan led menggunakan antara muka web, satu bahagian kecil kod HTML ditulis untuk mempunyai antara muka dalam Penyemak Imbas. Untuk mempunyai antara muka ikuti langkah mudah di bawah:
- Buat folder baru bernama "umum" di dalam folder "LED_Control" yang dibuat sebelumnya.
- Sekarang muat turun fail "index.html" dan "style.css" dan pindahkan kedua-dua fail ke dalam folder "awam" yang dibuat pada langkah pertama di atas. Fail boleh dimuat turun dari sini.
Ini akan membuat gelangsar di laman web untuk mengawal kecerahan LED menggunakan Node.js dan Arduino.
Mengendalikan LED dari laman web adalah menarik untuk dipelajari dan boleh dilakukan dengan pengawal mikro lain dengan membuat pelayan web dan menghoskan laman web di pelayan laman web. Lihat semua projek yang berkaitan dengan pelayan laman web di sini.
Menulis program Node.js untuk mengawal Kecerahan LED:
Langkah seterusnya ialah menulis lakaran “brightness_control.js” menggunakan Node.js dan melaksanakan kodnya. Pelaksanaan kod akan sedikit serupa dengan LED Berkelip dengan Node.js.
Untuk menulis program Node.js buka mana-mana editor teks (Notepad, Notepad ++, dll.) Dan tampal kod 'brightness_control " yang dilampirkan pada akhir tutorial ini dan simpan dengan pelanjutan '.js ' iaitu (brightness_control.js) dalam folder "LED_Control" yang dibuat sebelumnya. Anda juga boleh memuat turun kod dari sini.
Mirip dengan program Blink Led Node.js, bahagian ini juga akan menggunakan modul (perpustakaan). Sertakan modul 'express', 'http' dan 'port serial'.
var express = memerlukan ('express'); aplikasi = ekspres (); pelayan = memerlukan ('http'). createServer (aplikasi); io = memerlukan ('socket.io'). dengar (pelayan); var SerialPort = memerlukan ("serialport") //. SerialPort
Sekarang tetapkan port COM dan baudrate. Perhatikan bahawa di windows, itu akan selalu menjadi COM dengan pemanjangan nombor (COM6, COM4, COM24 dll), jadi tetapkan di bawah seperti yang diperlukan setelah '/'. Tetapkan juga buadrate.
var serialPort = SerialPort baru ("/ COM4", {baudRate: 9600});
Mula mendengar pelayan di port 8080.
pelayan.listen (8080);
Tetapkan kecerahan pada 0 pada mulanya. Kemudian pasangkan data kecerahan ke IO dengan modul soket, yang merupakan modul soket web. Data akan diterima oleh Antaramuka Web menggunakan protokol soket.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { brightness = data.value; var buf = new Buffer (1); buf.writeUInt8 (kecerahan, 0); serialPort.write (buf);
Sekarang keluarkan nilai kecerahan LED dari soket ke pin LED.
io.sockets.emit ('led', {value: brightness}); }); socket.emit ('led', {value: brightness}); });
Sekarang hanya untuk menyahpepijat, tambahkan pernyataan cetak di akhir. Console.log adalah pernyataan cetak dalam Node.js.
console.log ("Pelayan Web Dimulakan pergi ke 'http: // localhost: 8080' di Penyemak Imbas anda.");
Sekarang untuk menjalankan program dengan mengikuti langkah-langkah di bawah:
- Buka Prompt Perintah
- Cari folder "LED_Control" dengan mengikuti arahan 'cd'
- Jalankan arahan 'Node brightness_control.js'. Sekiranya berjaya dilaksanakan, ia akan menunjukkan "Pelayan Web Dimulakan pergi ke" http: // localhost: 8080 "di Penyemak Imbas anda." betul-betul di bawah arahan .
- Sekarang pergi ke penyemak imbas anda dan ketik "localhost: 8080" di url.
- Untuk menukar kecerahan hanya gerakkan slider dari 0-255 nilai.
The kod lengkap dan video bekerja kedua-dua seksyen dilampirkan di bawah. Sekiranya anda mempunyai keraguan atau cadangan, anda boleh menghubungi kami melalui forum atau komen di bawah. Semua fail kod juga boleh dimuat turun dari sini.