Uso del sensore esterno di temperatura e umidità DHT11

  • Il sensore che ha la scuola si è il DHT11.
  • Il datasheet è accessibile qui (scaricato) o qui (fonte originale).

Collegamento PIN su Arduino

L'immagine qui sotto mostra come attaccare i cavi all'arduino. I PIN alle estremità sono per l'alimentazione. L'altro PIN è per i dati, e in questo caso verrà usato il PIN 2 dell'Arduino UNO, ma qualsiasi altro PIN numerato può andare.

Attenzione che le connessioni sul sensore sono fatte in riferimento al sensore direzionato nel modo raffigurato.

collegamento PIN

Installazione libreria

Per poter leggere le informazioni inviate dal sensore sul PIN dai dati, è necessario usare una libreria.

  • andare in Strumenti -> Gestione librerie
  • cercare "DHT sensor library" ed installare "DHT sensor library" di Adafruit (ce ne sono altre ma scegliere proprio quella)
  • se compare una finestra di conferma, dire Install all
  • ora la libreria si può includere nei progetti con #include "DHT.h"

Codice

La linea DHT dht(2, DHT11); specifica la configurazione del sensore collegato, quindi il 2 va cambiato se abbiamo usato un PIN di arduino diverso per collegare il PIN dati del sensore.

// include la libreria per il sensore DHT11
#include "DHT.h"

// qui si specifica la configurazione del sensore:
// - il primo parametro e' il PIN, in questo caso 2
//     (va cambiato in base a dove e' attaccato il pin di dati)
// - il secondo parametro e' il modello del sensore collegato
//     (dato che la scuola possiede solo DHT11, non va mai cambiato)
DHT dht(2, DHT11);

void setup() {
  // inizializziamo la connessione seriale con il computer
  Serial.begin(9600);

  // inizializziamo la connessione con il sensore (importante!)
  dht.begin();
}

void loop() {
  // crea la variable h e ci salva la lettura dell'umidita dal sensore (in %)
  float h = dht.readHumidity();

  // crea la variabile t e ci salva la lettura della temperatura dal sensore (in °C)
  float t = dht.readTemperature();

  // Scrive delle linee formattate cosi': UMIDITA TEMPERATURA
  // Mettendo due valori separati da spazio su ogni riga potremo
  // visualizzarli contemporaneamente aprendo il "Plotter seriale".
  Serial.print(h); // scrive h senza andare a capo
  Serial.print(" "); // scrive uno spazio dopo h
  Serial.println(t); // scrive t e poi va a capo (perche' c'e' il println)
}