Innehållsförteckning:

UCL-IIOT-Larmsystem med databas och nodrött: 7 steg
UCL-IIOT-Larmsystem med databas och nodrött: 7 steg

Video: UCL-IIOT-Larmsystem med databas och nodrött: 7 steg

Video: UCL-IIOT-Larmsystem med databas och nodrött: 7 steg
Video: Clinician-led e-health records 2024, November
Anonim
UCL-IIOT-Larmsystem med databas och nodrött
UCL-IIOT-Larmsystem med databas och nodrött
UCL-IIOT-Larmsystem med databas och nodrött
UCL-IIOT-Larmsystem med databas och nodrött

Syftet med denna version är att lära dig att ansluta Arduino med Node-red och en databas, så att du kan logga data och även samla in dem för senare användning.

För detta bygge använder jag ett enkelt arduino -larmsystem som matar ut 5 datanummer, var och en separerad med ett kommatecken.

Det är inte nödvändigt att ha den exakta mängden data och programmet kan vara vad som helst.

Den viktiga delen är att data är separerade med kommatecken som visas på denna skärmdump.

Utmatningen kan till exempel se ut så här: "324, 0, 0, 1, 1"

(den färdiga programmeringen och instruktionerna för skapandet av arduino är länkad längst ner i denna handledning)

Steg 1: Komma igång med Node-red

Komma igång med Node-red
Komma igång med Node-red

För denna handledning antar vi att du redan har installerat Node-red, men det finns några extra paletter som används för detta projekt som vi behöver för att det ska fungera

Hitta knappen "Hantera palett" och installera följande paletter.

  • nod-röd-instrumentpanel
  • nod-röd-nod-mysql
  • nod-röd-nod-arduino
  • nod-röd-nod-seriellport

Det borde visa några nya paletter på sidan av menyn Node-röd knapp.

Steg 2: Dela data i nodrött

Dela data i nod-rött
Dela data i nod-rött

Nu när Node-red är redo att gå måste vi börja med att dela upp våra data i separata bitar.

Det är därför vi såg till att skilja dem med kommatecken inuti Arduino -koden.

Låt oss först börja med att lägga ner Arduino Input -noden, som finns på den vänstra sidopanelen.

Du måste se till att den har rätt seriell port (Mine använder COM4) och Baud rate (i mitt program använder jag 9600 baud rate)

Om den är korrekt inställd ska den säga att den är ansluten.

Därefter skapar vi ett Javascript -funktionsblock och ansluter det efter Arduino -ingångsnoden. Detta block låter oss programmera i Javascript, och här skriver vi en kod som kan dela upp våra data för varje kommatecken.

I detta funktionsblock delar jag upp mina 5 data med följande kod:

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

(ändra koden vid behov)

Se till att noden är inställd på 5 utgångar (eller motsvarande)

Som framgår av skärmdumpen har vi nu fem utgångar som vi var och en länkar till en felsökningsnod och en textdashboardnod. Detta kommer att vara användbart för när vi behöver se det i användargränssnittet.

Steg 3: Databas med Wampserver

Databas med Wampserver
Databas med Wampserver

För att vår databas ska fungera måste du ha Wampserver installerad. Efter att den har installerats och visas som en grön ikon (efter att du har startat alla tjänster), ska du öppna "phpMyAdmin" som tar dig till en inloggningsskärm. Om du inte har tidigare ändrat det, helt enkelt mata in "root" i användarnamnet och logga in.

Tryck på phpmyadmin -knappen under verktyg nere i den vänstra fältet så öppnas databasmenyn, som ser ut ungefär som på bilden ovan.

Skapa en ny databas och ge den något som är relaterat till ditt projekt, mitt heter "alarmsystem" (dessa namn är skiftlägeskänsliga)

Under den databasen, skapa en ny tabell och namnge den, min heter "alarmdata"

det kommer att fråga om du vill använda "latin1_swedish_ci" och vi behåller det bara som det.

