Spisu treści:

UCL-IIOT - system alarmowy z bazą danych i czerwonym węzłem: 7 kroków
UCL-IIOT - system alarmowy z bazą danych i czerwonym węzłem: 7 kroków

Wideo: UCL-IIOT - system alarmowy z bazą danych i czerwonym węzłem: 7 kroków

Wideo: UCL-IIOT - system alarmowy z bazą danych i czerwonym węzłem: 7 kroków
Wideo: theft alarm using arduino | Door alarm using arduino | திருடர் அபாயமணி🤡🤡🤡 2024, Lipiec
Anonim
UCL-IIOT - system alarmowy z bazą danych i czerwonym węzłem
UCL-IIOT - system alarmowy z bazą danych i czerwonym węzłem
UCL-IIOT - system alarmowy z bazą danych i czerwonym węzłem
UCL-IIOT - system alarmowy z bazą danych i czerwonym węzłem

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

Pierwsze kroki z węzłem-czerwonym
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

Dzielenie danych na węźle-czerwony
Dzielenie danych na węźle-czerwony

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

Baza danych z Wampserver
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

Baza danych
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

Węzeł czerwony do Wampserver
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

Korzystanie z danych z serwera Wampserver do czerwonego węzła
Korzystanie z danych z serwera Wampserver do czerwonego węzła
Używanie danych z serwera Wampserver do czerwonego węzła
Używanie danych z serwera Wampserver do czerwonego węzła

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

Finalizowanie
Finalizowanie

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: