Termometro/igrometro digitale con Arduino
con invio dei dati su connessione Bluetooth

Componenti:
Arduino qualsiasi modello
Modulo Bluetooth HC05
Sensore DHT11
LCD 1602
potenziometro o trimmer 10kohm

L'Arduino va alimentato con alimentazione separata: ad esempio una pila da 9V.
Nelle periferiche Buletooth del cellulare troverete il dispositivo HC-05 e per associarlo digitate la password 1234.
Su Android ho usato il programma Blue SerialBeta cliccare su Search for paired device, apparirà HC-05. Fate clic su Connect e vedrete apparire, ogni 5 sec, il testo con indicate l'umidità e la temperatura.
IDE per Arduino:
//Questo esempio è stato realizzato da Giuseppe Tamanini ed è pubblico dominio
#include <dht.h>
#include <LiquidCrystal.h>
#define dht_dpin A0 //Imposta il pin al quale va collegato il segnale del sensore
//Imposta i pin ai quali collegare il pannello LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
dht DHT;//comando legato all'uso della libreria dht.h
//Disegna i nuovi caratteri
//grado centigrado
byte newChar1[8] = {
B01100,
B10010,
B10010,
B01100,
B00000,
B00000,
B00000,
B00000
};
//a accentata
byte newChar2[8] = {
B00100,
B00010,
B01110,
B00001,
B01111,
B10001,
B01111,
B00000,
};
int i = 0;
void setup(){
Serial.begin(9600);
lcd.createChar(1, newChar1);//memorizza i nuovi caratteri
lcd.createChar(2, newChar2);
delay(300);//Attendi 0,3 secondi
Serial.print("Umidita'");
Serial.println(" e temperatura\n");
delay(700);//Aspetta ancora 0,7 secondi prima di accendere il pannello LCD
// definisce il numero di righe e colonne del pannello:
lcd.begin(16, 2);
//Stampa sul pannello
lcd.print("Umidit");
i = 2;
lcd.write(i);//stampa la a accentata
lcd.setCursor(0, 1);//Scrive sulla seconda riga
lcd.print("Temperatura");
}//fine "setup()"
void loop(){
DHT.read11(dht_dpin);//legge i valori dal sensore DHT11
//Invia le stringhe alla seriale
Serial.print("Umidita'");
Serial.print(" = ");
Serial.print(int(DHT.humidity));//valore intero dell'umidità
Serial.print("% ");
Serial.print("Temperatura = ");
Serial.print(int(DHT.temperature));//valore intero della temperatura
Serial.print("gradi");//carattere grado
Serial.println("C");
lcd.setCursor(9, 0);//posiziona il cursore sul pannello
lcd.print(int(DHT.humidity));//Scrive
lcd.setCursor(11, 0);
lcd.print("%");
lcd.setCursor(12, 1);
lcd.print(int(DHT.temperature));
lcd.setCursor(14, 1);
i = 1;
lcd.write(i);//Stampa il carattere grado
lcd.print("C");
delay(5000);//aspetta 5 secondi
}// fine loop()
La libreria per il sensore DHT11, di cui trovate tutte le informazioni a questo indirizzo http://arduino.cc/playground/Main/DHTLib, da scaricare qui va importata in Arduino sketch da Sketch > Importa libreria.
Giuseppe Tamanini
|