Sadržaj:

UCL-IIOT-alarmni sistem sa bazom podataka i crvenim čvorom: 7 koraka
UCL-IIOT-alarmni sistem sa bazom podataka i crvenim čvorom: 7 koraka

Video: UCL-IIOT-alarmni sistem sa bazom podataka i crvenim čvorom: 7 koraka

Video: UCL-IIOT-alarmni sistem sa bazom podataka i crvenim čvorom: 7 koraka
Video: Часть 3 — Аудиокнига «Бэббит» Синклера Льюиса (главы 10–15) 2024, Novembar
Anonim
UCL-IIOT-alarmni sistem sa bazom podataka i crvenim čvorom
UCL-IIOT-alarmni sistem sa bazom podataka i crvenim čvorom
UCL-IIOT-alarmni sistem sa bazom podataka i crvenim čvorom
UCL-IIOT-alarmni sistem sa bazom podataka i crvenim čvorom

Svrha ove verzije je poučavanje o povezivanju Arduina s Node-redom i bazom podataka, tako da možete bilježiti podatke i prikupljati ih za kasniju upotrebu.

Za ovu verziju koristim jednostavan arduino alarmni sistem koji emituje 5 brojeva podataka, svaki odvojen zarezom.

Nije potrebno imati točnu količinu podataka, a program bi mogao biti bilo što.

Važan dio je da su podaci odvojeni zarezima kako se vidi na ovoj snimci zaslona.

Na primjer, izlaz bi mogao izgledati ovako: "324, 0, 0, 1, 1"

(završeno programiranje i upute za stvaranje arduina povezani su na dnu ovog vodiča)

Korak 1: Započnite s Node-red

Početak rada sa Node-red
Početak rada sa Node-red

Za ovaj vodič pretpostavljamo da ste već instalirali Node-red, ali postoje neke dodatne palete koje se koriste za ovaj projekt i potrebne su nam za rad

Pronađite dugme "Upravljanje paletom" i instalirajte sljedeće palete.

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

Trebao bi prikazati neke nove palete sa strane menija dugmeta sa crvenim čvorom.

Korak 2: Razdvajanje podataka crvenim čvorom

Dijeljenje podataka u Node-red
Dijeljenje podataka u Node-red

Sada kada je Node-red spreman za rad, moramo početi razdvajanjem naših podataka na zasebne dijelove.

Zato smo se pobrinuli da ih odvojimo zarezima unutar Arduino koda.

Prvo počnimo spuštanjem Arduino ulaznog čvora, koji se nalazi na lijevoj bočnoj ploči.

Morate biti sigurni da ima ispravan serijski (moj koristi COM4) port i brzinu prijenosa (u svom programu koristim 9600 brzina prijenosa)

Ako je pravilno postavljeno, trebalo bi reći da je povezano.

Zatim kreiramo Javascript funkcijski blok i povezujemo ga nakon Arduino ulaznog čvora. Ovaj blok nam omogućava programiranje u Javascriptu, a ovdje pišemo kod koji može podijeliti naše podatke za svaku zarez.

U ovom funkcionalnom bloku podijelio sam svojih 5 podataka pomoću sljedećeg koda:

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

(po potrebi promijenite kôd)

Provjerite je li čvor postavljen na 5 izlaza (ili vaš ekvivalent)

Kao što se vidi na snimku zaslona, sada imamo 5 izlaza koje svaki povezujemo s čvorom za otklanjanje grešaka i čvorom s tekstualnom nadzornom pločom. Ovo će biti korisno kada ga trebamo vidjeti na korisničkom sučelju.

Korak 3: Baza podataka sa Wampserverom

Baza podataka sa Wampserverom
Baza podataka sa Wampserverom

Da bi naša baza podataka radila, morate imati instaliran Wampserver. Nakon što je instaliran i prikazuje se kao zelena ikona (nakon što ste pokrenuli sve usluge), trebali biste otvoriti "phpMyAdmin" koji bi vas trebao odvesti na ekran za prijavu. Osim ako imate prethodno promijenili, jednostavno unesite "root" u korisničko ime i prijavu.

Pritisnite dugme phpmyadmin ispod alata dole na levoj traci i trebalo bi da otvorite meni baze podataka, koji izgleda otprilike kao što je prikazano na gornjoj slici.

Kreirajte novu bazu podataka i dajte joj ime u vezi s vašim projektom, moj se zove "alarmni sistem" (ova imena će razlikovati velika i mala slova)

U toj bazi podataka kreirajte novu tablicu i dajte joj ime, moje se zove "alarmdata"

pitat će vas želite li koristiti "latin1_swedish_ci", a mi ćemo ga samo zadržati.

