Turinys:

UCL-IIOT-signalizacijos sistema su duomenų baze ir raudonu mazgu: 7 žingsniai
UCL-IIOT-signalizacijos sistema su duomenų baze ir raudonu mazgu: 7 žingsniai

Video: UCL-IIOT-signalizacijos sistema su duomenų baze ir raudonu mazgu: 7 žingsniai

Video: UCL-IIOT-signalizacijos sistema su duomenų baze ir raudonu mazgu: 7 žingsniai
Video: Part 3 - Babbitt Audiobook by Sinclair Lewis (Chs 10-15) 2024, Liepa
Anonim
UCL-IIOT-signalizacijos sistema su duomenų baze ir raudonu mazgu
UCL-IIOT-signalizacijos sistema su duomenų baze ir raudonu mazgu
UCL-IIOT-aliarmo sistema su duomenų baze ir raudonu mazgu
UCL-IIOT-aliarmo sistema su duomenų baze ir raudonu mazgu

Šio kūrinio tikslas yra išmokyti prijungti „Arduino“prie „Node-red“ir duomenų bazės, kad galėtumėte registruoti duomenis ir rinkti juos vėlesniam naudojimui.

Šiam kūriniui aš naudoju paprastą arduino signalizacijos sistemą, kuri pateikia 5 duomenų numerius, atskirtus kableliu.

Nebūtina turėti tokio tikslaus duomenų kiekio ir programa gali būti bet kokia.

Svarbiausia, kad duomenys būtų atskirti kableliais, kaip parodyta šioje ekrano kopijoje.

Pavyzdžiui, išvestis gali atrodyti taip: "324, 0, 0, 1, 1"

(baigtas programavimas ir instrukcijos, kaip sukurti „arduino“, yra šios pamokos apačioje)

1 žingsnis: Darbo su raudonu mazgu pradžia

Darbo su raudonu mazgu pradžia
Darbo su raudonu mazgu pradžia

Šioje pamokoje darome prielaidą, kad jau įdiegėte raudoną mazgą, tačiau šiam projektui naudojamos kai kurios papildomos paletės, kurių mums reikia, kad jis veiktų

Raskite mygtuką „Tvarkyti paletę“ir įdiekite šias paletes.

  • mazgas-raudonas-prietaisų skydelis
  • node-red-node-mysql
  • mazgas-raudonas-mazgas-arduino
  • node-red-node-serialport

Turėtų būti rodomos naujos paletės raudono mazgo mygtuko meniu šone.

2 žingsnis: Duomenų padalijimas raudonu mazgu

Duomenų padalijimas raudonu mazgu
Duomenų padalijimas raudonu mazgu

Dabar, kai „Node-red“yra paruoštas veikti, turime pradėti skaidydami savo duomenis į atskirus gabalus.

Štai kodėl mes būtinai skyrėme juos kableliais „Arduino“kode.

Pirmiausia pradėkime nuleisdami „Arduino“įvesties mazgą, esantį kairiajame šoniniame skydelyje.

Turite įsitikinti, kad jis turi teisingą nuoseklųjį („Mine“naudoja COM4) prievadą ir „Baud“greitį (savo programoje naudoju 9600 baudų spartą)

Jei jis teisingai nustatytas, jis turėtų pasakyti, kad jis prijungtas.

Toliau sukuriame „Javascript“funkcijų bloką ir prijungiame jį po „Arduino“įvesties mazgo. Šis blokas leidžia mums programuoti „Javascript“, o čia rašome kodą, kuris gali padalinti mūsų duomenis kiekvienam kableliui.

Šiame funkcijų bloke aš padalinau savo 5 duomenis naudodami šį kodą:

var m1 = {tema: "šviesa1", naudingoji apkrova: msg.payload.split (",") [0]}; var m2 = {tema: "light2", naudingoji apkrova: msg.payload.split (",") [1]}; var m3 = {tema: "light3", naudingoji apkrova: msg.payload.split (",") [2]}; var m4 = {tema: "millis", naudingoji apkrova: msg.payload.split (",") [3]}; var m5 = {tema: "onoff", naudingoji apkrova: msg.payload.split (",") [4]}; grąža [m1, m2, m3, m4, m5];

(jei reikia, pakeiskite kodą)

Įsitikinkite, kad mazgas nustatytas į 5 išėjimus (arba jūsų ekvivalentą)

Kaip matyti ekrano kopijoje, dabar turime 5 išėjimus, kuriuos kiekvienas susiejame su derinimo mazgu ir teksto prietaisų skydelio mazgu. Tai bus naudinga, kai mums reikia tai pamatyti vartotojo sąsajoje.

3 veiksmas: duomenų bazė su „Wampserver“

Duomenų bazė su „Wampserver“
Duomenų bazė su „Wampserver“

Kad mūsų duomenų bazė veiktų, turite įdiegti „Wampserver“. Kai ji bus įdiegta ir rodoma kaip žalia piktograma (paleidus visas paslaugas), turėtumėte atidaryti „phpMyAdmin“, kuris turėtų nukreipti jus į prisijungimo ekraną. Nebent turite anksčiau jį pakeitę, tiesiog įveskite „root“į vartotojo vardą ir prisijungimą.

Paspauskite phpmyadmin mygtuką po įrankiais žemyn kairėje juostoje ir jis turėtų atidaryti duomenų bazės meniu, kuris atrodo maždaug taip, kaip parodyta aukščiau esančiame paveikslėlyje.

Sukurkite naują duomenų bazę ir pavadinkite ją kažkuo, susijusiu su jūsų projektu, mano pavadinimas yra „signalizacijos sistema“(šie pavadinimai bus didžiosios ir mažosios raidės)

