- Prasyarat
- Komponen yang Diperlukan
- Menginstal Node-RED di Raspberry Pi
- Meluncurkan Node-RED di Raspberry Pi
- Memahami antarmuka Node-RED
- Skema
- Membuat Flow di Node-RED
- Menambahkan Tombol Tekan / Sakelar di antarmuka Node-RED dengan Raspberry Pi
Pernah bertanya-tanya apakah ada cara untuk membuat prototipe solusi IoT sederhana tanpa harus menghabiskan waktu berhari-hari untuk menulis kode atau untuk membangun proyek praktis tingkat lanjut tanpa pengkodean. Ya, ini dimungkinkan dengan Platform Node-Red. Dikembangkan oleh IBM, Node-RED adalah alat pemrograman sumber terbuka untuk menghubungkan perangkat keras, API, dan layanan online dengan cara baru dan menarik. Ini menyediakan editor berbasis browser yang membuatnya mudah untuk menyatukan ' aliran' menggunakan berbagai node dalam palet yang dapat diterapkan ke runtime dalam satu klik.
Node-RED adalah alat yang ampuh untuk membangun aplikasi Internet of Things (IoT) dengan tujuan menyederhanakan komponen pemrograman.
Ini menggunakan pemrograman visual yang memungkinkan Anda untuk menghubungkan blok kode, yang dikenal sebagai node, bersama-sama untuk melakukan tugas. Untuk tutorial hari ini, kami akan memeriksa bagaimana Anda dapat menerapkan proyek sederhana pada raspberry pi menggunakan Node-RED. The raspberry pi simpul-red tutorial akan mencakup;
- Menginstal Node-RED di Raspberry Pi.
- Pengantar antarmuka pengguna Node-RED
- Cara mengatur aliran Node-RED
- Cara mengontrol pin GPIO Raspberry Pi dengan Node-RED
- Cara menggunakan input, output, dan pengambilan keputusan seperti Node-RED menggunakan sakelar
Prasyarat
Tutorial ini akan didasarkan pada OS peregangan Raspbian dan saya akan menganggap Anda sudah terbiasa dengan pengaturan Raspberry Pi dengannya, dan Anda tahu cara SSH ke Pi menggunakan perangkat lunak terminal seperti dempul. Jika Anda mengalami masalah dengan semua ini, ada banyak Tutorial Raspberry Pi di situs web ini yang dapat membantu.
Untuk menyelesaikan tutorial dengan mudah, saya akan menyarankan Anda menggunakan monitor yang terhubung ke raspberry pi atau Anda menggunakan perangkat lunak VNC Viewer. Jika Anda tidak memiliki Monitor dan memulai baru dengan Pi, Anda dapat membaca pengaturan Headless Raspberry Pi ini untuk melanjutkan tutorial ini. Sementara Node-Red berjalan dari browser web dan dapat diakses di PC Anda yang terhubung dengan Pi melalui alamat IP Pi, saya percaya pengalaman VNC / monitor akan memberi Anda pemahaman yang lebih baik.
Sebagai demo untuk menunjukkan cara kerja Node-Red, kami akan menggunakan Node-RED untuk memprogram Raspberry Pi untuk mengontrol LED yang terhubung ke GPIO-nya dan kemudian memodifikasi program agar LED dapat dikontrol dari tombol sentuh taktil yang terhubung ke Pi. GPIO.
Komponen yang Diperlukan
Komponen berikut diperlukan untuk membangun proyek ini;
- Raspberry Pi 3 dengan kartu SD dimuat sebelumnya dengan Raspbian Stretch Preloaded
- Resistor 100 ohm (1)
- LED (1)
- Papan tempat memotong roti (1)
- Kabel jumper pria-ke-wanita
- Tombol tekan taktil (1)
Menginstal Node-RED di Raspberry Pi
Meskipun Node-Red sudah diinstal sebelumnya pada Raspbian Stretch OS, kami perlu memutakhirkannya sebelum kami dapat menikmati beberapa fitur terbarunya. Meningkatkan kehendak Node-Red
- Tingkatkan pengguna yang ada ke LTS 8.x atau 10.x Node.js dan Node-RED terbaru
- Migrasikan setiap node yang terpasang secara global ke dalam ruang ~ /.node-red pengguna sehingga mereka dapat dikelola melalui manajer palet, TIDAK memperbarui node yang ada yang diinstal pengguna. Ini harus dilakukan secara manual oleh pengguna (lihat di bawah).
- Secara opsional, instal (ulang) node ekstra yang sudah diinstal sebelumnya pada image Raspbian Pi lengkap.
Namun, proses mengupgrade Node-Red mirip dengan menginstal yang baru jadi untuk tutorial ini kami hanya akan memperlakukannya seperti instalasi baru sehingga orang yang menggunakan versi OS lain dapat mengikuti.
Ikuti langkah-langkah di bawah ini untuk Menginstal / Meningkatkan Node-RED di Raspberry Pi Anda.
Kami mulai dengan meningkatkan dan memperbarui pi, untuk memastikan semua yang ada di dalamnya adalah yang terbaru dan menghindari masalah kompatibilitas. Lakukan ini dengan membuka terminal atau melalui ssh, dan jalankan;
Pembaruan Sudo apt-get
diikuti oleh
sudo apt-get peningkatan
Setelah ini selesai, jalankan skrip bash di bawah ini di terminal;
bash <(curl -sL
The bash script akan melakukan hal-hal berikut
- Tanyakan apakah Anda ingin (kembali) menginstal node Pi ekstra
- Simpan daftar node-red- node yang diinstal secara global yang ditemukan di / usr / lib / node_modules
- apt-get hapus Node-Red yang ada
- hapus semua biner node-red dari / usr / bin dan / usr / local / bin
- Hapus modul node-red apa pun dari / usr / lib / node_modules dan / usr / local / lib / node_modules
- Deteksi apakah Node.js diinstal dari paket Node.js atau Debian
- Jika bukan v8 atau yang lebih baru - hapus yang sesuai dan instal v8 atau v10 LTS terbaru (tidak menggunakan apt).
- Bersihkan cache npm dan cache.node-gyp untuk menghapus versi kode sebelumnya
- Instal Node-RED versi terbaru
- Instal ulang di bawah akun pengguna setiap node yang sebelumnya telah diinstal secara global
- Instal ulang node Pi tambahan jika diperlukan
- Bangun kembali semua node - untuk mengkompilasi ulang semua biner agar sesuai dengan versi Node.js terbaru
- Tambahkan perintah node-red-start, node-red-stop, dan node-red-log ke / usr / bin
- Tambahkan pintasan menu dan ikon
- Tambahkan skrip sistem dan tetapkan pengguna
- Jika di Pi tambahkan suhu CPU -> contoh IoT
Skrip bash di atas menjalankan banyak perintah sebagai sudo dan menghapus Node.js yang ada serta direktori inti Node-RED. Anda dapat memeriksa konten skrip di halaman GitHub ini sebelum menjalankannya untuk memastikan itu tidak akan memengaruhi proyek apa pun yang sudah Anda miliki di Pi.
Dengan instalasi selesai Anda sekarang akan melihat ikon Node-Red di bawah daftar aplikasi pemrograman menu Anda.
Meluncurkan Node-RED di Raspberry Pi
Node-Red dapat diluncurkan melalui bagian menu dari desktop raspberry pi Anda, melalui terminal, atau melalui ssh.
Untuk memulai di desktop raspberry pi, Klik pada ikon Raspberry, arahkan mouse Anda ke Programming klik pada Node-RED (Menu> Programming> NodeRed) untuk meluncurkannya.
Ini juga dapat diluncurkan dari ssh atau terminal dengan menjalankan;
node-red-start
Anda akan melihat jendela seperti di bawah ini yang menunjukkan peluncuran merah node di desktop.
Setelah Anda melihat ini, buka menu-> internet dan luncurkan browser web chromium. Meskipun Raspberry pi Anda tidak membutuhkan internet untuk menjalankan Node-Red, ia menggunakan browser sebagai antarmukanya.
Dengan chromium diluncurkan, masukkan localhost: 1880 di bilah alamat diikuti dengan tombol enter. 1880 adalah port pada raspberry pi tempat Node-Red diatur untuk berkomunikasi. Ini harus menampilkan antarmuka Node-Red seperti yang ditunjukkan pada gambar di bawah.
Memahami antarmuka Node-RED
The Node-Red antarmuka terdiri dari panel aliran, node palet, konsol debug dan info konsol seperti yang disorot pada gambar di atas.
The panel aliran adalah di mana node bergabung bersama untuk membuat program yang pada Node-Red disebut aliran, sedangkan palet Node terdiri dari benda-benda yang mewakili hardware, protokol dan software fitur yang berhubungan dengan perangkat. Ini termasuk protokol seperti MQTT untuk IoT, dan keluaran GPIO dan mode masukan untuk papan seperti raspberry pi. The Info konsol menyediakan informasi disorot / objek yang dipilih sedangkan konsol debugbekerja seperti monitor Arduino Serial dan dapat memberikan umpan balik saat aliran sedang berjalan. Tombol terapkan digunakan untuk mengunggah aliran ke perangkat keras target. Tombol menu berisi berbagai jenis unggahan untuk membantu Anda mendapatkan yang terbaik dari proyek Anda. Dengan Node-Red aktif dan berjalan, sekarang kita dapat melanjutkan untuk membangun proyek demo.
Skema
Seperti yang disebutkan selama pendahuluan, proyek demo kami untuk hari ini adalah mengontrol GPIO Raspberry Pi menggunakan aliran Node-RED. Untuk menunjukkan variasi status GPIO, kami akan menghubungkan LED ke GPIO sedemikian rupa sehingga ketika pin GPIO tertentu dihidupkan, LED akan menyala dan sebaliknya.
Hubungkan LED ke Raspberry PI seperti yang ditunjukkan pada skema di bawah ini.
Saya juga membangun yang sama pada perangkat keras saya menggunakan papan tempat memotong roti, LED, resistor, dan beberapa kabel penghubung. Pengaturan perangkat keras saya terlihat seperti ini setelah koneksi dibuat.
Proyek ini dapat dengan mudah diubah menjadi proyek otomasi Rumah, hanya dengan mengganti LED dengan relai dan peralatan AC apa pun, pelajari cara melakukannya dengan melalui berbagai Proyek Otomasi Rumah.
Membuat Flow di Node-RED
Dengan LED terhubung, kami dapat melanjutkan untuk mengembangkan aliran. Program di NodeRed disebut aliran seperti Arduino IDE menyebutnya sketsa. Arus dibuat menggunakan kombinasi node. Anda dapat membuat beberapa aliran yang semuanya dapat berjalan pada waktu yang sama, tetapi untuk tutorial ini, kami akan membuat aliran tunggal untuk menyalakan / mematikan LED.
Untuk memulai, Gulir ke bagian bawah palet Nodes, Anda akan melihat bagian node pi raspberry di bagian akhir dengan dua node berlabel rpigpio. Node ini digunakan untuk berkomunikasi dengan GPIO raspberry pi. Salah satu Node untuk input sedangkan yang lainnya untuk output dibedakan oleh posisi logo raspberry pi. Untuk node input, logo muncul sebelum teks, sedangkan untuk node output logo muncul setelah teks seperti yang ditunjukkan pada gambar di bawah ini.
Untuk tutorial ini kita akan menggunakan node keluaran, seret ke bagian aliran antarmuka. Langkah ini mirip dengan mendeklarasikan pin tertentu dari Arduino Anda sebagai Output menggunakan perintah pinMode () . Klik dua kali pada node Output dan jendela pop up akan terbuka seperti yang ditunjukkan di bawah ini untuk memungkinkan Anda mengedit properti node.
Di bawah bagian properti pin, pilih GPIO17 (pin 11). Kemudian setel properti type ke " Digital Output " dan centang " Initialize pin state?" centang kotak dengan membiarkan opsi " level awal pin " rendah (0). Beri simpul apapun nama yang Anda suka dan klik tombol selesai.
Nama node secara otomatis akan berubah menjadi yang Anda masukkan di bawah pengaturan properti. Misalnya saya menamakannya sebagai LED dan karenanya nama node juga diubah sebagai LED seperti yang ditunjukkan di bawah ini.
Untuk menyalakan / mematikan LED, kita perlu menggunakan input, sesuatu untuk mendorong aksi. Meskipun kita dapat menggunakan tombol tekan, saya ingin menggunakan ini untuk memperkenalkan fitur di Node-RED yang memungkinkan injeksi pesan ke dalam aliran. Fitur ini disebut inject Node. Kami akan menggunakan dua node injeksi. Satu untuk menyalakan LED sementara yang lain untuk mematikannya.
Pergi ke palet node dan seret node injeksi ke aliran. Ini adalah simpul pertama di palet dengan panah, simpul injeksi disorot pada gambar di bawah.
Klik dua kali untuk mengedit propertinya. Ubah tipe data menjadi string dengan mengklik dropdown di depan payload, dan Enter 1 di kotak Payload. Nilai pada payload box inilah yang akan diinjeksikan ke dalam aliran saat node ditekan. Setel nama node ke "ON" Tekan tombol "Done" untuk menyimpan.
Ulangi langkah di atas untuk node kedua, setel nilai payload ke "0" dan namanya "off" seperti yang ditunjukkan di bawah ini.
Di bawah fungsi properti, yang berulang dropdown dapat digunakan untuk mengotomatisasi injeksi sehingga tombol yang ditekan pada interval. Ini dapat digunakan untuk menciptakan efek kedip. Gabungkan node bersama-sama seperti yang ditunjukkan di bawah ini, dengan menyeret titik abu-abu di salah satu node ke node lainnya untuk membuat aliran.
Setelah itu selesai, kami sekarang telah menyelesaikan Aliran Node-Merah pertama kami.
Langkah selanjutnya adalah menerapkan aliran pada raspberry pi. Klik tombol terapkan merah. Anda akan melihat flash "berhasil diterapkan" di bagian atas layar seperti yang ditunjukkan di bawah ini.
Klik tombol abu-abu di belakang node injeksi untuk mengaktifkan setiap node.
Dengan mengklik "on" inject node, Anda akan melihat "on" berhasil diinjeksi ditampilkan dan LED menyala. LED akan mati saat node injeksi "off" diklik.
Itu dia. Pengerjaan lengkap pengaturan ini dapat ditemukan di video yang ditautkan di bagian bawah halaman ini.
Menambahkan Tombol Tekan / Sakelar di antarmuka Node-RED dengan Raspberry Pi
Untuk menjelaskan cara menghubungkan / menambahkan elemen input ke aliran Anda, kami akan mengambil aliran di atas lebih jauh dengan menambahkan tombol tekan untuk menggantikan node injeksi.
Hubungkan tombol tekan ke raspberry pi, sehingga salah satu kaki tombol terhubung ke ground dan yang lainnya terhubung ke GPIO pin 4 (pin 11) dari raspbery pi, seperti yang ditunjukkan pada skema di bawah ini.
Setelah ini selesai, Kembali ke Node-Red dan hapus dua node injeksi yang kami gunakan sebelumnya, dengan mengklik node dan menekan delete pada keyboard Anda atau mengklik dua kali node dan menekan delete pada jendela pop-up. Setelah selesai, gulir ke bawah palet node ke bagian raspberry pi dan pilih node input. Ini adalah yang memiliki ikon raspberry pi di sebelah kiri, sebelum nama node.
Seret node ke dalam aliran dan klik dua kali di atasnya untuk mengedit properti. Atur pin ke GPIO 4 (pin 11) dan atur dropdown di depan resistor untuk pull-up. Ini akan "menarik" GPIO 4 ke HIGH. Klik pada tombol selesai setelah mengatur properti.
Untuk memungkinkan kami membuat keputusan logis saat sakelar ditekan daripada hanya mempersingkat GPIO4 ke ground, kami akan menggunakan node sakelar. Cari di palet node, di bawah bagian fungsi dan seret ke aliran.
Node sakelar memungkinkan Anda membuat keputusan dengan cara yang mirip dengan pernyataan "jika". Itu dapat diatur untuk memiliki keluaran yang berbeda tergantung pada nilai masukan. Untuk tutorial ini, kita akan mengonfigurasinya dengan dua jalur keluaran, sehingga, ketika properti msg.payload sama dengan 1 (sakelar tidak ditekan), ia harus mengikuti jalur pertama dan jalur kedua akan diikuti jika ada input lain selain 1 diamati pada input (saklar ditekan). Jalur ditambahkan menggunakan tombol "+ tambahkan". Klik dua kali pada node dan konfigurasikan seperti yang dijelaskan di atas. Klik selesai setelah selesai.
Segera setelah Anda menekan tombol selesai, Anda akan melihat dua jalur tercermin dalam tampilan node sakelar, karena sekarang akan memiliki dua persimpangan pada keluaran.
Selanjutnya, kita perlu membawa node "perubahan". Node perubahan akan digunakan untuk mengatur status LED berdasarkan hasil dari node argumen.
Kami akan menggunakan dua node perubahan. Payload pertama akan diatur ke 0 seperti yang ditunjukkan pada gambar di bawah dan muatan yang kedua diatur ke satu. Klik selesai setelah mengedit properti untuk keduanya.
Untuk menjelaskan dengan lebih baik, ingat kita menggunakan resistor pull-up? Jadi, ketika tombol belum ditekan, output pada pin itu akan menjadi HIGH (1), yang berarti jika kita melewatinya melalui node saklar, LED akan "on", karena seharusnya tidak demikian, kita akan gunakan node "ubah" untuk menetapkannya sebagai RENDAH (0). Node "perubahan" kedua digunakan untuk mengatur nilai ke satu sehingga ketika sesuatu selain status TINGGI dari GPIO pin 4 terdeteksi, itu harus menyalakan LED "on" karena ini berarti tombol telah ditekan. Hubungkan node perubahan dan node lainnya bersama-sama seperti yang ditunjukkan pada gambar di bawah ini.
Setelah ini selesai, kami sekarang siap untuk menerapkan proyek. Buka koneksi untuk memastikan semuanya sebagaimana mestinya, lalu klik tombol terapkan. Seperti biasa, jika berhasil, Anda akan melihat popup yang berhasil diterapkan dan sekarang dapat mengontrol led menggunakan sakelar.
Meskipun Node-Red membuatnya mudah dan cepat untuk membuat prototipe build Anda tanpa mengkhawatirkan kodenya, Node-Red mungkin sebenarnya bukan yang paling cocok, terutama untuk developer berpengalaman yang menginginkan fleksibilitas dan kontrol atas program. Namun demikian, ini adalah alat hebat yang memungkinkan Anda membangun prototipe dalam hitungan menit.
Sampai nanti!