Sada kreirate 6 tablica (1 više od podataka koje imamo)

Prva tablica mora koristiti tip podataka "longtext"

a ostatak skupa podataka koristi "mediumtext"

Dajte im ime. (prvi skup podataka trebao bi biti nazvan "vrijeme"

Korak 4: Baza podataka

Baza podataka
Baza podataka

Skup podataka Wampservera trebao bi izgledati otprilike ovako.

(ali bez stvarnih podataka, jer do toga još nismo došli)

Korak 5: Node-red do Wampservera

Node-red to Wampserver
Node-red to Wampserver

Sada želimo da podaci koje izlazimo iz našeg arduina idu na naš Wampserver.

Počnite stvaranjem drugog funkcionalnog bloka Javascript i povežite ga s našim arduino ulaznim čvorom.

U ovom bloku skripti ponovno smo podijelili naše podatke, ali ih također ubacujemo u našu bazu podataka.

var data = msg.payload.split (","); var Green1 = podaci [0]; var Green2 = podaci [1]; var Alarm = podaci [2]; var Millis = podaci [3]; var IsActive = podaci [4]; var out = "INSERT INTO alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) VALUES ('"+novi datum (). toISOString (). slice (0, 19).replace (' T ',' ')+"', '"+Green1+"', '"+Green2+"', '"+Alarm+"', '"+Millis+"', '"+IsActive+"')"; msg.topic = out; return msg;

Obratite pažnju da sam uneo "INSERT INTO alarmsystem.alarmdata", ovo je ime koje smo dali našoj bazi podataka i tabeli, obavezno unesite tačno ime koje ste dali svojoj bazi podataka.

Sada povežite Javascript blok sa čvorom za otklanjanje grešaka, a takođe i sa "mysql" čvorom koji se nalazi ispod skladišne palete na lijevoj strani.

pod mysql blokom dajete mu isto ime kao i "alarmni sistem" vaše baze podataka

promijenite korisnika u "root" (ime koje smo koristili za prijavu na naš server)

host, port i baza podataka već trebaju biti popunjeni sa:

Domaćin: 127.0.0.1

Luka: 3306

Baza podataka: alarmni sistem

Ako je sve učinjeno ispravno, trebalo bi ga povezati nakon implementacije promjena.

Također biste trebali moći vidjeti da baza podataka sada izravno bilježi vaše podatke s Arduina.

Korak 6: Korištenje podataka s Wampservera na Node-red

Korištenje podataka od Wampservera do Node-red
Korištenje podataka od Wampservera do Node-red
Korištenje podataka od Wampservera do Node-red
Korištenje podataka od Wampservera do Node-red

Za kraj, želimo vidjeti možemo li uzeti podatke koje smo spremili i vratiti ih u naš Node-red i nadamo se da ćemo ih prikazati.

Počnite postavljanjem čvora za "ubrizgavanje"

Pod temu u ovom čvoru stavljamo kôd: SELECT*FROM alarmsystem.alarmdata

Ovo će moći pronaći našu bazu podataka kada je pritisnemo.

Povežite čvor za ubrizgavanje s novim "mysql" čvorom postavljenim točno onako kako smo to učinili u prethodnom koraku.

Povežite mysql čvor s čvorom za otklanjanje grešaka i čvorom predloška koji se nalazi ispod nadzorne ploče.

Čvor predloška bit će naša tablica koju možemo ažurirati kako bi prikazali podatke iz baze podataka dok se proizvodi.

Unesite kôd prikazan na gornjoj slici (promijenite po potrebi) i sada bi trebao prikazati tablicu podataka u našem Node-crvenom korisničkom sučelju.

Također možemo dodati gumb nadzorne ploče za ažuriranje tablice iz samog korisničkog sučelja.

Počnite stvaranjem čvora dugmeta.

spojite čvor dugmeta na Javascript funkcijski blok.

u funkcijski blok ubacujemo sljedeći kod.

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

(Zelena1 je prva varijabla podataka u tabeli)

ovaj funkcijski blok tada treba povezati s ulazom našeg mysql čvora koji smo prethodno napravili u ovom koraku.

Korak 7: Dovršavanje

Finalizing
Finalizing

Sada bi naše korisničko sučelje trebalo uključivati ažuriranje naših podataka uživo i tablicu s podacima sa samog servera.

To znači da smo stvorili vezu između Arduina, programa zasnovanog na korisničkom sučelju i baze podataka.

Ako vas zanima kako radi moj Arduino alarmni sistem, dodao sam dokument koji objašnjava kako je to programirano i postavljeno.

Kao i potpuni izvoz node-red programiranja.

Preporučuje se: