Სარჩევი:
- მარაგები
- ნაბიჯი 1: REST JSON Http (s) Protocol
- ნაბიჯი 2: ნაკადი
- ნაბიჯი 3: დაფა
- ნაბიჯი 4: იმპორტის ნაკადი (პროექტი, სკრიპტი, ა.შ.)
- ნაბიჯი 5: როგორ მუშაობს ეს ყველაფერი ერთად
- ნაბიჯი 6: HTTP POST და GET
- ნაბიჯი 7: ღილაკის კვანძები
- ნაბიჯი 8: ფუნქციის კვანძი
- ნაბიჯი 9: JSON კვანძი და ინექციის კვანძი
- ნაბიჯი 10: ტექსტის კვანძი და გამართვის კვანძი
- ნაბიჯი 11: დიაგრამის კვანძი
- ნაბიჯი 12: გაზომვის კვანძი და ბმულის კვანძები
- ნაბიჯი 13: გმადლობთ, რომ კითხულობთ ჩემს ინსტრუქციას
ვიდეო: როგორ ვიმუშაოთ JSON– თან Node-RED– ში: 13 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
ეს გაკვეთილი გასწავლით თუ როგორ უნდა იმუშაოთ JSON– თან node-RED– ში. მე გაჩვენებთ თუ როგორ უნდა აკონტროლოთ ქსელის დენის სოკეტები json ფაილების გადაცემით http get and post. თქვენ შეგიძლიათ გამოიყენოთ ეს ცოდნა მოგვიანებით JSON პროტოკოლის მხარდამჭერი ნებისმიერი მოწყობილობის გასაკონტროლებლად.
სწავლების მიზნით მე გამოვიყენებ NETIO 4All ქსელის კვების ბლოკს, მაგრამ არ ინერვიულოთ, თქვენ არაფრის ყიდვა არ გჭირდებათ. NETIO– ს აქვს გასაოცარი 4 დემო დემო, რომლის გამოყენებაც შეგიძლიათ.
მარაგები
NETIO 4 ყველა ქსელური powerocket ან 4 ყველა ონლაინ დემო:
კვანძი-წითელი
ნაბიჯი 1: REST JSON Http (s) Protocol
ეს ნაწილი ცოტა ტექნიკურია, მაგრამ გთხოვთ დამეთანხმოთ. თუ მე არ ავუხსენი ეს ნაწილი, მაშინ პრობლემა შეგექმნებათ 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 ნაკადი (პროექტი, რომელსაც ხედავთ. მოგვიანებით მე გაჩვენებთ, თუ როგორ უნდა შემოიტანოთ ნაკადები და ეს პროექტი) ეს პროექტი ორი ნაწილისგან შედგება:
- NETIO AN30 (JSON REST API) ნაკადი
- დაფა (გრაფიკული ინტერფეისი, რომლითაც შეგიძლიათ გამოიყენოთ თქვენი პროგრამა)
ნაბიჯი 3: დაფა
ასე გამოიყურება კვანძი-RED- ის დაფა ამ ინსტრუქციისთვის. თქვენ შეგიძლიათ დააკონფიგურიროთ, თუ გსურთ თქვენი გემოვნების შესაბამისად.
ამ პროექტის დაფა დაყოფილია 4 ნაწილად:
- მოწყობილობის სტატუსი - აჩვენებს მოწყობილობის ინფორმაციას, როგორიცაა მოდელი, mac მისამართი ან firmware ვერსია.
- (POST) კონტროლის გამომავალი 1 - შეიცავს 5 ღილაკს, რომელიც აკონტროლებს გამომავალ 1. თითოეული ღილაკი ასრულებს სხვადასხვა მოქმედებას
- (GET) O1 - O4 გამომავალი მდგომარეობა - ეს ნაწილი აჩვენებს თქვენი მოწყობილობიდან თითოეული გამოსვლის ამჟამინდელ მდგომარეობას.
- მოწყობილობის მენეჯმენტი - ამ ნაწილში შეგიძლიათ ნახოთ ყველა სახის დიაგრამა და ლიანდაგი, რომელიც აჩვენებს 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)
ეს კვანძი აგზავნის 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 ობიექტის თვისებებს.
კოდი დაყოფილია ოთხ ნაწილად:
- JSON ობიექტიდან მნიშვნელობების მინიჭება msg ობიექტის ინდივიდუალურ თვისებებზე
-
შეცდომის დამუშავება იმ შემთხვევაში, თუ ქსელის კვების ბლოკი არ უჭერს მხარს გლობალურ გაზომვებს
თუ ქსელის კვების ბლოკი არ უჭერს მხარს გლობალური მნიშვნელობების გაზომვას, Node-RED აჩვენებს შეცდომებს, რადგან ეს ფუნქცია ვერ იპოვის შესაბამის თვისებებს, მაგ. msg.payload. GlobalMeasure. Voltage, რადგან ის არ იქნება JSON ობიექტში. ამ შემთხვევაში, msg ობიექტის თვისება, მაგ. msg. Voltage, არის 0 და შეცდომა არის დაჭერილი დამუშავებული.
- გამომავალი მდგომარეობის მნიშვნელობების მინიჭება
- გამომავალი მდგომარეობის მნიშვნელობების ფერების დაყენება გამომავალი მდგომარეობების მიხედვით
ნაბიჯი 9: 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
ძალიან მალე:)
გირჩევთ:
შეაერთეთ თქვენი Magicbit Thingsboard– თან: 3 ნაბიჯი
შეაერთეთ თქვენი Magicbit Thingsboard– თან: ამ პროექტში ჩვენ ვაგზავნით მონაცემებს magicbit– თან დაკავშირებული სენსორებისგან, რომელთა ვიზუალურად ჩვენება შეგვიძლია დაფაზე
როგორ ვიმუშაოთ არდუინოსთან და სხვადასხვა RGB ლედებთან: 3 ნაბიჯი
როგორ ვიმუშაოთ არდუინოსთან და სხვადასხვა RGB ლედებთან: არდუინო არის საოცარი პატარა მოწყობილობა. მაგრამ ამ მძლავრი პატარა მოწყობილობის ერთ -ერთი ყველაზე ხშირად გამოყენებული პროგრამა არის LED- ის მოციმციმე ან დახუჭვა. ეს გაკვეთილი გაჩვენებთ RGB Leds- თან და Arduino– სთან მუშაობის სამ გზას. პირველი გზა არის მარტივი
როგორ დააკავშიროთ DeLorme Earthmate GPS LT-20 თქვენს Google Earth– თან დიდი GPS თვალთვალის რუქისთვის .: 5 ნაბიჯი
როგორ დააკავშიროთ DeLorme Earthmate GPS LT-20 თქვენს Google Earth– თან დიდი GPS თვალთვალის რუქისთვის .: მე გაჩვენებთ თუ როგორ დაუკავშიროთ GPS მოწყობილობა პოპულარულ Google Earth პროგრამას, Google Earth Plus– ის გამოყენების გარეშე. მე არ მაქვს დიდი ბიუჯეტი, ასე რომ შემიძლია გარანტია, რომ ეს იქნება რაც შეიძლება იაფი
უსაფრთხოების სისტემის შერწყმა Phidges- თან და Twitter- თან გასაოცრად: 8 ნაბიჯი
უსაფრთხოების სისტემის შერწყმა Phidges- თან და Twitter- თან გასაოცრობისთვის: მე ვცხოვრობ ბინაში, რომელიც აღჭურვილია უსაფრთხოების სისტემისთვის. არ მინდა სახლის სატელეფონო ხაზის ყიდვა და ადგილობრივი მონიტორინგის სერვისები არ არის გასაოცარი. მინდა ვიცოდე, ვინმე შემოვა თუ არა ჩემს ბინაში სანამ მე წავალ. შემიძლია გამოვიყენო მოძრაობის სენსორი, მაგრამ
როგორ ვიმუშაოთ Niftymitter V0.24: 6 ნაბიჯი
როგორ ვიმუშაოთ Niftymitter V0.24: ეს ინსტრუქცია გეტყვით როგორ იმუშაოთ Niftymitter 0.24, პატარა ღია კოდის FM გადამცემი. დიზაინის შესახებ მეტი ინფორმაცია შეგიძლიათ იხილოთ www.openthing.org/products/niftymitter. ეს გადამცემი დამუშავების პროცესშია და ჯერ არ დამტკიცებულა