- Bahan yang Diperlukan
- Memasang Node.js pada Raspberry Pi
- Berkelip LED menggunakan Node.js
- Skrip dan Penjelasan Blink LED Node.js
- Litar Diagram untuk Mengedipkan LED menggunakan Node.js
- Pai raspberi
Dalam Tutorial Raspberry Pi sebelumnya, kami telah menggunakan banyak bahasa dan perisian pengaturcaraan yang berbeza untuk mengendalikan Raspberry Pi termasuk Python, C, Flask dll. Untuk memperluas cakrawala papan Raspberry Pi yang kuat, hari ini kami akan menggunakan persekitaran berasaskan JavaScript yang sangat popular (Node.js) untuk mengawal GPIO Raspberry Pi secara tempatan dan juga global dengan menetapkannya sebagai pelayan laman web. Pada mulanya, Node.js dikembangkan untuk Google Chrome tetapi kemudiannya sumber terbuka oleh Google.
Dalam tutorial ini, kita akan mengawal LED, yang disambungkan ke Raspberry Pi, menggunakan dua kaedah
- Mula-mula kita hanya akan menulis kod JavaScript menggunakan Node.js untuk Blink the LED
- Dalam kaedah kedua, kami akan membuat halaman HTML dengan dua butang untuk menghidupkan dan mematikan LED. Halaman web HTML ini akan dihoskan di raspberry pi dan boleh dibuka di mana-mana penyemak imbas web. Jadi di sini Raspberry Pi akan bertindak sebagai pelayan laman web
Bahan yang Diperlukan
- Papan pi Raspberry dengan Raspbian dipasang di dalamnya
- LED
Dalam tutorial ini saya menggunakan Monitor Luar menggunakan kabel HDMI untuk berhubung dengan Raspberry Pi. Sekiranya anda tidak mempunyai monitor, anda boleh menggunakan pelayan SSH (Putty) atau pelayan VNC untuk menyambung ke Raspberry pi menggunakan Laptop atau komputer. Sekiranya anda menghadapi kesukaran, ikuti Panduan Mengenal Raspberry Pi kami.
Memasang Node.js pada Raspberry Pi
Kami akan memasang Node.js di papan kami menggunakan arahan berikut.
Langkah 1: - Periksa dahulu versi lengan papan pi raspberry anda menggunakan arahan ini.
uname -m
Dalam kes saya, versi adalah 7.
Langkah 2: - Muat turun pemasang dengan menyalin pautan ini di terminal. Jangan lupa menukar versi dalam pautan yang diberikan di bawah.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Langkah 3: - Ekstrak fail menggunakan arahan di bawah
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Langkah 4: - Akhirnya, jalankan arahan ini untuk menambahkan fail penting ke direktori tempatan juga.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / tempatan /
Node.js dipasang sekarang di Raspberry Pi anda. Periksa versi node untuk pengesahan menggunakan arahan ini.
simpul –perubahan
Sebelum membuat pelayan Node.js, pertama kita akan melihat cara menulis skrip untuk mengedipkan LED menggunakan node.js (pakej onpm npm).
Berkelip LED menggunakan Node.js
Untuk mengawal GPIO pada Raspberry Pi menggunakan Node.js, kami akan menggunakan modul onoff.
Kami akan menggunakan pengurus pakej npm untuk memasang modul onoff menggunakan arahan di bawah
npm pasang onoff
Sekarang, kita akan menulis skrip untuk berkedip led. Buka editor nano dan beri nama untuk difailkan menggunakan arahan
nano blink_led.js
Sekiranya anda pemula di Node.js dan pakejnya, anda boleh mendokumentasikan npm untuk pemahaman skrip yang lebih baik.
Skrip dan Penjelasan Blink LED Node.js
Pertama, nyatakan pemboleh ubah untuk led, delay dan GPIO. Saya menggunakan Raspberry Pi GPIO 4 untuk menyambungkan LED.
var Gpio = memerlukan ('onoff'). Gpio; var LED = Gpio baru (4, 'keluar'); var blinkInterval = setInterval (blinkLED, 500);
Sekarang, kita akan membuat fungsi untuk memulakan sekelip mata.
fungsi blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // tetapkan output ke 1 iaitu putar dihidupkan} yang lain {LED.writeSync (0); // tetapkan output ke 0 iaitu matikan dimatikan }}
Begitu juga, buat fungsi untuk menghentikan sekelip mata
fungsi endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Unexport GPIO untuk membebaskan sumber} setTimeout (endBlink, 10000);
Kod Node.js yang lengkap untuk LED Berkedip diberikan pada akhir tutorial ini. Oleh itu, salin dan tampal kod dalam fail led_blink.js , yang telah kita buat sebelumnya menggunakan perintah nano , simpan fail menggunakan Ctrl + x, kemudian tekan Y dan tekan enter.
Untuk menjalankan skrip, buka terminal dan ketik arahan di bawah:
nod blink_led.js
Anda akan melihat bahawa LED akan berkelip selama 10 saat dan selepas itu berhenti berkelip. Lihat karya yang lengkap dalam Video yang diberikan pada akhir tutorial ini.
Litar Diagram untuk Mengedipkan LED menggunakan Node.js
Pai raspberi
Sekarang, sampai ke bahagian yang menarik, di sini kita akan membuat pelayan web kita sendiri dari mana kita dapat mengawal GPIO Raspberry pi menggunakan halaman web.
Untuk ini, pertama kita perlu membuat halaman HTML dan menulis skrip untuk melakukan tugas back-end iaitu untuk mengawal RPi GPIO.
Langkah 1: - Buat direktori untuk menyimpan semua fail di satu tempat.
mkdir nodejs_server
Langkah 2: - Di dalam folder nodejs_server buat satu lagi folder untuk menyimpan fail HTML.
paparan cd nodejs_server mkdir
Langkah 3: - Jika anda ingin menambahkan gambar ke halaman html anda, maka anda harus membuat folder lain yang dinamakan awam di dalam direktori utama iaitu di folder nodejs_server . Di folder awam, buat folder gambar dan simpan semua gambar dalam folder ini.
Langkah 4: - Sekarang, kita akan membuat halaman HTML. Untuk ini, pergi ke direktori paparan dan buka editor teks nano dengan nama fail index.ejs
Tidak ada yang mewah dalam skripnya. Ia hanya fail HTML untuk membuat butang Hidup dan Mati.
Salin tampal kod HTML di bawah dalam penyunting teks nano dan simpan.
Selamat Datang ke Pelayan Nodejs
Status Led: <% = status%>Langkah 5: - Sekarang, kita harus menulis kod JavaScript. Kami menggunakan rangka kerja node express untuk menanggapi permintaan http yang dilakukan oleh pengguna.
Anda boleh mengikuti pautan untuk mengetahui lebih lanjut mengenai Node Express.
Buka terminal dan buka editor teks nano dengan nama fail index.js dalam folder nodejs_server , kemudian salin dan tampal kod skrip java di bawah ini dan fail ini.
var express = memerlukan ('express'); aplikasi var = express (); var path = memerlukan ('path'); var gpio = memerlukan ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('view engine', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', function (req, res) { res.render ('index', {status: "Tekan Butang"}); }); app.post ('/ led / on', function (req, res) { gpio.write (7, true, function (err) { if (err) throw err; console.log ('Ditulis Benar untuk disematkan'); console.log (path.join (__ dirname, 'public')); kembali res.render ('index',{status: "Led dihidupkan"}); }); }); app.post ('/ led / off', function (req, res) { gpio.write (7, false, function (err) { if (err) membuang 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 Dimulakan di Port: 3000!') })
Langkah 6: - Di dalam direktori nodejs_server , kita harus melaksanakan perintah berikut untuk memasang perpustakaan node.js
pasang npm
Langkah 7: - Sekarang, pelayan anda sudah siap berfungsi. Untuk memulakan pelayan tempatan, jalankan perintah berikut di dalam direktori nodejs_server
node index.js
anda akan melihat mesej di terminal bahawa pelayan anda dimulakan di port yang ditentukan.
Langkah 8: - Sekarang buka penyemak imbas anda dan buka URL Raspberry Pi dengan nombor port iaitu raspberrypi: 3000
Pastikan pi dan komputer riba anda di mana anda membuka penyemak imbas disambungkan dengan rangkaian yang sama.
Anda akan melihat halaman berikut di penyemak imbas.
Sekarang, tekan butang LED Hidup untuk menghidupkan butang LED dan LED Mati untuk mematikan LED.