Descripció de l’activitat
Un habitatge disposa d’un sistema de climatització intel·ligent que funciona de forma autònoma, en funció dels sensors i actuadors que disposa (termòmetre, higròmetre, aire condicionat, deshumidificador…). En aquesta activitat es programa una app que pugui sol·licitar informació al sistema, activar o desactivar actuadors i variar certs paràmetres de funcionament. S’utilitza una placa ESP32 STEAMakers com a servidor web per atendre les peticions de l’app (activitat adaptada a partir del taller de la #JPRE24 dinamitzat per Raül Pegueroles i Raül Ventura).
Material necessari
- Placa ESP32 STEAMakers
- 2 relés
- Sensor DHT-11
Orientacions pedagògiques
Es formen grups d’alumnes en funció del nombre de plaques, sensors DHT11 i relés disponibles.
Cada alumne fa el programa amb ArduinoBlocks segons les instruccions de l’apartat “Pas a pas” i el transfereix a la placa del seu grup. Comprova en un navegador d’Internet que el programa funciona correctament.
Cada alumne fa el programa amb App Inventor segons les instruccions de l’apartat “Pas a pas”. Comprova amb un mòbil i l’app Companion que el programa funciona correctament.
Elements de programació
Eix | Àrea | Matèria
SEC – Tecnologia || Biologia i Geologia
Competències específiques
TEC CE04 – Desenvolupar solucions sostenibles a problemes plantejats que incorporin l’automatització i les tecnologies emergents, per dissenyar i construir sistemes de control programables i robòtics. || BG CE02 – Identificar, seleccionar, organitzar i avaluar críticament dades i informació, contrastant-ne la fiabilitat per resoldre preguntes relacionades amb la biologia i la geologia i descartar solucions pseudocientífiques.
Sabers
Utilització de diferents components de sistemes de control programat: controladors, sensors i actuadors, que permetin l’optimització dels recursos i apliquin l’automatització i la robotització.
1. En l’entorn ArduinoBlocks, crear un nou projecte de tipus ESP32 STEAMakers.
2. En el bloc d’Inicialització es connecta la placa a Internet i s’inicia el servidor web incorporat. També s’assignen valors desitjats arbitraris als paràmetres ambientals i es defineix una variable d’estat d’activació del sistema de climatització. Caldrà conèixer l’adreça IP assignada a la placa, per això es programa la seva visualització en la consola d’ArduinoBlocks:
3. En el bucle principal, programar el sistema de climatització. Es programa l’activació d’un dispositiu per reduir la temperatura (ventilador, aire condicionat) i un per reduir la humitat (deshumidificador). En l’activitat i a tall d’exemple, però, es poden utilitzar motors DC. Els relés s’activaran si el sistema de climatització està activat i els valors mesurats estan per sobre dels valors desitjats:
4. El servidor web de la placa rebrà peticions mitjançant URLs del tipus http://ip/peticio?parametre1=valor1¶metre2=valor2 … on “ip” és l’adreça IP assignada a la placa i “petició” és una paraula clau que indica a la placa el tipus de petició. Si s’han d’incloure paràmetres, s’escriuen en la forma indicada en l’URL. Per obtenir els valors actuals de temperatura i humitat, utilitzem la paraula clau “actualitza”. El servidor retorna els valors mesurats en format JSON, per tal que la resposta sigui més senzilla de processar:
5. La petició amb la paraula clau “desitjats” recull els valors dels paràmetres indicats en l’URL i els assigna a les variables corresponents:
7. Un cop fet el programa, connectar el sensor DHT11 (pin 25-D3) i els dos relés (pins 17-D4 i 16-D5) a la placa.
8. Transferir el programa a la placa i obrir la consola d’ArduinoBlocks. Tot seguit, prémer el botó “Reset” de la placa per visualitzar en la consola l’adreça IP assignada.
9. Comprovar el funcionament del sistema de climatització escrivint URLs amb el format adequat en el navegador Mozilla Firefox (és el que mostra millor els fitxers JSON). Per exemple, proveu l’URL http://ip/actualitza on “ip” és l’adreça IP que heu obtingut en el pas anterior. La placa retorna, en format JSON, els valors actuals de temperatura i humitat relativa.
10. Des d’App Inventor, dissenyar el programa per interactuar amb el sistema de climatització:
11. En la secció “Blocs” es defineixen variables per als valors desitjats, per a l’estat d’activació del sistema de climatització i per a les paraules clau
12. Programar els botons i l’interruptor. Es forma l’URL amb la mateixa paraula clau definida en ArduinoBlocks i s’envia al servidor:
13. Programar els cursors que determinen els valors desitjats:
14. Programar l’obtenció de resposta del servidor. El bloc “quan Web1.Text obtingut” contindrà un condicional per cadascuna de les peticions. En la petició amb la paraula clau “actualitza” es descodifica el JSON rebut per obtenir els valors actuals de temperatura i humitat. A partir d’aquests valors es calcula la temperatura de xafogor a partir de la fórmula aproximada (model “humidex”) x=t+0,555*(10^(7,5*t/(237,7+t))*h/100-10). La temperatura de xafogor és el valor màxim entre el valor calculat i el de la temperatura:
15. En la resta de peticions no cal processar la resposta:
16. Connectar App Inventor amb l’app Companion i comprovar que funciona correctament. S’ha d’escriure l’adreça IP obtinguda en la consola d’ArduinoBlocks:

