Indholdsfortegnelse:

UCL-IIOT-Alarmsystem med database og knude-rød: 7 trin
UCL-IIOT-Alarmsystem med database og knude-rød: 7 trin

Video: UCL-IIOT-Alarmsystem med database og knude-rød: 7 trin

Video: UCL-IIOT-Alarmsystem med database og knude-rød: 7 trin
Video: The Internet of Things and Intimate Partner Abuse: Examining Prevalence, Risks, and Outcomes 2024, Juli
Anonim
UCL-IIOT-Alarmsystem med database og knude-rødt
UCL-IIOT-Alarmsystem med database og knude-rødt
UCL-IIOT-Alarmsystem med database og knude-rødt
UCL-IIOT-Alarmsystem med database og knude-rødt

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

Kom godt i gang med Node-rød
Kom godt i gang med Node-rød

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

Opdeling af data i knude-rød
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

Database med Wampserver
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

Database
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

Knude-rød til Wampserver
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

Brug af data fra Wampserver til Node-rød
Brug af data fra Wampserver til Node-rød
Brug af data fra Wampserver til Node-rød
Brug af data fra Wampserver til Node-rød

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

Afslutter
Afslutter

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: