Nota
Ciao, benvenuto nella comunità di appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Accedi in anteprima agli annunci di nuovi prodotti e agli sneak peek.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e omaggi: Partecipa a giveaway e promozioni festive.
👉 Pronto per esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
Modulo Sensore di Umidità e Temperatura
Panoramica
L’umidità e la temperatura sono strettamente correlate, sia come grandezze fisiche che nella vita quotidiana delle persone. La temperatura e l’umidità dell’ambiente umano influenzano direttamente la funzione termoregolatoria e l’effetto di trasferimento del calore del corpo umano. Questo influisce ulteriormente sull’attività mentale e lo stato d’animo, influenzando così l’efficienza nello studio e nel lavoro.
La temperatura è una delle sette grandezze fisiche fondamentali nel Sistema Internazionale di Unità, utilizzata per misurare il grado di caldo e freddo di un oggetto. Il Celsius è una delle scale di temperatura più ampiamente utilizzate al mondo, espressa dal simbolo «℃».
L’umidità è la concentrazione di vapore acqueo presente nell’aria. L’umidità relativa dell’aria è comunemente utilizzata nella vita quotidiana ed è espressa in %RH. L’umidità relativa è strettamente correlata alla temperatura. Per un determinato volume di gas sigillato, maggiore è la temperatura, minore è l’umidità relativa, e minore è la temperatura, maggiore è l’umidità relativa.
Il DHT11, un sensore digitale di temperatura e umidità, è incluso in questo kit. Utilizza un sensore capacitivo di umidità e un termistore per misurare l’aria circostante e fornisce un segnale digitale sul pin dati.
Componenti necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Elite Explorer Kit |
300+ |
Puoi anche acquistarli separatamente dai link qui sotto.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
- |
|
Collegamenti
Schema Elettrico
Codice
Nota
Puoi aprire il file
07-humiture_sensor.inodal percorsoelite-explorer-kit-main\basic_project\07-humiture_sensordirettamente.Oppure copia questo codice nell’IDE di Arduino.
Nota
Per installare la libreria, usa il Library Manager di Arduino e cerca «DHT sensor library» e installala.
1/*
2 This code reads the temperature and humidity values from a DHT11 sensor
3 connected to pin 11 and prints them to the serial monitor.
4 It also calculates and prints the heat index value in both Celsius and Fahrenheit.
5
6 Board: Arduino Uno R4
7 Component: Temperature and humidity module(DHT11)
8 Library: https://github.com/adafruit/DHT-sensor-library (DHT sensor library by Adafruit)
9*/
10
11#include <DHT.h>
12
13#define DHTPIN 11 // Define the pin used to connect the sensor
14#define DHTTYPE DHT11 // Define the sensor type
15
16DHT dht(DHTPIN, DHTTYPE); // Create a DHT object
17
18void setup() {
19 // Initialize the serial communication
20 Serial.begin(9600);
21 Serial.println(F("DHT11 test!"));
22
23 dht.begin(); // Initialize the DHT sensor
24}
25
26void loop() {
27 // Wait a few seconds between measurements.
28 delay(2000);
29
30 // Reading temperature or humidity takes about 250 milliseconds!
31 // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
32 float h = dht.readHumidity();
33 // Read temperature as Celsius (the default)
34 float t = dht.readTemperature();
35 // Read temperature as Fahrenheit (isFahrenheit = true)
36 float f = dht.readTemperature(true);
37
38 // Check if any reads failed and exit early (to try again).
39 if (isnan(h) || isnan(t) || isnan(f)) {
40 Serial.println(F("Failed to read from DHT sensor!"));
41 return;
42 }
43
44 // Compute heat index in Fahrenheit (the default)
45 float hif = dht.computeHeatIndex(f, h);
46 // Compute heat index in Celsius (isFahreheit = false)
47 float hic = dht.computeHeatIndex(t, h, false);
48
49 // Print the humidity, temperature, and heat index values to the serial monitor
50 Serial.print(F("Humidity: "));
51 Serial.print(h);
52 Serial.print(F("% Temperature: "));
53 Serial.print(t);
54 Serial.print(F("°C "));
55 Serial.print(f);
56 Serial.print(F("°F Heat index: "));
57 Serial.print(hic);
58 Serial.print(F("°C "));
59 Serial.print(hif);
60 Serial.println(F("°F"));
61}
Dopo che il codice è stato caricato con successo, vedrai il Monitor Seriale stampare continuamente la temperatura e l’umidità, e man mano che il programma si stabilizza, questi due valori diventeranno sempre più accurati.
Analisi del Codice
Inclusione delle librerie necessarie e definizione delle costanti. Questa parte del codice include la libreria del sensore DHT e definisce il numero di pin e il tipo di sensore utilizzati in questo progetto.
Nota
Per installare la libreria, usa il Library Manager di Arduino e cerca «DHT sensor library» e installala.
#include <DHT.h> #define DHTPIN 11 // Definisci il pin utilizzato per collegare il sensore #define DHTTYPE DHT11 // Definisci il tipo di sensore
Creazione dell’oggetto DHT. Qui creiamo un oggetto DHT utilizzando il numero di pin e il tipo di sensore definiti.
DHT dht(DHTPIN, DHTTYPE); // Crea un oggetto DHT
Questa funzione viene eseguita una volta quando Arduino si avvia. Inizializziamo la comunicazione seriale e il sensore DHT in questa funzione.
void setup() { Serial.begin(9600); Serial.println(F("DHT11 test!")); dht.begin(); // Inizializza il sensore DHT }
Loop principale. La funzione
loop()viene eseguita continuamente dopo la funzione setup. Qui, leggiamo i valori di umidità e temperatura, calcoliamo l’indice di calore e stampiamo questi valori sul monitor seriale. Se la lettura del sensore fallisce (restituisce NaN), viene stampato un messaggio di errore.Nota
L”heat index è un modo per misurare quanto caldo si sente all’esterno combinando la temperatura dell’aria e l’umidità. È anche chiamato «temperatura percepita» o «temperatura apparente».
void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); float f = dht.readTemperature(true); if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("Failed to read from DHT sensor!")); return; } float hif = dht.computeHeatIndex(f, h); float hic = dht.computeHeatIndex(t, h, false); Serial.print(F("Humidity: ")); Serial.print(h); Serial.print(F("% Temperature: ")); Serial.print(t); Serial.print(F("°C ")); Serial.print(f); Serial.print(F("°F Heat index: ")); Serial.print(hic); Serial.print(F("°C ")); Serial.print(hif); Serial.println(F("°F")); }