Ús de la base de dades MariaDB des de NodeRED
Contingut
- 1 Accés
- 2 Nodes MariaDB a NodeRed
- 2.1 Instal·lació
- 2.2 Configuració de la base de dades al node MySQL
- 2.3 Creació d'una taula a la base de dades MySQL
- 2.4 Esborrat d'una taula a la base de dades MySQL
- 2.5 Inserció de dades a una taula de la base de dades MySQL
- 2.6 Lectura de dades a una taula de la base de dades MySQL
- 2.7 Creació d'una taula vista a la base de dades MySQL
- 2.8 Tractament de dades llegides a la taula
Accés
Ha d'haver una base de dades creada al MariaDB amb el nom aula508
L'usuari iot amb contrasenya iot té permisos d'escriptura i lectura sobre la base de dades aula508
L'usuari convidat amb contrasenya benvingut té permisos de lectura sobre la base de dades aula508
Explicació detallada a Ús de MariaDB per emmagatzemar dades de la Internet de les Coses
Nodes MariaDB a NodeRed
Instal·lació
cal instal·lar el conjunt de nodes node-red-node-mysql
Configuració de la base de dades al node MySQL
- Poseu un node MySQL al tapís Node-RED
- Feu doble clic sobre el node MySQL
- Aneu al llapis a la dreta del desplegable Add new MySQL database... present a la fila Database
- A Host escriviu la IP local del servidor (127.0.0.1). Per seguretat, no permetem a la base de dades que tingui visibilitat externa.
- A Port escriviu el port TCP (3306) per defecte de las bases de dades MySQL
- A User escriviu un usuari amb permisos d'escriptura (iot), perquè volem escriure. Si no calmescriure a la base de dades escriuríem un usuari amb permisos de tan sols lectura (com convidat).
- A Password escriviu la contrasenya de l'usuari (per a l'usuari iot és iot. Per a l'usuari convidat és benvingut).
- A Database escriviu la base de dades que volem accedir (aula508)
- A Charset escriviu la codificació de caràcters (UTF8)
Creació d'una taula a la base de dades MySQL
Hi ha quatre nodes enllaçats: inject, function, mysql i debug.
- Els nodes inject i debug no es modifiquen. Deixeu la configuració per defecte.
- El node mysql ha estat configura al pas anterior.
- El node function s'ha configurat així:
Funció CREATE TABLE m28XX_T_RH:
msg.topic = ` CREATE TABLE m28XX_T_RH ( time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, valueT FLOAT, valueRH FLOAT, PRIMARY KEY (time)); `; return msg;
Esborrat d'una taula a la base de dades MySQL
Funció DROP TABLE m28XX_T_RH:
msg.topic = `DROP TABLE m28XX_T_RH;`; return msg;
Inserció de dades a una taula de la base de dades MySQL
Configuració de nodes inject per a generar dades de tipus JSON
Doble clic sobre el nodo inject (seleccioneu l'opció {}):
Cliqueu sobre ... (els tres puntos):
En format text:
{ "valueT": 17.89, "valueRH": 44.32 }
Inserció de dades de tipus JSON a columnes de la taula
Funció INSERT DATA:
msg.topic = `insert into m28XX_T_RH(valueT,valueRH) values(${msg.payload.valueT},${msg.payload.valueRH})`; return msg;
Lectura de dades a una taula de la base de dades MySQL
Camp msg.topic del node inject per a fer un SELECT:
Camp msg.topic del node inject amb nom SELECT en format text:
select UNIX_TIMESTAMP(time) as time, valueT, valueRH from m28XX_T_RH
Creació d'una taula vista a la base de dades MySQL
Funció CREATE VIEW m28XX_T_RH_v:
msg.topic = `CREATE VIEW m28XX_T_RH_v AS select UNIX_TIMESTAMP(time) as time, valueT, valueRH from m28XX_T_RH;`; return msg;
Tractament de dades llegides a la taula
Afegiu sortides a la funció (a Outputs s'ha canviat d'1 a 3 sortides):
Codi de la funció Tratamiento datos / Últimas entradas:
Funció Tratamiento datos / Últimas entradas en modo text:
var a = msg.payload; var val = ""; var lastEntryValueT, lastEntryValueRH; a.forEach(function (entry) { val += "timestamp: " + entry.time + ", valueT: " + entry.valueT + ", valueRH: " + entry.valueRH + "\r"; lastEntryValueT = entry.valueT; lastEntryValueRH = entry.valueRH; }); msg.payload = val; var msg_valT = { payload: lastEntryValueT }; return [msg, msg_valT, { payload: lastEntryValueRH}];