Termometro Arduino con display TM1637 e DHT11

Progetto di termometro su Arduino con modulo TM1637 e sensore DS18B20 o sensore di temperatura digitale DHT22 / LM35 – progetto semplice per principianti. Abbiamo deciso di fare una breve rassegna di tre varianti di termometro su indicatore LED a quattro caratteri TM1637. In questa pagina abbiamo inserito gli schemi di montaggio del progetto con i programmi per il microcontrollore Arduino e il modulo display TM1637.




Per questa attività sono necessari:

Per scegliere un sensore di temperatura per questo progetto, prestate attenzione alle sue caratteristiche. Il sensore ds18b20 ha un campo di misura della temperatura di -55 … +125°C con un errore non superiore a 0,5 gradi. Il sensore lm35 non è in grado di misurare temperature negative e ha un errore di misura di 2°C. Il sensore di temperatura digitale DHT22 misura nell’intervallo -40 … +150°C e può anche misurare l’umidità dell’aria.

Arduino termometro con display TM1637 e DHT22

Arduino termometro con TM1637 e DHT22
Termometro Arduino con display TM1637 e sensore DHT22

Per realizzare il progetto è possibile utilizzare il sensore di temperatura e umidità DHT11, ma il sensore DHT22 offre la massima precisione di misurazione per creare un termometro. Lo schema di assemblaggio del progetto non cambierà e sarà sufficiente cambiare il tipo di sensore utilizzato nel programma. È sufficiente assemblare il circuito del termometro con il modulo TM1637 e caricare il programma nel microcontrollore Arduino Uno.

Programma Arduino per termometro con TM1637 e DHT22




#include "TM1637Display.h"
TM1637Display display(3, 2); // CLC, DIO 
 
#include "DHT.h"
DHT dht(8, DHT22);

const uint8_t C[] = {
  SEG_B | SEG_A | SEG_F | SEG_G,
  SEG_A | SEG_D | SEG_E | SEG_F
};

void setup() {
  dht.begin();
  Serial.begin(9600);
  display.setBrightness(4);
}

void loop() {
  int t = dht.readTemperature();

  Serial.print("Temperature: ");
  Serial.println(t);

  display.showNumberDecEx(t, (0x80 >> 0), false, 2, 0);
  display.setSegments(C, 2, 2);

  delay(100);
}

Spiegazione del codice per termometro con DHT22 e display TM1637:



  1. è possibile utilizzare il sensore DHT11 modificando il programma;
  2. se sono collegati più display, ogni modulo deve avere il proprio nome nel programma e nei pin di collegamento, ad esempio:
    TM1637Display display1 (3, 2);
    TM1637Display display2 (4, 5);

Arduino termometro con display TM1637 e LM35

Arduino termometro con TM1637 e LM35
Termometro Arduino con display TM1637 e sensore LM35

Nella seconda variante del progetto utilizziamo le letture del sensore di temperatura analogico LM35 per creare un termometro basato sul modulo TM1637 e Arduino. Questo sensore non richiede calibrazioni o regolazioni di precisione; il segnale elettrico del sensore LM35 è proporzionale ai gradi Celsius. La temperatura verrà visualizzata sui primi due segmenti del display, mentre sugli altri due segmenti verrà visualizzata l’icona dei gradi.

Programma Arduino per termometro con TM1637 e LM35

#include "TM1637Display.h"
TM1637Display display(3, 2); // CLC, DIO

const uint8_t C[] = {
  SEG_B | SEG_A | SEG_F | SEG_G,
  SEG_A | SEG_D | SEG_E | SEG_F
};

void setup() {
  pinMode(A1, INPUT);
  Serial.begin(9600);
  display.setBrightness(4);
}

void loop() {
  int t = analogRead(A1);
  int temp = (t / 1023.0) * 5.0 * 1000 / 10;

  Serial.print("Temperature: ");
  Serial.println(temp);

  display.showNumberDecEx(temp, (0x80 >> 0), false, 2, 0);
  display.setSegments(C, 2, 2);

  delay(100);
}

Spiegazione del codice per termometro con LM35 e display TM1637:

  1. la luminosità del display passa da 0 a 7 nel comando display.setBrightness();

Arduino termometro con display TM1637 e DS18B20

Arduino termometro con TM1637 e DS18B20
Termometro Arduino con display TM1637 e sensore DS18B20

La terza variante del progetto utilizza un sensore di temperatura sigillato DS18B20. Abbiamo già considerato la connessione del sensore DS18B20 ad Arduino, che interagisce con il microcontrollore Arduino utilizzando la libreria DallasTemperature.h. Lo schema mostra il collegamento del sensore alla scheda, ricordando che durante l’assemblaggio del termometro è necessario aggiungere una resistenza da 4,7 kOhm tra i pin 5V e Data del sensore.

Programma Arduino per termometro con TM1637 e DS18B20

#include "TM1637Display.h"
TM1637Display display(3, 2); // CLC, DIO

#include "OneWire.h"
#include "DallasTemperature.h"
OneWire oneWire(10);
DallasTemperature ds(&oneWire);

const uint8_t C[] = {
  SEG_B | SEG_A | SEG_F | SEG_G,
  SEG_A | SEG_D | SEG_E | SEG_F
};

void setup() {
  ds.begin();
  Serial.begin(9600);
  display.setBrightness(4);
}

void loop() {
  ds.requestTemperatures();
  int t = ds.getTempCByIndex(0);

  Serial.print("Temperature: ");
  Serial.println(t);

  display.showNumberDecEx(t, (0x80 >> 0), false, 2, 0);
  display.setSegments(C, 2, 2);

  delay(100);
}

Spiegazione del codice per termometro con DS18B20 e display TM1637:

  1. le informazioni sulla temperatura vengono inoltre trasmesse alla porta seriale.

Conclusioni. Oltre alle varianti del termometro su scheda Arduino con modulo display a quattro cifre presentate in questa recensione, sul nostro sito potete trovare anche il progetto di un termometro su display LCD 1602 o di una stazione meteorologica con modulo bluetooth. Se avete domande sulla costruzione o sulla programmazione di un termometro basato sul microcontrollore Arduino, lasciatele nei commenti a questo post.

5/5 - (1 vote)


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.