Isi kandungan:
- Bekalan
- Langkah 1: REST JSON Http Protokol
- Langkah 2: Aliran
- Langkah 3: Papan Pemuka
- Langkah 4: Aliran Import (projek, Skrip, dll)
- Langkah 5: Bagaimana Semuanya Bekerjasama
- Langkah 6: HTTP POST dan DAPATKAN
- Langkah 7: Nod Butang
- Langkah 8: Node Fungsi
- Langkah 9: JSON Node dan Inject Node
- Langkah 10: Node Teks dan Nyah Debug
- Langkah 11: Nod Carta
- Langkah 12: Gauge Node dan Link Nodes
- Langkah 13: Terima kasih kerana membaca arahan saya
Video: Cara Bekerja Dengan JSON dalam Node-MERAH: 13 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Petunjuk ini akan mengajar anda bagaimana bekerjasama dengan JSON dalam simpul-MERAH. Saya akan menunjukkan kepada anda cara mengawal soket kuasa rangkaian dengan memindahkan fail json melalui http get dan post. Dan anda boleh menggunakan pengetahuan ini kemudian untuk mengawal sebarang peranti yang menyokong protokol JSON.
Untuk tujuan pengajaran, saya akan menggunakan soket kuasa rangkaian NETIO 4All, tetapi jangan risau, anda tidak perlu membeli apa-apa. NETIO mempunyai demo dalam talian 4All yang boleh anda gunakan.
Bekalan
NETIO 4Semua rangkaian kuasa atau demo dalam talian 4All:
Node-MERAH
Langkah 1: REST JSON Http Protokol
Bahagian ini sedikit teknikal tetapi tolong ikuti saya. Sekiranya saya tidak menjelaskan bahagian ini maka anda akan menghadapi masalah untuk memahami nilai-nilai dalam fail json yang akan kami kirimkan dalam simpul-RED.
Tindakan yang berlaku untuk setiap output (soket elektrik):
Dalam semua protokol M2M, soket kuasa NETIO menggunakan tindakan yang sama yang dapat diterapkan pada output individu. Sebagai contoh, tindakan Toggle atau Short Off boleh ditulis ke output apa pun.
Walau bagaimanapun, pemboleh ubah Tindakan hanya boleh digunakan untuk menulis nilai, tidak boleh digunakan untuk membaca keadaan saluran keluar semasa.
Ini adalah tindakan yang boleh anda gunakan untuk setiap output:
0 = Output dimatikan (Mati)
1 = Output dihidupkan (Hidup)
2 = Output dimatikan untuk waktu yang singkat (pendek Mati)
3 = Output dihidupkan untuk waktu yang singkat (pendek Hidup)
4 = Output diubah dari satu keadaan ke keadaan lain (beralih)
5 = Keadaan output tidak berubah (tidak ada perubahan)
6 = Tidak dihiraukan
Contoh - fail JSON untuk menukar nombor output. 1:
{
"Keluaran": [{
"ID": 1, "Tindakan": 4
}]
}
ID - nombor ini menunjukkan output mana yang akan kita gunakan
Tindakan - bahagian ini, adalah tindakan yang akan dibuat oleh output (mis. 1 (Hidupkan output))
Langkah 2: Aliran
Dan sekarang bahagian utama. Ini adalah bagaimana persekitaran simpul-RED.
Kami telah mengimport aliran API URL (Projek yang anda lihat. Nanti saya akan tunjukkan cara mengimport aliran dan projek ini) Projek ini terdiri daripada dua bahagian:
- Aliran NETIO AN30 (JSON REST API)
- Papan Pemuka (antara muka grafik yang membolehkan anda mengendalikan program anda)
Langkah 3: Papan Pemuka
Beginilah rupa papan pemuka dalam simpul-RED untuk arahan ini. Anda boleh menyesuaikannya jika anda mahu mengikut citarasa anda.
Papan pemuka untuk projek ini terbahagi kepada 4 bahagian:
- Status Peranti - menunjukkan maklumat peranti seperti model, alamat mac atau versi firmware.
- (POST) Control Output 1 - Mengandungi 5 butang yang mengawal output 1. Setiap butang melakukan tindakan yang berbeza
- (GET) O1 - Status Output O4 - Bahagian ini menunjukkan keadaan semasa setiap output dari peranti anda.
- Pengurusan Peranti - Di bahagian ini anda dapat mencari pelbagai jenis grafik dan alat ukur yang menunjukkan nilai meter semasa dari peranti NETIO 4Aall
Langkah 4: Aliran Import (projek, Skrip, dll)
Di menu (sudut kanan atas) pilih Import dan kemudian Papan Keratan.
Kemudian, salin teks di bawah ke medan yang ditunjukkan dan klik Import.
Memasang nod yang hilang
Node dimuat ke dalam aliran yang dipilih. Ada kemungkinan bahawa mesej ralat dipaparkan dengan senarai node yang sedang diimport tetapi belum dipasang di Node-RED. Dalam kes ini, nod yang hilang perlu dipasang.
Sekiranya terdapat nod yang hilang, pilih Urus palet dalam menu, klik Pasang dan cari dan pasang nod yang hilang.
Import teks:
[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "disabled": false, "info": ""}, {"id ":" 6a66b637.da1558 "," type ":" http request "," z ":" 56b9510c.98c6f "," name ":" HTTP Request (POST) "," method ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "wayar":
Langkah 5: Bagaimana Semuanya Bekerjasama
Aliran pada dasarnya terbahagi kepada dua bahagian: POST dan GET.
POST: Menulis ke O1
- Lima butang yang dibuat di Dashboard in the Flow dipaparkan di Dashboard.
- Setelah mengklik butang Output 1 = ON di Dashboard, muatan diatur ke file netio.json yang menentukan output dan tindakan (ditentukan untuk setiap butang).
- Blok Permintaan HTTP (POST) menghantar fail netio.json sebagai permintaan ke alamat IP.
- Respons pelayan (status) dikembalikan sebagai output.
- Blok Msg.payload memaparkan hasil dari Permintaan HTTP (POST).
DAPATKAN: Membaca dari O1 - O4
- Blok Ulang 1 Detik mengaktifkan, dengan jangka masa satu saat, blok Permintaan HTTP (GET), yang seterusnya akan mengirim netio.json sebagai permintaan GET dan mengembalikan fail JSON lengkap dengan status soket seperti yang diterima dari pelayan.
- Blok Parse JSON mengubah fail JSON dari blok Permintaan HTTP (GET) ke Objek JSON sehingga mungkin untuk memanipulasi sifat dalam fail JSON.
- Blok Fungsi mengambil bahagian individu dari objek JSON dan mengubahnya menjadi sifat objek msg untuk digunakan kemudian.
- Blok Carta Semasa menetapkan msg.payload ke sifat msg. TotalCurrent objek msg, kerana blok Carta Semasa (Peranti) berikutnya hanya dapat memaparkan nilai msg.payload.
- Berbagai node output kemudian diikuti untuk menampilkan sifat terpilih dari objek msg, seperti yang diambil dari objek JSON, di Dashboard.
Objek msg dan msg.payload
Untuk penjelasan yang ringkas dan ringkas, lihat di sini:
www.steves-internet-guide.com/node-red-mess…
Langkah 6: HTTP POST dan DAPATKAN
Permintaan HTTP (POST)
Node ini menghantar fail arahan netio.json sebagai Permintaan HTTP (POST) untuk mengawal peranti NETIO 4All.
Permintaan HTTP (GET)
Node ini menghantar Permintaan HTTP (GET) dan mengembalikan respons status.
Alamat yang dipenuhi menunjukkan demo dalam talian NETIO 4All, di mana anda boleh menguji sambungan tanpa mempunyai peranti NETIO di meja anda.
netio-4all.netio-products.com
Anda boleh menetapkan alamat IP anda sendiri dalam nod ini; namun, IP perlu diubah di kedua-dua nod Permintaan HTTP, POST dan juga GET.
Langkah 7: Nod Butang
Mengklik simpul butang menghasilkan mesej yang mengandungi fail netio.json (Gambar kanan) yang kemudian dihantar melalui nod pos http ke soket kuasa pintar netio.
Langkah 8: Node Fungsi
Node fungsi adalah simpul khas yang membolehkan penulisan fungsi JavaScript tersuai.
Dalam instruksional ini, fungsi memilih nilai dari fail JSON yang dihuraikan (sekarang objek JSON) dan memberikannya kepada sifat objek msg.
Kod ini dibahagikan kepada empat bahagian:
- Menetapkan nilai dari objek JSON ke sifat individu objek msg
-
Kesalahan menangani sekiranya soket kuasa rangkaian tidak menyokong pengukuran global
Sekiranya soket kuasa rangkaian tidak menyokong pengukuran nilai global, Node-RED akan memaparkan ralat kerana fungsi ini tidak akan menemui sifat masing-masing, mis. msg.payload. GlobalMeasure. Voltage, kerana ia tidak akan terdapat dalam objek JSON. Dalam kes ini, sifat objek msg, mis. msg. Voltage, ditetapkan ke 0 dan ralat dikendalikan.
- Menetapkan nilai keadaan output
- Menetapkan warna dari nilai keadaan output yang dipaparkan mengikut keadaan output
Langkah 9: JSON Node dan Inject Node
Nod JSON
Node JSON menguraikan fail JSON dan mengubahnya menjadi objek JSON.
Sebagai tindak balas dari pelayan terhadap permintaan GET, node Permintaan HTTP mengembalikan fail JSON yang mengandungi status semasa peranti NETIO 4x, tetapi hanyalah fail teks, jadi untuk bekerja dengan data, file JSON memerlukan untuk dihuraikan ke objek JSON.
Suntikan nod
Setiap saat, node ini mengaktifkan nod Permintaan HTTP yang menghantar permintaan GET.
Akibatnya, nilai di Dashboard dikemas kini dengan jangka masa satu saat
Langkah 10: Node Teks dan Nyah Debug
Nod teks
Memaparkan bidang teks di Papan Pemuka. Dalam arahan ini, node teks memaparkan arus, voltan, model, versi firmware atau versi JSON.
Label dipaparkan di Papan Pemuka, dan Nama adalah nama simpul yang ditunjukkan dalam aliran di Node-MERAH.
Nombor nyahpepijat
Memaparkan muatan msg.payload.
Langkah 11: Nod Carta
Node ini memetakan carta semasa di Papan Pemuka mengikut nilai muatan.
Node ini hanya dapat membuat petak mengikut nilai muatan.
Atas sebab ini, node fungsi digunakan untuk menetapkan msg.payload ke nilai yang perlu ditunjukkan.
msg.payload = msg. TotalCurrent;
Langkah 12: Gauge Node dan Link Nodes
Node tolok
Node ini menambahkan widget tolok ke Dashboard.
Dalam arahan ini, setiap tolok memvisualisasikan satu sifat objek msg: voltan [V], curent [A], frekuensi [Hz] dan keseluruhan Faktor Kuasa Sejati (TPF).
Pautan nod
Pautan masuk dan pautan keluar berfungsi seperti terowong. Msg.payload masuk ke pautan di simpul dan keluar dari nod pautan keluar.
Saya menggunakannya untuk menjadikan aliran sedikit lebih jelas dan senang dibaca.
Langkah 13: Terima kasih kerana membaca arahan saya
Saya harap anda menikmati pengajaran saya dan semoga dapat mempelajari sesuatu yang baru.
Petunjuk ini hanya dipendekkan versi panduan berbeza yang saya buat
Panduan asal lebih berorientasikan perincian dan lebih tersusun secara umum. Sekiranya anda tidak memahami sesuatu atau menganggap saya terlepas atau tidak cukup menerangkan sesuatu, anda pasti dapat menemuinya di sana.
Saya berjanji anda tidak akan kecewa
Asal:
Terdapat juga panduan serupa mengenai pelbagai kegunaan Node-RED, jadi jika anda berminat jangan terokai:
Bekerja dengan REST URL API dalam simpul-MERAH
www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x
Bekerja dengan REST XML dalam simpul-MERAH
www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x
Bekerja dengan TCP / Modbus dalam simpul-MERAH
Akan datang:)
Disyorkan:
Cara Menyiapkan Arduino IDE untuk Bekerja Dengan Papan Tinusaur .: 3 Langkah
Cara Menyiapkan Arduino IDE untuk Bekerja Dengan Papan Tinusaur.: Ini adalah panduan ringkas bagaimana menyiapkan Arduino IDE untuk bekerja dengan papan Tinusaur. Apa yang dilakukannya pada dasarnya adalah membuatnya berfungsi dengan mikrokontroler Atmel ATtiny85 / 45/25 . Satu-satunya perbezaan adalah bahawa ia akan muncul dalam senarai papan sebagai Tinusau
Cara Bekerja Dengan Arduino dan LGB RGB yang berbeza: 3 Langkah
Cara Bekerja Dengan Arduino dan LGB RGB yang berbeza: Arduino adalah peranti kecil yang luar biasa. Tetapi salah satu aplikasi yang paling banyak digunakan untuk peranti kecil yang kuat ini ialah sering memancarkan atau mengedipkan LED. Tutorial ini akan menunjukkan kepada anda tiga cara untuk bekerja dengan RGB Leds dan Arduino. Cara pertama adalah menggunakan
Cara Membuat Dok Pembesar Suara Mp3 yang Keren dalam Masa Dalam Satu Jam !: 8 Langkah
Cara Membuat Dok Pembesar Suara Mp3 Keren dalam Waktu Dalam Satu Jam !: Cara membuat dok pembesar suara mp3 yang keren dalam waktu kurang dari satu jam secara percuma
Dengarkan lagu anda untuk Bekerja dalam Tahap Kebisingan Tinggi: 16 Langkah
Dengarkan lagu anda kerana Bekerja dalam Tahap Kebisingan Tinggi: Ini adalah celah pertama saya untuk ini sehingga telanjang dengan saya. Masalah: di tempat kerja kita tidak dibenarkan memakai fon kepala dan melihat kerana terdapat peraturan perlindungan pendengaran 100%, inilah cara saya mengalahkan sistem. Kami dibenarkan radio tetapi kami berada di bangunan besi dan
Cara Mod Pembesar Suara Sony Ericsson Bekerja Dengan IPod .: 4 Langkah
Cara Mod Pembesar Suara Sony Ericsson untuk Bekerja Dengan IPod: Dalam arahan ini, saya akan menunjukkan kepada anda cara mengubah sepasang Pembesar Suara Sony Ericsson untuk bekerja dengan iPod, MP3 atau apa sahaja yang mempunyai soket fon kepala! Ini adalah arahan pertama saya jadi saya harap anda menyukainya! Peralatan: Sebarang kabel dengan ja 2.5mm