Diferència entre revisions de la pàgina «Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)»
Línia 94: | Línia 94: | ||
Aprofiteu els canvis realitzats abans per a canviar de pis des dels botons de la vostra placa IoT-02 i que cada led correspongui a un pis (Per exemple, assigneu, quan arribi l'ascensor: planta 0 -> verd, planta 1 -> groc, planta 2 -> vermell. I mentre canvia de pis el led blanc fa pampallugues). | Aprofiteu els canvis realitzats abans per a canviar de pis des dels botons de la vostra placa IoT-02 i que cada led correspongui a un pis (Per exemple, assigneu, quan arribi l'ascensor: planta 0 -> verd, planta 1 -> groc, planta 2 -> vermell. I mentre canvia de pis el led blanc fa pampallugues). | ||
− | + | = ex3.9) Examen del curs 2018-2019 = | |
[https://binefa.cat/dam1819/M7UF1_M9UF2_M9UF3_M15UF1/20190412_ExOrd_2DAM_M09UF3_M15UF1/ Examen 18-19] Feu fins a la pregunta 16. | [https://binefa.cat/dam1819/M7UF1_M9UF2_M9UF3_M15UF1/20190412_ExOrd_2DAM_M09UF3_M15UF1/ Examen 18-19] Feu fins a la pregunta 16. | ||
Revisió del 14:10, 9 abr 2021
Dins de la vostra Carpetes compartides 2n de DAM. Curs 2020-2021, feu una carpeta anomenada 3rT_dam2021-Cognom1Cognom2Nom. Dins d'aquesta carpeta feu subcarpetes amb noms ex3.1, ex3.2, ... A dins, haureu de posar el vostre arxiu pdf explicatiu i els codis necessaris per a desenvolupar cada exercici.
Contingut
- 1 ex3.1) Exercici d'introducció a les bases de dades temporals. Ús de l'InfluxDB 2.0
- 2 ex3.2) Visualització a Grafana de les dades emmagatzemades a una base de dades temporal
- 3 ex3.3) Pont d'HTTP a MQTT
- 4 ex3.4) Presa de contacte amb FreeRTOS
- 5 ex3.5) Presa de contacte amb LoRaWAN
- 6 ex3.6) Ús de LoRaWAN per la tramesa de dades
- 7 ex3.7) ZeroTier
- 8 ex3.8) Ascensor
- 9 ex3.9) Examen del curs 2018-2019
- 10 ex3.10) Tasca de connexió a MQTT fent servir FreeRTOS
ex3.1) Exercici d'introducció a les bases de dades temporals. Ús de l'InfluxDB 2.0
Flux NodeRED d'escriptura d'una dada aleatòria a InfluxDB a l'organització Clot al bucket aleatori/v1
Codi Flux per a la graficació a Grafana:
from(bucket: "aleatori/v1") |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
Expliqueu com es poden emmagatzemar dades a InfluxDB 2.0 emprant NodeRED i com es poden visualitzar emprant el mateix servei web d'InfluxDB 2.0
ex3.2) Visualització a Grafana de les dades emmagatzemades a una base de dades temporal
- 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 temporal InfluxDB v2.0. Visualitzeu les dades a un panell de gràfiques emprant Grafana.
- 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 temporal InfluxDB v2.0. Visualitzeu les dades a un panell de gràfiques emprant Grafana.
ex3.3) Pont d'HTTP a MQTT
- Mitjançant navegador web encén i/o apaga qualsevol led de la placa IoT-02 connectada a un broker MQTT. Feu servir com a pont el NodeRED.
- Mitjançant curl al terminal encén i/o apaga qualsevol led de la placa IoT-02 connectada a un broker MQTT. Feu servir com a pont el NodeRED.
ex3.4) Presa de contacte amb FreeRTOS
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.
ex3.5) Presa de contacte amb LoRaWAN
Expliqueu com donar-vos d'alta a The Things Network i com heu adjuntat la vostra placa IoT-02 com a una aplicació d'aquest servei.
A un NodeRED funcionant des del terminal (no com a servei. Precisament, com ho fem a classe) dóna errors d'execució al fer servir els nodes instal·lats com a node-red-contrib-ttn (nodes oficials de TheThingsNetwork o TTN). També es veu que des de fa dos anys no s'ha fet manteniment d'aquests nodes. Degut a això es tractaran les trames emeses pels dispositius LoRaWAN com a missatges MQTT.
A una aplicació anomenada dam2021-cognom1_cognom2_nom afegiu-hi un dispositiu anomenat dam2021-cognom1_cognom2_nom-0001. Al NodeRED caldrà introduir aquestes dades:
Broker: eu.thethings.network
Port: 1883
Security / Username: dam2021-cognom1_cognom2_nom (el nom de l'aplicació a TTN)
Security / Password: ttn-account-v2.LVh3FzICF-3yhHe__no__es__la__que__toca__yPaQ3kEJ9uiCNkyPkGM (default key d'ACCESS KEYS)
Tema (Topic): dam2021-Cognom1Cognom2Nom/devices/dam2021-cognom1_cognom2_nom-0001/up (tema de pujada o uplink)
El missatge arriba com a text, es converteix a json i hi ha els temes: app_id, dev_id, hardware_serial, port, counter, payload_raw (codificat en base 64) i metadata. Dins de metadata: time, frequency, modulation, data_rate, airtime, coding_rate i gateways. Dins de gateways: les passarel·les que han captat el missatge LoRa començant per 0. I dins de cada passarel·la: gtw_id, timestamp. time, channel, rssi, snr, rf_chain, latitude, longitude i altitude.
ex3.5.1) Poseu en marxa una aplicació fent servir OTAA
Exemple de microprogramari per a la placa IoT-02 de comunicació LoRaWAN amb OTAA
Codi de NodeRED per a rebre missatges LoRaWAN amb OTAA
ex3.5.2) Poseu en marxa una aplicació fent servir ABP
Feu un nou dispositiu anomenat dam2021-Cognom1Cognom2Nom-0002. Quan canvieu d'OTAA a ABP desactiveu la casella Frame Counter Check.
ex3.5.2.1) Exemple bàsic de comunicació LoRaWAN amb ABP
Exemple bàsic de microprogramari per a la placa IoT-02 de comunicació LoRaWAN amb ABP
Codi de NodeRED per a rebre missatges LoRaWAN amb ABP
ex3.5.2.2) Exemple de comunicació LoRaWAN amb ABP trametent un nombre real
ex3.5.2.3) Exemple de comunicació LoRaWAN amb ABP trametent tres nombres reals
Codi de NodeRED per a rebre tres nombres reals LoRaWAN amb ABP
ex3.5.3) Desxifreu els 3 floats des de NodeRED
Desxifreu els 3 floats des de NodeRED, fent servir l'aplicació ABP dam2021-Cognom1Cognom2Nom-0002
ex3.5.4) Tramesa del nivell de l'LDR fent servir ABP
Expliqueu un microprogramari mínim per a la placa IoT-02 que tramet les dades llegides a la fotoresistència (LDR). Expliqueu un flux mínim de NodeRED per a capturar les dades rebudes emprant LoRaWAN fent servir ABP.
ex3.5.5) Tramesa del nivell de l'LDR fent servir OTAA
Expliqueu un microprogramari mínim per a la placa IoT-02 que tramet les dades llegides a la fotoresistència (LDR). Expliqueu un flux mínim de NodeRED per a capturar les dades rebudes emprant LoRaWAN fent servir OTAA.
ex3.6) Ús de LoRaWAN per la tramesa de dades
ex3.6.1) Tramesa OTAA d'un conjunt de dades llegides als sensors de la placa IoT-02
Emprant OTAA, visualitzeu a Grafana les dades de temperatura, humitat relativa, pressió atmosfèrica i de nivell de llum. Feu servir LoRaWAN trametent al rerefons de The Things Network, NodeRED emmagatzemarà les dades rebudes mitjançant LoRaWAN a una base de dades temporal. Visualitzeu les dades mitjançant el visualitzador web Grafana.
ex3.6.2) Tramesa ABP d'un conjunt de dades llegides als sensors de la placa IoT-02
Emprant ABP, visualitzeu a Grafana les dades de temperatura, humitat relativa, pressió atmosfèrica i de nivell de llum. Feu servir LoRaWAN trametent al rerefons de The Things Network, NodeRED emmagatzemarà les dades rebudes mitjançant LoRaWAN a una base de dades temporal. Visualitzeu les dades mitjançant el visualitzador web Grafana.
ex3.7) ZeroTier
Ús de ZeroTier: Configuració d'una VPN emprant ZeroTier
ex3.8) Ascensor
ex3.8.1) Des del mòbil
Feu les modificacions necessàries a ascensor.xml per a controlar l'ascensor des del vostre telèfon mòbil (Feu servir una aplicació com MQTT Dash o una de pròpia feta per vosaltres). (Snap! sense SSL)
Exemple dús d'MQTT amb sòcols web
Més exemples d'interacció entre la placa IoT-02 i sòcols web: Nodes sensors (motes) i passarel·les (gateways)
ex3.8.2) Des de la placa IoT-02
Aprofiteu els canvis realitzats abans per a canviar de pis des dels botons de la vostra placa IoT-02 i que cada led correspongui a un pis (Per exemple, assigneu, quan arribi l'ascensor: planta 0 -> verd, planta 1 -> groc, planta 2 -> vermell. I mentre canvia de pis el led blanc fa pampallugues).
ex3.9) Examen del curs 2018-2019
Examen 18-19 Feu fins a la pregunta 16.
Ajuda: Codi UDP per a la placa IoT-02
ex3.10) Tasca de connexió a MQTT fent servir FreeRTOS
Aprofiteu l'enunciat de l'exercici 3.4: 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.
ex3.10.1) Connexió a WiFi i un broker MQTT
Afegiu una tasca per a fer connexió a WiFi i MQTT. 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-).
ex3.10.2) Publicació
Si bSocConnectat és certa, publica el canvi d'estat del botó quan es prem I35.
ex3.10.3) 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.