Il codice per pilotare la scheda, occhio che rispetto al passo precendente ho spostato il pin di lettura sensore dal 2 al 7, fare riferimento quindi allo schema precedente (quello che contiene il display )
Codice:
#include "DHT.h"
#include <LiquidCrystal.h>
#define DHTPIN 7 // il pin di Arduino da cui raccoglieremo i dati
// Commentare a seconda del tipo di sensore utlizzato
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Connettere pin 1 (a sx) del sensore ai +5V di arduino
// Connettere pin 7 del sensore al pin 7 PWM di Arduino
// Connect pin 4 (on the right) of the sensor to GROUND
// Connettere una resistenza da 10K dal pin 2 (dati) al pin 1 (power) del sensore
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
// inizializziamo il display dicendo che è 16 colonne per due righe
lcd.begin(16, 2);
Serial.println("Test Sensore Umidità");
// mi posiziono sul display all'inizio della prima riga e stampo "Temp:"
// posizione 0 è la prima riga
lcd.setCursor(0, 0);
lcd.print("Temp: ");
// mi posiziono sul display all'inizio della seconda riga e stampo "Umid:"
// posizione 1 è la prima riga
lcd.setCursor(0, 1);
lcd.print("Umid: ");
dht.begin();
}
void loop() {
// la lettura di umidità e temperatura dal sensore impiega circa 250 millisecondi!
float h = dht.readHumidity();
float t = dht.readTemperature();
// controlla se i valori letti dal sensore sono validi!
if (isnan(t) || isnan(h)) {
Serial.println("Errore di lettura sensore");
} else {
// stampo sul display i valori H di umidità e dopo T di temperatura
Serial.print("Umidità: ");
lcd.setCursor(6, 1);
lcd.print(h);
lcd.setCursor(6, 0);
lcd.print(t);
lcd.setCursor(11, 1);
lcd.print("%");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" *C");
}
}