INHOUDSOPGAWE:

UCL-IIOT-Alarmstelsel met databasis en knooppuntrooi: 7 stappe
UCL-IIOT-Alarmstelsel met databasis en knooppuntrooi: 7 stappe

Video: UCL-IIOT-Alarmstelsel met databasis en knooppuntrooi: 7 stappe

Video: UCL-IIOT-Alarmstelsel met databasis en knooppuntrooi: 7 stappe
Video: Session 1: Vector-borne disease surveillance and modeling using mobile and IoT technology 2024, Julie
Anonim
UCL-IIOT-Alarmstelsel met databasis en knooppunt-rooi
UCL-IIOT-Alarmstelsel met databasis en knooppunt-rooi
UCL-IIOT-Alarmstelsel met databasis en knooppunt-rooi
UCL-IIOT-Alarmstelsel met databasis en knooppunt-rooi

Die doel van hierdie build is om te leer oor die koppeling van Arduino met Node-red en 'n databasis, sodat u data kan aanteken en dit ook kan versamel vir later gebruik.

Vir hierdie konstruksie gebruik ek 'n eenvoudige arduino alarmstelsel wat 5 datanommers uitvoer, elk met 'n komma geskei.

Dit is nie nodig om die presiese hoeveelheid data te hê nie, en die program kan enigiets wees.

Die belangrikste deel is dat die data met kommas geskei word, soos op hierdie skermkiekie gesien word.

Die uitset kan byvoorbeeld so lyk: "324, 0, 0, 1, 1"

(die voltooide programmering en instruksies vir die maak van die arduino is onderaan hierdie tutoriaal gekoppel)

Stap 1: Begin met Node-rooi

Aan die gang met Node-rooi
Aan die gang met Node-rooi

Vir hierdie tutoriaal neem ons aan dat u reeds Node-red geïnstalleer het, maar daar is 'n paar ekstra palette wat vir hierdie projek gebruik word wat ons nodig het om dit te laat werk

Soek die knoppie "Beheer palet" en installeer die volgende palette.

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

Daar moet 'n paar nuwe palette aan die kant van die knoppie-rooi knoppie-kieslys verskyn.

Stap 2: Verdeel data in Node-rooi

Verdeel data in Node-rooi
Verdeel data in Node-rooi

Noudat Node-red gereed is, moet ons begin deur ons data in aparte stukke te verdeel.

Daarom het ons seker gemaak dat ons dit met kommas in die Arduino -kode kan skei.

Laat ons eers die Arduino -invoerknooppunt, wat aan die linkerkant van die paneel is, neersit.

U moet seker maak dat dit die korrekte seriële poort (Myne gebruik COM4) en Baud rate het (in my program gebruik ek 9600 baud rate)

As dit korrek opgestel is, moet dit sê dat dit gekoppel is.

Vervolgens skep ons 'n Javascript -funksieblok en verbind dit na die Arduino -invoerknooppunt. Met hierdie blok kan ons in Javascript programmeer, en hier skryf ons 'n kode wat ons data vir elke komma kan verdeel.

In hierdie funksieblok verdeel ek my 5 data met behulp van die volgende kode:

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

(verander die kode indien nodig)

Maak seker dat die knoop op 5 uitsette (of u ekwivalent) ingestel is

Soos in die skermkiekie gesien word, het ons nou 5 uitsette wat ons elkeen kan koppel aan 'n ontfoutingsknoop en 'n teksdashboardknooppunt. Dit sal handig wees as ons dit in die UI moet sien.

Stap 3: Databasis met Wampserver

Databasis met Wampserver
Databasis met Wampserver

Om ons databasis te laat werk, moet Wampserver geïnstalleer word. Nadat dit geïnstalleer is en as 'n groen ikoon verskyn (nadat u alle dienste begin het), moet u die 'phpMyAdmin' oopmaak wat u na 'n aanmeldskerm moet bring. het dit voorheen verander, tik eenvoudig 'root' in die gebruikersnaam en meld aan.

Druk die phpmyadmin -knoppie onder die gereedskap in die linkerbalk, en dit moet die databasiskieslys oopmaak, wat lyk soos in die prent hierbo.

Skep 'n nuwe databasis en noem dit iets wat verband hou met u projek; myne heet 'alarmsystem' (hierdie name sal hooflettergevoelig wees)

Skep onder die databasis 'n nuwe tabel en noem dit, myne heet "alarmdata"

dit sal vra of u 'latin1_swedish_ci' wil gebruik, en ons hou dit net so.

