Chi ha detto che i programmatori non sono persone romantiche? Certo a modo loro, ma sicuramente con creatività e originalità.
Nel progetto di oggi parliamo di come realizzare un sistema che rilevi temperatura ed umidità con Arduino NANO, utilizzando un sensore DHT11 e infilando tutto dentro una scatola porta-gioie in legno.

Cosa serve

Prima di tutto abbiamo bisogno di un Arduino Nano, un sensore che rilevi temperatura ed umidità (nel nostro caso un DHT11), un display LCD I2C 16×02, 4 batterie da 1,5V e il porta-batterie per dare corrente al nostro Arduino. Per collegare il tutto è stata utilizzata una breadboard a 170 fori e un interruttore per accendere e spegnere il sistema.

Qui i link dei prodotti:
Arduino Nano – http://s.click.aliexpress.com/e/gjo6Dy8
DHT11 sensore – http://s.click.aliexpress.com/e/h08EueU
LCD schermo IIC/I2C 1602 – http://s.click.aliexpress.com/e/V1VFL1W
Box 4 batterie AA – http://s.click.aliexpress.com/e/eaV6UbO
Breadboard 170 fori – http://s.click.aliexpress.com/e/QYPEfSo
Interruttore ON/OFF – http://s.click.aliexpress.com/e/bblHDvVW
Box di Legno – http://s.click.aliexpress.com/e/clsjPLRa

Collegamenti

Collegare l’insieme è veramente semplice. Giù trovate il schema in foto, ma teniamo lo stesso a spiegare quanto fatto. Arduino Nano è stato fissato sulla breadboard in modo da usare i cavi jumper al meglio. Il sensore DHT11 è stato collegato al pin digitale 12, mentre il display LCD ai pin analogici A4 e A5 rispettivamente per SDA e SCL. L’alimentazione delle batterie è connessa al pin VIN, visto che Arduino Nano sta ricevendo 6V, mentre il display LCD è connesso ai 5V in uscita forniti da Arduino e il DHT11 ai 3,3V. Sono state adoperate 4 batteria AAA ricaricabili, acquistabili presso il vostro negozio di fiducia.

Funzionamento

Una volta acceso l’insieme, Arduino Nano leggerà i dati in arrivo dal Sensore DHT11, mostrandoli poi sul display LCD ad un intervallo regolare. Tale arco temporale è formato da due attese, nella prima vengono appunto mostrati i risultati, mentre nel secondo un messaggio. Cerchiamo di spiegare tutto analizzando lo sketch che potete scaricare QUI insieme alle librerie.

Nella prima parte inseriamo le librerie e definiamo il sensore e il display:

#include "DHT.h"
#define DHTPIN 12
#define DHTTYPE DHT11 

DHT dht(DHTPIN, DHTTYPE);

#include 
#include 

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
</pre>
&nbsp;

Il passo successivo è creare un oggetto che stampi un cuore e per farlo useremo:
<pre>byte Cuore[8] = {
B00000,
B01010,
B11111,
B11111,
B11111,
B01110,
B00100,
B00000
};

 

Nel void setup inizializziamo sia il sensore DHT11, sia il display e il monitor serial

Serial.begin(9600);
lcd.begin(16,2);
lcd.createChar(0, Cuore);
Serial.println("Inizializzazione sensore DHT11 con DISPLAY LCD per appartamento");

dht.begin();

 

Nel void loop infine rileviamo i dati dal sensore, ricordando che il DHT11 rileva valori interi, e stampiamo tutto sul LCD

int h = dht.readHumidity(); // Legge temperatura
int t = dht.readTemperature(); // Legge umidità

 

Impostiamo il cursore per scrivere sul display:

lcd.setCursor(0, 0);
lcd.print("Temperatura: ");
lcd.print(t);
lcd.print("C");

lcd.setCursor(0,1);
lcd.print("Umidita': ");
lcd.print(h);
lcd.print("%");
delay (5000); // attendo 5 secondi
lcd.clear(); // Pulisce display LCD

lcd.setCursor(0, 0);
lcd.print(" Sensore casa");
lcd.setCursor(0,1);
lcd.write(byte(0)); // cuore
lcd.write(byte(0)); // cuore
lcd.print(" Annamaria ");
lcd.write(byte(0)); // cuore
lcd.write(byte(0)); // cuore
delay (5000); // attendo 5 secondi
lcd.clear(); // Pulisce display LCD

 

Si scrive, dopo la pulizia del display, l’oggetto che abbiamo creato con nel mezzo un nome, poi si ripulisce tutto dopo 5 secondi di attesa.

Conclusioni

Il progetto è di bassa difficoltà di realizzazione e dal costo molto contenuto, infatti la spesa è stata circa di 10€. In conclusione, un progetto semplice e carino da presentare come dono che fa sicuramente il suo buon effetto, ancora di più se si sottolinea il fatto di averlo fatto da sé.