- Wymagania wstępne
- Wymagane komponenty
- Instalowanie Node-RED na Raspberry Pi
- Uruchomienie Node-RED w Raspberry Pi
- Zrozumienie interfejsu Node-RED
- Schematy
- Tworzenie przepływu w Node-RED
- Dodanie przycisku / przełącznika w interfejsie Node-RED z Raspberry Pi
Czy kiedykolwiek zastanawiałeś się, czy istnieje sposób na tworzenie prostych prototypów rozwiązań IoT bez konieczności spędzania dni na pisaniu kodów lub budowaniu praktycznych zaawansowanych projektów bez kodowania. Tak, jest to możliwe dzięki platformie Node-Red. Opracowany przez IBM, Node-RED to narzędzie programistyczne typu open source do łączenia urządzeń sprzętowych, interfejsów API i usług online w nowy i interesujący sposób. Udostępnia edytor oparty na przeglądarce, który ułatwia łączenie „ przepływów” za pomocą szerokiej gamy węzłów w palecie, które można wdrożyć w środowisku wykonawczym jednym kliknięciem.
Node-RED to potężne narzędzie do tworzenia aplikacji Internetu rzeczy (IoT) w celu uproszczenia komponentu programistycznego.
Wykorzystuje programowanie wizualne, które umożliwia łączenie bloków kodu, zwanych węzłami, w celu wykonania zadania. W dzisiejszym samouczku przyjrzymy się, jak wdrożyć proste projekty na raspberry pi przy użyciu Node-RED. Węzeł czerwony poradnik malinowy PI obejmie;
- Instalowanie Node-RED na Raspberry Pi.
- Wprowadzenie do interfejsu użytkownika Node-RED
- Jak skonfigurować przepływy Node-RED
- Jak sterować pinami GPIO Raspberry Pi za pomocą Node-RED
- Jak korzystać z wejść, wyjść Node-RED i podejmowania decyzji, np. Za pomocą przełączników
Wymagania wstępne
Ten samouczek będzie oparty na systemie operacyjnym Raspbian stretch i zakładam, że wiesz, jak skonfigurować Raspberry Pi z nim, i wiesz, jak połączyć się przez SSH z Pi za pomocą oprogramowania terminalowego, takiego jak kit. Jeśli masz z tym jakiekolwiek problemy, na tej stronie znajdziesz mnóstwo poradników Raspberry Pi, które mogą pomóc.
Aby łatwo ukończyć samouczek, radzę skorzystać z monitora podłączonego do raspberry pi lub z oprogramowania VNC Viewer. Jeśli nie masz monitora i zaczynasz od nowa z Pi, możesz przeczytać tę konfigurację bezgłowego Raspberry Pi, aby przejść do tego samouczka. Podczas gdy Node-Red działa z przeglądarki internetowej i można uzyskać do niego dostęp na komputerze, do którego Pi jest podłączone za pośrednictwem adresu IP Pi, uważam, że doświadczenie VNC / monitora da ci lepsze zawieszenie.
Jako demonstracja pokazująca, jak działa Node-Red, użyjemy Node-RED do zaprogramowania Raspberry Pi do sterowania diodą LED podłączoną do GPIO, a później zmodyfikujemy program, aby umożliwić sterowanie diodą LED za pomocą dotykowego przycisku podłączonego do Pi GPIO.
Wymagane komponenty
Do zbudowania tego projektu wymagane są następujące składniki;
- Raspberry Pi 3 z fabrycznie załadowaną kartą SD z wstępnie załadowanym Raspbian Stretch
- Rezystor 100 omów (1)
- Dioda LED (1)
- Płytka prototypowa (1)
- Przewody połączeniowe męsko-żeńskie
- Dotykowy przycisk (1)
Instalowanie Node-RED na Raspberry Pi
Chociaż Node-Red jest preinstalowany w systemie operacyjnym Raspbian Stretch, musimy go zaktualizować, zanim będziemy mogli cieszyć się niektórymi z jego najnowszych funkcji. Aktualizacja testamentu Node-Red
- Zaktualizuj istniejącego użytkownika do LTS 8.x lub 10.x Node.js i najnowszego Node-RED
- Przenieś wszystkie istniejące globalnie zainstalowane węzły do przestrzeni użytkowników ~ /.node-red, aby można było nimi zarządzać za pośrednictwem menedżera palet, NIE aktualizuje żadnych istniejących węzłów zainstalowanych przez użytkownika. Musi to zostać wykonane ręcznie przez użytkownika (patrz poniżej).
- Opcjonalnie (ponownie) zainstaluj dodatkowe węzły, które są preinstalowane na pełnym obrazie Raspbian Pi.
Jednak proces aktualizacji Node-Red jest podobny do instalacji nowego, więc na potrzeby tego samouczka będziemy go traktować jak nową instalację, aby osoby korzystające z innych wersji systemu operacyjnego mogły śledzić.
Wykonaj poniższe czynności, aby zainstalować / zaktualizować Node-RED na swoim Raspberry Pi.
Możemy zacząć od modernizacji i aktualizacji pi, aby upewnić się, wszystko na to do kwestii daty i kompatybilności uniknąć. Zrób to otwierając terminal lub przez ssh i uruchom;
Aktualizacja Sudo apt-get
śledzony przez
sudo apt-get upgrade
Po wykonaniu tej czynności uruchom poniższy skrypt bash na terminalu;
bash <(curl -sL
Skrypt bash będzie zrobić następujące rzeczy
- Zapytaj, czy chcesz (ponownie) zainstalować dodatkowe węzły Pi
- Zapisz listę wszystkich globalnie zainstalowanych red- węzłów węzłów znalezionych w / usr / lib / node_modules
- apt-get usuwa istniejący Node-Red
- usuń wszystkie pliki binarne w kolorze czerwonym dla węzła z / usr / bin i / usr / local / bin
- Usuń wszystkie moduły node-red z / usr / lib / node_modules i / usr / local / lib / node_modules
- Wykryj, czy Node.js został zainstalowany z pakietu Node.js lub Debiana
- Jeśli nie jest to wersja 8 lub nowsza - usuń odpowiednio i zainstaluj najnowszą wersję 8 lub 10 LTS (bez apt).
- Wyczyść pamięć podręczną npm i.node-gyp, aby usunąć wszelkie poprzednie wersje kodu
- Zainstaluj najnowszą wersję Node-RED
- Ponownie zainstaluj na koncie użytkownika wszystkie węzły, które zostały wcześniej zainstalowane globalnie
- W razie potrzeby zainstaluj ponownie dodatkowe węzły Pi
- Przebuduj wszystkie węzły - aby przekompilować wszystkie pliki binarne, aby pasowały do najnowszej wersji Node.js.
- Dodaj polecenia node-red-start, node-red-stop i node-red-log do / usr / bin
- Dodaj skrót menu i ikonę
- Dodaj skrypt systemowy i ustaw użytkownika
- Jeśli na Pi, dodaj temperaturę procesora -> przykład IoT
Powyższy skrypt bash uruchamia wiele poleceń jako sudo i usuwa istniejące Node.js oraz podstawowe katalogi Node-RED. Możesz sprawdzić zawartość skryptu na tej stronie GitHub przed jego uruchomieniem, aby upewnić się, że nie wpłynie to na żaden projekt, który już masz na Pi.
Po zakończeniu instalacji na liście aplikacji programistycznych w menu powinna pojawić się ikona Node-Red.
Uruchomienie Node-RED w Raspberry Pi
Node-Red można uruchomić poprzez sekcję menu z pulpitu twojego raspberry pi, przez terminal lub przez ssh.
Aby uruchomić na pulpicie raspberry pi, kliknij ikonę Raspberry, najedź myszą na Programowanie i kliknij Node-RED (Menu> Programowanie> NodeRed), aby go uruchomić.
Można go również uruchomić z ssh lub terminala, uruchamiając;
węzeł-czerwony-start
Powinieneś zobaczyć okno takie jak to poniżej pokazujące uruchomienie węzła w kolorze czerwonym na pulpicie.
Gdy to zobaczysz, przejdź do menu-> internet i uruchom przeglądarkę internetową Chrome. Podczas gdy Twój Raspberry pi nie potrzebuje Internetu do działania Node-Red, używa przeglądarki jako interfejsu.
Po uruchomieniu chromium wpisz localhost: 1880 w pasku adresu, a następnie naciśnij klawisz Enter. 1880 to port w raspberry pi, na którym wstępnie skonfigurowano komunikację Node-Red. Powinno to wyświetlić interfejs Node-Red, jak pokazano na poniższym obrazku.
Zrozumienie interfejsu Node-RED
Interfejs Node-Red składa się z panelu przepływu, palety węzłów, konsoli debugowania i konsoli informacyjnej, jak zaznaczono na powyższym obrazku.
Panel przepływu, gdzie węzły są połączone ze sobą, aby stworzyć program, który w Node-czerwony nazywa przepływu, natomiast paleta Węzeł składa się z obiektów, które są reprezentatywne dla sprzętu, oprogramowania i protokołów funkcje związane z urządzeniami. Zawiera protokoły, takie jak MQTT dla IoT oraz tryby wyjściowe i wejściowe GPIO dla płyt, takich jak raspberry pi. Konsola informacji dostarcza informacji na temat wybranych obiektów wyróżnionych / natomiast konsoli debugowaniadziała tak samo jak monitor szeregowy Arduino i może dostarczać informacje zwrotne podczas działania przepływu. Przycisk wdrażania służy do przesyłania przepływu na sprzęt docelowy. Przycisk menu zawiera różne typy przesyłania, które pomogą Ci jak najlepiej wykorzystać projekt. Po uruchomieniu Node-Red możemy teraz przystąpić do tworzenia projektu demonstracyjnego.
Schematy
Jak wspomniano podczas wprowadzenia, nasz dzisiejszy projekt demonstracyjny będzie polegał na sterowaniu GPIO Raspberry Pi za pomocą przepływu Node-RED. Aby pokazać różnice w stanie GPIO, będziemy podłączać diodę LED do GPIO w taki sposób, że gdy ten konkretny pin GPIO jest włączony, dioda LED zaświeci się i odwrotnie.
Podłącz diodę LED do Raspberry PI, jak pokazano na schemacie poniżej.
Buduję to samo na swoim sprzęcie, używając płytki stykowej, diody LED, rezystora i kilku przewodów połączeniowych. Po wykonaniu połączeń moja konfiguracja sprzętu wygląda mniej więcej tak.
Ten projekt można łatwo przekształcić w projekt automatyki domowej, po prostu zastępując diodę LED przekaźnikiem i dowolnym urządzeniem AC, dowiedz się, jak to zrobić, przechodząc przez różne projekty automatyki domowej.
Tworzenie przepływu w Node-RED
Po podłączeniu diody LED możemy przystąpić do rozwijania przepływu. Programy w NodeRed nazywane są przepływami, tak jak Arduino IDE nazywa je szkicami. Przepływy są tworzone przy użyciu kombinacji węzłów. Możesz utworzyć wiele przepływów, które mogą działać jednocześnie, ale w tym samouczku utworzymy pojedynczy przepływ, aby włączyć / wyłączyć diodę LED.
Aby rozpocząć, przewiń do dołu palety węzłów, zobaczysz sekcję węzłów raspberry pi na końcu z dwoma węzłami oznaczonymi jako rpigpio. Te węzły są używane do komunikacji z GPIO raspberry pi. Jeden z węzłów służy do wprowadzania danych, a drugi do danych wyjściowych zróżnicowanych według pozycji logo raspberry pi. W przypadku węzła wejściowego logo znajduje się przed tekstem, natomiast w przypadku węzła wyjściowego logo znajduje się po tekście, jak pokazano na poniższej ilustracji.
W tym samouczku będziemy używać węzła wyjściowego, przeciągając go do sekcji przepływu interfejsu. Ten krok jest podobny do zadeklarowania konkretnego pinu Arduino jako wyjścia za pomocą polecenia pinMode () . Kliknij dwukrotnie węzeł wyjściowy, a otworzy się wyskakujące okno, jak pokazano poniżej, aby umożliwić edycję właściwości węzła.
W sekcji właściwości pinów wybierz GPIO17 (pin 11). Następnie ustaw właściwość type na „ Digital Output ” i zaznacz opcję „ Initialize pin state?” pole wyboru pozostawiając opcję „ początkowy poziom kołka ” jako niski (0). Nadaj węzłowi dowolną nazwę i kliknij przycisk Gotowe.
Nazwa węzła powinna automatycznie zmienić się na tę, którą wprowadziłeś w ustawieniach właściwości. Na przykład nazwałem go jako LED i stąd nazwa węzła jest również zmieniona na LED, jak pokazano poniżej.
Aby włączyć / wyłączyć diodę LED, musimy użyć wejścia, czegoś, co będzie napędzać akcję. Chociaż moglibyśmy użyć przycisku, chcę go użyć do wprowadzenia funkcji w Node-RED, która umożliwia wstrzykiwanie komunikatów do przepływów. Ta funkcja nazywana jest węzłem wstrzykiwania. Będziemy używać dwóch węzłów wstrzykiwania. Jeden będzie zapalał diodę, a drugi wyłączał.
Przejdź do palety węzłów i przeciągnij węzeł wstrzykiwania do przepływu. Jest to pierwszy węzeł na palecie ze strzałką, węzeł wstrzykiwania jest podświetlony na poniższym obrazku.
Kliknij go dwukrotnie, aby edytować jego właściwości. Zmień typ danych na ciąg, klikając menu rozwijane przed ładunkiem i wprowadź 1 w polu Ładunek. Wartość w polu ładunku jest tym, co zostanie wstrzyknięte do strumienia po naciśnięciu węzła. Ustaw nazwę węzła na „ON”. Naciśnij przycisk „Done”, aby zapisać.
Powtórz powyższe dla drugiego węzła, ustawiając wartość ładunku na „0”, a jego nazwę na „wyłączone”, jak pokazano poniżej.
W ramach funkcji właściwości, powtórz rozwijana może być użyty do zautomatyzowania zastrzyk tak przyciski są wciśnięte w odstępach. Można to wykorzystać do stworzenia efektu mrugnięcia. Połącz ze sobą węzły, jak pokazano poniżej, przeciągając szarą kropkę z jednego węzła do drugiego, aby utworzyć przepływ.
Po wykonaniu tych czynności zakończyliśmy nasz pierwszy przepływ w Node-Red.
Następnym krokiem jest dla nas wdrożenie przepływu na raspberry pi. Kliknij czerwony przycisk wdrażania. Na górze ekranu powinien pojawić się komunikat „pomyślnie wdrożony”, jak pokazano poniżej.
Kliknij szary przycisk za węzłami wstrzykiwania, aby aktywować każdy z węzłów.
Po kliknięciu węzła „on” wstrzyknięcia, powinien zostać wyświetlony komunikat „on” pomyślnie wstrzyknięty i zaświeci się dioda LED. Dioda LED powinna zgasnąć po kliknięciu „wyłączonego” węzła wstrzykiwania.
Otóż to. Pełne działanie tej konfiguracji można znaleźć w filmie, do którego link znajduje się na dole tej strony.
Dodanie przycisku / przełącznika w interfejsie Node-RED z Raspberry Pi
Aby wyjaśnić, jak podłączyć / dodać element wejściowy do przepływu, będziemy posuwać się dalej w powyższy sposób, dodając przycisk zastępujący węzły wtrysku.
Podłącz przycisk do raspberry pi tak, aby jedna noga przycisku była podłączona do masy, a druga do pinu 4 GPIO (pin 11) raspbery pi, jak pokazano na schemacie poniżej.
Po wykonaniu tej czynności wróć do Node-Red i usuń dwa węzły wstrzyknięcia, których używaliśmy wcześniej, klikając węzły i naciskając klawisz Delete na klawiaturze lub dwukrotnie klikając węzły i naciskając klawisz Delete w wyskakującym okienku. Po wykonaniu tej czynności przewiń paletę węzłów w dół do sekcji raspberry pi i wybierz węzeł wejściowy. Jest to ta z ikoną raspberry pi po lewej stronie, przed nazwą węzła.
Przeciągnij węzeł do przepływu i kliknij go dwukrotnie, aby edytować właściwości. Ustaw pin na GPIO 4 (pin 11) i ustaw listę rozwijaną przed rezystorem na podciąganie. Spowoduje to „podniesienie” GPIO 4 do HIGH. Kliknij przycisk Gotowe po ustawieniu właściwości.
Aby umożliwić nam podejmowanie logicznych decyzji po naciśnięciu przełącznika, a nie tylko zwarcie GPIO4 do masy, będziemy używać węzła przełącznika. Wyszukaj go na palecie węzłów, w sekcji funkcji i przeciągnij do przepływu.
Węzeł przełączający umożliwia podejmowanie decyzji w sposób podobny do instrukcji „if”. Można ustawić różne wyjścia w zależności od wartości wejściowej. W tym samouczku skonfigurujemy go z dwiema ścieżkami wyjściowymi, tak że gdy właściwość msg.payload jest równa 1 (przełącznik nie jest wciśnięty), powinna podążać za pierwszą ścieżką, a druga ścieżka będzie podążana, jeśli jakiekolwiek inne wejście na wejściu obserwowany jest inny niż 1 (wciśnięty przełącznik). Ścieżki dodaje się za pomocą przycisku „+ dodaj”. Kliknij dwukrotnie węzeł i skonfiguruj zgodnie z powyższym opisem. Po zakończeniu kliknij Gotowe.
Jak tylko naciśniesz przycisk Gotowe, powinieneś zobaczyć dwie ścieżki odzwierciedlające się w wyglądzie węzła przełącznika, ponieważ będzie on miał teraz dwa połączenia na wyjściu.
Następnie musimy wprowadzić węzeł „zmiany”. Węzeł zmiany zostanie użyty do ustawienia stanu diody LED na podstawie wyniku argumentu node.
Będziemy używać dwóch węzłów zmian. Ładunek pierwszego z nich zostanie ustawiony na 0, jak pokazano na poniższym obrazku, a ładunek drugiego na jeden. Kliknij Gotowe po edycji właściwości obu.
Aby lepiej wyjaśnić, pamiętasz, że użyliśmy rezystora podciągającego? Tak więc, gdy przycisk nie został naciśnięty, wyjście na tym pinie będzie HIGH (1), co oznacza, że jeśli przepuścimy go przez węzeł przełącznika, dioda LED będzie świecić, ponieważ nie powinno tak być, będziemy użyj węzła „change”, aby ustawić go jako LOW (0). Drugi węzeł „zmiana” służy do ustawienia takiej wartości, aby w przypadku wykrycia czegoś innego niż stan HIGH na pinie 4 GPIO, dioda LED została „zapalona”, ponieważ będzie to oznaczać, że przycisk został naciśnięty. Połącz węzły zmiany i pozostałe węzły razem, jak pokazano na poniższym obrazku.
Po wykonaniu tej czynności jesteśmy teraz gotowi do wdrożenia projektu. Sprawdź połączenie, aby upewnić się, że wszystko jest tak, jak powinno, a następnie kliknij przycisk wdrażania. Jak zwykle, jeśli się powiedzie, powinieneś zobaczyć wyskakujące okienko pomyślnego wdrożenia i teraz możesz kontrolować diodę za pomocą przełącznika.
Chociaż Node-Red ułatwia i przyspiesza prototypowanie kompilacji bez martwienia się o kod, może nie być najlepszym rozwiązaniem, szczególnie dla doświadczonych programistów, którzy chcą elastyczności i kontroli nad programem. Niemniej jednak jest to świetne narzędzie, które pozwala budować prototypy w ciągu kilku minut.
Do następnego razu!