Nota
Ciao, benvenuto nella community SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirsi?
Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime esclusive: Accedi in anteprima agli annunci di nuovi prodotti.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni e omaggi festivi: Partecipa a omaggi e promozioni speciali durante le festività.
👉 Pronto per esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
2.32 Modulo DHT11
Panoramica
In questa lezione imparerai a utilizzare il Modulo DHT11. Il DHT11 è un sensore digitale di temperatura e umidità economico e basilare. Utilizza un sensore capacitivo di umidità e un termistore per misurare l’aria circostante, emettendo un segnale digitale sul pin dati (non sono necessari pin di input analogico).
Componenti necessari
Circuito Fritzing
In questo esempio, possiamo collegare direttamente i pin del Modulo DHT11 ai pin della scheda Mega 2560 e utilizzare il pin 4 per leggere il segnale del Modulo DHT11. Collega il pin「+」del Modulo DHT11 al 5V, il pin「-」al GND e il pin OUT al pin 4.
Schema di cablaggio
Codice
Nota
Puoi aprire direttamente il file
2.32_dhtModule.inonella cartellasunfounder_vincent_kit_for_arduino\code\2.32_dhtModule.La libreria
DHT sensor libraryè utilizzata qui, puoi installarla dal Library Manager.
Dopo aver caricato il codice sulla scheda Mega2560, il monitor seriale continuerà a mostrare i valori correnti di temperatura e umidità dell’ambiente.
Analisi del codice
Include la libreria
DHT.h, che fornisce funzioni per interagire con i sensori DHT. Successivamente, definisce il pin e il tipo di sensore DHT.#include "DHT.h" #define DHTPIN 4 // Imposta il pin collegato al pin dati del DHT11 #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE);
Inizializza la comunicazione seriale con una velocità di trasmissione di 115200 baud e il sensore DHT.
void setup() { Serial.begin(115200); Serial.println("DHT11 test!"); dht.begin(); }
Nella funzione
loop(), legge i valori di temperatura e umidità dal sensore DHT11 e li stampa sul monitor seriale.void loop() { // Aspetta alcuni secondi tra una misurazione e l'altra. delay(2000); // La lettura della temperatura o dell'umidità richiede circa 250 millisecondi! // Le letture del sensore possono essere 'vecchie' fino a 2 secondi (è un sensore molto lento) float humidity = dht.readHumidity(); // Legge la temperatura in gradi Celsius (impostazione predefinita) float temperture = dht.readTemperature(); // Controlla se le letture non sono valide ed esce immediatamente (per riprovare). if (isnan(humidity) || isnan(temperture)) { Serial.println("Failed to read from DHT sensor!"); return; } // Stampa l'umidità e la temperatura Serial.print("Humidity: "); Serial.print(humidity); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(temperture); Serial.println(" *C"); }
La funzione
dht.readHumidity()è chiamata per leggere il valore di umidità dal sensore DHT.La funzione
dht.readTemperature()è chiamata per leggere il valore di temperatura dal sensore DHT.La funzione
isnan()viene utilizzata per verificare se le letture sono valide. Se il valore di umidità o temperatura è NaN (non un numero), indica una lettura non riuscita dal sensore, e viene stampato un messaggio di errore.
Immagine del fenomeno