Nou skep u 6 tabelle (1 meer as die data wat ons het)

Die eerste tabel moet die datatipe "langteks" gebruik

en die res van die datastel gebruik "mediumteks"

Maak seker dat jy hulle noem. (die eerste datastel moet 'tyd' genoem word

Stap 4: Databasis

Databasis
Databasis

Die Wampserver -datastel moet so lyk.

(maar sonder die werklike data, aangesien ons dit nog nie bereik het nie)

Stap 5: Knooprooi na Wampserver

Node-rooi na Wampserver
Node-rooi na Wampserver

Nou wil ons hê dat die data wat ons van ons arduino afgee, na ons Wampserver moet gaan.

Begin deur 'n ander Javascript -funksieblok te skep en koppel dit aan ons arduino -invoerknooppunt.

In hierdie scriptblok verdeel ons ons data weer, maar ons plaas dit ook in ons databasis.

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 = "INSET IN alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) WAARDES ('"+new Date (). toISOString (). sny (0, 19).vervang (' T ',' ')+"', '"+Groen1+"', '"+Groen2+"', '"+Alarm+"', '"+Millis+"', '"+IsActive+"')"; msg.topic = uit; terugkeer msg;

Let op dat ek 'INSERT IN alarmsystem.alarmdata' invoer, dit is die naam wat ons aan ons databasis en tabel gegee het; maak seker dat u die presiese naam wat u in u databasis gegee het, skryf.

Koppel nou die Javascript -blok aan 'n ontfoutingsknoop en ook 'n "mysql" -knoop wat onder die stoorpalet aan die linkerkant gevind word.

onder die mysql -blok noem u dit dieselfde as u databasis "alarmstelsel"

verander gebruiker na "root" (die naam waarmee ons by ons bediener aangemeld het)

gasheer, poort en databasis moet reeds ingevul word met:

Gasheer: 127.0.0.1

Hawe: 3306

Databasis: alarmstelsel

As alles reg gedoen is, moet dit verbind word nadat u u veranderinge geïmplementeer het.

U moet ook kan sien dat die databasis u data direk vanaf die Arduino registreer.

Stap 6: Gebruik data van Wampserver tot Node-rooi

Gebruik data van Wampserver tot Node-rooi
Gebruik data van Wampserver tot Node-rooi
Gebruik data van Wampserver tot Node-rooi
Gebruik data van Wampserver tot Node-rooi

Vir die laaste gedeelte wil ons kyk of ons die data wat ons gestoor het, kan terugneem en dit weer in ons Node-rooi kan plaas en dit hopelik kan vertoon.

Begin deur 'n "inspuit" -knoop te plaas

Onder die onderwerp in hierdie node sit ons die kode: SELECT*FROM alarmsystem.alarmdata

Dit sal ons databasis kan vind as ons daarop druk.

Koppel die inspuitknoop aan 'n nuwe "mysql" -knoop wat presies opgestel is soos in die vorige stap.

Koppel die mysql -knoop aan 'n ontfoutingsknoop en 'n sjabloonknoop wat onder die paneelbord gevind word.

Die sjabloonknoop is ons tabel wat ons kan bywerk om data uit die databasis te wys terwyl dit vervaardig word.

Voer die kode in die skermkiekie hierbo in (verander indien nodig) en dit moet nou 'n datatabel in ons Node-red UI vertoon.

Ons kan ook 'n paneelbordknoppie byvoeg om die tabel by te werk vanaf die UI self.

Begin deur 'n knoppie -knoop te skep.

koppel die knoppieknoop aan 'n Javascript -funksieblok.

in die funksieblok voeg ons die volgende kode in.

msg.topic = "KIES * VAN alarmdata BESTEL DEUR Green1 DESC LIMIT 20"; stuur boodskap;

(Green1 is die eerste dataveranderlike in die tabel)

Hierdie funksieblok moet dan gekoppel word aan die invoer van ons mysql -knoop wat ons voorheen in hierdie stap gemaak het.

Stap 7: afronding

Finaliseer
Finaliseer

Nou moet ons UI 'n lewendige opdatering van ons data bevat en 'n tabel met data van ons bediener self.

Dit beteken dat ons 'n verbinding tussen Arduino, 'n UI -program en 'n databasis geskep het.

As u belangstel in hoe my Arduino -alarmstelsel werk, het ek 'n dokument bygevoeg wat verduidelik hoe dit geprogrammeer en opgestel word.

Sowel as die volledige uitvoer van die knooprooi programmering.

Aanbeveel: