Apa itu Node-RED?
Node-RED adalah open-source flow-based development tool yang memudahkan untuk menghubungkan ke perangkat, API, dan layanan online satu sama lain. Bayangkan Anda dapat drag dan drop blok pada layar untuk membuat sebuah diagram alir yang dapat melakukan sesuatu, seperti menyalakan lampu saat matahari terbit dan terbenam atau mengirim notifikasi ke email atau platform media sosial lainnya saat sensor mendeteksi gerakan. Node-RED memungkinkan Anda melakukan semua itu tanpa perlu menulis banyak kode.
Apa itu Flow Programming?
Flow Programming (Pemrograman Alur) dalam konteks Node-RED adalah cara untuk membangun sebuah aplikasi dengan menghubungkan “node” yang berbeda seperti diagram alir. Setiap node dapat melakukan tugas tertentu, seperti membaca dari sensor, menghitung (computing), mengirim pesan, atau sebagai notifikasi . Anda membuat “aliran” dengan drag and drop node-node ini ke kanvas dan menghubungkannya dengan “kabel” untuk menentukan urutan kerjanya. Hasilnya secara visual mewakili logika aplikasi Anda, yang dapat Anda terapkan dengan satu klik.
Dalam pemrograman yang konvensional (menulis kode secara manual), Anda menulis baris kode untuk mendefinisikan apa yang harus dilakukan oleh aplikasi Anda. Hal ini sering kali melibatkan loop, conditional, dan function, dan membutuhkan pemahaman yang baik tentang bahasa pemrograman yang Anda gunakan. Sebaliknya, pemrograman di Node-RED menyederhanakan sebagian besar kerumitan ini. Alih-alih menulis kode, pada dasarnya Anda menggambar program Anda. Ini memungkinkan Anda untuk lebih mudah melihat keseluruhan proses, memahami aliran data, dan mengidentifikasi potensi masalah.
Node-RED dan Mikrokontroler
Salah satu aspek paling menarik dari Node-RED adalah kemampuannya berkomunikasi dengan mikrokontroler seperti Arduino, ESP8266, ESP32, dan Raspberry Pi. Dengan menggunakan antarmuka Node-RED , Anda dapat membaca data sensor dari perangkat ini dan mengirimkan kembali perintah untuk mengontrol aktuator. Ini menjadikannya solusi yang ideal bagi siapa saja yang ingin mengembangkan perangkat keras atau merancang perangkat IoT khusus.
Node-RED adalah alat yang fleksibel dan canggih, cocok untuk beragam aplikasi, mulai dari otomatisasi industri, pembelajaran, hingga proyek DIY di rumah. Antarmuka drag-and-drop membuatnya dapat diakses oleh pengguna dari semua tingkat pengalaman, dan teknologi yang mendasarinya memastikannya cukup kuat untuk penggunaan profesional. Baik Anda seorang penghobi yang ingin mempercantik rumah Anda atau seorang insinyur yang ingin mengoptimalkan lini produksi Anda, Node-RED memiliki sesuatu untuk Anda.
Komunikasi dalam Node-RED: Protokol dan Metode
Node-RED memiliki kemampuan luar biasa dalam berinteraksi dengan sistem lain karena dukungannya terhadap berbagai protokol komunikasi. Fleksibilitasnya dalam aspek ini menjadi salah satu faktor utama kesuksesannya. Mari kita pelajari lebih dalam tentang protokol dan metode komunikasi yang digunakan oleh Node RED, salah satunya adalah MQTT.
MQTT
MQTT (Message Queuing Telemetry Transport) adalah protokol pengiriman pesan ringan yang sering digunakan dalam aplikasi IoT di mana bandwidth dan konsumsi daya menjadi daya tarik utamanya. Dengan MQTT, perangkat mempublikasikan pesan ke topik, dan perangkat lain berlangganan ke topik ini untuk menerima pesan. Node-RED memiliki node MQTT bawaan, sehingga memudahkan integrasi dengan sistem berbasis MQTT. Sebagai contoh, Anda dapat mengatur mikrokontroler ESP32 untuk mengirimkan data sensor suhu dan kelembapan ke sebuah topik MQTT, lalu memanfaatkan Node-RED untuk menerima data dari topik tersebut dan merespon sesuai kebutuhan.
MQTT adalah pilihan populer untuk mengirim dan menerima data saat menggunakan Node-RED. Seperti yang disebutkan sebelumnya, MQTT ini ringan. MQTT tidak menggunakan banyak bandwidth, hal ini sangat baik jika bekerja dengan perangkat dengan sumber daya yang terbatas. MQTT juga bagus dalam menangani koneksi yang terputus-putus, jadi MQTT masih bisa bekerja jika jaringan tidak dapat diandalkan. Selain itu, MQTT dirancang untuk komunikasi real-time, sehingga Node-RED dapat memperoleh pembaruan saat terjadi.
Di sisi lain, MQTT memiliki beberapa keterbatasan. Ini bukan pilihan terbaik untuk kumpulan data yang besar karena dirancang untuk pesan yang kecil dan dikirim secara berkala. Selain itu, meskipun MQTT sendiri relatif aman, menambahkan lapisan keamanan lain bisa jadi sedikit rumit. Anda mungkin perlu mengintegrasikannya dengan protokol keamanan lain, yang bisa merepotkan bila Anda baru dalam hal ini.
Install Node-RED di sistem operasi Windows
Berikut adalah langkah-langkah untuk menginstal Node-RED di sistem operasi Windows, dengan penjelasan lebih rinci:
1. Pastikan Node.js Terinstal Terlebih Dahulu
Node-RED memerlukan Node.js sebagai lingkungan runtime untuk menjalankan kode JavaScript-nya. Oleh karena itu, langkah pertama adalah mengunduh dan menginstal Node.js di komputer Anda.
- Buka browser web dan kunjungi situs resmi Node.js di https://nodejs.org.
- Di halaman utama, Anda akan melihat dua opsi untuk mengunduh Node.js: versi LTS (Long Term Support) dan versi Current. Untuk stabilitas yang lebih baik, disarankan memilih versi LTS.
- Setelah mengunduh installer, buka file yang diunduh dan ikuti langkah-langkah dalam wizard instalasi. Pastikan untuk mencentang opsi yang memungkinkan Node.js ditambahkan ke PATH sistem Anda, agar perintah
node
dapat diakses dari terminal. - Setelah instalasi selesai, verifikasi apakah Node.js dan npm (Node Package Manager) telah terpasang dengan benar. Untuk melakukan ini, buka Command Prompt atau PowerShell, lalu ketik perintah berikut:
node -v
npm -v
Jika perintah di atas mengembalikan versi Node.js dan npm, artinya Node.js berhasil terinstal di komputer Anda dan Anda dapat melanjutkan ke langkah berikutnya.
2. Menginstal Node-RED
Setelah Node.js terinstal, langkah selanjutnya adalah menginstal Node-RED, yang merupakan aplikasi berbasis Node.js. Instalasi Node-RED dilakukan melalui npm, manajer paket bawaan Node.js.
- Buka Command Prompt atau PowerShell sebagai Administrator (klik kanan dan pilih “Run as Administrator” untuk memastikan Anda memiliki izin penuh selama instalasi).
- Ketik perintah dibawah list ini untuk menginstal Node-RED secara global di komputer Anda:
npm install -g --unsafe-perm node-red
- Perintah ini akan mengunduh dan memasang Node-RED secara global, sehingga dapat dijalankan dari mana saja di sistem Anda. Proses instalasi ini mungkin memerlukan beberapa menit tergantung pada kecepatan koneksi internet Anda, karena npm perlu mengunduh semua dependensi yang diperlukan.
- Setelah instalasi selesai, Anda dapat memverifikasi bahwa Node-RED telah terinstal dengan baik dengan mengetikkan perintah dibawah ini. Jika versi Node-RED muncul di terminal, maka instalasi Node-RED telah berhasil dilakukan.
node-red --version
Anda sekarang siap untuk menjalankan Node-RED dan mulai menggunakan berbagai fiturnya untuk mengembangkan aplikasi IoT atau otomasi lainnya.
3. Jalankan Node-RED
- Setelah instalasi selesai, Anda dapat memulai Node-RED dengan mengetikkan:
node-red
- Tunggu hingga Node-RED selesai memulai. Anda akan melihat pesan yang menyatakan bahwa Node-RED berjalan pada alamat seperti:
http://127.0.0.1:1880
Mengakses Node-RED Editor
Node-RED Editor adalah aplikasi web yang dapat Anda akses melalui browser web. Aplikasi ini berfungsi sebagai antarmuka utama untuk membuat dan mengelola alur Anda. Ikuti langkah-langkah berikut ini untuk menggunakan editor Node-RED:
- Buka browser pilihan Anda. Editor ini dapat diakses melalui semua browser web terbaru.
- Ketik URL untuk instance Node-RED Anda di kolom alamat. Ini biasanya merupakan alamat IP atau domain server Anda, diikuti dengan nomor port 1880. Sebagai contoh:
http://<your-server-IP>:1880
jika menggunakan XAMPP dan localhost, maka :
http://localhost:1880
- Tekan tombol “Enter” untuk memuat editor Node-RED.
Pada akhir bagian ini, Anda seharusnya dapat mengakses editor Node-RED dari peramban web Anda, menandai titik masuk Anda ke dalam lingkungan Node-RED.
Node-RED Editor overview
Editor Node-RED dibagi menjadi tiga bagian utama, yaitu: Node Palette, Flow Work space, dan Sidebar.
- Node Palette: Terletak di sebelah kiri, Node Palette berisi berbagai macam node yang dapat Anda seret ke dalam ruang kerja untuk membuat alur. Node dikategorikan ke dalam input, output, function, dan social. Anda dapat memasang node tambahan melalui Palette Manager.
- Flow Workspace: Ini adalah area utama dimana anda membangun alur. Anda dapat drag node dari Node Palette ke workspace, menyambungkannya, dan mengaturnya.
- Sidebar: Di sisi kanan adalah sidebar , yang berisi beberapa tab untuk Info, Debug, dan lainnya. Tab Debug berguna untuk melihat pesan keluaran debug dari flow Anda. Anda juga akan menggunakan sidebar untuk mengakses Dashboard.
Creating a flow
Membuat sebuah alur melibatkan drag node dari Node Palette ke dalam workspace Alur dan menyambungkannya untuk melakukan sebuah tugas tertentu.
- Buat workspace flow baru dengan mengklik tombol “+”. Anda akan menemukan tombol ini di sudut kanan atas editor.
- Seret sebuah node dari Node Palette ke Flow Workspace. Sebagai contoh, saya menyeret node Inject, diikuti oleh node debug.
- Klik dan tarik pegangan di tepi node untuk menghubungkannya dengan node lainnya. Node akan terhubung dari output (sisi kanan) ke input (sisi kiri). Sebagai contoh, saya menghubungkan output dari node Inject ke input node debug. Setelah pengkabelan selesai, kabel akan berwarna abu-abu.
- Untuk mengedit properti node, klik dua kali pada node tersebut. Ini akan membuka jendela konfigurasi di mana Anda dapat mengatur opsi yang berbeda berdasarkan tipe node. Setiap node memiliki serangkaian properti yang berbeda yang dapat Anda edit. Properti node Inject pada contoh di bawah ini berisi dua bidang teks “payload” dan “topic”.
- Setelah Anda menyelesaikan alur Anda, klik tombol ‘Deploy’ di sudut kanan atas. Ini akan menyimpan dan mengaktifkan alur Anda. Menerapkan alur mirip dengan “menjalankan” sebuah program. Setiap kali Anda mengubah alur, Anda harus menerapkannya kembali agar perubahan tersebut menjadi efektif.
- Gunakan alur kerja. Pada contoh pertama ini, Anda dapat mengklik tombol pada node Inject. Ini akan menyebabkan node Inject mensgirimkan pesan yang berisi cap waktu saat ini melalui output-nya. Pesan dari node Inject kemudian akan diterima oleh node Debug, yang akan menampilkannya di jendela Debug.
Keyboard Shortcuts
Keyboard shortcuts Node-RED menawarkan berbagai shortcuts untuk meningkatkan efisiensi Anda dalam mengedit.
- Ctrl + I: Mengimpor node.
- Ctrl + E: Ekspor node.
- Ctrl + D Menghapus node yang dipilih.
- Ctrl + Z: Membatalkan tindakan terakhir.
- Ctrl + Shift + Z: Mengulang tindakan terakhir.
Daftar lengkap shortcuts dapat ditemukan dengan masuk ke menu utama “�”, kemudian pilih keyboard shortcuts, atau menggunakan pintasan “Shift + ?”.
Menggunakan keyboard shortcuts dapat meningkatkan efisiensi dan kecepatan Anda secara signifikan ketika membuat dan mengelola tampilan Node-RED.
Bagian tambahan mengenai zooming, panning, aligning, menggunakan grid, mencari, dan menggunakan keyboard shortcuts akan semakin meningkatkan kemampuan Anda dalam mengedit Node-RED.
Node
Node adalah elemen dasar dalam alur kerja Node-RED. Node dapat memproses dan mengarahkan data antara berbagai sumber dan tujuan. Pada bagian ini, Anda akan mempelajari konsep “node” dalam Node-RED serta beberapa node bawaan yang paling penting. Di bagian selanjutnya dalam buku ini, Anda akan belajar bagaimana menggunakan node-node yang dibahas di sini secara praktis dalam berbagai proyek.
Apa itu Node?
Dalam Node-RED, sebuah node mewakili fungsi tertentu, seperti menerima atau mengirim data, menghitung, atau mengontrol perangkat. Setiap node memiliki port input dan output, yang dapat dihubungkan ke node lain menggunakan kabel. Node dapat memiliki properti dan konfigurasi yang menentukan perilakunya, dan mereka dapat bertukar pesan dengan node lain melalui port mereka. Node di Node-RED didasarkan pada pemrograman berbasis aliran, di mana data mengalir melalui serangkaian node yang terhubung yang memproses dan mengubah data sesuai kebutuhan.
The “Inject” Node
Salah satu node yang paling mendasar dan serbaguna di Node-RED adalah node ‘Inject’. Node ini sering digunakan sebagai titik awal dalam banyak alur karena fungsinya yang sederhana namun kuat. Pada bagian ini, kita akan membahas node ‘Inject’, bagaimana cara kerjanya, dan bagaimana Anda dapat menggunakannya dalam flow Node-RED Anda.
Node ‘Inject’ di Node-RED adalah node input yang memungkinkan Anda memasukkan pesan secara manual atau otomatis ke dalam sebuah flow. Hal ini dapat sangat membantu untuk berbagai tujuan, seperti memicu peristiwa, menguji node lain dalam aliran Anda, atau mengirim data yang telah ditentukan sebelumnya. Node ‘Inject’ dapat dikonfigurasikan untuk mengirimkan berbagai jenis payload, termasuk string, angka, boolean, stempel waktu, objek JSON, dan banyak lagi. Anda juga dapat mengatur properti “msg.topic” untuk membantu merutekan pesan dalam alur Anda.
Bagaimana “Inject” Node ini bekerja?
Setelah Anda menambahkan node ‘Inject’ ke dalam alur Anda, Anda dapat mengklik dua kali untuk membuka pengaturan konfigurasinya. Di sini, Anda dapat mengatur properti berikut:
- “Payload”: Ini adalah data utama yang akan disuntikkan oleh node ke dalam aliran. Anda dapat memilih jenis muatan dari menu tarik-turun dan memasukkan data muatan pada bidang di bawah ini.
- “Topic”: Properti opsional ini dapat digunakan untuk mengatur bidang “msg.topic” pada pesan. Hal ini dapat berguna untuk me-rute-kan atau menyaring pesan dalam alur Anda.
- “Repeat”: Ini memungkinkan Anda untuk menkonfigurasi node untuk menyuntikkan pesan secara berkala secara otomatis. Anda dapat mengatur interval dalam detik, menit, jam, atau hari atau memilih waktu tertentu.
- “Inject once after”: Jika Anda mengaktifkan opsi ini dan mengatur penundaan, node akan secara otomatis menyuntikkan pesan setelah beberapa detik yang Anda tentukan sejak tombol node diklik.
contoh sederhana:
- drag and drop node ‘Inject’ ke ruang kerja.
- Klik dua kali simpul ‘Inject’ untuk membuka pengaturan konfigurasinya. Atur properti berikut ini:
- – payload: Pilih “Number” dari menu dropdown, dan masukkan nilai seperti “25” pada kolom. Ini akan menjadi pembacaan suhu simulasi kita.
- – Topic: Biarkan kosong.
- – Repeat: Pilih “interval” dan atur ke “5” detik. Ini akan membuat node secara otomatis menyuntikkan pesan setiap 5 detik.
- – Inject once at a start: Nonaktifkan opsi ini.
- Selanjutnya, drag and drop node ‘Debug’ ke ruang kerja.
- Sambungkan port output dari node ‘Inject’ ke port input node ‘Debug’.
- Klik ‘Deploy’ untuk menerapkan aliran.
Dalam alur kerja ini, node ‘Inject’ akan secara otomatis mengirim pesan dengan payload “25” setiap 5 detik, yang mensimulasikan sensor suhu yang mengirimkan pembacaan. Node ‘Debug’ akan menerima pesan-pesan ini dan mencatatnya ke sidebar debug, sehingga Anda dapat melihat data sensor terbaru.