- Bahan yang Dibutuhkan
- Menginstal Node.js di Raspberry Pi
- Mengedipkan LED menggunakan Node.js
- Node.js LED Blink script dan Penjelasan
- Diagram Sirkuit untuk Mengedipkan LED menggunakan Node.js
- Raspberry Pi
Dalam Tutorial Raspberry Pi sebelumnya, kami telah menggunakan banyak bahasa pemrograman dan perangkat lunak yang berbeda untuk mengontrol Raspberry Pi termasuk Python, C tertanam, Flask dll. Untuk memperluas cakrawala papan Raspberry Pi yang kuat, hari ini kita akan menggunakan lingkungan berbasis JavaScript yang sangat populer (Node.js) untuk mengontrol Raspberry Pi GPIOs secara lokal maupun global dengan menyiapkannya sebagai server web. Awalnya, Node.js dikembangkan untuk Google Chrome, tetapi kemudian menjadi sumber terbuka oleh Google.
Dalam tutorial ini, kami akan mengontrol LED, terhubung ke Raspberry Pi, menggunakan dua metode
- Pertama kita hanya akan menulis kode JavaScript menggunakan Node.js untuk Mengedipkan LED
- Pada metode kedua, kita akan membuat halaman HTML dengan dua tombol untuk menghidupkan dan mematikan LED. Halaman web HTML ini akan dihosting di raspberry pi dan dapat dibuka di browser web apa pun. Jadi disini Raspberry Pi akan berperan sebagai webserver
Bahan yang Dibutuhkan
- Papan raspberry pi dengan Raspbian terpasang di dalamnya
- LED
Dalam tutorial ini saya menggunakan Monitor Eksternal menggunakan kabel HDMI untuk terhubung dengan Raspberry Pi. Jika Anda tidak memiliki monitor, Anda dapat menggunakan klien SSH (Putty) atau server VNC untuk terhubung ke Raspberry pi menggunakan Laptop atau komputer. Jika Anda menemukan kesulitan, ikuti Panduan Menatap dengan Raspberry Pi kami.
Menginstal Node.js di Raspberry Pi
Kami akan menginstal Node.js di papan kami menggunakan perintah berikut.
Langkah 1: Pertama, periksa versi arm dari papan raspberry pi Anda menggunakan perintah ini.
uname -m
Dalam kasus saya, versinya adalah 7.
Langkah 2: - Unduh penginstal dengan menyalin tautan ini di terminal. Jangan lupa untuk mengubah versi di tautan yang diberikan di bawah ini.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Langkah 3: - Ekstrak file menggunakan perintah di bawah ini
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Langkah 4: - Terakhir, jalankan perintah ini untuk menambahkan file penting ke direktori lokal juga.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js diinstal sekarang di Raspberry Pi Anda. Periksa versi node untuk konfirmasi menggunakan perintah ini.
node –version
Sebelum akan membuat server Node.js, terlebih dahulu kita akan melihat bagaimana cara menulis script untuk mengedipkan LED menggunakan node.js (paket onoff npm).
Mengedipkan LED menggunakan Node.js
Untuk mengontrol GPIO pada Raspberry Pi menggunakan Node.js, kita akan menggunakan modul onoff.
Kami akan menggunakan manajer paket npm untuk menginstal modul onoff menggunakan perintah di bawah ini
npm install onoff
Sekarang, kita akan menulis script untuk kedipan led. Buka nano editor dan beri nama file menggunakan perintah
nano blink_led.js
Jika Anda seorang pemula di Node.js dan paketnya, Anda dapat mendokumentasikan npm untuk pemahaman yang lebih baik tentang skrip.
Node.js LED Blink script dan Penjelasan
Pertama, nyatakan variabel untuk led, delay dan GPIO. Saya menggunakan Raspberry Pi GPIO 4 untuk menghubungkan LED.
var Gpio = membutuhkan ('onoff']. Gpio; var LED = Gpio baru (4, 'keluar'); var blinkInterval = setInterval (berkedipLED, 500);
Sekarang, kita akan membuat fungsi untuk memulai kedipan.
function blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // setel keluaran ke 1 yaitu hidupkan led} lain {LED.writeSync (0); // setel keluaran ke 0 yaitu mematikan led }}
Demikian pula, buatlah fungsi untuk menghentikan kedipan
function endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Batalkan ekspor GPIO ke sumber daya gratis} setTimeout (endBlink, 10000);
Kode Node.js lengkap untuk Blinking LED diberikan di akhir tutorial ini. Jadi copy paste kode yang ada di file led_blink.js yang sudah kita buat sebelumnya menggunakan perintah nano , simpan file tersebut menggunakan Ctrl + x, lalu tekan Y dan tekan enter.
Untuk menjalankan skrip, buka terminal dan ketik perintah di bawah ini:
node blink_led.js
Anda akan melihat bahwa LED akan berkedip selama 10 detik dan setelah itu berhenti berkedip. Periksa pekerjaan lengkap di Video yang diberikan di akhir tutorial ini.
Diagram Sirkuit untuk Mengedipkan LED menggunakan Node.js
Raspberry Pi
Sekarang, datang ke bagian yang menarik, di sini kita akan membuat server web sendiri dari mana kita dapat mengontrol GPIO dari Raspberry pi menggunakan halaman web.
Untuk ini, pertama kita perlu membuat halaman HTML dan menulis script untuk melakukan tugas back-end yaitu untuk mengontrol RPi GPIO.
Langkah 1: - Buat direktori untuk menyimpan semua file di satu tempat.
mkdir nodejs_server
Langkah 2: - Di dalam folder nodejs_server buat satu folder lagi untuk menyimpan file HTML.
cd nodejs_server mkdir dilihat
Langkah 3: - Jika Anda ingin menambahkan gambar ke halaman html Anda, maka Anda harus membuat folder lain bernama publik di dalam direktori utama yaitu di folder nodejs_server . Di folder publik, buat folder gambar dan simpan semua gambar di folder ini.
Langkah 4: - Sekarang, kita akan membuat halaman HTML. Untuk ini, buka direktori views dan buka editor teks nano dengan nama file index.ejs
Tidak ada yang mewah dalam naskahnya. Ini hanya file HTML untuk membuat tombol On dan Off.
Salin dan tempel kode HTML di bawah ini di editor teks nano dan simpan.
Selamat datang di Nodejs Server
Status Led: <% = status%>Langkah 5: - Sekarang, kita harus menulis kode JavaScript. Kami menggunakan kerangka kerja node express untuk menanggapi permintaan http yang dilakukan oleh pengguna.
Anda dapat mengikuti tautan untuk mempelajari lebih lanjut tentang Node Express.
Buka terminal dan buka editor teks nano dengan nama file index.js di folder nodejs_server , lalu salin dan tempel kode java script di bawah ini dan file ini.
var express = membutuhkan ('express'); var app = express (); var path = membutuhkan ('path'); var gpio = membutuhkan ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('mesin tampilan', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', function (req, res) { res.render ('index', {status: "Press Button"}); }); app.post ('/ led / on', function (req, res) { gpio.write (7, true, function (err) { if (err) throw err; console.log ('Written True to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index',{status: "Led On"}); }); }); app.post ('/ led / off', function (req, res) { gpio.write (7, false, function (err) { if (err) throw err; console.log ('Written False to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index', {status: "Led is Off"}); }); }); app.listen (3000, function () { console.log ('Server Dimulai pada Port: 3000!') })
Langkah 6: - Di dalam direktori nodejs_server , kita harus menjalankan perintah berikut untuk menginstal perpustakaan node.js
npm install
Langkah 7: - Sekarang, server Anda siap untuk bekerja. Untuk memulai server lokal, jalankan perintah berikut di dalam direktori nodejs_server
node index.js
Anda akan melihat pesan di terminal bahwa server Anda dimulai pada port yang ditentukan.
Langkah 8: - Sekarang buka browser Anda dan buka URL Raspberry Pi dengan nomor port yaitu raspberrypi: 3000
Pastikan raspberry pi dan laptop tempat Anda membuka browser terhubung dengan jaringan yang sama.
Anda akan melihat halaman berikut di browser.
Sekarang, tekan tombol LED On untuk menyalakan LED dan tombol LED Off untuk mematikan LED.