Nota

Ciao, benvenuto nella Community di Appassionati di Raspberry Pi & Arduino & ESP32 di SunFounder su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché Unirsi?

  • Supporto da Esperti: 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: Ottieni accesso anticipato agli annunci dei nuovi prodotti e alle anteprime.

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

  • Promozioni e Giveaway Festivi: Partecipa ai giveaway e alle promozioni festive.

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

6.2 Temperatura - Umidità

Temperatura e umidità sono strettamente correlate, sia come grandezze fisiche che nella vita quotidiana. La temperatura e l’umidità dell’ambiente in cui viviamo influenzano direttamente la funzione termoregolatrice e l’effetto del trasferimento di calore del nostro corpo. Questi fattori influenzano ulteriormente l’attività mentale e lo stato d’animo, condizionando 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 grado Celsius è una delle scale di temperatura più utilizzate al mondo, espresso dal simbolo «℃».

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

img_Dht11

In questo kit è incluso un sensore digitale di base per la temperatura e l’umidità, il DHT11. Utilizza un sensore di umidità capacitivo e un termistore per misurare l’aria circostante e produce un segnale digitale sui pin dati (non sono richiesti pin di ingresso analogici).

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

Kepler Kit

450+

Kepler Ultimate Kit

Puoi anche acquistarli separatamente dai link sottostanti.

SN

COMPONENTE

QUANTITÀ

LINK

1

Introduzione al Pico W

1

ACQUISTA

2

Cavo Micro USB

1

3

Breadboard

1

ACQUISTA

4

Cavi Jumper

Diversi

ACQUISTA

5

Sensore di Umidità e Temperatura DHT11

1

ACQUISTA

Schema

sch_dht11

Cablaggio

wiring_dht11

Codice

Nota

  • Apri il file 6.2_temperature_humidity.py nel percorso kepler-kit-main/micropython oppure copia questo codice in Thonny, quindi clicca su «Run Current Script» o semplicemente premi F5 per eseguirlo.

  • Non dimenticare di selezionare l’interprete «MicroPython (Raspberry Pi Pico)» nell’angolo in basso a destra.

  • Per tutorial dettagliati, fai riferimento a Aprire ed Eseguire Codice Direttamente.

  • Qui è necessario utilizzare la libreria chiamata dht.py, verifica se è stata caricata su Pico W; per un tutorial dettagliato, fai riferimento a 1.4 Caricare le Librerie su Pico.

from machine import Pin
import utime as time
from dht import DHT11, InvalidPulseCount

pin = Pin(16, Pin.IN)
sensor = DHT11(pin)
time.sleep(5)  # ritardo iniziale

while True:
    try:
        sensor.measure()
        string = "Temperature:{}\nHumidity: {}".format(sensor.temperature, sensor.humidity)
        print(string)
        time.sleep(4)

    except InvalidPulseCount as e:
        print('Bad pulse count - retrying ...')

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

Come funziona?

Nella libreria dht, abbiamo integrato la funzionalità rilevante nella classe DHT11.

from dht import DHT11, InvalidPulseCount

Inizializza l’oggetto DHT11. Questo dispositivo richiede solo un ingresso digitale per essere utilizzato.

pin = Pin(16, Pin.IN)
sensor = DHT11(pin)

Usa sensor.measure() per leggere la temperatura e l’umidità correnti, che verranno memorizzate in sensor.temperature, sensor.humidity. Questi dati vengono poi stampati. Infine, poiché la frequenza di campionamento del DHT11 è di 1Hz, è necessario un time.sleep(1) nel loop.

while True:
    try:
        sensor.measure()
        string = "Temperature:{}\nHumidity: {}".format(sensor.temperature, sensor.humidity)
        print(string)
        time.sleep(4)

    except InvalidPulseCount as e:
        print('Bad pulse count - retrying ...')