Il DHT11 e DHT22 sono sensori di temperatura e umidità relativa che possono essere utilizzati per misurare queste condizioni ambientali.
Entrambi i sensori sono progettati per essere facili da utilizzare con Arduino e altre schede microcontrollore, ma ci sono alcune differenze tra i due.Il DHT11 è un sensore economico e facile da utilizzare, ideale per progetti di base o per l'uso in ambienti con temperature e umidità relativa stabili. Ha un'accuratezza inferiore rispetto al DHT22, ma è più economico e consuma meno energia.
Il DHT22, noto anche come AM2302, è un sensore più preciso e versatile rispetto al DHT11. Ha una maggiore gamma di misura per la temperatura e l'umidità relativa, e una maggiore accuratezza. Inoltre, è in grado di funzionare in una gamma più ampia di temperature e umidità relativa.
Per collegare il sensore DHT11 o DHT22 ad Arduino, è necessario utilizzare i pin di alimentazione, di dati e di GND. Il pin di alimentazione va collegato alla alimentazione (3-5V), il pin di dati va collegato ad un pin digitale dell'Arduino e il pin GND va collegato al GND dell'Arduino.
In particolare per il DHT11, essendo un sensore a bassa potenza, non richiede resistenze di pull-up sulla linea dati, mentre per il DHT22 è necessaria una resistenza di pull-up da 10kOhm tra la linea dati e la alimentazione.
Ecco un esempio di come collegare il sensore DHT11:
- Pin 1 (Vcc) al 3-5V di Arduino
- Pin 2 (Data) ad un pin digitale di Arduino (esempio: 2)
- Pin 3 (NC) non utilizzato
- Pin 4 (GND) al GND di Arduino
Ecco un esempio di come collegare il sensore DHT22:
- Pin 1 (Vcc) al 3-5V di Arduino
- Pin 2 (Data) ad un pin digitale di Arduino (esempio: 2) e una resistenza di pull-up da 10kOhm tra questo pin e la alimentazione
- Pin 3 (NC) non utilizzato
- Pin 4 (GND) al GND di Arduino
In entrambi i casi è importante rispettare la polarità delle connessioni per evitare danni al sensore o alla scheda Arduino.
Ecco un esempio di codice per misurare la temperatura e l'umidità con un sensore DHT11 e visualizzare i valori su un display LCD 16x2 I2C:
In questo esempio, si utilizza la libreria DHT per leggere i valori di temperatura e umidità dal sensore DHT11 e la libreria LiquidCrystal_I2C per la comunicazione con il display LCD. Il codice imposta la connessione con il display LCD, legge i valori di temperatura e umidità dal sensore DHT11 e li visualizza sulla prima e seconda riga del display LCD.
In generale, il DHT11 e DHT22 sono entrambi sensori affidabili e facili da utilizzare per misurare la temperatura e l'umidità relativa.
La scelta tra i due dipende dalle esigenze specifiche del progetto e dall'accuratezza richiesta. Utilizzando questi sensori in combinazione con un display LCD, è possibile creare progetti interessanti come un sistema di monitoraggio dell'ambiente, un sistema di controllo dell'irrigazione o un sistema di allarme per umidità eccessiva.
E PER MISURARE IL PUNTO DI RUGIADA?
T = temperatura in gradi Celsius
rh = umidità relativa in percentuale
#include <DHT.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { lcd.begin(); lcd.backlight(); dht.begin(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); // Calcolare il punto di rugiada utilizzando la formula di Magnus-Tetens double Td = (243.04*(log(h/100) + ((17.625*t)/(243.04 + t))))/(17.625 - log(h/100) - ((17.625*t)/(243.04 + t))); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Temp: "); lcd.print(t); lcd.print(" C"); lcd.setCursor(0, 1); lcd.print("Dew point: "); lcd.print(Td); lcd.print(" C"); delay(2000); }


Nessun commento:
Posta un commento