Obsah:
- Krok 1: Začínáme s Node-red
- Krok 2: Rozdělení dat do Node-red
- Krok 3: Databáze s Wampserverem
- Krok 4: Databáze
- Krok 5: Uzel červený na Wampserver
- Krok 6: Použití dat z Wampserveru do Node-red
- Krok 7: Dokončení
Video: UCL-IIOT-poplachový systém s databází a červeným uzlem: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Účelem tohoto sestavení je naučit se propojovat Arduino s Node-red a databází, abyste mohli data protokolovat a také je shromažďovat pro pozdější použití.
Pro toto sestavení používám jednoduchý arduino alarmový systém, který vydává 5 datových čísel, každé oddělené čárkou.
Není nutné mít přesné množství dat a programem může být cokoli.
Důležitou součástí je, že data jsou oddělena čárkami, jak je vidět na tomto snímku obrazovky.
Výstup může vypadat například takto: „324, 0, 0, 1, 1“
(hotové programování a pokyny k vytvoření arduina jsou propojeny v dolní části tohoto tutoriálu)
Krok 1: Začínáme s Node-red
V tomto kurzu předpokládáme, že jste již nainstalovali Node-red, ale pro tento projekt se používá několik dalších palet, které potřebujeme, aby fungoval
Najděte tlačítko „Spravovat paletu“a nainstalujte následující palety.
- uzel-červená-palubní deska
- node-red-node-mysql
- uzel-červený-uzel-arduino
- node-red-node-serialport
Mělo by to ukázat některé nové palety na straně nabídky tlačítka Node-red.
Krok 2: Rozdělení dat do Node-red
Nyní, když je Node-red připraven, musíme začít rozdělením našich dat na oddělené části.
Proto jsme se ujistili, že je oddělíme čárkami uvnitř kódu Arduino.
Nejprve začněme položením vstupního uzlu Arduino, který se nachází na levém bočním panelu.
Musíte se ujistit, že má správný sériový (můj používá COM4) port a přenosovou rychlost (v mém programu používám přenosovou rychlost 9600)
Pokud je správně nastaven, mělo by to znamenat, že je připojen.
Dále vytvoříme funkční blok Javascript a připojíme jej po vstupním uzlu Arduino. Tento blok nám umožňuje programovat v Javascriptu a zde napíšeme kód, který dokáže rozdělit naše data pro každou čárku.
V tomto funkčním bloku jsem rozdělil svých 5 dat pomocí následujícího kódu:
var m1 = {topic: "light1", užitečné zatížení: msg.payload.split (",") [0]}; var m2 = {topic: "light2", užitečné zatížení: msg.payload.split (",") [1]}; var m3 = {topic: "light3", užitečné zatížení: msg.payload.split (",") [2]}; var m4 = {topic: "millis", užitečné zatížení: msg.payload.split (",") [3]}; var m5 = {topic: "onoff", užitečné zatížení: msg.payload.split (",") [4]}; návratnost [m1, m2, m3, m4, m5];
(podle potřeby změňte kód)
Ujistěte se, že je uzel nastaven na 5 výstupů (nebo ekvivalent)
Jak je vidět na snímku obrazovky, nyní máme 5 výstupů, které každý propojíme s uzlem ladění a uzlem řídicího panelu textu. To bude užitečné, když to potřebujeme vidět v uživatelském rozhraní.
Krok 3: Databáze s Wampserverem
Aby naše databáze fungovala, musíte mít nainstalovaný Wampserver. Poté, co je nainstalován a zobrazuje se jako zelená ikona (po spuštění všech služeb), byste měli otevřít „phpMyAdmin“, který by vás měl dostat na přihlašovací obrazovku. Pokud nemáte dříve změnil, jednoduše zadejte "root" do uživatelského jména a přihlaste se.
Stiskněte tlačítko phpmyadmin pod nástroji v levém pruhu a otevře se nabídka databáze, která vypadá jako na obrázku výše.
Vytvořte novou databázi a pojmenujte ji něčím, co souvisí s vaším projektem, můj se jmenuje „alarmsystem“(tato jména budou rozlišovat velká a malá písmena)
V této databázi vytvořte novou tabulku a pojmenujte ji, moje se jmenuje „alarmdata“
zeptá se, zda chcete použít „latin1_swedish_ci“, a my to tak ponecháme.
Nyní vytvoříte 6 tabulek (o 1 více než máme data)
První tabulka musí používat datový typ „dlouhý text“
a zbytek datové sady používá „střední text“
Určitě je pojmenujte. (první datová sada by měla mít název „čas“
Krok 4: Databáze
Datová sada Wampserver by měla vypadat nějak takto.
(ale bez skutečných údajů, protože jsme se k tomu ještě nedostali)
Krok 5: Uzel červený na Wampserver
Nyní chceme, aby data, která odesíláme z našeho arduina, šla na náš Wampserver.
Začněte vytvořením dalšího funkčního bloku Javascriptu a připojte jej k našemu vstupnímu uzlu arduino.
V tomto bloku skriptů opět rozdělíme naše data, ale vložíme je také do naší databáze.
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; vrátit zprávu;
Všimněte si, že zadávám „INSERT INTO alarmsystem.alarmdata“, toto je název, který jsme dali naší databázi a tabulce, ujistěte se, že do něj napíšete přesný název, který jste databázi dali.
Nyní připojte blok Javascriptu k ladicímu uzlu a také k uzlu „mysql“, který najdete pod paletou úložiště na levé straně.
pod blokem mysql jej pojmenujete stejně jako "alarmmsystem" vaší databáze
změnit uživatele na „root“(jméno, které jsme použili k přihlášení na náš server)
hostitel, port a databáze by již měly být vyplněny:
Host: 127.0.0.1
Přístav: 3306
Databáze: poplašný systém
Pokud je vše provedeno správně, mělo by být připojeno po nasazení změn.
Měli byste také vidět, že databáze nyní zaznamenává vaše data přímo z Arduina.
Krok 6: Použití dat z Wampserveru do Node-red
V posledním úseku chceme zjistit, zda můžeme data, která jsme uložili, vzít zpět do našeho Node-red a doufejme, že je zobrazíme.
Začněte umístěním uzlu „injekce“
Do tématu v tomto uzlu vložíme kód: SELECT*FROM alarmsystem.alarmdata
To bude moci najít naši databázi, když ji stiskneme.
Připojte vstřikovací uzel k novému uzlu „mysql“nastavenému přesně tak, jak jsme to udělali v předchozím kroku.
Připojte uzel mysql k ladicímu uzlu a uzlu šablony, který najdete na palubní desce.
Uzel šablony bude naše tabulka, kterou můžeme aktualizovat tak, aby zobrazovala data z databáze při jejím vytváření.
Zadejte kód zobrazený na výše uvedeném snímku obrazovky (změňte podle potřeby) a nyní by měl zobrazit datovou tabulku v našem uživatelském rozhraní Node-red.
Můžeme také přidat tlačítko řídicího panelu k aktualizaci tabulky ze samotného uživatelského rozhraní.
Začněte vytvořením uzlu tlačítka.
připojte uzel tlačítka k funkčnímu bloku Javascriptu.
do funkčního bloku vložíme následující kód.
msg.topic = "SELECT * FROM alarmdata OBJEDNÁVKA PODLE Green1 DESC LIMIT 20"; návrat msg;
(Green1 je první datovou proměnnou v tabulce)
tento funkční blok pak musí být připojen ke vstupu našeho mysql uzlu, který jsme vytvořili dříve v tomto kroku.
Krok 7: Dokončení
Nyní by naše uživatelské rozhraní mělo obsahovat živou aktualizaci našich dat a tabulku s údaji ze samotného našeho serveru.
To znamená, že jsme vytvořili spojení mezi Arduino, programem založeným na uživatelském rozhraní a databází.
Pokud vás zajímá, jak funguje můj alarmový systém Arduino, přidal jsem dokument, který vysvětluje, jak je to naprogramováno a nastaveno.
Stejně jako úplný export programování v uzlu-červená.
Doporučuje:
Jak připojit NodeMCU ESP8266 k databázi MySQL: 7 kroků
Jak připojit NodeMCU ESP8266 k databázi MySQL: MySQL je široce používaný systém pro správu relační databáze (RDBMS), který používá strukturovaný dotazovací jazyk (SQL). V určitém okamžiku možná budete chtít nahrát data ze senzorů Arduino/NodeMCU do databáze MySQL. V tomto Instructable uvidíme, jak se připojit
Brána ESP32 Lora Thingspeak s uzlem senzoru: 9 kroků
Brána ESP32 Lora Thingspeak se senzorovým uzlem: v tomto projektu IoT jsem navrhl ESP32 LoRa Gateway & také senzorový uzel ESP32 LoRa pro bezdrátové monitorování čtení senzoru z několika kilometrů. Odesílatel bude číst údaje o vlhkosti a teplotě pomocí snímače DHT11. Poté vysílá
Univerzální dálkové ovládání ovládané gesty s uzlem-MCU: 12 kroků
Dálkově ovládané univerzální dálkové ovládání s uzlem-MCU: Ahoj všichni a vítejte v tomto projektu! Jsem docela líný člověk a noční můrou líného člověka je dívat se na televizi, když si uvědomíte, že ovladač je příliš daleko! Uvědomil jsem si, že můj dálkový ovladač nebude nikdy příliš daleko, pokud ho budu mít po ruce
Bezdrátový snímač teploty a vlhkosti IOT s dlouhým dosahem s červeným uzlem: 27 kroků
Bezdrátový snímač teploty a vlhkosti IOT s dlouhým dosahem s uzlem-červená: Představujeme bezdrátový snímač teploty a vlhkosti NCD s dlouhým dosahem, který se může pochlubit dosahem až 28 mil pomocí bezdrátové síťové architektury. Součástí snímače teploty a vlhkosti Honeywell HIH9130 je vysoce přesná teplota a
Inteligentní LED s uzlem MCU a Taskerem: 9 kroků (s obrázky)
Smart LED With Node MCU and Tasker: download tasker