Diferència entre revisions de la pàgina «3a sessió. Curset introductori d'Internet de les Coses. (17 / novembre / 2020)»
m (→Teleconferència) |
m (→Mastodon) |
||
(Hi ha 3 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 21: | Línia 21: | ||
= Dades encapsulades '''JSON''' = | = Dades encapsulades '''JSON''' = | ||
* Ús de dades encapsulades JSON al NodeRED | * Ús de dades encapsulades JSON al NodeRED | ||
+ | [https://binefa.cat/training/adtelecom/20201117/exJson.nodered.txt Exemple JSON per a NodeRED] | ||
+ | |||
[http://binefa.com/index.php?title=Uso_de_InfluxDB_en_el_VPS_del_M%C3%A1ster_de_Industria_4.0_el_curso_2019-2020#Escritura_de_m.C3.BAltiples_datos_al_mismo_tiempo._Uso_del_formato_de_datos_json Escritura de múltiples datos al mismo tiempo. Uso del formato de datos json] | [http://binefa.com/index.php?title=Uso_de_InfluxDB_en_el_VPS_del_M%C3%A1ster_de_Industria_4.0_el_curso_2019-2020#Escritura_de_m.C3.BAltiples_datos_al_mismo_tiempo._Uso_del_formato_de_datos_json Escritura de múltiples datos al mismo tiempo. Uso del formato de datos json] | ||
* Ús de les dades encapsulades a la placa IoT-02 | * Ús de les dades encapsulades a la placa IoT-02 | ||
− | [https://binefa.cat/training/adtelecom/20201117/IoT-02_mqtt_10_adtelecom.zip Codi d'Arduino IoT-02_mqtt_10_adtelecom] | + | [https://binefa.cat/training/adtelecom/20201117/IoT-02_mqtt_10_adtelecom.zip Codi d'Arduino IoT-02_mqtt_10_adtelecom] ([https://binefa.cat/training/adtelecom/20201117/Arduino_JSON.zip Biblioteca '''Arduino_JSON''']) |
#include <'''Arduino_JSON.h'''> | #include <'''Arduino_JSON.h'''> | ||
Línia 170: | Línia 172: | ||
[https://binefa.cat/training/adtelecom/20201117/influxdb_00.nodered.txt Flux emprant InfluxDB] | [https://binefa.cat/training/adtelecom/20201117/influxdb_00.nodered.txt Flux emprant InfluxDB] | ||
+ | |||
+ | [https://binefa.cat/training/adtelecom/20201117/aleatoritzador.nodered.txt Flux amb panell de control] | ||
= Accés i visualització de dades = | = Accés i visualització de dades = | ||
Línia 231: | Línia 235: | ||
* Mastodon, una alternativa lliure a Twitter | * Mastodon, una alternativa lliure a Twitter | ||
− | No totes las | + | No totes las instàncies de [https://ca.wikipedia.org/wiki/Mastodon_(xarxa_social) Mastodon] faciliten la instal·lació de ''bots''. Per a fer els primers passos us recomano aquesta [https://botsin.space/ instància pensada per a hostatjar ''bots'' de Mastodon]. |
[https://botsin.space/@siarq_sensors Exemple de bot de Mastodon] per a fer lectures de sensors cada hora. | [https://botsin.space/@siarq_sensors Exemple de bot de Mastodon] per a fer lectures de sensors cada hora. |
Revisió de 16:28, 22 març 2021
Contingut
Teleconferència
Adreça de la teleconferència d'avui
Ús del telèfon mòbil per trametre i rebre temes MQTT
Exemple de configuració de l'aplicació MQTT Dash
Panell de control (dashboard) del NodeRED
Control d'indicador de color al panell de control
Botons
Control dels leds de la placa IoT-02 mitjançant botons al panell de control del NodeRED
Ginys
Visualització del nivell de la LDR de la placa IoT-02 mitjançant ginys al panell de control del NodeRED
Gràfiques
Visualització del nivell de la LDR de la placa IoT-02 mitjançant gràfiques al panell de control del NodeRED
Dades encapsulades JSON
- Ús de dades encapsulades JSON al NodeRED
Escritura de múltiples datos al mismo tiempo. Uso del formato de datos json
- Ús de les dades encapsulades a la placa IoT-02
Codi d'Arduino IoT-02_mqtt_10_adtelecom (Biblioteca Arduino_JSON)
#include <Arduino_JSON.h> ... JSONVar json_IoT; ... json_IoT["bIO0"] = (bIO0currentState)?"1":"0"; json_IoT["bI34"] = (bI34currentState)?"1":"0"; json_IoT["bI35"] = (bI35currentState)?"1":"0"; json_IoT["LDR"] = analogRead(LDR); ... if (szTopic == String("/" + String(sMac) + TOPIC_JSON_INPUT_REQ).c_str()) { String szJson = JSON.stringify(json_IoT); Serial.print("JSON: "); Serial.println(szJson); client.publish( String("/" + String(sMac) + TOPIC_JSON_INPUT).c_str(), szJson.c_str()); }
- Comunicació entra la placa IoT-02 i el NodeRED mitjançant dades encapsulades JSON
Codi importable de NodeRED per a gestionarmissatges MQTT des de la placa IoT-02 mitjançant dades encapsulades JSON
Bases de dades temporals InfluxDB
Configuració inicial
Exemple d'instal·lació bàsica d'InfluxDB. Això no ho feu, és per a veure com ha estat configurat l'InfluxDB:
usuari@vps-12a7ecda:~$ docker ps -a usuari@vps-12a7ecda:~$ docker exec -it 67ca6e3e82d6 /bin/bash I have no name!@67ca6e3e82d6:/$ influx -username admin -password txxxxsCxx Connected to http://localhost:8086 version 1.8.3 InfluxDB shell version: 1.8.3 > create database formacioDB > show databases name: databases name ---- weather _internal formacioDB > use formacioDB Using database formacioDB > insert Temperatura value=24.5 > insert Pressio value=1000.0 > insert Humitat value=50.0 > CREATE USER "iot" WITH PASSWORD 'iot' > GRANT ALL ON "formacioDB" TO "iot" > CREATE USER "convidat" WITH PASSWORD 'benvingut' > GRANT READ ON "formacioDB" TO "convidat" > show users user admin ---- ----- admin true iot false convidat false > quit I have no name!@67ca6e3e82d6:/$ exit exit usuari@vps-12a7ecda:~$ docker container restart 67ca6e3e82d6
Accés i configuració d'usuaris i mesures
I have no name!@67ca6e3e82d6:/$ influx -username iot -password iot Connected to http://localhost:8086 version 1.8.3 InfluxDB shell version: 1.8.3 > show databases name: databases name ---- formacioDB > use formacioDB Using database formacioDB > show measurements name: measurements name ---- Humitat Pressio Temperatura jb_Temp > select * from Temperatura name: Temperatura time value ---- ----- 1605478183340088709 24.5 > select * from Humitat name: Humitat time value ---- ----- 1605478195987797491 50 > insert Pressio value=1000.20 > select * from Pressio name: Pressio time value ---- ----- 1605478189310421317 1000 1605478716591764598 1000.2 > delete from Pressio where time=1605478716591764598 > select * from Pressio name: Pressio time value ---- ----- 1605478189310421317 1000 > quit
Ús de prefixos (aa_, ta_, vf_, sa_ i jb_) per a compartir la base de dades temporal InfluxDB
I have no name!@67ca6e3e82d6:/$ influx -username iot -password iot Connected to http://localhost:8086 version 1.8.3 InfluxDB shell version: 1.8.3 > use formacioDB Using database formacioDB > insert jb_Temp value=25.3 > insert jb_Temp value=25.7 > insert jb_Temp value=25.2 > select * from jb_Temp name: jb_Temp time value ---- ----- 1605479011234461680 25.3 1605479015733795563 25.7 1605479018394171773 25.2 >
Lectura de dades
I have no name!@67ca6e3e82d6:/$ influx -username convidat -password benvingut Connected to http://localhost:8086 version 1.8.3 InfluxDB shell version: 1.8.3 > use formacioDB Using database formacioDB > select * from jb_Temp name: jb_Temp time value ---- ----- 1605479011234461680 25.3 1605479015733795563 25.7 1605479018394171773 25.2 >
Dades crues i encapsulades
- Dades crues (raw data)
- Dades encapsulades. Ús de JSON a InfluxDB
Connexió d'InfluxDB amb NodeRED
Des de l'adreça personalitzada del vostre NodeRED, aneu al menú, escolliu l'opció Settings, seleccioneu la pestanya vertical Palette, aneu a la pestanya horitzontal Install, a Search modules escriviu-hi node-red-contrib-influxdb i premeu el botó Install.
Accés i visualització de dades
Grafana
Emprant el vostre navegador, accediu a
http://formacio.things.cat:3000/
Els usuaris editors són antonio, jordi, simone, toni i vicente.
Telegram
- Creació de bots amb BotFather
- Instal·lació de nodes de Telegram a NodeRED
- Interacció amb un usuari de Telegram
- Interacció amb un grup de Telegram
Mastodon
- Mastodon, una alternativa lliure a Twitter
No totes las instàncies de Mastodon faciliten la instal·lació de bots. Per a fer els primers passos us recomano aquesta instància pensada per a hostatjar bots de Mastodon.
Exemple de bot de Mastodon per a fer lectures de sensors cada hora.
Getting credentials for the Mastodon API with Mastodon.py, step by step
Exercicis
Exercicis del curset introductori a Internet de les Coses per ADTelecom