L11 - TEMPERATURA

Una delle esperienze più interessanti da fare con Arduino e che può dare la stura a tanti progetti STEM, è la misura della temperatura e dell'umidità.

Usiamo oggi un sensore particolarissimo, il DHT11 (può essere usato anche il modello DHT22 molto simile, ma più preciso nelle misurazioni).

Come al solito tralascio noiosissimi dettagli tecnici che possono tuttavia, per chi volesse, essere approfondito al link che segue (https://www.adrirobot.it/sensori/sensore_dht11/sensore_dht11.htm ).

Quello che ci interessa è che il sensore, che ricordiamo misura temperatura ed umidità, è dotato di tre PIN. Il primo, VCC, rappresenta l'alimentazione che, come da DATA SHEET (https://components101.com/dht11-temperature-sensor ), è a 5V.

Il terzo, GND, è la TERRA, ovvero il ritorno, la chiusura del circuito.

Il secondo è il DATA, ovvero il PIN che collego ad Arduino per trasmettere i dati di temperatura e umidità. In questo caso il dato è digitale e va collegato ad uno dei PIN digitali del Microcontrollore secondo lo schema riportato di seguito.

Nello schema ho preferito collegare la terra e l'alimentazione ai canali orizzontali della Breadboard in modo da lasciare sempre aperte possibilità di ulteriori collegamenti. I dati vengono portati al PIN 4.

Non aggiungo la simulazione su TINKERCAD per l'assenza del blocco sensore DHT11.

Per quello che riguarda la programmazione abbiamo due difficoltà. Innanzitutto l'assenza su Mblock dei blocchi di riferimento e poi l'impossibilità di leggere in qualche maniera il dato rilevato dal sensore. iniziamo a risolvere il primo problema.

Avviamo Mblock e, cliccando su ESTENSIONI, andiamo su GESTISCI ESTENSIONI.

Si aprirà una finestra in cui potrete cercare ESTENSIONI scritte dagli utenti. Scaricate DHT EXTENSIONS e, come nella figura successiva, vi apparirà la voce nell'elenco delle estensioni disponibili e tra i blocchi nella categoria ROBOT, quelli che ci serviranno.

Veniamo al secondo problema, la visualizzazione. In attesa di capire come leggere i dati su uno schermo LCD, occorre trovare il modo di usare questi blocchi integrandoli con il PANDA, ovvero con lo SPRITE di Mblock che funge, in questa fase, da monitor seriale di Arduino.

I blocchi che abbiamo aggiunto con l'estensione sono tre. Il primo mi permette di definire la tipologia di DHT utilizzata, il PIN a cui è collegato e il numero d'ordine del sensore (possiamo sempre immaginare di collegarne di più).

Gli altri due definiscono il valore di temperatura e umidità letti dal sensore che noi porteremo in due variabili che abbiamo, per comodità chiamato Temperatura e Umidità.

L'attribuzione la inseriamo in un ciclo PER SEMPRE in modo da garantire una lettura continua.

In contemporanea facciamo dire allo Sprite per due secondi, intervallando con un secondo di pausa, i valori letti. Ed il gioco è fatto.