Luftfeuchtigkeit und Temperatur sind gängige Parameter zur Messung der Umgebungsbedingungen. In diesem Arduino-basierten Projekt werden wir Umgebungstemperatur und Luftfeuchtigkeit messen und auf einem 16x2-LCD-Bildschirm anzeigen. Ein kombinierter Temperatur- und Luftfeuchtigkeitssensor DHT11 wird mit Arduino uno verwendet, um dieses Projekt zur Messung des Celsius-Thermometers und der prozentualen Feuchtigkeitsmessung zu entwickeln. In einem meiner vorherigen Projekte habe ich auch ein digitales Thermometer mit dem Temperatursensor LM35 entwickelt.
Dieses Projekt besteht aus drei Abschnitten - einer erfasst die Luftfeuchtigkeit und Temperatur mithilfe des Feuchtigkeits- und Temperatursensors DHT11. Der zweite Abschnitt liest die Ausgabe des DHTsensor-Moduls und extrahiert die Temperatur- und Feuchtigkeitswerte in eine geeignete Zahl in Prozent und in der Celsius-Skala. Der dritte Teil des Systems zeigt Feuchtigkeit und Temperatur auf dem LCD an.
Die Arbeit dieses Projekts basiert auf der seriellen Kommunikation mit einem Draht. Zuerst sendet Arduino ein Startsignal an das DHT-Modul und dann gibt DHT ein Antwortsignal mit Temperatur- und Feuchtigkeitsdaten. Arduino sammelt und extrahiert in zwei Teilen, einer ist Feuchtigkeit und der zweite ist Temperatur und sendet sie dann an 16x2 LCD.
Hier in diesem Projekt haben wir ein Sensormodul verwendet, nämlich DHT11. Dieses Modul verfügt über einen Feuchtigkeits- und Temperaturkomplex mit einem kalibrierten digitalen Signalausgang. Das DHT11-Sensormodul ist ein kombiniertes Modul zur Erfassung von Feuchtigkeit und Temperatur, das ein kalibriertes digitales Ausgangssignal liefert. DHT11 gibt uns einen sehr genauen Wert für Feuchtigkeit und Temperatur und gewährleistet eine hohe Zuverlässigkeit und Langzeitstabilität. Dieser Sensor verfügt über eine resistive Feuchtemesskomponente und eine NTC-Temperaturmesskomponente mit einem eingebauten 8-Bit-Mikrocontroller, der schnell reagiert und kostengünstig ist und in einem 4-poligen einreihigen Gehäuse erhältlich ist.
Das DHT11-Modul arbeitet mit serieller Kommunikation, dh Single-Wire-Kommunikation. Dieses Modul sendet Daten in Form einer Impulsfolge eines bestimmten Zeitraums. Vor dem Senden von Daten an arduino muss ein Initialisierungsbefehl mit einer Zeitverzögerung ausgeführt werden. Die gesamte Prozesszeit beträgt ca. 4ms. Eine vollständige Datenübertragung erfolgt über 40 Bit, und das Datenformat dieses Prozesses ist unten angegeben:
8-Bit-Integral-RH-Daten + 8-Bit-Dezimal-RH-Daten + 8-Bit-Integral-T-Daten + 8-Bit-Dezimal-T-Daten + 8-Bit-Prüfsumme.
Prozess abschließen
Zunächst sendet Arduino ein High-Low-Startsignal mit einer Verzögerung von 18 µs an DHT11, um die Erkennung von DHT sicherzustellen. Und dann zieht Arduino die Datenleitung hoch und wartet 20-40µs auf die Antwort von DHT. Sobald DHT ein Startsignal erkennt, sendet es ein Antwortsignal mit niedrigem Spannungspegel an das Arduino mit einer Zeitverzögerung von etwa 80 us. Und dann zieht der DHT-Controller die Datenleitung hoch und hält sie für 80 µs, damit DHT Daten senden kann.
Wenn sich der Datenbus auf einem niedrigen Spannungspegel befindet, bedeutet dies, dass DHT11 ein Antwortsignal sendet. Sobald dies erledigt ist, führt DHT erneut einen Datenleitungs-Pullup für 80 µs durch, um die Datenübertragung vorzubereiten.
Das Datenformat, das von DHT für jedes Bit an Arduino gesendet wird, beginnt mit einem Niederspannungspegel von 50 us, und die Länge des Hochspannungspegelsignals bestimmt, ob das Datenbit "0" oder "1" ist.
Eine wichtige Sache ist es, den Pull-up-Widerstandswert sicherzustellen, denn wenn wir den DHT-Sensor in einem Abstand von <20 Metern platzieren, wird ein 5k-Pull-up-Widerstand empfohlen. Wenn Sie DHT länger als 20 Meter platzieren, verwenden Sie einen Pull-up-Widerstand mit geeignetem Wert.
Schaltplan und Erklärung
Eine Flüssigkristallanzeige dient zur Anzeige von Temperatur und Luftfeuchtigkeit, die im 4-Bit-Modus direkt mit Arduino verbunden ist. Die Stifte des LCD, nämlich RS, EN, D4, D5, D6 und D7, sind mit den digitalen Arduino-Pin-Nummern 2, 3, 4, 5, 6 und 7 verbunden. Ein DHT11-Sensormodul ist auch mit einem digitalen Pin 12 des Arduino verbunden 5k Pull-Up Widerstand.
Programmierbeschreibung
Bei der Programmierung werden vorgefertigte Bibliotheken für den DHT11-Sensor und das LCD-Anzeigemodul verwendet.
Dann haben wir definierte Pins für LCD- und DHT-Sensoren und alle Dinge im Setup initialisiert. Dann liest in einer Schleife mit der DHT-Funktion der DHT-Sensor und mit einigen DHT-Funktionen werden Feuchtigkeit und Temperatur extrahiert und auf dem LCD angezeigt.
Hier wird das Gradsymbol mithilfe einer benutzerdefinierten Zeichenmethode erstellt.