Pagal tą duomenų bazę sukurkite naują lentelę ir pavadinkite ją, mano pavadinimas yra „alarmdata“

jis paklaus, ar norite naudoti „latin1_swedish_ci“, o mes tiesiog paliekame tai.

Dabar sukuriate 6 lenteles (1 daugiau nei mūsų turimi duomenys)

Pirmoje lentelėje reikia naudoti duomenų tipą „longtext“

o likusioje duomenų rinkinio dalyje naudojamas „vidutinis tekstas“

Būtinai pavadinkite juos. (pirmasis duomenų rinkinys turėtų būti pavadintas „laikas“

4 žingsnis: duomenų bazė

Duomenų bazė
Duomenų bazė

„Wampserver“duomenų rinkinys turėtų atrodyti maždaug taip.

(bet be tikrųjų duomenų, nes mes to dar nesame pasiekę)

5 veiksmas: raudonas mazgas į „Wampserver“

Raudonas mazgas į „Wampserver“
Raudonas mazgas į „Wampserver“

Dabar norime, kad duomenys, kuriuos mes siunčiame iš savo arduino, patektų į mūsų „Wampserver“.

Pradėkite sukurdami kitą „Javascript“funkcijų bloką ir prijunkite jį prie mūsų arduino įvesties mazgo.

Šiame scenarijų bloke mes dar kartą padalijome savo duomenis, bet taip pat įterpiame juos į savo duomenų bazę.

var duomenys = msg.payload.split (","); var Green1 = duomenys [0]; var Green2 = duomenys [1]; var Alarm = duomenys [2]; var Millis = duomenys [3]; var IsActive = duomenys [4]; var out = "INSERT INTO alarmsystem.alarmda ')+"', '"+Žalia1+"', '"+Žalia2+"', '"+Pavojaus signalas+"', '"+Millis+"', '"+IsActive+"')"; msg.topic = išeina; grąžinti pranešimą;

Pastaba Aš įvedu „INSERT INTO alarmsystem.alarmdata“, tokį pavadinimą davėme savo duomenų bazei ir lentelei. Įsitikinkite, kad į ją įrašėte tikslų pavadinimą.

Dabar prijunkite „Javascript“bloką prie derinimo mazgo, taip pat „mysql“mazgo, esančio saugojimo paletėje kairėje pusėje.

pagal „mysql“bloką pavadinate jį taip pat, kaip ir jūsų duomenų bazę „signalizacijos sistema“

pakeisti vartotoją į „root“(vardą, kurį naudojome prisijungdami prie savo serverio)

priegloba, prievadas ir duomenų bazė jau turi būti užpildyti:

Priimančioji: 127.0.0.1

Uostas: 3306

Duomenų bazė: signalizacijos sistema

Jei viskas padaryta teisingai, įdiegus pakeitimus, jis turėtų būti prijungtas.

Taip pat turėtumėte matyti, kad duomenų bazė dabar tiesiogiai registruoja jūsų duomenis iš „Arduino“.

6 veiksmas: duomenų naudojimas iš „Wampserver“į raudoną mazgą

Duomenų naudojimas nuo „Wampserver“iki „Node-red“
Duomenų naudojimas nuo „Wampserver“iki „Node-red“
Duomenų naudojimas nuo „Wampserver“iki „Node-red“
Duomenų naudojimas nuo „Wampserver“iki „Node-red“

Paskutiniame etape norime pamatyti, ar galime paimti išsaugotus duomenis ir grąžinti juos į raudoną mazgą ir, tikiuosi, parodyti.

Pradėkite dėdami „įpurškimo“mazgą

Po šio mazgo tema įvedame kodą: SELECT*FROM alarmsystem.alarmdata

Tai galės rasti mūsų duomenų bazę, kai ją paspausime.

Prijunkite įpurškimo mazgą prie naujo „mysql“mazgo, nustatyto tiksliai taip, kaip atlikome ankstesniame žingsnyje.

Prijunkite „mysql“mazgą prie derinimo mazgo ir šablono mazgo, esančio po prietaisų skydeliu.

Šablono mazgas bus mūsų lentelė, kurią galime atnaujinti, kad būtų rodomi duomenys iš duomenų bazės, kai ji kuriama.

Įveskite kodą, parodytą aukščiau esančioje ekrano kopijoje (jei reikia, pakeiskite) ir dabar mūsų mazgo raudonojoje vartotojo sąsajoje turėtų būti rodoma duomenų lentelė.

Taip pat galime pridėti prietaisų skydelio mygtuką, kad atnaujintume lentelę iš pačios vartotojo sąsajos.

Pradėkite nuo mygtuko mazgo sukūrimo.

Prijunkite mygtuko mazgą prie „Javascript“funkcijų bloko.

į funkcijų bloką įterpiame šį kodą.

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

(„Green1“yra pirmasis duomenų kintamasis lentelėje)

tada šis funkcijų blokas turi būti prijungtas prie mūsų „mysql“mazgo įvesties, kurią padarėme anksčiau šiame veiksme.

7 žingsnis: užbaigimas

Baigiama
Baigiama

Dabar mūsų vartotojo sąsaja turėtų apimti tiesioginį mūsų duomenų atnaujinimą ir lentelę su duomenimis iš paties serverio.

Tai reiškia, kad sukūrėme ryšį tarp „Arduino“, UI pagrįstos programos ir duomenų bazės.

Jei jus domina, kaip veikia mano „Arduino“signalizacijos sistema, pridėjau dokumentą, kuriame paaiškinama, kaip tai užprogramuota ir nustatyta.

Taip pat visiškai eksportuoti raudono mazgo programavimą.

Rekomenduojamas: