# Robotica educativa/Temperatura e umidità

Robotica educativa

## Introduzione

* PrerequisitiRobotica educativa/Prerequisiti
* Etica della roboticaRobotica educativa/Etica della robotica

## Robotica con Arduino

* Le basi dell'informaticaRobotica educativa/Le basi dell'informatica
* Le basi dell'elettronicaRobotica educativa/Le basi dell'elettronica
* Esercizi di elettrotecnicaRobotica educativa/Esercizi di elettrotecnica
* Sicurezza elettricaRobotica educativa/Sicurezza elettrica

## Primi passi nella robotica

* Invio di un SOSRobotica educativa/Invio di un SOS
* Che tempo che faRobotica educativa/Temperatura e umidità
* TermostatoRobotica educativa/Termostato
* Misurazione della distanzaRobotica educativa/Misurazione della distanza
* Sensore di parcheggioRobotica educativa/Sensore di parcheggio
* Gestione di un servomotoreRobotica educativa/Servomotore
* TelepassRobotica educativa/Telepass
* Dal computer ad ArduinoRobotica educativa/Dal computer ad Arduino
* Musica maestro!Robotica educativa/Musica maestro
* Lettore RFIDRobotica educativa/Lettore RFID
* Il tanto amato joystickRobotica educativa/Joystick
Modifica il sommario
Arduino non è soltanto una scheda programmabile. È un sistema di controllo attorno al quale sono stati sviluppati innumerevoli sensori e attuatori, i quali consentono di trasformare le grandezze fisiche in grandezze elettriche e viceversa.
In questo capitolo, più che una vera e propria stazione meteorologica, attraverso il sensore DHT11 (della categoria DHT, ne esistono più d'uno a seconda delle caratteristiche) verranno acquisite direttamente:
* l'umidità relativa;
* la temperatura (sia in gradi Celsius, sia Fahrenheit, senza dover ricordarsi come eseguire la conversione);
* la stima della temperatura percepita (sempre in gradi Celsius e Fahrenheit).
Nella tabella sottostante viene mostrata la temperatura percepita (simbolo, ${\text{HI}}$), la quale viene calcolata in funzione della temperatura e dell'umidità relativa. A seconda della combinazione di questi due fattori il contesto può essere definito di attenzione (nell'intervallo ${\text{HI}}\subset [27~^{\circ }{\text{C}},32~^{\circ }{\text{C}})$), di estrema attenzione (quando ${\text{HI}}\subset [33~^{\circ }{\text{C}},39~^{\circ }{\text{C}})$) fino ad arrivare – all'aumentare della temperatura e umidità – a un contesto di pericolo (${\text{HI}}\subset [40~^{\circ }{\text{C}},51~^{\circ }{\text{C}})$) superati i quali, si parla di estremo pericolo (quando ${\text{HI}}\geqslant 52~^{\circ }{\text{C}}$).
Questi intervalli sono stati mostrati perché consentono di realizzare un ponte tra robotica e fisica applicata, inoltre – se si volesse indicare lo stato della temperatura percepita con quattro LED – conoscere questi intervalli semplifica notevolmente la scrittura del codice.

## Schema di montaggio

Il sensore di umidità e temperatura deve semplicemente essere alimentato (fili rosso, collegato a $5~{\text{V}}$, e filo nero, collegato a $0~{\text{V}}$) e poi il terminale che restituisce la misurazione va connesso a un pin di acquisizione dati di Arduino (filo blu).
Per ottenere misurazioni più precise, è buona norma inserire una resistenza di pullup da $10~{\text{k}}\Omega$ tra il pedino che restituisce i dati e l'alimentazione positiva ($5~{\text{V}}$). Ma, anche senza questa resistenza, i dati ottenuti sono sufficientemente affidabili, nell'ordine del mezzo grado.
Pertanto, considerato tutto quello che si ottiene da questo sensore, bisogna riconoscere che la sua installazione è decisamente semplice.

## Codice

Il codice viene commentato punto per punto ma, per comprenderlo meglio, nell'ordine si trova:
* l'inclusione della libreria DHT, che fornisce nuovi comandi per operare col sensore di temperatura e umidità;
* il pin in cui viene connesso il sensore e il tipo di sensore utilizzato (come anticipato, esiste più di un sensore di temperatura e umidità);
* l'inizializzazione del sensore e della porta seriale (con quest'ultima inviamo i dati al computer);
* dopodiché seguono cinque acquisizioni: umidità relativa, temperatura (prima in gradi Celsius, poi in Fahrenheit), temperatura percepita (lo standard è in gradi Fahrenheit, dopodiché viene acquisita in Celsius, qui è stata descritta sempre in Celsius per evitare confusioni);
* se uno dei parametri acquisiti non è stato fornito, il programma scriverà che il sensore non è connesso (cosa utilissima, soprattutto in fase di test);
* altrimenti, mostra tutti i dati acquisiti;
* ferma Arduino per 2 secondi (lo standard nei termostati delle abitazioni sarebbe 2 minuti, ma la visualizzazione sarebbe troppo lenta).

## Espansioni suggerite

* Un progetto molto semplice è realizzare un termostato: si stabilisce a quale temperatura debba attivarsi e ― a quel punto ― si accenderà un LED per indicare che i termosifoni devono accendersi, similmente lo si spegnerà quando viene raggiunta la temperatura desiderata. Se si sostituisce il diodo LED con un relè l'uscita può comandare i termosifoni di casa (NB quest'operazione va presa in considerazione solo se si è realmente consapevoli di quello che si sta facendo).
* D'estate, l'operazione può essere rovesciata: raggiunta una temperatura elevata si fa partire un motore collegato a un'elica. Questo raffredderà il sensore di temperatura e ― quando si sarà tornati a una situazione di comfort ― la ventola si arresterà automaticamente.
* Sempre riguardo quest'argomento, la temperatura desiderata, potrebbe essere impostata tramite una resistenza variabile (o due pulsanti) come avviene in un qualsiasi termostato professionale.
* Inoltre, una scheda Arduino può gestire più sensori di temperatura: in questo modo si possono monitorare (e gestire), zona giorno e zona notte.
* Per quanto riguarda la temperatura percepita, è possibile utilizzare quattro diodi LED per notificare le sue situazioni critiche.
* Infine, utilizzando un display per mostrare i dati acquisiti, è possibile visualizzare i dati analizzati e collegare Arduino a una batteria, rendendo il sistema completamente indipendente dal computer.

## Note

* ↑ La libreria DHT, se non già presente, deve essere installata. La procedura, all'interno dell'ambiente di sviluppo di Arduino è: menù Tools > Manage libraries... > DHT sensor library. Dopodiché, si sceglie l'ultima versione e Install all, ovvero la libreria necessita di altre sottolibrerie: si chiede che anche queste vengano installate.