Spisu treści:
- Krok 1: Pierwsze kroki z węzłem-czerwonym
- Krok 2: Dzielenie danych w kolorze Node-red
- Krok 3: Baza danych z Wampserver
- Krok 4: Baza danych
- Krok 5: Węzeł czerwony do Wampserver
- Krok 6: Używanie danych z Wampserver do Node-red
- Krok 7: Finalizacja
Wideo: UCL-IIOT - system alarmowy z bazą danych i czerwonym węzłem: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Celem tego buildu jest nauka łączenia Arduino z Node-red i bazą danych, dzięki czemu można logować dane, a także zbierać je do późniejszego wykorzystania.
W tej kompilacji używam prostego systemu alarmowego arduino, który wyprowadza 5 numerów danych, każdy oddzielony przecinkiem.
Nie jest konieczne posiadanie takiej dokładnej ilości danych, a program może być czymkolwiek.
Ważną częścią jest to, że dane są oddzielone przecinkami, jak widać na tym zrzucie ekranu.
Wynik może na przykład wyglądać tak: "324, 0, 0, 1, 1"
(zakończone programowanie i instrukcje tworzenia arduino są podlinkowane na dole tego samouczka)
Krok 1: Pierwsze kroki z węzłem-czerwonym
W tym samouczku zakładamy, że już zainstalowałeś Node-red, ale jest kilka dodatkowych palet używanych w tym projekcie, których potrzebujemy, aby działał
Znajdź przycisk „Zarządzaj paletą” i zainstaluj następujące palety.
- węzeł-czerwony-dashboard
- node-red-node-mysql
- węzeł-czerwony-węzeł-arduino
- węzeł-czerwony-węzeł-port szeregowy
Powinno pokazywać kilka nowych palet z boku menu przycisku Node-red.
Krok 2: Dzielenie danych w kolorze Node-red
Teraz, gdy Node-red jest gotowy do pracy, musimy zacząć od podzielenia naszych danych na oddzielne części.
Dlatego zadbaliśmy o oddzielenie ich przecinkami w kodzie Arduino.
Najpierw zacznijmy od odłożenia węzła Arduino Input, znajdującego się na lewym panelu bocznym.
Musisz upewnić się, że ma poprawny port szeregowy (Mój używa portu COM4) i szybkość transmisji (w moim programie używam szybkości transmisji 9600)
Jeśli poprawnie skonfigurowany, powinien powiedzieć, że jest podłączony.
Następnie tworzymy blok funkcyjny Javascript i łączymy go za węzłem wejściowym Arduino. Ten blok pozwala nam programować w JavaScript, a tutaj piszemy kod, który może podzielić nasze dane dla każdego przecinka.
W tym bloku funkcyjnym podzieliłem moje 5 danych za pomocą następującego kodu:
var m1 = {temat: "light1", ładunek: msg.payload.split(", ")[0]}; var m2 = {topic: "light2", payload: msg.payload.split(", ")[1]}; var m3 = {temat: "light3", ładunek: msg.payload.split(", ")[2]}; var m4 = {temat: "millis", ładunek: msg.payload.split(", ")[3]}; var m5 = {temat: "onoff", ładunek: msg.payload.split(", ")[4]}; powrót [m1, m2, m3, m4, m5];
(w razie potrzeby zmień kod)
Upewnij się, że węzeł jest ustawiony na 5 wyjść (lub odpowiednik)
Jak widać na zrzucie ekranu, mamy teraz 5 wyjść, z których każde łączymy z węzłem debugowania i węzłem pulpitu nawigacyjnego tekstowego. Będzie to przydatne, gdy będziemy musieli zobaczyć to w interfejsie użytkownika.
Krok 3: Baza danych z Wampserver
Aby nasza baza danych działała, musisz mieć zainstalowany Wampserver. Po jego zainstalowaniu i wyświetlającym się jako zielona ikona (po uruchomieniu wszystkich usług), powinieneś otworzyć "phpMyAdmin", który powinien wyświetlić ekran logowania. Chyba że masz poprzednio to zmieniłeś, po prostu wpisz "root" w nazwie użytkownika i loginie.
Naciśnij przycisk phpmyadmin pod narzędziami na lewym pasku i powinno otworzyć menu bazy danych, które wygląda podobnie do pokazanego na powyższym obrazku.
Utwórz nową bazę danych i nazwij ją w sposób powiązany z Twoim projektem, moja nazywa się "alarmsystem" (w tych nazwach będzie rozróżniana wielkość liter)
Pod tą bazą danych utwórz nową tabelę i nazwij ją, moja nazywa się "alarmdata"
zapyta, czy chcesz użyć "latin1_swedish_ci" i po prostu tak to zachowamy.
Teraz tworzysz 6 tabel (o 1 więcej niż posiadamy dane)
Pierwsza tabela musi używać typu danych „longtext”
a reszta zestawu danych używa „mediumtext”
Pamiętaj, aby je nazwać. (pierwszy zbiór danych powinien mieć nazwę „czas”
Krok 4: Baza danych
Zestaw danych Wampserver powinien wyglądać mniej więcej tak.
(ale bez rzeczywistych danych, ponieważ jeszcze do tego nie dotarliśmy)
Krok 5: Węzeł czerwony do Wampserver
Teraz chcemy, aby dane, które wyprowadzamy z naszego arduino, trafiały do naszego Wampservera.
Zacznij od utworzenia kolejnego bloku funkcji JavaScript i podłącz go do naszego węzła wejściowego arduino.
W tym bloku skryptu ponownie dzielimy nasze dane, ale wstawiamy je również do naszej bazy danych.
var data = msg.payload.split(", ");var Green1 = data[0]; zmienna Green2 = dane[1]; var Alarm = dane [2]; var Millis = dane[3]; var IsActive = dane[4]; var out = "WSTAW DO alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) VALUES('"+new Date().toISOString().slice(0, 19).replace('T', ' ')+"', '"+Zielony1+"', '"+Zielony2+"', '"+Alarm+"', '"+Millis+"', '"+Jest Aktywny+"')"; msg.topic = out; wiadomość zwrotna;
Zauważ, że wpisałem "INSERT INTO alarmsystem.alarmdata", jest to nazwa, którą nadaliśmy naszej bazie danych i tabeli, upewnij się, że wpisałeś dokładną nazwę, jaką podałeś swojej bazie danych.
Teraz połącz blok Javascript z węzłem debugowania, a także z węzłem „mysql” znajdującym się pod paletą przechowywania po lewej stronie.
pod blokiem mysql nazywasz go tak samo jak twoja baza danych "alarmsystem"
zmień użytkownika na „root” (nazwę, której używaliśmy do logowania się do naszego serwera)
host, port i baza danych powinny być już wypełnione:
Gospodarz: 127.0.0.1
Port: 3306
Baza danych: system alarmowy
Jeśli wszystko zostało zrobione poprawnie, powinno zostać połączone po wdrożeniu zmian.
Powinieneś również być w stanie zobaczyć, że baza danych rejestruje teraz twoje dane bezpośrednio z Arduino.
Krok 6: Używanie danych z Wampserver do Node-red
Na koniec chcemy sprawdzić, czy możemy wziąć zapisane dane i umieścić je z powrotem w naszym Node-red i, miejmy nadzieję, wyświetlić je.
Zacznij od umieszczenia węzła „wstrzykiwania”
Pod tematem w tym węźle umieszczamy kod: SELECT*FROM alarmsystem.alarmdata
To będzie w stanie znaleźć naszą bazę danych, gdy ją naciśniemy.
Połącz węzeł inject z nowym węzłem "mysql" skonfigurowanym dokładnie tak, jak zrobiliśmy to w poprzednim kroku.
Połącz węzeł mysql z węzłem debugowania i węzłem szablonu znajdującym się w panelu kontrolnym.
Węzeł szablonu będzie naszą tabelą, którą możemy aktualizować, aby wyświetlać dane z bazy danych w miarę jej tworzenia.
Wprowadź kod pokazany na powyższym zrzucie ekranu (zmień w razie potrzeby), a teraz powinien pokazać tabelę danych w naszym interfejsie użytkownika w kolorze węzła.
Możemy również dodać przycisk pulpitu nawigacyjnego, aby zaktualizować tabelę z samego interfejsu użytkownika.
Zacznij od utworzenia węzła przycisku.
połącz węzeł przycisku z blokiem funkcyjnym JavaScript.
w bloku funkcyjnym wstawiamy następujący kod.
msg.topic = "WYBIERZ * Z danych alarmowych ZAMÓW WEDŁUG ZIELONEJ 1 LIMIT ZMNIEJSZENIA 20";msg powrotu;
(Zielony1 jest pierwszą zmienną danych w tabeli)
ten blok funkcyjny musi być następnie połączony z wejściem naszego węzła mysql, który stworzyliśmy wcześniej w tym kroku.
Krok 7: Finalizacja
Teraz nasz interfejs użytkownika powinien zawierać aktualną aktualizację naszych danych oraz tabelę z danymi z naszego serwera.
Oznacza to, że stworzyliśmy połączenie między Arduino, programem opartym na interfejsie użytkownika a bazą danych.
Jeśli interesuje Cię, jak działa mój system alarmowy Arduino, dodałem dokument wyjaśniający, jak to jest zaprogramowane i skonfigurowane.
Jak również pełny eksport programowania w węzłach czerwonych.
Zalecana:
Jak zrobić rejestrator danych wilgotności i temperatury w czasie rzeczywistym za pomocą Arduino UNO i karty SD - Symulacja rejestratora danych DHT11 w Proteus: 5 kroków
Jak zrobić rejestrator danych wilgotności i temperatury w czasie rzeczywistym za pomocą Arduino UNO i karty SD | Symulacja rejestratora danych DHT11 w Proteus: Wstęp: cześć, tu Liono Maker, tutaj link do YouTube. Tworzymy kreatywne projekty z Arduino i pracujemy na systemach wbudowanych.Data-Logger: Rejestrator danych (również rejestrator danych lub rejestrator danych) to urządzenie elektroniczne, które rejestruje dane w czasie w
ESP32 Lora Thingspeak Gateway z węzłem czujnika: 9 kroków
Brama ESP32 Lora Thingspeak z węzłem czujnika: w tym projekcie IoT zaprojektowałem bramę ESP32 LoRa i amp; również ESP32 LoRa Sensor Node do bezprzewodowego monitorowania odczytu czujnika z odległości kilku kilometrów. Nadajnik odczyta dane dotyczące wilgotności i temperatury za pomocą czujnika DHT11. Następnie przekazuje
NODEMCU LUA ESP8266 Połącz z bazą danych MySQL: 6 kroków
NODEMCU LUA ESP8266 Połącz z bazą danych MySQL: Ta instrukcja nie jest przeznaczona dla osób o słabych nerwach, ponieważ używa XAMPP (Apache, MySQL i PHP), HTML i oczywiście LUA. Jeśli masz pewność, że sobie z nimi radzisz, czytaj dalej! Używam XAMPP, ponieważ można go skonfigurować na pendrive lub dysku twardym i jest skonfigurowany
Bezprzewodowy czujnik temperatury i wilgotności IOT dalekiego zasięgu z czerwonym węzłem: 27 kroków
Bezprzewodowy czujnik temperatury i wilgotności IOT dalekiego zasięgu z Node-Red: Przedstawiamy bezprzewodowy czujnik temperatury i wilgotności dalekiego zasięgu NCD, który może pochwalić się zasięgiem do 28 mil przy użyciu bezprzewodowej architektury sieci kratowej. Wyposażony w czujnik temperatury i wilgotności Honeywell HIH9130 przekazuje bardzo dokładną temperaturę i
Detektor tlenku węgla z czerwonym balonem: 5 kroków
Detektor tlenku węgla z czerwonym balonikiem: Czujnik tlenku węgla wykrywa wysokie stężenie gazu CO w powietrzu. Gdy stężenie osiągnie wysoki poziom (który wcześniej ustawiliśmy) dioda zmieni kolor z zielonego na czerwony