Innholdsfortegnelse:

UCL-IIOT-Alarmsystem med database og noderød: 7 trinn
UCL-IIOT-Alarmsystem med database og noderød: 7 trinn

Video: UCL-IIOT-Alarmsystem med database og noderød: 7 trinn

Video: UCL-IIOT-Alarmsystem med database og noderød: 7 trinn
Video: IoT in the Home Demonstrator 2024, November
Anonim
UCL-IIOT-Alarmsystem med database og node-rødt
UCL-IIOT-Alarmsystem med database og node-rødt
UCL-IIOT-Alarmsystem med database og node-rødt
UCL-IIOT-Alarmsystem med database og node-rødt

Formålet med denne bygningen er å lære om å koble Arduino til Node-red og en database, slik at du kan logge data og også samle dem for senere bruk.

For denne bygningen bruker jeg et enkelt arduino alarmsystem som sender ut 5 datatall, hver atskilt med komma.

Det er ikke nødvendig å ha den eksakte mengden data, og programmet kan være hva som helst.

Den viktige delen er at dataene er atskilt med kommaer som vist på dette skjermbildet.

Utgangen kan for eksempel se slik ut: "324, 0, 0, 1, 1"

(den ferdige programmeringen og instruksjonene for opprettelsen av arduinoen er koblet nederst i denne opplæringen)

Trinn 1: Komme i gang med Node-red

Komme i gang med Node-red
Komme i gang med Node-red

For denne opplæringen antar vi at du allerede har installert Node-red, men det er noen ekstra paletter som brukes til dette prosjektet som vi trenger for at det skal fungere

Finn "Manage Palette" -knappen og installer følgende paletter.

  • node-red-dashboard
  • node-red-node-mysql
  • node-red-node-arduino
  • node-red-node-serialport

Det skal vise noen nye paletter på siden av Node-rød knappemeny.

Trinn 2: Splitting Data in Node-red

Splitting Data in Node-red
Splitting Data in Node-red

Nå som Node-red er klar til å gå, må vi starte med å dele dataene våre i separate biter.

Dette er grunnen til at vi sørget for å skille dem med kommaer inne i Arduino -koden.

La oss først starte med å sette ned Arduino Input -noden, som er funnet på venstre sidepanel.

Du må sørge for at den har riktig seriell port (Mine bruker COM4) og Baud rate (i programmet bruker jeg 9600 baud rate)

Hvis den er riktig konfigurert, skal den si at den er tilkoblet.

Deretter oppretter vi en Javascript -funksjonsblokk og kobler den etter Arduino -inngangsnoden. Denne blokken lar oss programmere i Javascript, og her skriver vi en kode som kan dele dataene våre for hvert komma.

I denne funksjonsblokken delte jeg mine 5 data ved hjelp av følgende kode:

var m1 = {emne: "light1", nyttelast: msg.payload.split (",") [0]}; var m2 = {emne: "light2", nyttelast: msg.payload.split (",") [1]}; var m3 = {topic: "light3", nyttelast: msg.payload.split (",") [2]}; var m4 = {topic: "millis", nyttelast: msg.payload.split (",") [3]}; var m5 = {topic: "onoff", nyttelast: msg.payload.split (",") [4]}; retur [m1, m2, m3, m4, m5];

(endre koden etter behov)

Sørg for at noden er satt til 5 utganger (eller tilsvarende)

Som vist på skjermbildet, har vi nå 5 utganger som vi hver sammen kobler til en feilsøkingsnode og en tekstdashbordnode. Dette vil være nyttig når vi trenger å se det i brukergrensesnittet.

Trinn 3: Database med Wampserver

Database med Wampserver
Database med Wampserver

For at databasen vår skal fungere må du ha Wampserver installert. Etter at den er installert og vises som et grønt ikon (etter at du har startet alle tjenester), bør du åpne "phpMyAdmin" som skal bringe deg til en påloggingsskjerm. Med mindre du har tidligere endret det, bare skriv inn "root" i brukernavnet og logg inn.

Trykk på phpmyadmin -knappen under verktøy nede i den venstre linjen, og den skal åpne databasemenyen, som ser omtrent ut som vist på bildet ovenfor.

