- Pra-syarat
- Komponen yang Diperlukan
- Memasang Node-RED pada Raspberry Pi
- Melancarkan Node-RED di Raspberry Pi
- Memahami antara muka Node-RED
- Skematik
- Membuat Aliran dalam Node-MERAH
- Menambah Pushbutton / Switch di antara muka Node-RED dengan Raspberry Pi
Pernah terfikir apakah ada cara untuk membuat prototaip penyelesaian IoT sederhana tanpa perlu menghabiskan hari menulis kod atau membina projek lanjutan praktikal tanpa pengekodan. Ya, ini mungkin dilakukan dengan Platform Node-Red. Dibangunkan oleh IBM, Node-RED adalah alat pengaturcaraan sumber terbuka untuk menyatukan peranti perkakasan, API dan perkhidmatan dalam talian dengan cara yang baru dan menarik. Ini menyediakan penyunting berasaskan penyemak imbas yang menjadikannya mudah untuk menyatukan ' aliran ' bersama-sama menggunakan pelbagai nod di palet yang dapat digunakan hingga waktu berjalannya dengan satu klik.
Node-RED adalah alat yang kuat untuk membina aplikasi Internet of Things (IoT) dengan tujuan mempermudah komponen pengaturcaraan.
Ia menggunakan pengaturcaraan visual yang membolehkan anda menyambungkan blok kod, yang dikenali sebagai nod, bersama-sama untuk melakukan tugas. Untuk tutorial hari ini, kami akan mengkaji bagaimana anda boleh menggunakan projek mudah pada pi raspberry menggunakan Node-RED. The raspberry pi nod-merah tutorial akan meliputi;
- Memasang Node-RED pada Raspberry Pi.
- Pengenalan antara muka pengguna Node-RED
- Cara mengatur aliran Node-RED
- Cara mengawal pin GPIO Raspberry Pi dengan Node-RED
- Cara menggunakan input, output dan Node-RED Node-seperti suka membuat keputusan menggunakan suis
Pra-syarat
Tutorial ini akan berdasarkan pada sistem peregangan Raspbian dan saya akan menganggap anda sudah biasa menyiapkan Raspberry Pi dengannya, dan anda tahu bagaimana memasukkan SSH ke dalam Pi menggunakan perisian terminal seperti dempul. Sekiranya anda mempunyai masalah dengan ini, terdapat banyak Tutorial Raspberry Pi di laman web ini yang dapat membantu.
Untuk melengkapkan tutorial dengan mudah, saya akan menasihatkan anda menggunakan monitor yang disambungkan ke raspberry pi atau anda menggunakan perisian VNC Viewer. Sekiranya anda tidak mempunyai Monitor dan mula baru dengan Pi, anda boleh membaca susunan Headphone Raspberry Pi tanpa kepala ini untuk meneruskan tutorial ini. Walaupun Node-Red berjalan dari penyemak imbas web dan dapat diakses di PC anda ke mana Pi disambungkan melalui alamat IP Pi, saya percaya pengalaman VNC / monitor akan memberi anda lebih banyak perkara.
Sebagai demo untuk menunjukkan bagaimana Node-Red berfungsi, kami akan menggunakan Node-RED untuk memprogramkan Raspberry Pi untuk mengawal LED yang disambungkan ke GPIOnya dan kemudian mengubah suai program untuk membolehkan LED dikendalikan dari tombol tekan taktil yang disambungkan ke Pi GPIO.
Komponen yang Diperlukan
Komponen berikut diperlukan untuk membina projek ini;
- Raspberry Pi 3 dengan kad SD dimuatkan dengan Raspbian Stretch Preloaded
- Perintang 100 ohm (1)
- LED (1)
- Papan Roti (1)
- Wayar pelompat lelaki-ke-wanita
- Butang tekan taktil (1)
Memasang Node-RED pada Raspberry Pi
Walaupun Node-Red sudah diinstal pada OS Raspbian Stretch, kami perlu meningkatkannya sebelum dapat menikmati beberapa ciri terbarunya. Menaik taraf Node-Red kehendak
- Tingkatkan pengguna yang ada ke LTS 8.x atau 10.x Node.js dan Node-RED terkini
- Pindahkan mana-mana node yang dipasang secara global ke ruang ~ /.node-red pengguna sehingga mereka dapat diuruskan melalui pengurus palet, TIDAK mengemas kini mana-mana pengguna yang memasang nod yang ada. Ini mesti dilakukan secara manual oleh pengguna (lihat di bawah).
- Secara pilihan (pasang semula) nod tambahan yang telah dipasang sebelumnya pada gambar Raspbian Pi penuh.
Walau bagaimanapun, proses menaik taraf Node-Red serupa dengan memasang yang baru jadi demi tutorial ini, kami hanya akan memperlakukannya seperti pemasangan baru sehingga orang yang menggunakan versi OS lain dapat mengikuti.
Ikuti langkah-langkah di bawah ini untuk Memasang / Meningkatkan Node-RED pada Raspberry Pi anda.
Kami mulakan dengan meningkatkan dan mengemas kini pi, untuk memastikan semua yang ada di dalamnya terkini dan mengelakkan masalah keserasian. Lakukan ini dengan membuka terminal atau melalui ssh, dan jalankan;
Sudo kemas kini apt-get
diikuti oleh
sudo apt-get peningkatan
Dengan ini, jalankan skrip bash di bawah di terminal;
bash <(curl -sL
The skrip bash akan melakukan perkara yang berikut
- Tanya sama ada anda mahu (memasang semula) node Pi tambahan
- Simpan senarai node-red-node yang dipasang secara global yang terdapat di / usr / lib / node_modules
- apt-get keluarkan Node-Red yang ada
- buang sebarang binari merah-nod dari / usr / bin dan / usr / local / bin
- Keluarkan sebarang modul merah-nod dari / usr / lib / node_modules dan / usr / local / lib / node_modules
- Kesan jika Node.js dipasang dari pakej Node.js atau Debian
- Sekiranya tidak v8 atau lebih baru - hapus mengikut kesesuaian dan pasang v8 atau v10 LTS terbaru (tidak menggunakan apt).
- Bersihkan cache npm dan cache.node-gyp untuk membuang versi kod sebelumnya
- Pasang versi terbaru Node-RED
- Pasang semula di bawah akaun pengguna mana-mana nod yang sebelumnya telah dipasang di peringkat global
- Pasang semula nod Pi tambahan jika diperlukan
- Bina semula semua nod - untuk menyusun semula sebarang binari agar sesuai dengan versi Node.js terkini
- Tambahkan arahan node-red-start, node-red-stop dan node-red-log ke / usr / bin
- Tambah pintasan dan ikon menu
- Tambahkan skrip sistem dan tetapkan pengguna
- Sekiranya pada Pi tambahkan suhu CPU -> contoh IoT
Skrip bash di atas menjalankan banyak perintah sebagai sudo dan menghapus Node.js yang ada dan direktori inti Node-RED. Anda boleh menyemak kandungan skrip di halaman GitHub ini sebelum menjalankannya untuk memastikannya tidak akan mempengaruhi projek yang sudah ada di Pi.
Dengan pemasangan selesai, anda kini harus melihat ikon Node-Red di bawah senarai aplikasi pengaturcaraan menu anda.
Melancarkan Node-RED di Raspberry Pi
Node-Red boleh dilancarkan melalui bahagian menu dari desktop raspberry pi anda, melalui terminal, atau melalui ssh.
Untuk melancarkan desktop raspberry pi, Klik pada ikon Raspberry, arahkan tetikus anda pada Programming klik pada Node-RED (Menu> Programming> NodeRed) untuk melancarkannya.
Ia juga boleh dilancarkan dari ssh atau terminal dengan menjalankan;
simpul-merah-mula
Anda akan melihat tetingkap seperti di bawah yang menunjukkan pelancaran nod merah di desktop.
Setelah anda melihat ini, pergi ke menu-> internet dan lancarkan penyemak imbas web kromium. Walaupun Raspberry pi anda tidak memerlukan internet untuk menjalankan Node-Red, ia menggunakan penyemak imbas sebagai antara muka.
Dengan dilancarkan kromium masukkan localhost: 1880 di bar alamat diikuti dengan kekunci enter. 1880 adalah pelabuhan pada raspberry pi di mana Node-Red telah ditetapkan untuk berkomunikasi. Ini harus memaparkan antara muka Node-Red seperti yang ditunjukkan dalam gambar di bawah.
Memahami antara muka Node-RED
The Node-Red muka terdiri daripada panel aliran, palet nod itu, konsol debug dan konsol maklumat yang seperti yang dinyatakan dalam imej di atas.
The panel aliran adalah di mana nod menyertai bersama-sama untuk mewujudkan program yang pada Node-Red dipanggil aliran, manakala palet Nod terdiri daripada objek yang mewakili perkakasan, protokol dan perisian ciri-ciri yang berkaitan dengan peranti. Ia merangkumi protokol seperti MQTT untuk IoT, dan mod output dan input GPIO untuk papan seperti pi raspberry. The konsol info menyediakan maklumat mengenai objek yang diketengahkan / dipilih semasa konsol debugberfungsi seperti monitor Arduino Serial dan dapat memberikan maklum balas semasa aliran berjalan. Butang penyebaran digunakan untuk memuat naik aliran ke perkakasan sasaran. Butang menu mengandungi pelbagai jenis muat naik untuk membantu anda memanfaatkan projek anda dengan sebaik-baiknya. Dengan Node-Red dan berjalan, kita kini dapat terus membangun projek demo.
Skematik
Seperti disebutkan semasa pengenalan, projek demo kami untuk hari ini adalah untuk mengendalikan GPIO Raspberry Pi menggunakan aliran Node-RED. Untuk menunjukkan variasi dalam keadaan GPIO, kita akan menyambungkan LED ke GPIO sehingga apabila pin GPIO tertentu dihidupkan, LED menyala dan sebaliknya.
Sambungkan LED ke Raspberry PI seperti yang ditunjukkan dalam skema di bawah.
Saya juga membina yang sama pada perkakasan saya menggunakan papan roti, LED, perintang dan beberapa wayar penyambung. Penyediaan perkakasan saya kelihatan seperti ini setelah sambungan dibuat.
Projek ini dapat dengan mudah diubah menjadi projek automasi Rumah, hanya dengan mengganti LED dengan relay dan alat AC apa pun, pelajari cara melakukannya dengan melalui pelbagai Projek Automasi Rumah.
Membuat Aliran dalam Node-MERAH
Dengan LED yang disambungkan, kita dapat terus mengembangkan aliran. Program di NodeRed disebut aliran seperti Arduino IDE memanggilnya lakaran. Aliran dibuat menggunakan gabungan nod. Anda boleh membuat pelbagai aliran yang semuanya dapat berjalan pada masa yang sama, tetapi untuk tutorial ini, kami akan membuat satu aliran untuk menghidupkan / mematikan LED.
Untuk memulakan, Tatal ke bahagian bawah palet Nodes, anda akan melihat bahagian node pi raspberry menjelang akhir dengan dua nod berlabel rpigpio. Node ini digunakan untuk berkomunikasi dengan GPIO raspberry pi. Salah satu Node adalah untuk input sementara yang lain adalah untuk output yang dibezakan oleh kedudukan logo raspberry pi. Untuk simpul input, logo muncul sebelum teks, sedangkan untuk simpul keluaran logo muncul setelah teks seperti yang ditunjukkan pada gambar di bawah.
Untuk tutorial ini kita akan menggunakan simpul output, seret ke bahagian aliran antara muka. Langkah ini mirip dengan menyatakan pin Arduino tertentu sebagai Output menggunakan perintah pinMode () . Klik dua kali pada Output node dan tetingkap pop up akan dibuka seperti yang ditunjukkan di bawah untuk membolehkan anda mengedit sifat nod.
Di bawah bahagian harta pin, pilih GPIO17 (pin 11). Kemudian tetapkan jenis properti ke " Output digital " dan tandakan " Memulakan keadaan pin?" kotak centang meninggalkan pilihan " tahap awal pin " serendah (0). Berikan nod apa sahaja nama yang anda suka dan klik butang selesai.
Nama simpul secara automatik akan berubah menjadi yang anda masukkan di bawah tetapan sifat. Contohnya saya menamakannya sebagai LED dan dengan itu nama nod juga ditukar sebagai LED seperti gambar di bawah.
Untuk menghidupkan / mematikan LED, kita perlu menggunakan input, sesuatu untuk mendorong tindakan. Walaupun kami dapat menggunakan tombol tekan, saya ingin menggunakan ini untuk memperkenalkan fitur dalam Node-RED yang memungkinkan penyuntikkan pesan ke aliran. Ciri ini dipanggil Node suntikan. Kami akan menggunakan dua nod suntikan. Salah satunya ialah menyalakan LED sementara yang lain akan mematikannya.
Pergi ke palet nod dan seret nod suntikan ke aliran. Ini adalah simpul pertama dalam palet dengan anak panah, simpul suntikan diserlahkan pada gambar di bawah.
Klik dua kali padanya untuk mengedit sifatnya. Ubah jenis data ke string dengan mengklik dropdown di depan muatan, dan Masukkan 1 di kotak Payload. Nilai dalam kotak muatan adalah apa yang akan disuntikkan ke aliran ketika simpul ditekan. Tetapkan nama simpul ke "ON" Tekan butang "Selesai" untuk menyimpan.
Ulangi perkara di atas untuk simpul kedua, tetapkan nilai muatan ke "0" dan namanya sebagai "mati" seperti yang ditunjukkan di bawah.
Bawah fungsi sifat, yang berulang dropdown boleh digunakan untuk mengautomasikan suntikan supaya butang ditekan pada jangka masa. Ini boleh digunakan untuk mewujudkan kesan sekelip mata. Sambungkan nod bersama seperti yang ditunjukkan di bawah, dengan menyeret titik kelabu pada salah satu nod ke yang lain untuk membuat aliran.
Dengan itu, kami telah menyelesaikan Node-Red Flow pertama kami.
Langkah seterusnya adalah kita menggunakan aliran pada raspberry pi. Klik butang menyebarkan merah. Anda akan melihat kilat "berjaya digunakan" di bahagian atas skrin seperti gambar di bawah.
Klik butang kelabu di belakang nod suntikan untuk mengaktifkan setiap nod.
Dengan mengklik pada node suntikan "on", anda akan berjaya melihat "on" yang disuntikkan dan LED menyala. LED harus padam apabila simpul suntikan "mati" diklik.
Itu sahaja. Kerja lengkap penyediaan ini boleh didapati dalam video yang dihubungkan di bahagian bawah halaman ini.
Menambah Pushbutton / Switch di antara muka Node-RED dengan Raspberry Pi
Untuk menerangkan cara menyambung / menambahkan elemen input ke aliran anda, kami akan meningkatkan aliran di atas dengan menambahkan butang tekan untuk menggantikan node suntikan.
Sambungkan butang tekan ke pi raspberry, sehingga satu kaki tekan dihubungkan ke tanah dan yang lain dihubungkan ke GPIO pin 4 (pin 11) dari raspbery pi, seperti yang ditunjukkan dalam skema di bawah.
Dengan ini, kembali ke Node-Red dan hapus dua node suntikan yang kami gunakan sebelumnya, dengan mengklik pada node dan menekan hapus pada papan kekunci anda atau mengklik dua kali pada nod dan menekan hapus pada tetingkap pop timbul. Setelah selesai, tatal ke bawah palet nod ke bahagian pi raspberry dan pilih nod input. Ia adalah ikon dengan raspberry pi di sebelah kiri, sebelum nama simpul.
Seret nod ke aliran dan klik dua kali padanya untuk mengedit sifat. Tetapkan pin ke GPIO 4 (pin 11) dan tetapkan dropdown di hadapan perintang untuk ditarik ke atas. Ini akan "menarik" GPIO 4 ke TINGGI. Klik pada butang selesai setelah menetapkan sifat.
Untuk membolehkan kita membuat keputusan logik ketika suis ditekan dan bukan hanya memendekkan GPIO4 ke tanah, kita akan menggunakan simpul suis. Cari di palet nod, di bawah bahagian fungsi dan seret ke aliran.
Node suis membolehkan anda membuat keputusan dengan cara yang serupa dengan pernyataan “if”. Ini dapat diatur untuk memiliki output yang berbeda bergantung pada nilai input. Untuk tutorial ini, kami akan mengkonfigurasinya dengan dua jalur output, sehingga, apabila sifat msg.payload sama dengan 1 (suis tidak ditekan) ia harus mengikuti jalan pertama dan jalur kedua akan diikuti jika ada input lain selain daripada 1 diperhatikan pada input (suis ditekan). Laluan ditambahkan menggunakan butang “+ add”. Klik dua kali pada nod dan konfigurasikan seperti yang dijelaskan di atas. Klik selesai apabila selesai.
Sebaik sahaja anda menekan butang selesai, anda akan melihat kedua jalur tersebut mencerminkan pandangan simpul suis, kerana ia sekarang akan mempunyai dua persimpangan pada output.
Seterusnya, kita perlu memasukkan simpul "perubahan". Nod perubahan akan digunakan untuk menetapkan keadaan LED berdasarkan hasil simpul argumen.
Kami akan menggunakan dua daripada nod perubahan. Muatan yang pertama akan ditetapkan ke 0 seperti yang ditunjukkan dalam gambar di bawah dan muatan yang kedua ditetapkan menjadi satu. Klik selesai setelah mengedit sifat untuk kedua-duanya.
Untuk menerangkan dengan lebih baik, ingatkah kita menggunakan perintang penarik? Oleh itu, apabila butang belum ditekan, output pada pin itu akan menjadi TINGGI (1), yang bermaksud jika kita melewatinya melalui simpul suis, LED akan "menyala", kerana ini seharusnya tidak demikian, kita akan gunakan simpul "ubah" untuk menetapkannya sebagai RENDAH (0). Node "ubah" kedua digunakan untuk menetapkan nilainya menjadi satu sehingga apabila ada yang lain selain keadaan GPIO pin 4 TINGGI dikesan, ia harus menyalakan LED "hidup" kerana ini akan bermaksud tombol tekan telah ditekan. Sambungkan nod perubahan dan selebihnya nod bersama seperti yang ditunjukkan dalam gambar di bawah.
Dengan ini, kami kini bersedia untuk melaksanakan projek tersebut. Pergi ke sambungan untuk memastikan semuanya seperti mestinya, kemudian klik butang menyebarkan. Seperti biasa, jika berjaya anda mesti melihat pop timbul yang berjaya dan sekarang dapat mengawal led menggunakan suis.
Walaupun Node-Red menjadikan prototaip binaan anda mudah dan cepat tanpa perlu risau tentang kodnya, sebenarnya Node-Red tidak sesuai, terutama bagi pembangun yang berpengalaman yang ingin fleksibiliti dan kawalan terhadap program ini. Walaupun begitu, ia adalah alat yang hebat yang membolehkan anda membina prototaip dalam beberapa minit.
Hingga ke suatu masa yang akan datang!