Recull de pràctiques de 2n de DAM. Curs 2024-2025
Contingut
- 1 Cronograma i carpetes compartides
- 2 Activitats
- 2.1 A00 - Creació de grups
- 2.2 A03 - Què sabem?
- 2.3 A05 - Identificació dels rols
- 2.4 A06 - POO en C++ i Qt
- 2.5 A07 - Introducció a la placa IoT-02, Wokwi i protocols de comunicació
- 2.5.1 A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed
- 2.5.2 A07.02 - Punt multicolor al NodeRED i variables de flux
- 2.5.3 A07.03 - Visualització amb un giny rellotge del nivell de llum
- 2.5.4 A07.04 - Ús d'MQTTS (no MQTT)
- 2.5.5 A07.05 - Instal·lació del servei mosquitto
- 2.5.6 A07.06 - Ús del servei mosquitto
- 2.5.7 A07.07 - Introducció al micropython
- 2.5.8 A07.08 - Prova de QtMQtt a la placa IoT-02
- 2.6 A08 - QML, connexió a rerefons Qt i PureQML
- 2.7 A09 - FreeRTOS i MicroWorkers
- 2.8 A12 - Qt
- 2.9 A13 - QML a l'escriptori, Android i WebAssembly
- 2.10 A14 - Scada NodeRed + InfluxDB + Grafana + UserLand + Snap! + Telegram + Mastodon API
- 2.11 A17 - LoRa + InfluxDB + Grafana + Scada NodeRed
- 2.11.1 A17.05 - Prova bàsica d'ús del NodeRed injectant dades a MariaDB i visualitzant-les a Grafana
- 2.11.2 A17.06 - Visualització a Grafana de les dades dels sensors de la placa IoT-02, fent servir NodeRed i MariaDB
- 2.11.3 A17.07 - Desenvolupament d'una API en NodeRed per a trametre dades
- 2.11.4 A17.08 - Desenvolupament d'una API en NodeRed per a rebre dades
Cronograma i carpetes compartides
Carpetes compartides de 2n de DAM. Curs 2024-2025
Activitats
A00 - Creació de grups
Dins de la carpeta compartida feu una subcarpeta amb el nom activitats. I a dins de la subcarpeta A00. Deseu a la subcarpeta A00 l'activitat feta amb el professor transversal en format .odt i .pdf
A03 - Què sabem?
Dins de la carpeta compartida feu una subcarpeta amb el nom activitats. I a dins de la subcarpeta A03. Deseu a la subcarpeta A03 l'activitat feta amb el professor transversal en format .odt i .pdf
A05 - Identificació dels rols
Feu la subcarpeta A05 dins de la subcarpeta activitats de la carpeta compartida. Deseu a la subcarpeta A05 l'activitat feta amb el professor transversal en format .odt i .pdf
A06 - POO en C++ i Qt
A06.01 - Ginys encastats
- a0601a. Feu una interfície gràfica (GUI) amb dos botons (+ i -) i una etiqueta numèrica.
- a0601b. Feu una interfície gràfica (GUI) amb una barra lliscant (slider) i un giny LCD de dos números. La barra lliscant controla l'LCD.
- a0601c. Feu una interfície gràfica (GUI) que integri els dos projectes anteriors. La botonera també controla la barra lliscant i l'LCD. La barra lliscant també controla el valor de l'etiqueta numèrica.
Exercici A06.01. (Heu de desar a la carpeta A06 un document 2425-DAM-A06.01-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2425-DAM-A06.01-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user).
A06.02 - Interfícies gràfiques
Exercici A06.02. (Heu de desar a la carpeta un document 2425-DAM-A06.02-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2425-DAM-A06.02-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user si ho feu amb qmake o el .txt.user si ho feu amb CMake).
A06.03 - Instal·lació de QtMQtt a les Qt
Instal·lació de QtMQtt a les Qt
Exercici A06.03. (Heu de desar a la carpeta un document anomenat 2425-DAM-A06.03-1rCognom2nCognomNom.pdf ).
A06.04 - Interfícies gràfiques
Exercici A06.04. (Heu de desar a la carpeta A06 un document 2324-DAM-A06.04-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2324-DAM-A06.04-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user).
A06.05 - Prova de QtMQtt a la placa IoT-02
Un cop heu fet la Instal·lació de QtMQtt a les Qt proveu el funcionament de simplecient amb usuari i contrasenya. Provem llur funcionament interactuant bidireccionalment amb la placa IoT-02. Heu de subscriure-vos a un tema d'un botó i publicar 1 i 0 a un tema d'un led.
Exercici A06.05. (Heu de desar a la carpeta un document 2425-DAM-A06.05-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2425-DAM-A06.05-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user si ho feu amb qmake o el .txt.user si ho feu amb CMake).
A07 - Introducció a la placa IoT-02, Wokwi i protocols de comunicació
A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed
Exercici A07.01 (Heu de desar a la carpeta A07 un document 2425-DAM-A07.01-1rCognom2nCognomNom.pdf amb l'explicació del procés de resolució de la pràctica, incloent-hi captures de pantalla i fotografies.
A07.01.1
Feu un codi emprant el panell de control (Dashboard) de NodeRed que surtin quatre interruptors que controlin els quatre leds de la placa IoT-02, mitjançant comunicació MQTT.
A07.01.2
Feu un codi emprant el panell de control (Dashboard) de NodeRed que mostri l'estat dels tres botons de la placa IoT-02, mitjançant comunicació MQTT.
A07.01.3
Agrupeu a una sola pestanya A07.01.1 i A07.01.2.
A07.02 - Punt multicolor al NodeRED i variables de flux
Feu una visualització d'un punt que representa un led multicolor. A la placa IoT-02:
- Quan el botó IO0 sigui premut incorpora el color vermell al punt multicolor representat al panell de control del NodeRED
- Quan el botó IO0 no sigui premut traieu el color vermell al punt multicolor representat al panell de control del NodeRED
- Quan el botó I34 sigui premut incorpora el color verd al punt multicolor representat al panell de control del NodeRED
- Quan el botó I34 no sigui premut traieu el color verd al punt multicolor representat al panell de control del NodeRED
- Quan el botó I35 sigui premut incorpora el color blau al punt multicolor representat al panell de control del NodeRED
- Quan el botó I35 no sigui premut traieu el color blau al punt multicolor representat al panell de control del NodeRED
A07.03 - Visualització amb un giny rellotge del nivell de llum
Feu una visualització d'un giny rellotge que indiqui el nivell de llum a la LDR de la placa IoT-02.
A07.04 - Ús d'MQTTS (no MQTT)
Feu una visualització d'un giny rellotge que indiqui el nivell de llum a la LDR de la placa IoT-02, emprant MQTTS (no MQTT)
- Canvieu
WiFiClient espClient;
per
WiFiClientSecure espClient;
- Descomenteu
espClient.setCACert(ca_cert);
- Comenteu les credencials MQTT i descomenteu:
const char* mqtt_server = "iot.siarq.net"; // Your MQTTS broker const int mqtt_port = 8883; const char* mqtt_user = "ecat"; const char* mqtt_password = "clotClot";
- I és molt important descomentar el certificat digital:
const char* ca_cert = \ "-----BEGIN CERTIFICATE-----\n" \ "MIIDtTCCAp2gAwIBAgIUdVu53YlKp/Tb9f2ZLOX1EEBCzwowDQYJKoZIhvcNAQEN\n" \ ... "B6dNTB+hY0PzLbJhLq/7Mud6G8czvR2SWV2mnVHmFjnhs3MxbKhIoZc=\n" \ "-----END CERTIFICATE-----\n";
- Al Node-Red:
Heu d'afegir un broker MQTTS:
Broker: iot.siarq.net Port: 8883 Usuari ecat i contrasenya clotClot Cliqueu l'opció de fer servir TLS
A07.05 - Instal·lació del servei mosquitto
How to Install The Mosquitto MQTT Broker on Windows
Mosquitto Username and Password Authentication -Configuration and Testing
Afegiu a mosquitto.conf:
listener 1883 0.0.0.0 allow_anonymous true
Per a Finestrots cal executar el broker d'aquesta manera des del terminal:
mosquitto -c mosquitto.conf -v
Al fer-ho demana permís per accedir al servei.
A07.06 - Ús del servei mosquitto
Feu una visualització d'un punt que representa un led multicolor. Feu servir un broker MQTT (no MQTTS):
- Quan el botó IO0 sigui premut incorpora el color vermell al punt multicolor representat al panell de control del NodeRED
- Quan el botó IO0 no sigui premut traieu el color vermell al punt multicolor representat al panell de control del NodeRED
- Quan el botó I34 sigui premut incorpora el color verd al punt multicolor representat al panell de control del NodeRED
- Quan el botó I34 no sigui premut traieu el color verd al punt multicolor representat al panell de control del NodeRED
- Quan el botó I35 sigui premut incorpora el color blau al punt multicolor representat al panell de control del NodeRED
- Quan el botó I35 no sigui premut traieu el color blau al punt multicolor representat al panell de control del NodeRED
- Afegiu quatre selectors (switch) o vuit botons per a apagar i encendre cadascun dels quatre leds de la placa IoT-02
A07.07 - Introducció al micropython
Heu de desar a la carpeta A07 un document 2425-DAM-A07.07-1rCognom2nCognomNom.pdf
- L'explicació del procés de la instal·lació de microPython a la placa IoT-02
- Feu servir ampy
- Feu servir Thonny.
- Feu la traducció de IoT-02_01_leds a MicroPython
- Feu la traducció de IoT-02_05_ldr a MicroPython
adc_pin = Pin(36, mode=Pin.IN) # adc_pin diu el canal ADC corresponent al pin adc = ADC(adc_pin) # adc_pin no és el número de pota, és el número d'ADC
A07.08 - Prova de QtMQtt a la placa IoT-02
Un cop heu fet la Instal·lació de QtMQtt a les Qt proveu el funcionament de simplecient amb usuari i contrasenya. Provem llur funcionament interactuant bidireccionalment amb la placa IoT-02. Heu de subscriure-vos a un tema d'un botó i publicar 1 i 0 a un tema d'un led.
Exercici A07.08. (Heu de desar a la carpeta A07 un document 2425-DAM-A07.08-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2425-DAM-A07.08-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user).
A08 - QML, connexió a rerefons Qt i PureQML
A08.00
Feu un document explicant com fer un projecte emprant PureQML i llur migració a QML.
A08.01
Feu un programa en QML que al principi hi surti un quadrat vermell centrat. Al prémer la tecla B hi sortirà de color blau, al prémer la tecla G hi sortirà de color verd i al prémer la tecla R torna a ser vermell.
A08.02
Feu un programa en QML a on hi aparegui centrat, horitzontalment i vertical, ben gros i en negreta el nom Escola del Clot. Al prémer la tecla + la lletra es farà més grossa. I al prémer la tecla - la lletra es farà més petita.
A08.03
Feu un programa que hi surti el text, centrat a la finestra, "Comptador: 0" de color vermell. Al prémer el botó + incrementarà el valor del comptador, i al prémer el botó '-' es decrementarà. Al prémer la tecla N el text serà de color negre i al prémer V tornarà a ser de color vermell.
A08.04
Desenvolupeu un joc de pedra, paper, tisora.
A08.04.1
Feu servir lletres.
A08.04.2
Feu servir imatges.
A08.04.3
Afegiu un botó de configuració que porti a una altra pantalla (feu servir SwipeView i PageIndicator) que:
- Permeti seleccionar mode dia o mode nit.
- Digui quantes partides ha guanyat l'usuari i quants l'aplicació (feus servir QSettings per a la persistència de dades).
- Un botó que torni a zero el nombre de partides guanyades i perdudes.
- Un botó per tornar al joc
A09 - FreeRTOS i MicroWorkers
A09.01: fent servir Microworkers emprant MicroPython
A09.02: fent servir FreeRTOS emprant l'IDE d'Arduino
FreeRTOS i MicroWorkers
fr-mw-1) Presa de contacte amb MicroWorkers i FreeRTOS
Codi uPython_mqtt_01 amb el botó dibuixat (copieu l'arxiu .json)
Fent servir la placa IoT-02 feu un programa amb dues tasques. Una tasca farà que el led groc faci pampallugues (500ms encés i 500ms apagat). Una altra tasca llegirà el botó I35, fent que quan estigui premut el cicle del led groc sigui de 100ms encés i 100ms apagat.
Per a definir entrades i sortides a MicroPython:
from machine import Pin btn = Pin(35,Pin.IN) # Botó connectat a l'entrada I35 del Wokwi i la placa IoT-02 ledIntern = Pin(2,Pin.OUT) # led intern a Wokwi i led groc a la placa IoT-02 és el 19
Per a controlar la lluminositat del led:
from time import sleep while True: ledIntern.value(1) # Encés sleep(0.5) ledIntern.value(0) # Apagat sleep(0.5)
Per a llegir el botó:
currentBtn = btn() lastBtn = currentBtn while True: currentBtn = btn() if currentBtn != lastBtn: lastBtn = currentBtn if currentBtn == 1: print("Button released. ",end="") else: print("Button pressed. ",end="")
fr-mw-2) Connexió a WiFi i un broker MQTT
Afegiu una tasca per a fer connexió a WiFi i MQTT.
- Emprant MicroWorkers
Us podeu basar en el codi present a prj_mqtt_json. Feu servir també una variable booleana bSocConnectat (que serà certa quan hi hagi connexió i falsa quan no s'hagi establert la connexió o s'hagi perdut -quan es perd la IP que s'autollegeix és 0.0.0.0-).
- Emprant FreeRTOS
Us podeu basar en el codi present a IoT-02_mqtts_freeRTOS_json_12. Afegiu-hi també un #define USING_WIFI per saber si cal que funcionin totes aquelles funcions que tenen relació amb la wifi. Feu servir també una variable booleana bSocConnectat (que serà certa quan hi hagi connexió i falsa quan no s'hagi establert la connexió o s'hagi perdut -quan es perd la IP que s'autollegeix és 0.0.0.0-).
- Publicació
Si bSocConnectat és certa, publica el canvi d'estat del botó quan es prem I35.
- Subscripció
Quan feu la connexió a MQTT, afegiu una subscripció al tema /MAC/led (essent MAC la MAC de la vostra placa). Si rebeu per aquest tema un '1', 'On','on' o 'ON' s'ha d'encendre el led blanc. Si rebeu '0', 'Off', 'off' o 'OFF' s'apaga el led blanc.
A12 - Qt
A12.01.1 - ginyMqtt amb QMake
L'objectiu d'aquest exercici és fer una aplicació en Qt capaç de comunicar-se bidireccionalment amb la Placa IoT-02. A partir de simplecient amb usuari i contrasenya s'ha generat la classe mqttBasic. Heu de desenvolupar l'aplicació ginyMqtt que tingui aquest aspecte:
- Pantalla inicial, quan encara no s'ha connectat al broker (el nom del broker MQTT, usuari i contrasenya s'escriuen al codi. És a dir, no es demana una personalització del broker):
- Un cop s'ha connectat al broker:
La casella de selecció encén i apaga el led blanc de la placa IoT-02 publicant el tema i missatge corresponent. L'etiqueta s'ha de subscriure al tema MQTT del botó I35 i presenta llur missatge traduït al català.
- Suggeriment de classe GinyMqtt:
- Suggeriment de constructor:
- Suggeriment d'arxiu de projecte emprant qmake:
Exercici A12.01.1 (Heu de desar a la carpeta A12 del Drive un document 2425-DAM-A12.01.1-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2425-DAM-A12.01.1-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user).
A12.01.2 - ginyMqtt amb CMake
L'objectiu d'aquest exercici és fer una aplicació en Qt capaç de comunicar-se bidireccionalment amb la Placa IoT-02. El funcionament és exactament igual que a l'exercici anterior que heu fet emprant qmake, en aquest heu de fer servir CMake.
Suggeriment d'arxiu de projecte emprant CMake:
Afegiu Network i Mqtt a find_package():
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Network Mqtt) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Network Mqtt)
Afegiu Qt${QT_VERSION_MAJOR}::Network i Qt${QT_VERSION_MAJOR}::Mqtt a target_link_libraries():
target_link_libraries(ginyMqtt04_cmake PUBLIC Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Network Qt${QT_VERSION_MAJOR}::Mqtt)
Exercici A12.01.2 (Heu de desar a la carpeta A12 del Drive un document 2525-DAM-A12.01.2-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2425-DAM-A12.01.2-1rCognom2nCognomNom.zip amb els codis comprimits, sense el CMakeLists.txt.user).
A12.02 Mqtt_IoT02
Desenvolupeu un projecte en Qt, capaç d'interaccionar amb la Placa IoT-02, amb aquest aspecte:
- A12.02-1)
Prenent com a base els arxius 00_botonsToggle05.zip i 00_botonsToggle06.zip del recull, desenvolupeu el projecte 02_indicadorLed_00 per a que tingui aquest comportament:
- A12.02-2)
Basant-vos en 02_indicadorLed_00 i 01_json_00.zip del recull, desenvolupeu el projecte 03_indicadorLed_01 per a que tingui aquest aspecte (els valors dels led R, G i B donen valors 0 i 1. Els valors del led W són true i false):
- A12.02-3)
Basant-vos en 04_indicadorBotons00.zip del recull, desenvolupeu el projecte 05_indicadorBotons_01 per a que tingui aquest aspecte:
- A12.02-4)
Basant-vos en 03_indicadorLed_01, desenvolupeu 03_indicadorLed_01_mqtt que controli els quatre leds de la placa IoT-02.
Mqtt_IoT02::Mqtt_IoT02(QWidget *parent) : QWidget(parent) , ui(new Ui::Mqtt_IoT02) { ui->setupUi(this); mqttBasic = new MqttBasic; indicadorLed = new IndicadorLed; indicadorBotons = new IndicadorGrupBotonsEt; ui->hlAmunt->addWidget(mqttBasic); ui->hlCentre->addWidget(indicadorLed); ui->hlAvall->addWidget(indicadorBotons); connect(mqttBasic,SIGNAL(vSignalMqttConnected()),this,SLOT(vMqttConnectat())); connect(mqttBasic,SIGNAL(vSignalMqttDisconnected()),this,SLOT(vMqttDesconnectat())); connect(indicadorLed,SIGNAL(vTrametJsonLeds(QString)),this,SLOT(vTrametJsonLeds(QString))); indicadorBotons->vSetJsonText(""); //showMaximized(); }
- A12.02-5)
Basant-vos en 05_indicadorBotons_01, desenvolupeu 05_indicadorBotons_01_mqtt que llegeixi els tres botons de la placa IoT-02.
- A12.02-6)
Feu l'integració per a que l'aspecte sigui semblant a la captura d'inici de l'activitat A12.02. Haureu d'afegir un QTimer per anar demanant periòdicament el JSON que conté el valor de l'LDR.
A12.03 Qt
Exercici A12.03. (Heu de desar a la carpeta compartida un document 2425-DAM-A12.03-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2425-DAM-A12.03-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user si ho feu amb qmake o el .txt.user si ho feu amb CMake).
A12.04 Qt
Exercici A12.04. (Heu de desar a la carpeta compartida un document 2425-DAM-A12.04-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2425-DAM-A12.04-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user si ho feu amb qmake o el .txt.user si ho feu amb CMake).
A13 - QML a l'escriptori, Android i WebAssembly
A13.01
Feu un exemple bàsic executant un codi QML al vostre dispositiu Android o a una màquina virtual funcionant amb Android. En comptes del missatge Una prova heu de posar el vostre nom i cognoms.
Màquina virtual Android per a fer-la servir per a executar codis QML des de QtCreator
Coses a tenir en compte:
- Feu servir una versió mínima d'Android 9 (Android-x86 9.0-R2 Pie), altrament la configuració de la màquina virtual no permet desplegar versions anteriors (amb Android-x86 8.1-R6 Oreo no es desplega).
- Si feu servir la màquina virtual, recoredeu que la xarxa ha d'estar amb configuració pont (no NAT) i la controladora gràfica ha de ser VBoxVGA.
- Quan genereu el projecte al QtCreator seleccioneu dos kits: Desktop 6.8.0 i Android Qt 6.8.0 Clang x86
- Connecteu les dues màquines virtuals fent servir l'eina adb (explicació a Màquina virtual Android per a fer-la servir per a executar codis QML des de QtCreator)
- Heu de signar el projecte abans de desplegar-lo a Android (Projects / Build Android APK / Sign package - podeu fer servir com a Keystore: /home/jordi/AndroidStudioProjects/signedApk/binefa.keystore -
Suggeriment de codi:
import QtQuick 2.15 import QtQuick.Window 2.15 Window { width: 640 height: 480 visible: true title: qsTr("Prova bàsica") color: "orange" Text{ text: qsTr("Una prova") font.bold: true font.pixelSize: 44 anchors.centerIn:parent color: "blue" } }
A13.02
Poseu en marxa sobre Android wsMqtt04_cmake. Cal que instal·leu les QtMqtt per a Android.
Canvieu la MAC per defecte a wsMqtt04_cmake per que sigui la que teniu a la vostra placa IoT-02.
Proveu que controleu la vostra placa IoT-02 bidireccionalment (hi escriviu i hi llegiu) fent servir wsMqtt04_cmake. Feu la prova des de l'escriptori i des del vostre Android (emulat o real).
A14 - Scada NodeRed + InfluxDB + Grafana + UserLand + Snap! + Telegram + Mastodon API
A14.1 - Autenticació d'accés a NodeRED
Personalitzeu l'autenticació d'accés al vostre NodeRed (Autenticació d'accés a NodeRED).
A14.2 - Bot de Telegram
Desenvolupeu un bot de Telegram que interactui amb la vostra placa IoT-02. Les ordres, des del mateix bot, són:
/W : Encén el led blanc
/w : Apaga el led blanc
/botons : Estat dels botons a la placa
A14.3 - Bot de Telegram
Desenvolupeu un bot de Telegram que interactui amb la vostra placa IoT-02. Les ordres, des d'un grup al qual pertany i és administrador, són:
/W : Encén el led blanc
/w : Apaga el led blanc
/botons : Estat dels botons a la placa
I de manera asíncrona avisa quan s'ha premut el botó I35, trametent un missatge al grup al qual pertany. El codi MQTT en format json
A14.4 - Mastodon
Publiqueu la temperatura, humitat relativa i pressió atmosfèrica llegides per la vostra placa IoT-02 i les publiqueu a Mastodon mitjançant NodeRED.
Feu un informe de com ho heu programat i captures de llur funcionament.
A14.5 - Grafana
Documenteu la instal·lació de Grafana al vostre sistema operatiu
A14.7 - UserLand
Pàgina oficial d'UserLand
Arxiu apk: tech.ula_7438725.apk enllaçat des de f-droid (Aquesta versió pregunta usuari i contrasenya. Les versions més noves tan sols ho permeten si es paga).
Instal·leu-vos l'aplicació UserLAnd al vostre telèfon mòbil (no feu servir Google Play, baixeu-vos l'arxiu apk del paràgraf anterior). Si no teniu mòbil disponible, feu servir un emulador d'Android (per exemple Android-x86 8.1-R6 Oreo).
Connecteu el vostre mòbil, real o emulat, a la xarxa sense fils per a IoT i poseu en marxa l'aplicació. Un cop a dins, instal·leu-vos un Ubuntu (a Debian hi ha incompatibilitats per obsolescència). Us demanarà un nom d'usuari i contrasenya. Feu una instal·lació que permeti veure al navegador del vostre ordinador un NodeRED executant-se des del mòbil.
Per a fer-ho:
sudo apt update sudo apt upgrade sudo apt install aptitude openssh-server net-tools curl software-properties-common wget unzip screen
A partir d'ara us podeu connectar remotament per SSH fent servir el port 2022 ( ssh usuari@ipMobil -p 2022 o ssh -o ServerAliveInterval=30 usuari@ipMobil -p 2022 per a que hi hagi persistència en la comunicació)
mkdir bin cd bin curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - sudo apt-get install -y nodejs node -v npm -v mkdir nodered-ui cd nodered-ui wget --no-check-certificate https://www.binefa.cat/IoT/nodeRed/node_red_ui.zip unzip node_red_ui.zip screen node node_modules/node-red/red.js --userDir node_modules/node-red/data --settings node_modules/node-red/settings.js -v --port 2222 --title elmeuTitol --safe flows_meuTitol.json
Premeu Ctrl A + D. I per a tornar a screen funcionant des del rerefons:
screen -r
A14.8 - MariaDB
Feu un document amb totes les passes necessàries per a que funcioni al vostre ordinador un NodeRed amb nodes MariaDB. Repliqueu al vostre ordinador:
Ús de MariaDB per emmagatzemar dades de la Internet de les Coses
Ús de la base de dades MariaDB des de NodeRED
A17 - LoRa + InfluxDB + Grafana + Scada NodeRed
A17.05 - Prova bàsica d'ús del NodeRed injectant dades a MariaDB i visualitzant-les a Grafana
Feu una demostració d'ús de Grafana llegint MariaDB. I MariaDB emmagatzemant dades des del NodeRED. Baseu-vos en Aleatorització controlada pel panell de control explicada a Ús de la base de dades MariaDB des de NodeRED
A17.06 - Visualització a Grafana de les dades dels sensors de la placa IoT-02, fent servir NodeRed i MariaDB
A17.06.1) Visualitzeu a Grafana les dades de temperatura, humitat relativa, pressió atmosfèrica i de nivell de llum. Feu servir missatgeria MQTT amb un broker públic. Gestioneu les dades amb NodeRED emmagatzemant-les a una base de dades MariaDB. Visualitzeu les dades a un panell de gràfiques emprant Grafana.
A17.06.2) Visualitzeu a Grafana les dades de temperatura, humitat relativa, pressió atmosfèrica i de nivell de llum. Feu servir missatgeria MQTT amb un broker local (a la vostra màquina base o màquina virtual). Gestioneu les dades amb NodeRED emmagatzemant-les a una base de dades MariaDB. Visualitzeu les dades a un panell de gràfiques emprant Grafana.
A17.07 - Desenvolupament d'una API en NodeRed per a trametre dades
Implementeu un flux per a canviar l'estat dels leds i el relé biestable de la placa IoT-02. Feu la prova de validació des del terminal.
A17.08 - Desenvolupament d'una API en NodeRed per a rebre dades
A17.08.01 - Desenvolupament d'una API en NodeRed per a rebre una dada
Implementeu un flux per a rebre el valor de l'LDR de la placa IoT-02. Feu la prova de validació des del terminal.
A17.08.02 - Desenvolupament d'una API en NodeRed per a rebre un conjunt de dades emprant JSON
Implementeu un flux per a rebre un JSON dels valors dels sensors i els botons de la placa IoT-02 (aprofiteu el tema jsonIn). Feu la prova de validació des del terminal.