Arduino-Code und Video für DHT22-Temperatur- und Feuchtigkeitssensor mit TM1637-Display und Relais

Arduino-Code und Video für DHT22-Temperatur- und Feuchtigkeitssensor mit TM1637-Display und Relais

In diesem Tutorial untersuchen wir, wie man einen DHT22-Temperatur- und Luftfeuchtigkeitssensor zusammen mit einem TM1637-Display und einem Relais verwendet, um eine Wechselstromlast, wie etwa eine Heizung oder einen Ventilator, zu steuern. Ziel ist es, die Last einzuschalten, wenn die Temperatur 50 Grad Celsius erreicht, und sie auszuschalten, wenn sie unter diese Schwelle fällt. Diese Einrichtung ist ideal, um gewünschte Temperaturwerte in einer kontrollierten Umgebung aufrechtzuerhalten.

DHT22 sensor with PCB-1

Um dies zu erreichen, werden wir ein Arduino-Programm schreiben, das Temperatur- und Feuchtigkeitsdaten vom DHT22-Sensor liest, die Temperatur auf dem TM1637-Display anzeigt und das Relais anhand der Temperaturmesswerte steuert. Zur besseren Veranschaulichung können Sie sich das Video (ab 10:00) ansehen.

Hardware erklärt

Die Hauptkomponenten dieses Projekts sind der DHT22-Sensor, das TM1637-Display, das Relaismodul und ein Arduino-Board. Der DHT22-Sensor ist dafür verantwortlich, Temperatur und Luftfeuchtigkeit zu messen und liefert digitale Signale, die das Arduino-Board leicht auslesen kann. Das TM1637-Display wird verwendet, um die Temperaturwerte in einem benutzerfreundlichen Format anzuzeigen, während das Relaismodul es uns ermöglicht, Hochspannungsgeräte wie Heizungen und Ventilatoren sicher zu steuern.

Der DHT22-Sensor hat drei Pins: VCC (Stromversorgung), GND (Masse) und DATA (Ausgang). Das TM1637-Display verwendet vier Pins für Stromversorgung, Masse, Takt und Datenkommunikation. Das Relaismodul wird an den Arduino angeschlossen und fungiert als Schalter für die Wechselstromlast, wodurch ein sicherer Betrieb beim Steuern von Geräten gewährleistet wird, die höhere Spannung benötigen.

Details zum Datenblatt

HerstellerAdafruit
TeilenummerDHT22
Logik-/I/O-Spannung3,3 V - 5,5 V
Versorgungsspannung3.3 V - 6 V
Ausgangsstrom (pro Kanal)0.5 mA
Spitzenstrom (pro Kanal)2,5 mA
Hinweise zur PWM-Frequenznicht zutreffend
Schwellenwerte der Eingangslogik0.3 V - 0.7 V
Spannungsabfall / RDS(on)/ SättigungNicht zutreffend
Thermische Grenzwerte-40 °C bis 80 °C
Paket3-poliges Gehäuse
Notizen / VariantenAuch bekannt als AM2302

  • Stellen Sie sicher, dass der DHT22 die richtige Versorgungsspannung (3.3 V - 6 V) erhält.
  • Verwenden Sie bei Bedarf Pull-up-Widerstände an der Datenleitung.
  • Warten Sie, bis sich die Sensorwerte stabilisiert haben, um genaue Daten zu erhalten.
  • Überprüfen Sie die Pinverbindungen doppelt, um Fehlkommunikation zu vermeiden.
  • Achten Sie bei Wechselstromlasten auf ordnungsgemäße Isolierung und Sicherheit.
  • Sorgen Sie für eine Wärmeableitung am Relais, wenn hohe Lasten geschaltet werden.
  • Verwenden Sie bei Bedarf Entprelltechniken, wenn Sie Sensordaten auslesen.
  • Schützen Sie den DHT22-Sensor vor direktem Sonnenlicht, um genaue Messwerte zu erhalten.

Verdrahtungsanleitung

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

Um die Komponenten zu verkabeln, beginnen Sie damit, den DHT22-Sensor anzuschließen. Verbinden Sie den VCC-Pin mit dem 5V-Pin am Arduino, den GND-Pin mit der Masse (GND) und den DATA-Pin mit dem digitalen Pin 9 am Arduino.

Als Nächstes verdrahten Sie das TM1637-Display. Verbinden Sie den VCC-Pin mit dem 5V-Pin des Arduino, den GND-Pin mit Masse, den CLK-Pin (Takt) mit dem digitalen Pin 2 und den DIO-Pin (Daten) mit dem digitalen Pin 3. Für das Relaismodul verbinden Sie den VCC-Pin mit dem 5V-Pin, den GND-Pin mit Masse und den Steuerpin (Signal) mit dem digitalen Pin 7. Stellen Sie abschließend sicher, dass die Wechselstromlast (AC) gemäß den Herstellerangaben sicher an das Relaismodul angeschlossen ist.

Codebeispiele & Schritt-für-Schritt-Anleitung

Der folgende Code initialisiert den DHT22-Sensor und das TM1637-Display. Er richtet die benötigten Pins ein und bereitet das Auslesen der Temperaturdaten vor.


#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 diesem Ausschnitt binden wir die notwendigen Bibliotheken ein und definieren die Pins für das TM1637-Display und den DHT22-Sensor. Die setup-Funktion initialisiert die serielle Kommunikation und setzt den Relais-Pin als Ausgang.

Wirig relay module to AC load

Die Loop-Funktion liest die Temperatur aus und steuert das Relais anhand des Messwerts. Wenn die Temperatur 50 Grad überschreitet, wird das Relais aktiviert.


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);
  }
}

Dieser Codeausschnitt zeigt, wie man die Temperatur liest, sie anzeigt und das Relais steuert. Die Temperatur wird gerundet und auf dem TM1637 angezeigt, und das Relais wird je nach Temperaturschwelle ein- oder ausgeschaltet.

Für ein umfassenderes Verständnis sehen Sie sich bitte den vollständigen Code an, der unter dem Artikel geladen ist.

Demonstration / Was Sie erwartet

Wenn Sie das Programm ausführen, wird die Temperatur auf dem TM1637 angezeigt. Überschreitet sie 50 °C, schaltet das Relais ein und die angeschlossene Wechselstromlast wird eingeschaltet. Fällt die Temperatur unter 50 °C, schaltet das Relais ab und die Last wird ausgeschaltet. Achten Sie auf verpolte Anschlüsse und stellen Sie korrekte Verbindungen sicher, um Beschädigungen der Bauteile zu vermeiden (im Video bei 12:30).

Video-Zeitstempel

  • 00:00- Einführung
  • 02:15- Erläuterung der Verdrahtung
  • 05:00- Code-Durchgang
  • 10:00- Demonstration
  • 12:30- Häufige Probleme

Bilder

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.
Sprache: C++
Kopiert!

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Dateien📁

Arduino-Bibliotheken (zip)

Fritzing-Datei

|||Benutzerhandbuch