Nu skapar du 6 tabeller (1 mer än de data vi har)

Den första tabellen måste använda datatypen "longtext"

och resten av datamängden använder "mediumtext"

Se till att namnge dem. (den första datamängden bör få namnet "tid"

Steg 4: Databas

Databas
Databas

Wampservers dataset ska se ut ungefär så här.

(men utan de faktiska uppgifterna, eftersom vi inte har kommit till det ännu)

Steg 5: Nodröd till Wampserver

Noderöd till Wampserver
Noderöd till Wampserver

Nu vill vi att de data vi skickar från vår arduino ska gå till vår Wampserver.

Börja med att skapa ett annat Javascript -funktionsblock och anslut det till vår arduino -ingångsnod.

I det här skriptblocket delar vi återigen upp våra data, men vi sätter in dem i vår databas också.

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 ',' ')+"', '"+Green1+"', '"+Green2+"', '"+Alarm+"', '"+Millis+"', '"+IsActive+"')"; msg.topic = out; returmeddelande;

Lägg märke till att jag anger "INSERT INTO alarmsystem.alarmdata", detta är namnet vi gav vår databas och tabell, se till att du skriver det exakta namnet du gav din databas i det.

Anslut nu Javascript -blocket till en felsökningsnod och även en "mysql" -nod som finns under lagringspaletten på vänster sida.

under mysql -blocket kallar du det samma som din databas "alarmsystem"

ändra användare till "root" (namnet vi använde för att logga in på vår server)

värd, port och databas bör redan fyllas i med:

Värd: 127.0.0.1

Port: 3306

Databas: larmsystem

Om allt är gjort korrekt bör det vara anslutet när du har implementerat dina ändringar.

Du bör också kunna se att databasen nu loggar dina data från Arduino direkt.

Steg 6: Använda data från Wampserver till Node-red

Använda data från Wampserver till Node-red
Använda data från Wampserver till Node-red
Använda data från Wampserver till Node-red
Använda data från Wampserver till Node-red

För den sista sträckan vill vi se om vi kan ta data vi har sparat och lägga tillbaka dem i vår Node-röda och förhoppningsvis visa den.

Börja med att placera en "injicera" -nod

Under ämnet i denna nod lägger vi koden: SELECT*FROM alarmsystem.alarmdata

Detta kommer att kunna hitta vår databas när vi trycker på den.

Anslut injiceringsnoden till en ny "mysql" -nod som är konfigurerad exakt som den vi gjorde i föregående steg.

Anslut mysql -noden till en felsökningsnod och en mallnod som finns under instrumentpanelen.

Mallnoden blir vår tabell som vi kan uppdatera för att visa data från databasen när den produceras.

Ange koden som visas på skärmdumpen ovan (ändra efter behov) och den ska nu visa en datatabell i vårt Node-röda gränssnitt.

Vi kan också lägga till en instrumentpanelsknapp för att uppdatera tabellen från själva användargränssnittet.

Börja med att skapa en knappnod.

anslut knappnoden till ett Javascript -funktionsblock.

i funktionsblocket sätter vi in följande kod.

msg.topic = "VÄLJ * FRÅN larmdata ORDER BY Green1 DESC LIMIT 20"; return msg;

(Green1 är den första datavariabeln i tabellen)

detta funktionsblock måste sedan anslutas till ingången till vår mysql -nod som vi gjorde tidigare i detta steg.

Steg 7: Avsluta

Avslutar
Avslutar

Nu bör vårt användargränssnitt innehålla en liveuppdatering av våra data och en tabell med data från vår server själv.

Det betyder att vi har skapat en anslutning mellan Arduino, ett UI -baserat program och en databas.

Om du är intresserad av hur mitt Arduino -larmsystem fungerar har jag lagt till ett dokument som förklarar hur det är programmerat och konfigurerat.

Samt en fullständig export av den noderöda programmeringen.

Rekommenderad: