Conoscere al meglio Arduino ci permette di creare diversi tipi di progetti, adoperando quello che abbiamo in casa per migliorare ed abbellire la nostra stessa abitazione. In questo articolo vediamo come realizzare un sensore analogico di umidità che indica con una lancetta il valore rilevato nell’ambiente.
Progetto
Il sensore analogico di umidità nasce dall’idea di abbellire il bagno di casa con uno strumento utile per monitorare il livello di umidità in una stanza sempre soggetta al vapore acqueo. Non è di grandi dimensioni, ma anzi si adatta bene a questo ambiente. Di facile lettura, questo è un progetto molto semplice da realizzare e abbastanza economico nell’insieme. Per realizzarlo abbiamo adoperato le nostre conoscenze sui pin PWM e sulla duttilità delle proprietà della dev-board che gestirà il tutto.
Componenti
La dev-board che controlla il sensore analogico di umidità è Arduino Nano, che alimenteremo con una batteria da 9V collegata ai pin VIN e GND per il positivo e il negativo, mentre per spegnerlo e accenderlo un interruttore per corrente continua 10x15mm. Per rilevare l’umidità adoperiamo il sensore DHT11 con una resistenza da 10K Ohm. Tutto è stato saldato su un PCB economico e reperibile presso ogni negozio di elettronica. Per leggere i valori rilevati dal sensore adoperiamo un Voltmetro da 5V. Questo strumento si presta perfettamente alle nostre esigenze, poiché la tensione di lavoro di Arduino è 5V, quindi possiamo sfruttare i segnali PWM prodotti da Arduino per far muovere la lancetta del voltmetro ed indicare con precisione il livello di umidità. Per rendere il tutto pi leggibile, abbiamo anche realizzato una mascherina da stampare e incollare sul voltmetro, in modo che si possa leggere il valore di umidità in modo diretto.
Ecco la lista dei materiali:
Arduino Nano – http://s.click.aliexpress.com/e/BqwF16Oc
DHT11 – http://s.click.aliexpress.com/e/N5AvbsXm
Resistenza 10K Ohm – http://s.click.aliexpress.com/e/kJ8gKZRa
Voltmetro 5V – http://s.click.aliexpress.com/e/tbUWr2gC
Interruttore 10×15: http://s.click.aliexpress.com/e/nOKtUswy
Codice
Il codice del sensore analogico di umidità è molto semplice e potete scaricarlo qua. Di seguito, invece, lo schema dei collegamenti.
Il sensore analogico di umidità necessità della libreria DHT.h per funzionare, mentre per gestire i valori in ingresso ed uscita adoperiamo solo variabili intere, una che ci serve per memorizzare l’umidità, l’altra per convertire il primo valore in un impulso modulare da inviare al voltmetro tramite il pin 3.
#include "DHT.h" #define DHTPIN 12 #define DHTTYPE DHT11 #define PIN_OUT 3 DHT dht(DHTPIN, DHTTYPE); int h, v;
Per convertire il valore intero dell’umidità in un segnale PWM e inviarlo dobbiamo eseguire una mappatura, grazie alla quale i valori minimi e massimi dell’umidità sono convertiti nei valori compresi tra 0 e 255. Questi sono poi inviati al pin digitale 3 tramite la funzione AnalogWrite.
h = dht.readHumidity(); v = map (h, 0, 100, 0, 255); analogWrite (PIN_OUT, v);
Conclusioni
Il progetto di questo sensore analogico di umidità non è molto costo, infatti è realizzabile con una spesa di circa 15€, che può aumentare se il case, che potete scaricare da qua, dovete farlo stampare a terzi. La realizzazione pratica richiede circa quale ora di lavoro, un saldatore e un po’ di colla a caldo per tenere ferme le parti.