Სარჩევი:

როგორ ვიმუშაოთ JSON– თან Node-RED– ში: 13 ნაბიჯი
როგორ ვიმუშაოთ JSON– თან Node-RED– ში: 13 ნაბიჯი

ვიდეო: როგორ ვიმუშაოთ JSON– თან Node-RED– ში: 13 ნაბიჯი

ვიდეო: როგორ ვიმუშაოთ JSON– თან Node-RED– ში: 13 ნაბიჯი
ვიდეო: Google გზების ფორმების სრული სახელმძღვანელო - ონლაინ გამოკითხვა და მონაცემთა შეგროვების ინსტრუმენტი! 2024, ნოემბერი
Anonim
როგორ ვიმუშაოთ JSON– თან Node-RED– ში
როგორ ვიმუშაოთ JSON– თან Node-RED– ში

ეს გაკვეთილი გასწავლით თუ როგორ უნდა იმუშაოთ JSON– თან node-RED– ში. მე გაჩვენებთ თუ როგორ უნდა აკონტროლოთ ქსელის დენის სოკეტები json ფაილების გადაცემით http get and post. თქვენ შეგიძლიათ გამოიყენოთ ეს ცოდნა მოგვიანებით JSON პროტოკოლის მხარდამჭერი ნებისმიერი მოწყობილობის გასაკონტროლებლად.

სწავლების მიზნით მე გამოვიყენებ NETIO 4All ქსელის კვების ბლოკს, მაგრამ არ ინერვიულოთ, თქვენ არაფრის ყიდვა არ გჭირდებათ. NETIO– ს აქვს გასაოცარი 4 დემო დემო, რომლის გამოყენებაც შეგიძლიათ.

მარაგები

NETIO 4 ყველა ქსელური powerocket ან 4 ყველა ონლაინ დემო:

კვანძი-წითელი

ნაბიჯი 1: REST JSON Http (s) Protocol

REST JSON Http (s) ოქმი
REST JSON Http (s) ოქმი

ეს ნაწილი ცოტა ტექნიკურია, მაგრამ გთხოვთ დამეთანხმოთ. თუ მე არ ავუხსენი ეს ნაწილი, მაშინ პრობლემა შეგექმნებათ json ფაილების მნიშვნელობების გაგებაში, რომელსაც ჩვენ გამოგიგზავნით კვანძში-RED.

მოქმედებები გამოიყენება თითოეული გამოსავლისთვის (ელექტრო სოკეტი):

ყველა M2M პროტოკოლში, NETIO კვების ბლოკები იყენებენ ერთსა და იმავე მოქმედებებს, რომლებიც შეიძლება გამოყენებულ იქნას ცალკეულ გამოსავალზე. მაგალითად, Toggle ან Short Off მოქმედება შეიძლება ჩაწერილი იყოს ნებისმიერ გამომავალზე.

თუმცა, Action ცვლადი შეიძლება გამოყენებულ იქნას მხოლოდ მნიშვნელობების დასაწერად, ის არ შეიძლება გამოყენებულ იქნას მიმდინარე გამავალი მდგომარეობის წასაკითხად.

ეს არის ქმედებები, რომელთა გამოყენება შეგიძლიათ თითოეულ გამომავალზე:

0 = გამომავალი გამორთულია (გამორთულია)

1 = გამომავალი ჩართულია (ჩართულია)

2 = გამომავალი დროებით გამორთულია (მოკლე გამორთულია)

3 = გამომავალი ჩართულია მოკლე დროში (მოკლე ჩართულია)

4 = გამომავალი გადავიდა ერთი მდგომარეობიდან მეორეზე (გადართვა)

5 = გამომავალი მდგომარეობა უცვლელი (არ იცვლება)

6 = იგნორირებულია

მაგალითი - JSON ფაილი გამომავალი ნომრის გადასატანად. 1:

