Termometro igrometro digitale con Arduino


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



Articolo tratto da: Filodrammatica ViVa di Vigolo Vattaro - http://www.filoviva.it/
URL di riferimento: http://www.filoviva.it//index.php?mod=10_Progetti/22_igrometro_digitale_con_arduino