Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Protokół REST JSON
- Krok 2: Przepływ
- Krok 3: Pulpit
- Krok 4: Przepływ importu (projekt, skrypt itp.)
- Krok 5: Jak to wszystko działa razem
- Krok 6: HTTP POST i GET
- Krok 7: Węzły przycisków
- Krok 8: Węzeł funkcji
- Krok 9: Węzeł JSON i węzeł wstrzykiwania
- Krok 10: Węzeł tekstowy i węzeł debugowania
- Krok 11: Węzeł wykresu
- Krok 12: Węzeł pomiarowy i węzły łączące
- Krok 13: Dziękuję za przeczytanie mojej instrukcji
Wideo: Jak pracować z JSON w Node-RED: 13 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Ta instrukcja nauczy Cię, jak pracować z JSON w node-RED. Pokażę ci, jak sterować gniazdkami sieciowymi z przesyłaniem plików json przez http get i post. Możesz później wykorzystać tę wiedzę do kontrolowania dowolnego urządzenia obsługującego protokół JSON.
Do celów dydaktycznych będę używał gniazdka sieciowego NETIO 4All, ale nie martw się, nie musisz niczego kupować. NETIO ma niesamowite demo online 4All, z którego możesz skorzystać.
Kieszonkowe dzieci
Gniazdo sieciowe NETIO 4All lub wersja demonstracyjna online 4All:
Węzeł-CZERWONY
Krok 1: Protokół REST JSON
Ta część jest trochę techniczna, ale proszę o wyrozumiałość. Gdybym nie wyjaśnił tej części, miałbyś problemy ze zrozumieniem wartości w plikach json, które wyślemy w node-RED.
Czynności mające zastosowanie do każdego wyjścia (gniazdo elektryczne):
We wszystkich protokołach M2M gniazda zasilania NETIO wykorzystują te same czynności, które można zastosować do poszczególnych wyjść. Na przykład do dowolnego wyjścia można zapisać akcję Przełącz lub Wyłącz.
Jednak zmienna Action może być używana tylko do zapisywania wartości, nie może być używana do odczytu bieżącego stanu wyjścia.
Oto działania, które możesz zastosować do każdego wyniku:
0 = wyjście wyłączone (wył.)
1 = wyjście włączone (włączone)
2 = wyjście wyłączone na krótki czas (krótkie wyłączenie)
3 = wyjście włączone na krótki czas (na krótko)
4 = Wyjście przełączane z jednego stanu do drugiego (przełącznik)
5 = Stan wyjścia niezmieniony (bez zmian)
6 = ignorowane
Przykład – plik JSON do przełączania wyjścia nr. 1:
{
"Wyjścia": [{
"ID": 1, „Akcja”: 4
}]
}
ID - ta liczba wskazuje, z którego wyjścia będziemy korzystać
Akcja - ta część, to akcja, którą wykona wyjście (np. 1 (Włącz wyjście))
Krok 2: Przepływ
A teraz główna część. Tak wygląda środowisko node-RED.
Zaimportowaliśmy przepływ URL API (Projekt, który widzisz. Później pokażę Ci jak importować przepływy i ten projekt) Ten projekt składa się z dwóch części:
- Przepływ NETIO AN30 (JSON REST API)
- Dashboard (interfejs graficzny, za pomocą którego możesz obsługiwać swój program)
Krok 3: Pulpit
Tak wygląda pulpit nawigacyjny w node-RED dla tej instrukcji. Możesz go dostosować, jeśli chcesz, aby pasował do Twojego gustu.
Pulpit nawigacyjny dla tego projektu podzielony jest na 4 części:
- Stan urządzenia - wyświetla informacje o urządzeniu, takie jak model, adres mac lub wersja oprogramowania układowego.
- (POST) Control Output 1 – Zawiera 5 przycisków, które sterują wyjściem 1. Każdy przycisk wykonuje inną akcję
- (GET) O1 - O4 Output States - Ta część pokazuje aktualny stan każdego wyjścia z twojego urządzenia.
- Zarządzanie urządzeniami - W tej części można znaleźć wszelkiego rodzaju wykresy i wskaźniki, które pokazują aktualne wartości pomiarowe z urządzenia NETIO 4Aall
Krok 4: Przepływ importu (projekt, skrypt itp.)
W menu (prawy górny róg) wybierz Import, a następnie Schowek.
Następnie skopiuj poniższy tekst do wskazanego pola i kliknij Importuj.
Instalowanie brakujących węzłów
Węzły są ładowane do wybranego przepływu. Możliwe, że zostanie wyświetlony komunikat o błędzie z listą węzłów, które są importowane, ale nie są jeszcze zainstalowane w Node-RED. W takim przypadku należy zainstalować brakujące węzły.
Jeśli brakuje węzłów, wybierz z menu paletę Zarządzaj, kliknij Zainstaluj i znajdź i zainstaluj brakujące węzły.
Importuj tekst:
[{"id":"56b9510c.98c6f", "type":"tab", "label":"NETIO AN30 (REST JSON)", "disabled":false, "info":""}, {"id ":"6a66b637.da1558", "type":"żądanie http", "z":"56b9510c.98c6f", "name":"Żądanie HTTP (POST)", "method":"POST", "ret":"txt", "url":"https://netio-4All.netio-products.com:8080/netio.json", "tls":"", "x":430, "y":100, "wires":
Krok 5: Jak to wszystko działa razem
Przepływ jest zasadniczo podzielony na dwie części: POST i GET.
POST: Pisanie do O1
- Pięć przycisków utworzonych w Dashboard w Flow jest wyświetlanych w Dashboard.
- Po kliknięciu przycisku Output 1 = ON na pulpicie nawigacyjnym ładunek jest ustawiany na plik netio.json, który określa dane wyjściowe i akcję (zdefiniowaną dla każdego z przycisków).
- Blok HTTP Request (POST) wysyła plik netio.json jako żądanie na adres IP.
- Odpowiedź serwera (stan) jest zwracana jako dane wyjściowe.
- Blok Msg.payload wyświetla wynik żądania HTTP (POST).
GET: Czytanie od O1 do O4
- Blok 1-sekundowego powtarzania aktywuje, z okresem jednej sekundy, blok HTTP Request (GET), który z kolei wysyła netio.json jako żądanie GET i zwraca kompletny plik JSON ze statusem gniazda otrzymanym z serwera.
- Blok JSON Parse przekształca plik JSON z bloku HTTP Request (GET) na obiekt JSON, dzięki czemu można manipulować właściwościami w pliku JSON.
- Blok funkcyjny pobiera poszczególne części obiektu JSON i przekształca je we właściwości obiektu msg do późniejszego wykorzystania.
- Blok Current Chart ustawia msg.payload na właściwość msg. TotalCurrent obiektu msg, ponieważ kolejny blok Current Chart (Device) może wyświetlać tylko wartość msg.payload.
- Następnie następują różne węzły wyjściowe, aby wyświetlić wybrane właściwości obiektu msg, pobrane z obiektu JSON, w Dashboard.
Obiekt msg i msg.payload
Aby uzyskać proste i zwięzłe wyjaśnienie, zobacz tutaj:
www.steves-internet-guide.com/node-red-mess…
Krok 6: HTTP POST i GET
Żądanie HTTP (POST)
Ten węzeł wysyła plik poleceń netio.json jako żądanie HTTP (POST) w celu sterowania urządzeniem NETIO 4All.
Żądanie HTTP (GET)
Ten węzeł wysyła żądanie HTTP (GET) i zwraca odpowiedź statusu.
Wstępnie wypełniony adres wskazuje na demo online NETIO 4All, w którym można przetestować połączenie bez konieczności posiadania urządzenia NETIO przy biurku.
netio-4all.netio-products.com
W tych węzłach można ustawić własny adres IP; jednak adres IP musi zostać zmieniony zarówno w węzłach żądania HTTP, POST, jak i GET.
Krok 7: Węzły przycisków
Kliknięcie przycisku węzła generuje wiadomość zawierającą plik netio.json (zdjęcie po prawej), która jest następnie wysyłana za pośrednictwem węzła post HTTP do inteligentnego gniazda zasilania netio.
Krok 8: Węzeł funkcji
Węzeł funkcji to specjalny węzeł, który umożliwia napisanie niestandardowej funkcji JavaScript.
W tej instrukcji funkcja pobiera wartości z przeanalizowanego pliku JSON (obecnie obiektu JSON) i przypisuje je do właściwości obiektu msg.
Kod podzielony jest na cztery sekcje:
- Przypisywanie wartości z obiektu JSON do poszczególnych właściwości obiektu msg
-
Obsługa błędów w przypadku, gdy gniazdko sieciowe nie obsługuje pomiarów globalnych
Jeśli gniazdo sieciowe nie obsługuje pomiaru wartości globalnych, węzeł CZERWONY wyświetli błędy, ponieważ ta funkcja nie znajdzie odpowiedniej właściwości, np. msg.payload. GlobalMeasure. Voltage, ponieważ nie byłoby go w obiekcie JSON. W tym przypadku właściwość obiektu msg, np. msg. Voltage, jest ustawiony na 0, a błąd jest przechwycony i obsłużony.
- Przypisywanie wartości stanu wyjścia
- Ustawienie kolorów wyświetlanych wartości stanów wyjść zgodnie ze stanami wyjść
Krok 9: Węzeł JSON i węzeł wstrzykiwania
węzeł JSON
Węzeł JSON analizuje plik JSON i przekształca go w obiekt JSON.
W odpowiedzi z serwera na żądanie GET węzeł HTTP Request zwraca plik JSON zawierający aktualny stan urządzenia NETIO 4x, ale jest to po prostu plik tekstowy, więc do pracy z danymi potrzebny jest plik JSON do przetworzenia na obiekt JSON.
Wstrzyknij węzeł
Co sekundę ten węzeł aktywuje węzeł HTTP Request, który wysyła żądanie GET.
W rezultacie wartości w panelu są aktualizowane z okresem jednej sekundy
Krok 10: Węzeł tekstowy i węzeł debugowania
Węzeł tekstowy
Wyświetla pole tekstowe na pulpicie nawigacyjnym. W tej instrukcji węzły tekstowe wyświetlają prąd, napięcie, model, wersję oprogramowania układowego lub wersję JSON.
Etykieta jest wyświetlana na pulpicie nawigacyjnym, a Nazwa jest nazwą węzła wyświetlaną w przepływie w Węźle-CZERWONYM.
Debuguj węzeł
Wyświetla msg.payload.
Krok 11: Węzeł wykresu
Ten węzeł przedstawia bieżący wykres na pulpicie nawigacyjnym zgodnie z wartością ładunku.
Ten węzeł może kreślić wykresy tylko zgodnie z wartością ładunku.
Z tego powodu węzeł funkcji służy do ustawiania msg.payload na wartość, która ma być wyświetlana.
msg.payload = msg. TotalCurrent;
Krok 12: Węzeł pomiarowy i węzły łączące
Węzeł pomiarowy
Ten węzeł dodaje widżet miernika do pulpitu nawigacyjnego.
W tej instrukcji każdy miernik wizualizuje jedną właściwość obiektu msg: napięcie [V], prąd [A], częstotliwość [Hz] i całkowity rzeczywisty współczynnik mocy (TPF).
Połącz węzły
Węzły link in i link out działają jak tunel. msg.payload dociera do łącza w węźle i wychodzi z węzła wychodzącego łącza.
Użyłem go, aby przepływ był nieco wyraźniejszy i łatwiejszy do odczytania.
Krok 13: Dziękuję za przeczytanie mojej instrukcji
Mam nadzieję, że podobało Ci się moje instruktażowe i mam nadzieję, że nauczyłeś się czegoś nowego.
Ta instrukcja jest tylko skróconą wersją innego przewodnika, który stworzyłem
Oryginalny przewodnik jest dłuższy, bardziej szczegółowy i ogólnie lepiej zorganizowany. Jeśli czegoś nie zrozumiałeś lub uważasz, że przeoczyłem lub nie wyjaśniłem wystarczająco czegoś, to na pewno możesz to tam znaleźć.
Obiecuję, że nie będziesz zawiedziony
Oryginał:
Istnieją również podobne przewodniki o różnych zastosowaniach node-RED, więc jeśli jesteś zainteresowany, możesz zapoznać się z:
Praca z REST URL API w węźle-RED
www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x
Praca z REST XML w węźle-RED
www.netio-products.com/en/application-notes/an31-node-red-przyklad-odpoczynku-xml-komunikacja-z-netio-4x
Praca z TCP/Modbus w węźle-RED
Wkrótce:)
Zalecana:
Jak sprawić, by Windows 7 wyglądał jak Windows 95: 7 kroków
Jak sprawić, by Windows 7 wyglądał jak Windows 95: Chcę pokazać, jak sprawić, by Windows 7 wyglądał jak Windows 95 i dodałem dodatkowy krok, aby wyglądał jak Windows 98, a także dla ludzi, którzy chcą, aby ich Windows 7 wyglądają jak Windows 98. Dla osób, które chcą, aby Windows 7 wyglądał
Jak podłączyć Raspberry Pi do chmury za pomocą Node.js: 7 kroków
Jak podłączyć Raspberry Pi do chmury przy użyciu Node.js: Ten samouczek jest przydatny dla każdego, kto chce połączyć Raspberry Pi z chmurą, zwłaszcza z platformą AskSensors IoT, przy użyciu Node.js. Nie masz Raspberry Pi? Jeśli nie posiadasz obecnie Raspberry Pi, polecam Ci zakup Raspberry Pi
[Seria Docker Pi] Jak korzystać z modułu IoT Node (A) na Raspberry Pi: 18 kroków
[Seria Docker Pi]Jak korzystać z modułu IoT Node (A) na Raspberry Pi: Co to jest moduł IoT Node (A) ?IoT Node(A) jest jednym z modułów serii Docker Pi. Węzeł IOT(A) = GPS/BDS + GSM + Lora.I2C bezpośrednio kontroluje Lora, wysyła i odbiera dane, steruje modułem GSM/GPS/BDS przez SC16IS752, płyta główna wymaga tylko obsługi I2C
Jak zbudować stronę internetową na Raspberry Pi za pomocą Node.js, Express i MongoDB Część 1: 6 kroków
Jak zbudować stronę internetową na Raspberry Pi, z Node.js, Express i MongoDB…Część 1: Witamy w CZĘŚCI 1 mojego samouczka aplikacji internetowej node.js. W części 1 omówimy niezbędne oprogramowanie używane do tworzenia aplikacji node.js, jak korzystać z przekierowania portów, jak zbudować aplikację za pomocą Express i jak ją uruchomić. Druga część tego
Jak pracować z Arduino i różnymi diodami RGB: 3 kroki
Jak pracować z Arduino i różnymi diodami RGB: Arduino to niesamowite małe urządzenie. Ale jedną z najczęściej używanych aplikacji dla tego potężnego małego urządzenia jest często miganie lub miganie diody LED. Ten samouczek pokaże ci trzy sposoby pracy z diodami LED RGB i Arduino.1. Pierwszym sposobem jest użycie prostego