Descripció de l’activitat
Construcció d’un cub de cartó amb una pantalla en la cara frontal i un sensor acceleròmetre i una placa ESP32 STEAMakers en l’interior. La placa es connecta a Internet per obtenir l’hora i les condicions atmosfèriques actuals. Quan es volta el cub recolzant-lo sobre una altra cara lateral canvia la informació que es mostra a la pantalla: icona del temps actual, dia i hora, condicions ambientals i dades addicionals.
Material necessari
- Placa ESP32 STEAMakers
- Capsa de cartó
- Cinta adhesiva
- Cinta adhesiva de doble cara
Orientacions pedagògiques
Els usuaris d’OpenWeather han de tenir 16 anys o més. Per tant, és el docent qui haurà de crear un usuari nou, obtenir una clau API i compartir-la amb l’alumnat per tal que la puguin utilitzar.
Es formen grups d’alumnes en funció del nombre de plaques, pantalles OLED i sensors disponibles.
Cada alumne programa amb ArduinoBlocks el cub segons les instruccions de l’apartat “Pas a pas”.
Quan un alumne acaba el programa, comprova que funciona correctament amb el material del seu grup.
Posteriorment, cada grup ha de construir un cub de cartó amb els elements descrits en l’apartat “Pas a pas” i comprovar que funciona correctament.
Com a ampliació, es proposa:
– Fixar leds de color a la cara frontal del cub i fer-los servir com a indicadors visuals.
– Afegir un brunzidor que emeti un so quan es volta el cub.
– Programar que la informació del temps s’actualitzi cada 30 minuts.
– Programar què mostra la pantalla si es volta el cub sobre la cara posterior.
Elements de programació
Eix | Àrea | Matèria
SEC – Física i Química | Biologia i Geologia | Tecnologia i Digitalització
Competències específiques
FQ CE03 – Generar, interpretar i validar dades i informació en diferents formats i fonts, fent servir de manera adient el llenguatge científic específic de la física i la química, i usar de manera responsable i segura el material de laboratori, per valorar el llenguatge científic com a eina universal de comunicació i intercanvi de coneixement. || BG CE01 – Interpretar fenòmens de la naturalesa, predient i argumentant el seu comportament a partir de models, lleis i teories propis de la biologia i la geologia per apropiar-se de conceptes i processos propis de la ciència. || TECDIG CE02 – Planificar, dissenyar i desenvolupar solucions a problemes tecnològics amb autonomia i actitud creativa, tot aplicant el procés tecnològic, coneixements interdisciplinaris i treballant de manera ordenada i cooperativa, per resoldre problemes o necessitats de manera eficaç, innovadora i sostenible.
Sabers
Ús del llenguatge científic, incloent-hi l’ús adequat de representacions, sistemes d’unitats i eines matemàtiques, per aconseguir una comunicació argumentada en diferents entorns científics i d’aprenentatge.
1. Aneu al lloc web per crear un usuari propi d’OpenWeather (haurà de fer-ho la docent, perquè cal tenir almenys 16 anys).
2. Confirmeu el nou usuari amb el botó de validació del missatge que haurà arribat al vostre e-mail.
3. Feu clic en el desplegable del vostre nom d’usuari i trieu “My API keys”. Anoteu la clau API, la necessitareu en el pas següent.
4. En el navegador Mozilla Firefox, escriviu l’URL per obtenir la informació atmosfèrica actual a partir d’una crida a l’API d’OpenWeather, on nom_lloc és el nom de la població i clau_api la clau API. Aquest navegador mostra les dades retornades en format JSON en un format fàcilment llegible:
5. En l’entorn ArduinoBlocks, inicieu un projecte de tipus “ESP32 STEAMakers”.
6. Definiu el procediment per fer la crida a l’URL anterior. Per fer-ho, cal anar a la categoria “funcions” i seleccionar el bloc, on podem escriure el nom de la funció (bloc de color lila). La crida es fa una única vegada, no cada cop que es volta el cub. La variable booleana “dades_obtingudes” (que s’ha de definir prèviament) és certa un cop s’ha obtingut resposta, i garanteix que la crida no es tornarà a fer.
7. Definiu el procediment per mostrar les condicions ambientals:
8. Definiu el procediment per mostrar la icona corresponent al temps actual. El text corresponent a cada icona es pot obtenir amb l’“OLED – Bitmap editor” d’ArduinoBlocks, utilitzant les icones del temps que es faciliten a la secció de descàrregues:
9. Definiu el procediment que calcula l’hora del dia en funció d’instants en format unix UTC. S’ha de tenir en compte el nombre de segons en un dia (86.400), el nombre de segons en una hora (3.600), el nombre de minuts en una hora (60) i el nombre de segons en un minut (60):
10. Definiu el procediment per mostrar dades addicionals que conté el JSON obtingut en el punt 4 d’aquest “Pas a pas”. Hi ha diferents categories d’informació, cadascuna conté un JSON secundari amb dades de la categoria:
11. Definiu el procediment per mostrar el dia i l’hora. La informació s’obté a partir d’una crida a una API, indicant una ciutat en el fus horari correcte. Utilitzeu aquest URL.
12. Ompliu el bloc d’inicialització, on la placa es connecta a Internet i s’assignen valors a certes variables, que heu de definir prèviament:
13. Ompliu el bucle principal, que mostra informació a la pantalla en funció de l’orientació del cub:
13.1. L’orientació s’obté amb les funcions d’acceleròmetre del sensor MPU6050, concretament les dels eixos X i Z.
13.2. Els textos escrits en la pantalla s’orienten en la direcció i sentit que indica el sensor.
13.3. Si la informació que s’està mostrant és l’hora, es fa una crida a l’API cada minut:
14. Connecteu la pantalla OLED i el sensor MPU6050 als pins I2C de la placa ESP32 STEAMakers.
15. Transferiu el programa a la placa i comproveu que funciona correctament, voltant el sensor i la pantalla alhora, una en cada mà.
16. Construïu el cub meteoròleg amb una capsa de cartó retallant un forat rectangular en una cara lateral per encaixar-hi la pantalla OLED:
17. Fixeu la pantalla OLED en el forat amb cinta adhesiva.
18. Fixeu la placa ESP32 STEAMakers, el sensor MPU6050 i les piles a la base del cub amb cinta adhesiva de doble cara.

