Sensore di temperatura e umidità DHT22 Arduino

La maggior parte dei progetti Arduino per principianti prevede la raccolta di dati ambientali, ad esempio una stazione meteo domestica con display. In genere si utilizza un modulo sensore DHT11, economico e impreciso, che di solito misura solo la temperatura e l’umidità dipende dall’ambiente solo indirettamente. Pertanto, se si desidera ottenere misurazioni davvero accurate, è meglio utilizzare il sensore di temperatura e umidità DHT22.




Per questa attività sono necessari:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • sensore di temperatura e umidità DHT22
  • LED e resistenza
  • modulo display OLED i2c
  • breadboard
  • cavi di collegamento
  • libreria DHT.h e OLED_I2C.h

Sensore di temperatura e umidità DHT22 datasheet, pinout

Il sensore AM2302 (DHT22) può essere alimentato da 3,3 V a 6 V, quindi può essere utilizzato con tutti i tipi di Arduino. Per la comunicazione utilizza un protocollo a filo singolo, non compatibile con il modulo DHT11. Il campo di misura va da -40°C a 80°C e l’umidità relativa da 0 a 100%. Gli errori tipici sono ±2% di umidità e meno di 0,5°C di temperatura. Questo sensore di temperatura per Arduino ha la più alta precisione di qualsiasi altro sensore simile.

Modulo di temperatura DHT22 pinout, datasheet
Modulo di temperatura e umidità DHT22 pinout, datasheet

Caratteristiche del sensore di temperatura AM2302 (DHT22):

  • Tensione di alimentazione: 3 – 5 V
  • Humidité (relative %): 0 – 100%
  • Précision (humidité): +/- 2% (+/- 5% aux extrêmes)
  • Température: -40°C – +150°C
  • Précision (température): +/- 0.5°C
  • Fréquence mesure max: 2Hz (2 mesures par seconde)
  • Stabilité à long terme: +/- 0.5% par an

Come collegare sensore di temperatura DHT22 Arduino

Collegamento del sensore di temperatura DHT22 Arduino Uno
Collegamento del sensore di temperatura e umidità DHT22 Arduino Uno

Lo schema di cablaggio per il DHT22 non è diverso dall’esempio per il sensore DHT11 e il programma stesso differisce solo per una riga in cui si specifica il tipo di sensore di temperatura – Arduino DHT22 anziché DHT11. Una volta assemblato il circuito con i LED e il DHT22 come mostrato nell’immagine precedente, scaricare il seguente semplice programma di esempio con la libreria universale DHT.h, adatta a entrambi i moduli.

Programma Arduino per utilizzare sensore di temperatura DHT22




#include "DHT.h"
DHT dht(2, DHT11);

#define ORANGE 12
#define GREEN  10

void setup() {
  dht.begin();
  Serial.begin(9600);
  pinMode(ORANGE, OUTPUT);
  pinMode(GREEN, OUTPUT);
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  Serial.print("Humidity: ");
  Serial.println(h);
  Serial.print("Temperature: ");
  Serial.println(t);

  if (t < 24) {digitalWrite(ORANGE, LOW); digitalWrite(GREEN, HIGH);}
  if (t > 24) {digitalWrite(ORANGE, HIGH); digitalWrite(GREEN, LOW);}
}

Spiegazione del codice per sensore di temperatura DHT22 Arduino:



  1. se si desidera ottenere valori di temperatura e umidità senza decimali, utilizzare il tipo di dati int anziché float;
  2. è possibile modificare le condizioni di accensione e spegnimento dei LED.

Come collegare sensore DHT22 e display OLED i2c Arduino

Come usare del modulo DHT22 Arduino Uno
Come usare del modulo DHT22 e display OLED Arduino Uno
OLED i2c 0,96 Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VDD 5V 5V 5V
SDA A4 A4 20
SCL A5 A5 21

Si noti che l’assegnazione dei pin può variare da produttore a produttore. Se l’alimentazione è collegata in modo errato, il sensore di temperatura e umidità potrebbe non funzionare correttamente. Il display OLED 128×64 è collegato ad Arduino tramite il bus i2c situato sui pin SDA (A4) e SCL (A5) delle schede Arduino Uno e Nano. Quando si lavora con la scheda Arduino Mega 2560, lo schermo è collegato all’interfaccia i2c tramite i pin SDA (20) e SCL (21).

Programma Arduino per utilizzare DHT22 e display OLED i2c

#include "DHT.h"
DHT dht(2, DHT11);

#include "OLED_I2C.h"
OLED myOLED(SDA, SCL, 8);

extern uint8_t BigNumbers[];

void setup() {
  dht.begin();
  myOLED.begin();
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  myOLED.setFont(MediumNumbers);
  myOLED.print(String(t), LEFT, 5);
  myOLED.update();

  myOLED.setFont(MediumNumbers);
  myOLED.print(String(h), LEFT, 25);
  myOLED.update();

  delay(1000);
}

Spiegazione del codice per sensore DHT22 e display OLED Arduino:

  1. la libreria OLED.h utilizza molta memoria del microcontrollore per caricare i font;
  2. le variabili vengono visualizzate OLED 0.96 utilizzando un oggetto String.

Conclusioni. In questa recensione abbiamo esaminato come collegare il DHT 22 ad Arduino. Abbiamo fornito alcuni programmi di esempio per trasferire le informazioni dal sensore digitale al monitor hardware nella porta IDE di Arduino e al display OLED i2c. Esistono molti progetti di stazioni meteorologiche Arduino con sensore di temperatura e umidità DHT22, che potete costruire voi stessi leggendo le informazioni contenute in questa pagina.

5/5 - (1 vote)


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.