Indholdsfortegnelse:
- Trin 1: Kom godt i gang med Node-red
- Trin 2: Opdeling af data i knude-rød
- Trin 3: Database med Wampserver
- Trin 4: Database
- Trin 5: Knude-rød til Wampserver
- Trin 6: Brug af data fra Wampserver til Node-red
- Trin 7: Afslutning
Video: UCL-IIOT-Alarmsystem med database og knude-rød: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Formålet med denne build er at lære om at forbinde Arduino med Node-red og en database, så du kan logge data og også indsamle dem til senere brug.
Til denne build bruger jeg et simpelt arduino alarmsystem, der udsender 5 datanumre, hver adskilt med et komma.
Det er ikke nødvendigt at have den nøjagtige mængde data, og programmet kan være hvad som helst.
Den vigtige del er, at dataene er adskilt med kommaer, som det ses på dette skærmbillede.
Outputtet kunne for eksempel se sådan ud: "324, 0, 0, 1, 1"
(den færdige programmering og instruktioner til oprettelsen af arduinoen er knyttet nederst i denne vejledning)
Trin 1: Kom godt i gang med Node-red
Til denne vejledning antager vi, at du allerede har installeret Node-red, men der er nogle ekstra paletter, der bruges til dette projekt, som vi har brug for, for at det kan fungere
Find knappen "Administrer palette", og installer følgende paletter.
- node-red-dashboard
- node-red-node-mysql
- knude-rød-knude-arduino
- node-red-node-serialport
Det skulle vise nogle nye paletter på siden af menuen Knude-rød.
Trin 2: Opdeling af data i knude-rød
Nu hvor Node-red er klar til at gå, skal vi starte med at opdele vores data i separate stykker.
Derfor sørgede vi for at adskille dem med kommaer inde i Arduino -koden.
Lad os først starte med at lægge Arduino Input -noden ned, der findes på venstre sidepanel.
Du skal sikre dig, at den har den korrekte serielle (Mine bruger COM4) port og Baud rate (i mit program bruger jeg 9600 baud rate)
Hvis den er korrekt konfigureret, skal den sige, at den er tilsluttet.
Dernæst opretter vi en Javascript -funktionsblok og forbinder den efter Arduino -inputnoden. Denne blok giver os mulighed for at programmere i Javascript, og her skriver vi en kode, der kan dele vores data for hvert komma.
I denne funktionsblok opdelte jeg mine 5 data ved hjælp af følgende kode:
var m1 = {emne: "light1", nyttelast: msg.payload.split (",") [0]}; var m2 = {emne: "light2", nyttelast: msg.payload.split (",") [1]}; var m3 = {emne: "light3", nyttelast: msg.payload.split (",") [2]}; var m4 = {emne: "millis", nyttelast: msg.payload.split (",") [3]}; var m5 = {emne: "onoff", nyttelast: msg.payload.split (",") [4]}; retur [m1, m2, m3, m4, m5];
(ændre koden efter behov)
Sørg for, at noden er indstillet til 5 udgange (eller din tilsvarende)
Som det ses på skærmbilledet, har vi nu 5 output, som vi hver især linker til en fejlfindingsknude og en tekstdashboardknude. Dette vil være nyttigt, når vi skal se det i brugergrænsefladen.
Trin 3: Database med Wampserver
For at vores database fungerer, skal du have Wampserver installeret. Efter at den er installeret og vises som et grønt ikon (efter at du har startet alle tjenester), skal du åbne "phpMyAdmin", som skal bringe dig til en login -skærm. Medmindre du har tidligere ændret det, skal du blot indtaste "root" i brugernavnet og logge ind.
Tryk på phpmyadmin -knappen under værktøjer nede i venstre bjælke, og det skal åbne databasemenuen, der ligner noget vist på billedet ovenfor.
Opret en ny database og navngiv den noget, der er relateret til dit projekt, mit hedder "alarmsystem" (disse navne vil være store og små bogstaver)
Under denne database, opret en ny tabel og navngiv den, min hedder "alarmdata"
det vil spørge, om du vil bruge "latin1_swedish_ci", og vi beholder det bare som det.
Nu opretter du 6 tabeller (1 mere end de data, vi har)
Den første tabel skal bruge datatypen "longtext"
og resten af datasættet bruger "mediumtext"
Sørg for at navngive dem. (det første datasæt skal hedde "tid"
Trin 4: Database
Wampserver -datasættet skal se sådan ud.
(men uden de faktiske data, da vi ikke er nået til det endnu)
Trin 5: Knude-rød til Wampserver
Nu vil vi have, at de data, vi udsender fra vores arduino, skal gå til vores Wampserver.
Start med at oprette en anden Javascript -funktionsblok, og slut den til vores arduino -inputnode.
I denne scriptblok opdeler vi igen vores data, men vi indsætter dem også i vores database.
var data = msg.payload.split (","); var Green1 = data [0]; var Green2 = data [1]; var Alarm = data [2]; var Millis = data [3]; var IsActive = data [4]; var out = "INSERT INTO alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) VALUES ('"+new Date (). toISOString (). slice (0, 19).replace (' T ',' ')+"', '"+Grøn1+"', '"+Grøn2+"', '"+Alarm+"', '"+Millis+"', '"+IsActive+"')); msg.topic = ude; return msg;
Bemærk, at jeg indtaster "INSERT INTO alarmsystem.alarmdata", dette er det navn, vi gav vores database og tabel, sørg for at skrive det nøjagtige navn, du gav din database i det.
Tilslut nu Javascript -blokken til en debug -knude og også en "mysql" -knude, der findes under lagringspaletten i venstre side.
under mysql -blokken kalder du det det samme som din database "alarmsystem"
skift bruger til "root" (det navn, vi brugte til at logge ind på vores server)
vært, port og database skal allerede udfyldes med:
Vært: 127.0.0.1
Havn: 3306
Database: alarmsystem
Hvis alt er gjort korrekt, skal det være forbundet, når du har implementeret dine ændringer.
Du bør også kunne se, at databasen nu logger dine data direkte fra Arduino.
Trin 6: Brug af data fra Wampserver til Node-red
I den sidste strækning vil vi se, om vi kan tage de data, vi har gemt, og sætte dem tilbage i vores Node-rød og forhåbentlig vise dem.
Start med at placere en "injicer" knude
Under emne i denne knude sætter vi koden: SELECT*FROM alarmsystem.alarmdata
Dette vil kunne finde vores database, når vi trykker på den.
Tilslut injektionsknudepunktet til en ny "mysql" -knude, der er konfigureret præcis som den, vi gjorde i det foregående trin.
Tilslut mysql -noden til en fejlfindingsknude og en skabeloneknude, der findes under instrumentbrættet.
Skabelonnoden vil være vores tabel, som vi kan opdatere for at vise data fra databasen, når den produceres.
Indtast koden vist på skærmbilledet ovenfor (ændr efter behov), og den skal nu vise en datatabel i vores Node-røde brugergrænseflade.
Vi kan også tilføje en instrumentbrætsknap til at opdatere tabellen fra selve brugergrænsefladen.
Start med at oprette en knapknude.
tilslut knapnoden til en Javascript -funktionsblok.
i funktionsblokken indsætter vi følgende kode.
msg.topic = "SELECT * FROM alarmdata ORDER BY Green1 DESC LIMIT 20"; return msg;
(Green1 er den første datavariabel i tabellen)
Denne funktionsblok skal derefter tilsluttes indgangen til vores mysql -node, vi lavede tidligere i dette trin.
Trin 7: Afslutning
Nu skal vores brugergrænseflade indeholde en liveopdatering af vores data og en tabel med data fra vores server selv.
Det betyder, at vi har oprettet en forbindelse mellem Arduino, et UI -baseret program og en database.
Hvis du er interesseret i, hvordan mit Arduino alarmsystem fungerer, har jeg tilføjet et dokument, der forklarer, hvordan det er programmeret og konfigureret.
Samt en fuld eksport af den node-røde programmering.
Anbefalede:
Sådan tilsluttes NodeMCU ESP8266 til MySQL -database: 7 trin
Sådan tilsluttes NodeMCU ESP8266 til MySQL -database: MySQL er et udbredt relationsdatabasestyringssystem (RDBMS), der bruger struktureret forespørgselssprog (SQL). På et tidspunkt vil du måske uploade Arduino/NodeMCU sensordata til MySQL -databasen. I denne instruktionsbog ser vi, hvordan vi forbinder
Jordfugtighed med knude: 7 trin
Jordfugtighed med knude: I denne vejledning vil jeg vise dig, hvordan du laver en hjemmelavet jordføler til havesundhedssystemet. Jeg vil vise dig, hvad du har brug for, give nogle kodeeksempler og hvordan du implementerer koden. I slutningen af instruktionerne vil du vide, hvordan du ændrer en ledstrimmel
Oprettelse af en database med XAMPP: 4 trin
Oprettelse af en database med XAMPP: XAMPP er en helt gratis Apache -distribution, der indeholder MariaDB, PHP og Perl. XAMPP giver en grafisk grænseflade til SQL, så du kan gemme oplysninger i den database, vi vil oprette i dag. Da jeg først begyndte at bruge databaser til projekter
Tilslut Raspberry Pi IOT -database med MS Excel - Opsætning: 3 trin
Tilslut Raspberry Pi IOT -database med MS Excel - Opsætning: I en verden af IOT -datafangst skaber man en masse data, der altid gemmes i et databasesystem som Mysql eller Oracle. For at få adgang til og manipulere disse data er en af de mest effektive metoder at bruge Microsoft Office
EAL-Industri4.0-RFID Dataopsamling Til Database: 10 trin (med billeder)
EAL-Industri4.0-RFID Dataopsamling Til Database: Dette projekt omhandler opsamling af v æ gtdata, registrering af identiteter vha. RFID, lagring af data i en MySQL database vha. node-RED, samt fremvisning og behandling af de opsamlede data i et C# program i form af en Windows Form Application