3a sessió. Curset introductori d'Internet de les Coses. (17 / novembre / 2020)

De things.cat
La revisió el 22:39, 15 nov 2020 per Jordi Binefa (discussió | contribucions) (Grafana)
Salta a: navegació, cerca

Ús del telèfon mòbil per trametre i rebre temes MQTT

MQTT Dash

Panell de control (dashboard) del NodeRED

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
  • Ús de les dades encapsulades a la placa IoT-02
  • Comunicació entra la placa IoT-02 i el NodeRED 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 exec -it 67ca6e3e82d6 /bin/bash
I have no name!@67ca6e3e82d6:/$ influx -username admin -password thingsCat
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
> 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

Accés i visualització de dades

Grafana

$ docker network inspect bridge | grep influxdb -A 5
               "Name": "influxdb",
               "EndpointID": "3ac9ca6b4b124f067c693b97fc971c508456c42c066492a1a130189e32b63d8f",
               "MacAddress": "02:42:ac:11:00:02",
               "IPv4Address": "172.17.0.2/16",
               "IPv6Address": ""
           },


  • Ús de diferents instàncies de Grafana emprant contenidors (dockers)

Instal·lació de docker a Debian 10

How To Install InfluxDB Telegraf and Grafana on Docker

Redirecció de ports amb docker

Abans d'executar el següent codi, dins una nova instància screen canvieu xxxx per 3003 per a antonio, 3004 per simone, 3005 per a toni i 3006 per a vicente.

docker run -d -p xxxx:3000 grafana/grafana

Documentació oficial de Grafana per a llur instal·lació emprant Docker

Emprant el vostre navegador, accediu a

http://formacio.things.cat:xxxx/ 

canviant xxxx pel vostre número de port assignat.

  • Graficació de dades crues
  • Graficació de dades encapsulades
  • Gràfiques en Grafana vs Gràfiques en NodeRED

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