Lag en ny database og gi den noe som er relatert til prosjektet ditt, mitt heter "alarmsystem" (disse navnene vil være store og små bokstaver)

Under den databasen, lag en ny tabell og navngi den, min heter "alarmdata"

den vil spørre om du vil bruke "latin1_swedish_ci", og vi beholder det som det.

Nå lager du 6 tabeller (1 mer enn dataene vi har)

Den første tabellen må bruke datatypen "langtekst"

og resten av datasettet bruker "mediumtext"

Sørg for å nevne dem. (det første datasettet bør hete "tid"

Trinn 4: Database

Database
Database

Wampserver -datasettet skal se slik ut.

(men uten de faktiske dataene, da vi ikke har fått til det ennå)

Trinn 5: Noderød til Wampserver

Noderød til Wampserver
Noderød til Wampserver

Nå vil vi at dataene vi sender ut fra arduinoen vår, skal gå til vår Wampserver.

Start med å opprette en annen Javascript -funksjonsblokk og koble den til vår arduino -inngangsnode.

I denne skriptblokken deler vi igjen dataene våre, men vi setter dem inn i databasen vår også.

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ønn1+"', '"+Grønn2+"', '"+Alarm+"', '"+Millis+"', '"+IsActive+"')); msg.topic = ut; returmelding;

Legg merke til at jeg skriver "INSERT INTO alarmsystem.alarmdata", dette er navnet vi ga vår database og tabell, sørg for at du skriver det nøyaktige navnet du ga databasen din i det.

Koble nå Javascript -blokken til en feilsøkingsnode og også en "mysql" -node som finnes under lagringspaletten på venstre side.

under mysql -blokken kaller du det det samme som databasen din "alarmsystem"

bytt bruker til "root" (navnet vi brukte for å logge på serveren vår)

vert, port og database bør fylles ut allerede med:

Vert: 127.0.0.1

Havn: 3306

Database: alarmsystem

Hvis alt er gjort riktig, bør det være koblet til etter at du har implementert endringene.

Du bør også kunne se at databasen nå logger dataene dine direkte fra Arduino.

Trinn 6: Bruke data fra Wampserver til Node-red

Bruke data fra Wampserver til Node-red
Bruke data fra Wampserver til Node-red
Bruke data fra Wampserver til Node-red
Bruke data fra Wampserver til Node-red

For den siste strekningen vil vi se om vi kan ta dataene vi har lagret og sette dem tilbake i vår Node-rød og forhåpentligvis vise den.

Start med å plassere en "injiser" -node

Under emnet i denne noden setter vi koden: SELECT*FROM alarmsystem.alarmdata

Dette vil kunne finne databasen vår når vi trykker på den.

Koble injeksjonsnoden til en ny "mysql" -node som er satt opp akkurat som den vi gjorde i forrige trinn.

Koble mysql -noden til en feilsøkingsnode og en malnode som er funnet under dashbordet.

Malnoden vil være tabellen vår som vi kan oppdatere for å vise data fra databasen mens den produseres.

Skriv inn koden som vises på skjermbildet ovenfor (endre etter behov), og den skal nå vise en datatabell i vårt Node-røde brukergrensesnitt.

Vi kan også legge til en dashbordknapp for å oppdatere tabellen fra selve brukergrensesnittet.

Start med å lage en knappnode.

koble knappnoden til en Javascript -funksjonsblokk.

i funksjonsblokken setter vi inn følgende kode.

msg.topic = "SELECT * FRA alarmdata ORDER BY Green1 DESC LIMIT 20"; return msg;

(Green1 er den første datavariabelen i tabellen)

Denne funksjonsblokken må deretter kobles til inngangen til vår mysql -node vi laget tidligere i dette trinnet.

Trinn 7: Avslutte

Avslutter
Avslutter

Nå bør brukergrensesnittet vårt inneholde en live oppdatering av dataene våre og en tabell med data fra selve serveren vår.

Dette betyr at vi har opprettet en forbindelse mellom Arduino, et UI -basert program og en database.

Hvis du er interessert i hvordan mitt Arduino alarmsystem fungerer, har jeg lagt til et dokument som forklarer hvordan det er programmert og konfigurert.

Samt full eksport av den node-røde programmeringen.

Anbefalt: