Nota

Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Unisciti agli appassionati per approfondire Raspberry Pi, Arduino ed ESP32 insieme a noi.

Perché unirti?

  • Supporto esperto: Risolvi problemi post-vendita e affronta 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: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime esclusive.

  • Sconti speciali: Approfitta di sconti riservati sui nostri prodotti più recenti.

  • Promozioni e omaggi festivi: Partecipa a promozioni e omaggi durante le festività.

👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!

5.11.3 Temperatura - Umidità

Temperatura e umidità sono strettamente correlate, sia come grandezze fisiche che nella vita quotidiana delle persone. La temperatura e l’umidità dell’ambiente umano influiscono direttamente sulla funzione di termoregolazione e sull’effetto di trasferimento del calore del corpo umano. Questo influisce ulteriormente sull’attività mentale e sullo stato psicologico, e di conseguenza sull’efficienza del nostro studio e lavoro.

La temperatura è una delle sette grandezze fisiche fondamentali nel Sistema Internazionale di Unità, utilizzata per misurare il grado di calore o freddo di un oggetto. Il Celsius è una delle scale di temperatura più utilizzate al mondo, rappresentata dal simbolo «℃».

L’umidità è la concentrazione di vapore acqueo presente nell’aria. Nella vita quotidiana si utilizza comunemente l’umidità relativa dell’aria, espressa in %RH. L’umidità relativa è strettamente legata alla temperatura. Per un certo volume di gas sigillato, maggiore è la temperatura, minore è l’umidità relativa, e minore è la temperatura, maggiore è l’umidità relativa.

../_images/Dht11.png

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 ed emette un segnale digitale sul pin dei dati.

Componenti necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

È sicuramente comodo acquistare un intero kit, ecco il link:

Nome

OGGETTI IN QUESTO KIT

LINK

Kit Starter 3 in 1

380+

3 in 1 Starter Kit

Puoi anche acquistarli separatamente dai link qui sotto.

INTRODUZIONE COMPONENTI

LINK DI ACQUISTO

Scheda SunFounder R3

ACQUISTA

Breadboard

ACQUISTA

Cavi di Collegamento

ACQUISTA

Sensore di Temperatura e Umidità DHT11

-

Schema

../_images/circuit_7.3_dht11.png

Collegamenti

../_images/dht11_bb.jpg

Codice

Nota

  • Apri il file 5.11.temperature_humidity.ino nel percorso 3in1-kit\basic_project\5.11.temperature_humidity.

  • Oppure copia questo codice nell”Arduino IDE.

  • Qui viene utilizzata la DHT sensor library, che puoi installare dal Library Manager.

    ../_images/lib_dht11.png

Dopo aver caricato correttamente il codice, 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.

Come funziona?

  1. Includi la libreria DHT.h, che fornisce funzioni per interagire con i sensori DHT. Successivamente, imposta il pin e il tipo per il sensore DHT.

    #include "DHT.h"
    
    #define DHTPIN 11  // Set the pin connected to the DHT11 data pin
    #define DHTTYPE DHT11 // DHT 11
    
    DHT dht(DHTPIN, DHTTYPE);
    
  2. Inizializza la comunicazione seriale a una velocità di trasmissione di 115200 e inizializza il sensore DHT.

    void setup() {
        Serial.begin(115200);
        Serial.println("DHT11 test!");
        dht.begin();
    }
    
  3. Nella funzione loop(), leggi i valori di temperatura e umidità dal sensore DHT11 e stampali sul monitor seriale.

    void loop() {
        // Wait a few seconds between measurements.
        delay(2000);
    
        // Reading temperature or humidity takes about 250 milliseconds!
        // Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
        float humidity = dht.readHumidity();
        // Read temperature as Celsius (the default)
        float temperture = dht.readTemperature();
    
        // Check if any reads failed and exit early (to try again).
        if (isnan(humidity) || isnan(temperture)) {
            Serial.println("Failed to read from DHT sensor!");
            return;
        }
        // Print the humidity and temperature
        Serial.print("Humidity: ");
        Serial.print(humidity);
        Serial.print(" %\t");
        Serial.print("Temperature: ");
        Serial.print(temperture);
        Serial.println(" *C");
    }
    
    • La funzione dht.readHumidity() viene chiamata per leggere il valore dell’umidità dal sensore DHT.

    • La funzione dht.readTemperature() viene chiamata per leggere il valore della temperatura dal sensore DHT.

    • La funzione isnan() viene utilizzata per verificare se le letture sono valide. Se il valore dell’umidità o della temperatura è NaN (not a number), indica una lettura fallita dal sensore, e viene stampato un messaggio di errore.