{

"გამომავალი": [{

"ID": 1, "მოქმედება": 4

}]

}

ID - ეს რიცხვი მიუთითებს, თუ რომელ გამომავალს ვიყენებთ

მოქმედება - ეს ნაწილი არის მოქმედება, რომელსაც გამომავალი განახორციელებს (მაგ. 1 (ჩართეთ გამომავალი))

ნაბიჯი 2: ნაკადი

ნაკადი
ნაკადი

და ახლა მთავარი ნაწილი. ასე გამოიყურება კვანძ-წითელი გარემო.

ჩვენ შემოვიღეთ URL API ნაკადი (პროექტი, რომელსაც ხედავთ. მოგვიანებით მე გაჩვენებთ, თუ როგორ უნდა შემოიტანოთ ნაკადები და ეს პროექტი) ეს პროექტი ორი ნაწილისგან შედგება:

  1. NETIO AN30 (JSON REST API) ნაკადი
  2. დაფა (გრაფიკული ინტერფეისი, რომლითაც შეგიძლიათ გამოიყენოთ თქვენი პროგრამა)

ნაბიჯი 3: დაფა

დაფა
დაფა

ასე გამოიყურება კვანძი-RED- ის დაფა ამ ინსტრუქციისთვის. თქვენ შეგიძლიათ დააკონფიგურიროთ, თუ გსურთ თქვენი გემოვნების შესაბამისად.

ამ პროექტის დაფა დაყოფილია 4 ნაწილად:

  1. მოწყობილობის სტატუსი - აჩვენებს მოწყობილობის ინფორმაციას, როგორიცაა მოდელი, mac მისამართი ან firmware ვერსია.
  2. (POST) კონტროლის გამომავალი 1 - შეიცავს 5 ღილაკს, რომელიც აკონტროლებს გამომავალ 1. თითოეული ღილაკი ასრულებს სხვადასხვა მოქმედებას
  3. (GET) O1 - O4 გამომავალი მდგომარეობა - ეს ნაწილი აჩვენებს თქვენი მოწყობილობიდან თითოეული გამოსვლის ამჟამინდელ მდგომარეობას.
  4. მოწყობილობის მენეჯმენტი - ამ ნაწილში შეგიძლიათ ნახოთ ყველა სახის დიაგრამა და ლიანდაგი, რომელიც აჩვენებს NETIO 4 ყველა მოწყობილობიდან მიმდინარე გაზომულ მნიშვნელობებს

ნაბიჯი 4: იმპორტის ნაკადი (პროექტი, სკრიპტი, ა.შ.)

იმპორტის ნაკადი (პროექტი, სკრიპტი, ა.შ.)
იმპორტის ნაკადი (პროექტი, სკრიპტი, ა.შ.)

მენიუში (მარჯვენა ზედა კუთხეში) აირჩიეთ იმპორტი და შემდეგ ბუფერი.

შემდეგ დააკოპირეთ ქვემოთ მოყვანილი ტექსტი მითითებულ ველში და დააჭირეთ იმპორტს.

დაკარგული კვანძების დაყენება

კვანძები იტვირთება არჩეულ ნაკადში. შესაძლებელია, რომ შეცდომის შეტყობინება ნაჩვენები იყოს იმ კვანძების სიით, რომლებიც იმპორტირებულია, მაგრამ ჯერ არ არის დაინსტალირებული Node-RED– ში. ამ შემთხვევაში, დაკარგული კვანძების დაყენებაა საჭირო.

თუ კვანძები აკლია, მენიუში აირჩიეთ პალიტრის მართვა, დააწკაპუნეთ ინსტალაციაზე და იპოვეთ და დააინსტალირეთ დაკარგული კვანძები.

ტექსტის იმპორტი:

