Inhoudsopgave:
- Stap 1: Aan de slag met Node-red
- Stap 2: Gegevens splitsen in Node-red
- Stap 3: Database met Wampserver
- Stap 4: Database
- Stap 5: Node-red naar Wampserver
- Stap 6: Gegevens gebruiken van Wampserver naar Node-red
- Stap 7: Finaliseren
Video: UCL-IIOT - Alarmsysteem met database en Node-red - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Het doel van deze build is om te leren over het verbinden van Arduino met Node-red en een database, zodat je gegevens kunt loggen en deze ook kunt verzamelen voor later gebruik.
Voor deze build gebruik ik een eenvoudig arduino-alarmsysteem dat 5 gegevensnummers uitvoert, elk gescheiden door een komma.
Het is niet nodig om die exacte hoeveelheid gegevens te hebben en het programma kan van alles zijn.
Het belangrijkste is dat de gegevens worden gescheiden met komma's, zoals te zien is op deze schermafbeelding.
De uitvoer kan er bijvoorbeeld als volgt uitzien: "324, 0, 0, 1, 1"
(de voltooide programmering en instructies voor het maken van de arduino zijn onderaan deze tutorial gelinkt)
Stap 1: Aan de slag met Node-red
Voor deze tutorial gaan we ervan uit dat je Node-red al hebt geïnstalleerd, maar er zijn enkele extra paletten die voor dit project worden gebruikt en die we nodig hebben om het te laten werken
Zoek de knop "Palet beheren" en installeer de volgende paletten.
- node-rood-dashboard
- node-red-node-mysql
- node-red-node-arduino
- node-red-node-serialport
Het zou een aantal nieuwe paletten moeten tonen aan de zijkant van het Knooppunt-rode knopmenu.
Stap 2: Gegevens splitsen in Node-red
Nu Node-red klaar is voor gebruik, moeten we beginnen met het opsplitsen van onze gegevens in afzonderlijke stukken.
Daarom hebben we ervoor gezorgd dat ze met komma's in de Arduino-code van elkaar zijn gescheiden.
Laten we eerst beginnen met het neerzetten van het Arduino Input-knooppunt, te vinden op het linkerzijpaneel.
Je moet ervoor zorgen dat het de juiste seriële (de mijne gebruikt COM4) poort en baudrate heeft (in mijn programma gebruik ik 9600 baudrate)
Als het correct is ingesteld, zou het moeten zeggen dat het is aangesloten.
Vervolgens maken we een Javascript-functieblok en verbinden dit na het Arduino-invoerknooppunt. Met dit blok kunnen we in Javascript programmeren en hier schrijven we een code die onze gegevens voor elke komma kan splitsen.
In dit functieblok deel ik mijn 5 gegevens met behulp van de volgende code:
var m1 = {onderwerp: "light1", payload: msg.payload.split(", ")[0]}; var m2 = {onderwerp: "light2", payload: msg.payload.split(", ")[1]}; var m3 = {onderwerp: "light3", payload: msg.payload.split(", ")[2]}; var m4 = {onderwerp: "millis", payload: msg.payload.split(", ")[3]}; var m5 = {onderwerp: "aan-uit", payload: msg.payload.split(", ")[4]}; rendement [m1, m2, m3, m4, m5];
(wijzig de code indien nodig)
Zorg ervoor dat het knooppunt is ingesteld op 5 uitgangen (of uw equivalent)
Zoals te zien is in de schermafbeelding, hebben we nu 5 uitgangen die we elk koppelen aan een foutopsporingsknooppunt en een tekstdashboardknooppunt. Dit is handig wanneer we het in de gebruikersinterface moeten zien.
Stap 3: Database met Wampserver
Om onze database te laten werken, moet Wampserver zijn geïnstalleerd. Nadat deze is geïnstalleerd en wordt weergegeven als een groen pictogram (nadat u alle services hebt gestart), moet u de "phpMyAdmin" openen die u naar een inlogscherm zou moeten brengen. eerder hebt gewijzigd, voert u eenvoudig "root" in de gebruikersnaam in en logt u in.
Druk op de phpmyadmin-knop onder tools in de linkerbalk en het zou het databasemenu moeten openen, dat er ongeveer zo uitziet als in de bovenstaande afbeelding.
Maak een nieuwe database en noem het iets dat gerelateerd is aan uw project, de mijne heet "alarmsysteem" (deze namen zijn hoofdlettergevoelig)
Maak onder die database een nieuwe tabel en noem deze, de mijne heet "alarmdata"
het zal vragen of je "latin1_swedish_ci" wilt gebruiken en we houden het gewoon zo.
Nu maakt u 6 tabellen (1 meer dan de gegevens die we hebben)
De eerste tabel moet het datatype "longtext" gebruiken
en de rest van de dataset gebruikt "mediumtext"
Zorg ervoor dat u ze een naam geeft. (de eerste dataset moet "time" heten
Stap 4: Database
De Wampserver-dataset zou er ongeveer zo uit moeten zien.
(maar zonder de daadwerkelijke gegevens, daar zijn we nog niet aan toegekomen)
Stap 5: Node-red naar Wampserver
Nu willen we dat de gegevens die we van onze Arduino uitvoeren naar onze Wampserver gaan.
Begin met het maken van een ander Javascript-functieblok en verbind het met ons Arduino-invoerknooppunt.
In dit scriptblok splitsen we opnieuw onze gegevens, maar we voegen deze ook in onze database in.
var data = msg.payload.split(", ");var Groen1 = data[0]; var Groen2 = gegevens[1]; var Alarm = gegevens[2]; var Millis = gegevens[3]; var IsActive = gegevens[4]; var out = "INSERT INTO alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) VALUES('"+new Date().toISOString().slice(0, 19).replace('T', ' ')+"', '"+Groen1+"', '"+Groen2+"', '"+Alarm+"', '"+Millis+"', '"+IsActive+"')"; msg.topic = uit; bericht terugsturen;
Merk op dat ik "INSERT INTO alarmsystem.alarmdata" heb ingevoerd, dit is de naam die we onze database en tabel hebben gegeven, zorg ervoor dat je de exacte naam schrijft die je je database hebt gegeven.
Verbind nu het Javascript-blok met een debug-knooppunt en ook met een "mysql"-knooppunt onder het opslagpalet aan de linkerkant.
onder het mysql-blok noem je het hetzelfde als je database "alarmsysteem"
verander gebruiker in "root" (de naam die we gebruikten om in te loggen op onze server)
host, poort en database moeten al zijn ingevuld met:
Gastheer: 127.0.0.1
Poort: 3306
Database: alarmsysteem
Als alles correct is gedaan, moet het worden aangesloten nadat u uw wijzigingen hebt geïmplementeerd.
U zou ook moeten kunnen zien dat de database uw gegevens nu rechtstreeks vanuit de Arduino logt.
Stap 6: Gegevens gebruiken van Wampserver naar Node-red
Voor het laatste stuk willen we kijken of we de gegevens die we hebben opgeslagen kunnen nemen en terug in onze Node-red kunnen zetten en hopelijk kunnen weergeven.
Begin met het plaatsen van een "inject" node
Onder onderwerp in dit knooppunt plaatsen we de code: SELECT*FROM alarmsystem.alarmdata
Dit zal onze database kunnen vinden wanneer we erop drukken.
Verbind het injecteerknooppunt met een nieuw "mysql" -knooppunt dat precies zo is ingesteld als dat we in de vorige stap hebben gedaan.
Verbind het mysql-knooppunt met een foutopsporingsknooppunt en een sjabloonknooppunt onder dashboard.
Het sjabloonknooppunt is onze tabel die we kunnen bijwerken om gegevens uit de database weer te geven terwijl deze worden geproduceerd.
Voer de code in die wordt getoond in de bovenstaande schermafbeelding (wijzig indien nodig) en deze zou nu een gegevenstabel moeten tonen in onze Node-red UI.
We kunnen ook een dashboardknop toevoegen om de tabel vanuit de gebruikersinterface zelf bij te werken.
Begin met het maken van een knopknooppunt.
verbind het knopknooppunt met een Javascript-functieblok.
in het functieblok voegen we de volgende code in.
msg.topic = "SELECTEER * UIT alarmgegevens BESTEL DOOR Green1 DESC LIMIT 20";retourbericht;
(Groen1 is de eerste gegevensvariabele in de tabel)
dit functieblok moet dan worden verbonden met de invoer van ons mysql-knooppunt dat we eerder in deze stap hebben gemaakt.
Stap 7: Finaliseren
Nu zou onze gebruikersinterface een live-update van onze gegevens en een tabel met gegevens van onze server zelf moeten bevatten.
Dit betekent dat we een verbinding hebben gemaakt tussen Arduino, een op de gebruikersinterface gebaseerd programma en een database.
Als je geïnteresseerd bent in hoe mijn Arduino Alarmsysteem werkt, heb ik een document toegevoegd waarin wordt uitgelegd hoe dat is geprogrammeerd en ingesteld.
Evenals een volledige export van de node-red programmering.
Aanbevolen:
Hoe NodeMCU ESP8266 te verbinden met MySQL-database: 7 stappen
Hoe NodeMCU ESP8266 te verbinden met MySQL-database: MySQL is een veelgebruikt relationeel databasebeheersysteem (RDBMS) dat gebruikmaakt van gestructureerde querytaal (SQL). Op een gegeven moment wilt u misschien Arduino/NodeMCU-sensorgegevens uploaden naar de MySQL-database. In deze Instructable zullen we zien hoe verbinding te maken
NODEMCU LUA ESP8266 Verbinding maken met MySQL-database: 6 stappen
NODEMCU LUA ESP8266 Maak verbinding met MySQL-database: deze instructable is niet voor angsthazen omdat het XAMPP (Apache, MySQL & PHP), HTML en natuurlijk LUA gebruikt. Als je er zeker van bent om deze aan te pakken, lees dan verder! Ik gebruik XAMPP omdat het kan worden ingesteld op een pen drive of je harde schijf en het is geconfigureerd
Een database maken met XAMPP: 4 stappen
Een database maken met XAMPP: XAMPP is een volledig gratis Apache-distributie met MariaDB, PHP en Perl. XAMPP biedt een grafische interface voor SQL, waarmee u informatie kunt opslaan in de database die we vandaag gaan maken. Toen ik voor het eerst databases ging gebruiken voor projecten
Gegevens ophalen uit een Firebase-database op NodeMCU: 7 stappen
Gegevens ophalen uit een Firebase-database op NodeMCU: voor deze instructie halen we gegevens op uit een database in Google Firebase en halen deze op met behulp van een NodeMCU voor verdere ontleding. PROJECTVEREISTEN:1) NodeMCU of ESP8266 Controller2) G-Mail account voor het maken van een Firebase-database.3) Download de
Arduino-project: elektronica bedienen via internet met Nodejs + SQL-database en website: 6 stappen
Arduino-project: elektronica besturen via internet met behulp van Nodejs + SQL Database en website.: Project door: Mahmed.tech Datum gemaakt: 14 juli 2017 Moeilijkheidsgraad: beginner met enige programmeerkennis. Hardwarevereisten: - Arduino Uno, Nano, Mega (ik denk dat de meeste MCU's met de seriële verbinding zullen werken) - Enkele LED & Stroombegrenzingsres