.. note::
Ciao, benvenuto nella Community di Appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.
**Perché unirsi a noi?**
- **Supporto Esperto**: Risolvi problemi post-vendita e sfide tecniche con l'aiuto della nostra community e del nostro team.
- **Impara e Condividi**: Scambia consigli e tutorial per migliorare le tue competenze.
- **Anteprime Esclusive**: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime.
- **Sconti Speciali**: Goditi sconti esclusivi sui nostri prodotti più recenti.
- **Promozioni Festive e Giveaway**: Partecipa a giveaway e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi!
.. _ar_dht11:
5.13 Temperatura - UmiditÃ
=======================================
Il DHT11 è un sensore di temperatura e umidità comunemente utilizzato per misurazioni ambientali. Si tratta di un sensore digitale che comunica con un microcontrollore per fornire letture di temperatura e umidità .
In questo progetto, leggeremo i dati del sensore DHT11 e stamperemo i valori di temperatura e umidità che rileva.
Leggendo i dati forniti dal sensore, possiamo ottenere i valori attuali di temperatura e umidità nell'ambiente. Questi valori possono essere utilizzati per il monitoraggio in tempo reale delle condizioni ambientali, osservazioni meteorologiche, controllo del clima interno, report di umidità e altro ancora.
**Componenti Necessari**
In questo progetto, avremo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Nome
- ELEMENTI IN QUESTO KIT
- LINK
* - ESP32 Starter Kit
- 320+
- |link_esp32_starter_kit|
Puoi anche acquistarli separatamente dai link sottostanti.
.. list-table::
:widths: 30 20
:header-rows: 1
* - INTRODUZIONE AI COMPONENTI
- LINK PER L'ACQUISTO
* - :ref:`cpn_esp32_wroom_32e`
- |link_esp32_wroom_32e_buy|
* - :ref:`cpn_esp32_camera_extension`
- |link_esp32_extension_board|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_dht11`
- |link_dht11_buy|
* **Pin Disponibili**
Ecco un elenco dei pin disponibili sulla scheda ESP32 per questo progetto.
.. list-table::
:widths: 5 20
* - Pin Disponibili
- IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23
**Schema**
.. image:: ../../img/circuit/circuit_5.13_dht11.png
**Cablaggio**
.. image:: ../../img/wiring/5.13_dht11_bb.png
**Codice**
.. note::
* Apri il file ``5.13_dht11.ino`` nel percorso ``esp32-starter-kit-main\c\codes\5.13_dht11``.
* Dopo aver selezionato la scheda (ESP32 Dev Module) e la porta appropriata, clicca sul pulsante **Carica**.
* :ref:`unknown_com_port`
* Qui viene utilizzata la libreria ``DHT sensor library``, che puoi installare dal **Library Manager**.
.. image:: img/dht_lib.png
.. raw:: html
Ricorda di impostare la velocità di comunicazione seriale a 115200 baud.
Dopo che il codice è stato caricato con successo, vedrai il Serial Monitor stampare continuamente la temperatura e l'umidità , e man mano che il programma prosegue, questi due valori diventeranno sempre più accurati.
**Come funziona?**
#. Include la libreria ``DHT.h``, che fornisce funzioni per interagire con i sensori DHT. Poi, imposta il pin e il tipo per il sensore DHT.
.. code-block:: arduino
#include "DHT.h"
#define DHTPIN 14 // Imposta il pin collegato al pin dati del DHT11
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#. Inizializza la comunicazione seriale a una velocità di 115200 baud e inizializza il sensore DHT.
.. code-block:: arduino
void setup() {
Serial.begin(115200);
Serial.println("DHT11 test!");
dht.begin();
}
#. Nella funzione ``loop()``, leggi i valori di temperatura e umidità dal sensore DHT11, e stampali sul monitor seriale.
.. code-block:: arduino
void loop() {
// Attendi qualche secondo tra le misurazioni.
delay(2000);
// La lettura di temperatura o umidità richiede circa 250 millisecondi!
// Le letture del sensore possono essere anche vecchie di 2 secondi (è un sensore molto lento)
float humidity = dht.readHumidity();
// Leggi la temperatura in Celsius (impostazione predefinita)
float temperature = dht.readTemperature();
// Controlla se una delle letture è fallita ed esci (per riprovare).
if (isnan(humidity) || isnan(temperature)) {
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()`` viene chiamata per leggere il valore di umidità dal sensore DHT.
* La funzione ``dht.readTemperature()`` viene chiamata per leggere il valore di temperatura dal sensore DHT.
* La funzione ``isnan()`` viene utilizzata per verificare se le letture sono valide. Se uno dei valori di umidità o temperatura è NaN (non un numero), indica una lettura fallita dal sensore, e viene stampato un messaggio di errore.
**Per Saperne di Più**
Puoi anche visualizzare la temperatura e l'umidità su un LCD I2C 1602.
.. note::
* Puoi aprire il file ``5.10_thermistor_lcd.ino`` nel percorso ``euler-kit/arduino/5.10_thermistor_lcd``.
* Dopo aver selezionato la scheda (ESP32 Dev Module) e la porta appropriata, clicca sul pulsante **Carica**.
* Qui vengono utilizzate le librerie ``LiquidCrystal_I2C`` e ``DHT sensor library``, che puoi installare dal **Library Manager**.
.. raw:: html