[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "გამორთული": false, "info": ""}, {"id ":" 6a66b637.da1558 "," type ":" http request "," z ":" 56b9510c.98c6f "," name ":" HTTP მოთხოვნა (POST) "," მეთოდი ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "ხაზები":

ნაბიჯი 5: როგორ მუშაობს ეს ყველაფერი ერთად

როგორ მუშაობს ეს ყველაფერი ერთად
როგორ მუშაობს ეს ყველაფერი ერთად

ნაკადი ძირითადად იყოფა ორ ნაწილად: POST და GET.

პოსტი: წერილობით O1

  • ნაკადში დაფაზე შექმნილი ხუთი ღილაკი ნაჩვენებია დაფაზე.
  • Dashboard– ში Output 1 = ON ღილაკზე დაჭერის შემდეგ, დატვირთვა დაყენებულია netio.json ფაილზე, რომელიც განსაზღვრავს გამომავალს და მოქმედებას (განსაზღვრულია თითოეული ღილაკისთვის).
  • HTTP მოთხოვნის (POST) ბლოკი აგზავნის netio.json ფაილს მოთხოვნის სახით IP მისამართზე.
  • სერვერის პასუხი (სტატუსი) ბრუნდება გამომავალი სახით.
  • Msg.payload ბლოკი აჩვენებს HTTP მოთხოვნის (POST) შედეგს.

მიიღეთ: კითხვა O1 - O4– დან

  • 1 მეორე განმეორებითი ბლოკი ააქტიურებს, ერთი წამიანი პერიოდით, HTTP მოთხოვნის (GET) ბლოკს, რომელიც თავის მხრივ აგზავნის netio.json– ს GET მოთხოვნის სახით და აბრუნებს სრულ JSON ფაილს, ბუდის სტატუსით, როგორც მიღებული სერვერიდან.
  • JSON Parse ბლოკი JSON ფაილს გარდაქმნის HTTP მოთხოვნის (GET) ბლოკიდან JSON ობიექტად, რათა შესაძლებელი იყოს JSON ფაილში არსებული თვისებების მანიპულირება.
  • ფუნქციის ბლოკი იღებს JSON ობიექტის ცალკეულ ნაწილებს და გარდაქმნის მათ msg ობიექტის თვისებად შემდგომი გამოყენებისთვის.
  • ამჟამინდელი დიაგრამის ბლოკი ადგენს msg. გადატვირთვას msg ობიექტის msg. TotalCurrent თვისებაში, რადგან მომდევნო მიმდინარე დიაგრამის (მოწყობილობის) ბლოკს შეუძლია აჩვენოს მხოლოდ msg.payload მნიშვნელობა.
  • შემდეგ გამოდის სხვადასხვა გამომავალი კვანძები, რათა გამოაქვეყნოს msg ობიექტის შერჩეული თვისებები, როგორც JSON ობიექტიდან, დაფაზე.

Msg ობიექტი და msg.payload

მარტივი და ლაკონური ახსნისთვის იხილეთ აქ:

www.steves-internet-guide.com/node-red-mess…

ნაბიჯი 6: HTTP POST და GET

HTTP POST და GET
HTTP POST და GET
HTTP POST და GET
HTTP POST და GET

HTTP მოთხოვნა (POST)

ეს კვანძი აგზავნის netio.json ბრძანების ფაილს, როგორც HTTP მოთხოვნა (POST), რათა გააკონტროლოს NETIO 4All მოწყობილობა.

HTTP მოთხოვნა (GET)

ეს კვანძი აგზავნის HTTP მოთხოვნას (GET) და აბრუნებს სტატუსის პასუხს.

წინასწარ შევსებული მისამართი მიუთითებს NETIO 4All ონლაინ დემოზე, სადაც შეგიძლიათ შეამოწმოთ კავშირი თქვენს მაგიდასთან NETIO მოწყობილობის გარეშე.

netio-4all.netio-products.com

ამ კვანძებში შესაძლებელია თქვენი საკუთარი IP მისამართის დაყენება; თუმცა, IP უნდა შეიცვალოს როგორც HTTP მოთხოვნის კვანძებში, ასევე POST- ში და GET- ში.

ნაბიჯი 7: ღილაკის კვანძები

ღილაკის კვანძები
ღილაკის კვანძები
ღილაკის კვანძები
ღილაკის კვანძები

ღილაკზე კვანძის დაჭერით წარმოიქმნება შეტყობინება, რომელიც შეიცავს netio.json ფაილს (მარჯვენა სურათი), რომელიც შემდეგ იგზავნება http post კვანძის საშუალებით netio ჭკვიანი კვების ბლოკში.

ნაბიჯი 8: ფუნქციის კვანძი

ფუნქციის კვანძი
ფუნქციის კვანძი
ფუნქციის კვანძი
ფუნქციის კვანძი

ფუნქციური კვანძი არის სპეციალური კვანძი, რომელიც საშუალებას გაძლევთ დაწეროთ მორგებული JavaScript ფუნქცია.

ამ ინსტრუქციაში, ფუნქცია ირჩევს ღირებულებებს გაანალიზებული JSON ფაილიდან (ახლა JSON ობიექტი) და მიანიჭებს მათ msg ობიექტის თვისებებს.

კოდი დაყოფილია ოთხ ნაწილად:

  1. JSON ობიექტიდან მნიშვნელობების მინიჭება msg ობიექტის ინდივიდუალურ თვისებებზე
  2. შეცდომის დამუშავება იმ შემთხვევაში, თუ ქსელის კვების ბლოკი არ უჭერს მხარს გლობალურ გაზომვებს

    თუ ქსელის კვების ბლოკი არ უჭერს მხარს გლობალური მნიშვნელობების გაზომვას, Node-RED აჩვენებს შეცდომებს, რადგან ეს ფუნქცია ვერ იპოვის შესაბამის თვისებებს, მაგ. msg.payload. GlobalMeasure. Voltage, რადგან ის არ იქნება JSON ობიექტში. ამ შემთხვევაში, msg ობიექტის თვისება, მაგ. msg. Voltage, არის 0 და შეცდომა არის დაჭერილი დამუშავებული.

  3. გამომავალი მდგომარეობის მნიშვნელობების მინიჭება
  4. გამომავალი მდგომარეობის მნიშვნელობების ფერების დაყენება გამომავალი მდგომარეობების მიხედვით

ნაბიჯი 9: JSON კვანძი და ინექციის კვანძი

JSON კვანძი და ინექციის კვანძი
JSON კვანძი და ინექციის კვანძი
JSON კვანძი და ინექციის კვანძი
JSON კვანძი და ინექციის კვანძი

JSON კვანძი

JSON კვანძი აანალიზებს JSON ფაილს და გარდაქმნის მას JSON ობიექტად.

როგორც სერვერის პასუხი GET მოთხოვნაზე, HTTP მოთხოვნის კვანძი აბრუნებს JSON ფაილს, რომელიც შეიცავს NETIO 4x მოწყობილობის ამჟამინდელ სტატუსს, მაგრამ ის უბრალოდ ტექსტური ფაილია, ამიტომ მონაცემებთან მუშაობისათვის საჭიროა JSON ფაილი JSON ობიექტში გასაანალიზებლად.

ინექციის კვანძი

ყოველ წამს, ეს კვანძი ააქტიურებს HTTP მოთხოვნის კვანძს, რომელიც აგზავნის GET მოთხოვნას.

შედეგად, Dashboard– ის მნიშვნელობები განახლდება ერთი წამის ვადით

ნაბიჯი 10: ტექსტის კვანძი და გამართვის კვანძი

ტექსტის კვანძი და გამართვის კვანძი
ტექსტის კვანძი და გამართვის კვანძი
ტექსტის კვანძი და გამართვის კვანძი
ტექსტის კვანძი და გამართვის კვანძი

ტექსტის კვანძი

აჩვენებს ტექსტის ველს საინფორმაციო დაფაზე. ამ ინსტრუქციებში, ტექსტის კვანძები აჩვენებს მიმდინარეობას, ძაბვას, მოდელს, firmware ვერსიას ან JSON ვერსიას.

ლეიბლი ნაჩვენებია საინფორმაციო დაფაზე, ხოლო სახელი არის კვანძის სახელი, რომელიც ნაჩვენებია ნაკადში-RED.

გამართვის კვანძი

აჩვენებს msg.payload.

ნაბიჯი 11: დიაგრამის კვანძი

დიაგრამის კვანძი
დიაგრამის კვანძი
დიაგრამის კვანძი
დიაგრამის კვანძი

ეს კვანძი ადგენს მიმდინარე დიაგრამას საინფორმაციო დაფაზე დატვირთვის ღირებულების მიხედვით.

ამ კვანძს შეუძლია გრაფიკების დახაზვა მხოლოდ დატვირთვის ღირებულების მიხედვით.

ამ მიზეზით, ფუნქციის კვანძი გამოიყენება msg.payload მნიშვნელობის დასადგენად, რომელიც უნდა იყოს ნაჩვენები.

msg.payload = msg. TotalCurrent;

ნაბიჯი 12: გაზომვის კვანძი და ბმულის კვანძები

ლიანდაგის კვანძი და ბმულის კვანძები
ლიანდაგის კვანძი და ბმულის კვანძები
ლიანდაგის კვანძი და ბმულის კვანძები
ლიანდაგის კვანძი და ბმულის კვანძები

საზომი კვანძი

ეს კვანძი ამატებს ლიანდაგის ვიჯეტს საინფორმაციო დაფაზე.

ამ სასწავლო ინსტრუქციაში, თითოეული ლიანდაგი ვიზუალურად ასახავს msg ობიექტის ერთ თვისებას: ძაბვა [V], კურენტი [A], სიხშირე [Hz] და საერთო ჭეშმარიტი სიმძლავრის ფაქტორი (TPF).

ბმულის კვანძები

ბმული და კავშირი კვანძები გვირაბის მსგავსად მუშაობს. Msg.payload ჩამოდის ბმულში კვანძში და გადის ბმულიდან კვანძიდან.

მე გამოვიყენე ის, რომ ნაკადი ოდნავ გამჭვირვალე და ადვილი წასაკითხი ყოფილიყო.

ნაბიჯი 13: გმადლობთ, რომ კითხულობთ ჩემს ინსტრუქციას

ვიმედოვნებ, რომ ისიამოვნეთ ჩემი სასწავლო ინსტრუქციით და იმედიანად ისწავლეთ რაიმე ახალი.

ეს სასწავლო არის მხოლოდ შემოკლებული ვერსია სხვადასხვა გზამკვლევი მე გააკეთა

ორიგინალური სახელმძღვანელო უფრო გრძელი და ბევრად უფრო დეტალებზეა ორიენტირებული და ზოგადად უკეთ სტრუქტურირებული. თუ თქვენ არ გესმით რაღაც ან ფიქრობთ რომ მე გამოვტოვე ან საკმარისად არ ავუხსენი რაღაც, მაშინ თქვენ აუცილებლად იპოვით იქ.

გპირდები იმედგაცრუებული არ იქნები

ორიგინალი:

ასევე არსებობს მსგავსი გზამკვლევი კვანძ – RED– ის სხვადასხვა გამოყენების შესახებ, ასე რომ, თუ თქვენ დაინტერესებული ხართ, თავისუფლად შეისწავლეთ:

მუშაობს REST URL API– ით კვანძ – RED– ში

www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x

REST XML– თან მუშაობა კვანძში-RED

www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x

მუშაობა TCP/Modbus კვანძში-RED

ძალიან მალე:)

გირჩევთ: