Isi kandungan:

Cara Bekerja Dengan JSON dalam Node-MERAH: 13 Langkah
Cara Bekerja Dengan JSON dalam Node-MERAH: 13 Langkah

Video: Cara Bekerja Dengan JSON dalam Node-MERAH: 13 Langkah

Video: Cara Bekerja Dengan JSON dalam Node-MERAH: 13 Langkah
Video: Login & Register Menggunakan JWT: Node JS, Express, React JS, dan MySQL (Full-Stack) 2024, November
Anonim
Cara Bekerja Dengan JSON di Node-MERAH
Cara Bekerja Dengan JSON di Node-MERAH

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

REST JSON Http Protokol
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

Aliran
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:

  1. Aliran NETIO AN30 (JSON REST API)
  2. Papan Pemuka (antara muka grafik yang membolehkan anda mengendalikan program anda)

Langkah 3: Papan Pemuka

Papan Pemuka
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:

  1. Status Peranti - menunjukkan maklumat peranti seperti model, alamat mac atau versi firmware.
  2. (POST) Control Output 1 - Mengandungi 5 butang yang mengawal output 1. Setiap butang melakukan tindakan yang berbeza
  3. (GET) O1 - Status Output O4 - Bahagian ini menunjukkan keadaan semasa setiap output dari peranti anda.
  4. 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)

Aliran Import (projek, Skrip, dll)
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

Bagaimana Semuanya Bekerjasama
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

HTTP POST dan DAPATKAN
HTTP POST dan DAPATKAN
HTTP POST dan DAPATKAN
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

Nod Butang
Nod Butang
Nod Butang
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
Node Fungsi
Node Fungsi
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:

  1. Menetapkan nilai dari objek JSON ke sifat individu objek msg
  2. 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.

  3. Menetapkan nilai keadaan output
  4. Menetapkan warna dari nilai keadaan output yang dipaparkan mengikut keadaan output

Langkah 9: JSON Node dan Inject Node

JSON Node dan Inject Node
JSON Node dan Inject Node
JSON Node dan Inject Node
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

Node Teks dan Nombor Debug
Node Teks dan Nombor Debug
Node Teks dan Nombor Debug
Node Teks dan Nombor 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

Nod Carta
Nod Carta
Nod Carta
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 dan Nod Pautan
Node Tolok dan Nod Pautan
Node Tolok dan Nod Pautan
Node Tolok dan Nod Pautan

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: