Nota

Ciao, benvenuto nella Community di SunFounder per appassionati di Raspberry Pi, Arduino ed ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti?

  • 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 agli annunci di nuovi prodotti e anteprime speciali.

  • Sconti Speciali: Godi di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni e Omaggi Festivi: Partecipa a omaggi e promozioni festive.

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

5.13 Temperatura - Umidità

Il DHT11 è un sensore di temperatura e umidità comunemente utilizzato per le misurazioni ambientali. Si tratta di un sensore digitale che comunica con un microcontrollore per fornire letture di temperatura e umidità.

In questo progetto, leggeremo il sensore DHT11 e stamperemo i valori di temperatura e umidità rilevati.

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 sull’umidità e altro ancora.

Componenti Necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

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

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit di Partenza ESP32

320+

ESP32 Starter Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK DI ACQUISTO

ESP32 Scheda

ACQUISTA

Estensione Fotocamera ESP32

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Sensore di Temperatura e Umidità DHT11

ACQUISTA

  • Pin Disponibili

    Ecco un elenco di pin disponibili sulla scheda ESP32 per questo progetto.

    Pin Disponibili

    IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23

Schema Elettrico

../../_images/circuit_5.13_dht11.png

Cablaggio

../../_images/5.13_dht11_bb.png

Codice

Nota

  • Apri il file 5.13_dht11.py situato nel percorso esp32-starter-kit-main\micropython\codes, oppure copia e incolla il codice in Thonny. Poi, clicca su «Esegui Script Corrente» o premi F5 per eseguirlo.

  • Assicurati di selezionare l’interprete «MicroPython (ESP32).COMxx» nell’angolo in basso a destra.

import dht
import machine
import time

# Inizializza il sensore DHT11 e collegalo al pin 14
sensor = dht.DHT11(machine.Pin(14))

# Ciclo infinito per misurare continuamente temperatura e umidità
while True:
    try:
        # Misura la temperatura e l'umidità
        sensor.measure()

        # Ottieni i valori di temperatura e umidità
        temp = sensor.temperature()
        humi = sensor.humidity()

        # Stampa la temperatura e l'umidità
        print("Temperature: {}, Humidity: {}".format(temp, humi))

        # Attendi 1 secondo tra una misurazione e l'altra
        time.sleep(1)
    except Exception as e:
        print("Error: ", e)
        time.sleep(1)

Quando il codice è in esecuzione, vedrai che la Shell stampa continuamente la temperatura e l’umidità, e man mano che il programma continua a funzionare, questi due valori diventeranno sempre più precisi.

Approfondisci

Puoi anche visualizzare la temperatura e l’umidità sul display LCD1602 I2C.

../../_images/5.13_dht11_lcd_bb.png

Nota

  • Apri il file 5.13_dht11_lcd.py situato nel percorso esp32-starter-kit-main\micropython\codes, oppure copia e incolla il codice in Thonny. Poi, clicca su «Esegui Script Corrente» o premi F5 per eseguirlo.

  • Assicurati di selezionare l’interprete «MicroPython (ESP32).COMxx» nell’angolo in basso a destra.

  • Qui devi utilizzare la libreria chiamata lcd1602.py, verifica se è stata caricata su ESP32, per un tutorial dettagliato fai riferimento a 1.4 Carica le Librerie (Importante).

import dht
import machine
import time
from lcd1602 import LCD

# Inizializza il sensore DHT11 e collegalo al pin 14
sensor = dht.DHT11(machine.Pin(14))

# Inizializza il display LCD1602
lcd = LCD()

# Ciclo per misurare temperatura e umidità
while True:
    try:
        # Misura la temperatura e l'umidità
        sensor.measure()

        # Ottieni i valori di temperatura e umidità
        temp = sensor.temperature()
        humi = sensor.humidity()

        # Stampa la temperatura e l'umidità
        print("Temperature: {}, Humidity: {}".format(temp, humi))

        # Cancella il display LCD
        lcd.clear()

        # Visualizza la temperatura e l'umidità sullo schermo LCD1602
        lcd.write(0, 0, "Temp: {}\xDFC".format(temp))
        lcd.write(0, 1, "Humi: {}%".format(humi))

        # Attendi 2 secondi prima di misurare nuovamente
        time.sleep(2)

    except Exception as e:
        print("Error: ", e)
        time.sleep(2)