Codice Arduino e video per il sensore di temperatura e umidità DHT22 con display TM1637 e relè

Codice Arduino e video per il sensore di temperatura e umidità DHT22 con display TM1637 e relè

In questo tutorial esploreremo come utilizzare un sensore di temperatura e umidità DHT22 in combinazione con un display TM1637 e un relè per controllare un carico in corrente alternata, come un riscaldatore o una ventola. L'obiettivo è accendere il carico quando la temperatura raggiunge i 50 gradi Celsius e spegnerlo quando scende al di sotto di tale soglia. Questa configurazione è ideale per mantenere i livelli di temperatura desiderati in un ambiente controllato.

DHT22 sensor with PCB-1

Per ottenere questo, scriveremo un programma Arduino che legge i dati di temperatura e umidità dal sensore DHT22, visualizza la temperatura sul display TM1637 e controlla il relè in base alle letture della temperatura. Per maggiore chiarezza, puoi consultare il video (nel video al 10:00).

Hardware spiegato

Le componenti principali di questo progetto includono il sensore DHT22, il display TM1637, il modulo relè e una scheda Arduino. Il sensore DHT22 è responsabile della misurazione della temperatura e dell'umidità, fornendo un'uscita digitale che l'Arduino può leggere facilmente. Il display TM1637 viene utilizzato per mostrare le letture della temperatura in un formato intuitivo, mentre il modulo relè ci permette di controllare in modo sicuro dispositivi ad alta tensione come riscaldatori e ventilatori.

Il sensore DHT22 ha tre pin: VCC (alimentazione), GND (massa) e DATA (uscita). Il display TM1637 utilizza quattro pin per alimentazione, massa, clock e comunicazione dei dati. Il modulo relè si collega all'Arduino e funge da interruttore per il carico in corrente alternata, garantendo un funzionamento sicuro quando si controllano dispositivi che richiedono tensioni più elevate.

Dettagli della scheda tecnica

ProduttoreAdafruit
Numero di parteDHT22
Tensione logica/IO3.3 V - 5.5 V
Tensione di alimentazione3,3 V - 6 V
Corrente di uscita (per canale)0.5 mA
Corrente di picco (per canale)2,5 mA
Linee guida sulla frequenza PWMNon applicabile
Soglie logiche di ingresso0.3 V - 0.7 V
Caduta di tensione / RDS(on)/ saturazioneNon applicabile
Limiti termici-40°C a 80°C
Pacchettoinvolucro a 3 pin
Note / variantiNoto anche come AM2302

  • Assicurarsi di fornire un'alimentazione adeguata (3,3 V - 6 V) al DHT22.
  • Usare resistenze di pull-up sulla linea dati se necessario.
  • Lasciare che le letture del sensore si stabilizzino per ottenere dati accurati.
  • Ricontrollare i collegamenti dei pin per evitare errori di comunicazione.
  • Fai attenzione ai carichi in corrente alternata (AC); assicurati di avere un adeguato isolamento e di rispettare le norme di sicurezza.
  • Prevedere un dissipatore di calore per il relè se si controllano carichi elevati.
  • Utilizzare tecniche di debounce, se necessario, durante la lettura dei dati del sensore.
  • Proteggi il sensore DHT22 dalla luce solare diretta per misurazioni accurate.

Istruzioni di cablaggio

Wiring DHT11 DHT22 with TM1637 dispaly and relay
Wiring DHT11 DHT22 with TM1637 dispaly and relay

Per collegare i componenti, inizia collegando il sensore DHT22. Collega il pin VCC al pin 5V dell'Arduino, il pin GND alla massa (GND) e il pin DATA al pin digitale 9 dell'Arduino.

Successivamente, collegare il display TM1637. Collegare il pin VCC al pin 5V dell'Arduino, il pin GND a massa, il pin CLK (clock) al pin digitale 2 e il pin DIO (data) al pin digitale 3. Per il modulo relè, collegare il pin VCC al pin 5V, il pin GND a massa e il pin di controllo (segnale) al pin digitale 7. Infine, assicurarsi che il carico in corrente alternata sia collegato in modo sicuro al modulo relè seguendo le indicazioni del produttore.

Esempi di codice e guida passo-passo

Il codice seguente inizializza il sensore DHT22 e il display TM1637. Configura i pin necessari e si prepara a leggere i dati di temperatura.


#include 
#define CLK 2
#define DIO 3
#define DHTPIN 9
DHT dht(DHTPIN, DHTTYPE);
void setup() {
  Serial.begin(9600);
  pinMode(RELAY, OUTPUT);
  dht.begin();
}

In questo frammento di codice includiamo le librerie necessarie e definiamo i pin per il display TM1637 e il sensore DHT22. La funzione setup inizializza la comunicazione seriale e imposta il pin del relè come uscita.

Wirig relay module to AC load

La funzione loop recupera la temperatura e controlla il relè in base alla lettura della temperatura. Se la temperatura supera i 50 gradi, il relè viene attivato.


void loop() {
  delay(TEST_DELAY);
  int temp = round(getTemp("c"));
  display.showNumberDec(temp, false, 3, 1);
  if(temp > 50) {
    digitalWrite(RELAY, LOW);
  } else {
    digitalWrite(RELAY, HIGH);
  }
}

Questo frammento di codice dimostra come leggere la temperatura, visualizzarla e controllare il relè. La temperatura viene arrotondata e visualizzata sul TM1637, e il relè viene acceso o spento in base alla soglia di temperatura.

Per una comprensione più approfondita, si prega di consultare il codice completo caricato sotto l'articolo.

Dimostrazione / Cosa aspettarsi

Quando esegui il programma, dovresti vedere la temperatura visualizzata sul TM1637. Quando la temperatura supera i 50 gradi Celsius, il relè si attiverà, accendendo il carico AC collegato. Viceversa, quando la temperatura scende sotto i 50 gradi, il relè si disattiverà, spegnendo il carico. Fai attenzione alla polarità invertita e assicurati che i collegamenti siano corretti per evitare danni ai componenti (nel video a 12:30).

Marcatori temporali del video

  • 00:00- Introduzione
  • 02:15- Spiegazione del cablaggio
  • 05:00- Analisi guidata del codice
  • 10:00- Dimostrazione
  • 12:30- Problemi comuni

Immagini

DHT11 Module
DHT11 Module
DHT22 sensor with PCB-1
DHT22 sensor with PCB-1
DHT22 sensor no PCB
DHT22 sensor no PCB
Wirig relay module to AC load
Wirig relay module to AC load
Wiring DHT11 DHT22 with TM1637 dispaly and relay
Wiring DHT11 DHT22 with TM1637 dispaly and relay
57-Arduino code for a DHT11 DHT22 temperature and humidity sensor with a TM1637 display.
Lingua: C++
Copia!

Cose di cui potresti avere bisogno

Risorse e riferimenti

File📁

Librerie Arduino (zip)

File Fritzing

Manuale dell'utente