4.7 Projekt: Temperaturregelsystem

In diesem Projekt demonstrieren wir, wie man einen Temperatur- und Feuchtigkeitssensor, einen Lüfter und ein LCD1602-Display verwendet, um ein intelligentes Temperatur- und Feuchtigkeitsregelsystem aufzubauen.

Das System misst die Umgebungstemperatur und -feuchtigkeit und steuert den Lüfter zur Kühlung nach Bedarf. Wenn die Temperatur den eingestellten Schwellenwert überschreitet, schaltet sich der Lüfter automatisch ein, um die Umgebungstemperatur unter den eingestellten Wert zu senken. Gleichzeitig werden die aktuellen Temperatur- und Feuchtigkeitswerte auf dem LCD1602 angezeigt.

Dadurch wird eine automatische Anpassung der Umgebungstemperatur und -feuchtigkeit realisiert, was perfekt für Projekte ist, die diese Funktionen erfordern.

img


4.7.1 Flussdiagramm

image-20230607121651834


4.7.2 Temperatur- und Feuchtigkeitssensor

Beschreibung:

Der DHT11 Temperatur- und Feuchtigkeitssensor gibt digitale Signale aus. Er wendet die Prinzipien der analogen Signalerfassung und -umwandlung sowie der Temperatur- und Feuchtigkeitssensorik an, wodurch er sich durch Langzeitstabilität und hohe Zuverlässigkeit auszeichnet. Außerdem integriert der Sensor einen hochpräzisen resistiven Feuchtigkeitssensor und einen resistiven thermosensitiven Temperatursensor und ist mit einem 8-Bit-Hochleistungs-MCU verbunden.

img


DHT11 Kommunikationsmittel:

DHT11 kommuniziert über Monobus (ein Einzelbus), der Daten austauscht und steuert.

  • Monobus überträgt Datenbit:

    • Datenformat des Monobus: Übertragung von 40 Bit Daten jedes Mal, High-Bit zuerst.

    • 8 Bit Feuchtigkeitsganzzahlwert + 8 Bit Feuchtigkeitsdezimalwert + 8 Bit Temperaturganzzahlwert + 8 Bit Temperaturdezimalwert + Bit-Parität.

    • HINWEIS: Der Feuchtigkeitsdezimalwert ist gleich 0.

  • Paritätsbit:

    • 8 Bit Feuchtigkeitsganzzahlwert + 8 Bit Feuchtigkeitsdezimalwert + 8 Bit Temperaturganzzahlwert + 8 Bit Temperaturdezimalwert.

    • 8 Bit Parität entspricht den letzten 8 Bits des Ergebnisses.

Zeitdiagramm:

img

**HINWEIS: **

Der Host liest immer die Temperatur- und Feuchtigkeitswerte der letzten Messung vom DHT11. Wenn das Intervall zwischen zwei Messungen lang ist, führen Sie bitte zweimal hintereinander eine Messung durch und verwenden Sie das zweite Ergebnis.

Für weitere Details besuchen Sie bitte die offizielle ASAIR-Website: http://www.aosong.com/products-21.html


Schaltplan:

Verbinden Sie den Temperatur- und Feuchtigkeitssensor mit io17.

Achtung: Gelb an S (Signal), Rot an V (Strom) und Schwarz an GND anschließen. Nicht vertauschen!

img


Testcode:

  • Initialisieren Sie den seriellen Port und den Sensor.

img

  • Der serielle Monitor gibt die Feuchtigkeits- und Temperaturwerte pro Sekunde aus und aktualisiert sie.

img

Vollständiger Code:

img

Testergebnis:

img

Öffnen Sie den seriellen Monitor, und Sie sehen den aktuellen Temperatur- und Feuchtigkeitswert.

img


4.7.3 LCD 1602 Modul

Beschreibung:

Das LCD 1602 verfügt über eine standardmäßige 14-polige (ohne Hintergrundbeleuchtung) oder 16-polige (mit Hintergrundbeleuchtung) Schnittstelle, wodurch die Pins des MCU eingespart werden. Sein Displaytreiber-IC realisiert die I2C-Steuerung.

img


I2C serielle Kommunikation:

Die I2C-Kommunikation, vollständig bekannt als Inter-Integrated Circuit (IIC) oder Two-Wire Interface (TWI), ist ein häufig verwendetes Dual-Bus-Kommunikationsprotokoll (ein Host und ein Slave), das von Phillips Semiconductor (von US NXP Semiconductors gekauft) entwickelt wurde.

Der größte Vorteil ist, dass nur zwei Drähte die Datenübertragung abschließen, was die Schaltungen erheblich vereinfacht. Insgesamt kann der I2C-Bus 127 Knoten parallel verbinden, sodass er mehrere Hosts und Slaves unterstützt.

Im Allgemeinen ist für Slaves keine externe Stromversorgung erforderlich, da der I2C-Bus die Stromversorgung an sie überträgt:

img

Der I2C-Bus überträgt Daten über eine 8-Bit-Datenübertragung. Normalerweise besteht ein Byte-Daten aus neun Taktsignalen, von denen acht Daten übertragen und das letzte das Ende der Übertragung markiert.

Darüber hinaus unterstützt der I2C-Bus die Übertragung von Mehrbyte-Daten, indem der obige Prozess kontinuierlich wiederholt wird.

Das I2C-Protokoll besteht im Wesentlichen aus:

  • Startsignal: Vor der Übertragung sendet der Sender ein Startsignal, um den Empfänger über den Startpunkt zu informieren.

  • Adresse: Sie informiert den Empfänger, an wen die Daten gesendet werden.

  • Daten: Sie werden jeweils ein Byte und Bit für Bit übertragen.

  • Endsignal: Wenn die Übertragung beendet ist, beendet der Sender die Daten mit einem Endsignal, um den Empfänger darüber zu informieren, dass der Vorgang beendet ist.

Zeitdiagramm des seriellen Protokolls:

Für weitere Details besuchen Sie bitte die offizielle Website: https://www.nxp.com/

img

img

Wir stellen Ihnen eine Bibliotheksdatei Wire.h für das I2C-Protokoll zur Verfügung, in der Funktionen direkt aufgerufen werden können, um mit I2C/TWI-Geräten zu kommunizieren.

Details zur Bibliothek finden Sie unter:

https://www.arduino.cc/reference/en/language/functions/communication/wire/


Schaltplan:

Verbinden Sie das LCD wie unten gezeigt mit dem I2C BUS.

Achtung: Gelb an S (Signal), Rot an V (Strom) und Schwarz an GND anschließen. Nicht vertauschen!

img


Testcode:

  • Initialisieren Sie die I2C-Adresse des LCD und schalten Sie dessen Hintergrundbeleuchtung ein.

img

  • Stellen Sie die LCD-Cursorposition in X- und Y-Achse ein (X-Achse zeigt maximal 16 Zeichen an, und Y-Achse zeigt maximal 2 Spalten an).

img

  • Geben Sie den Druckinhalt ein (nicht mehr als 16 Zeichen, sonst ist er nicht vollständig).

img

Vollständiger Code:

img

Testergebnis:

LCD1602 schaltet seine Hintergrundbeleuchtung ein und zeigt „ HELLO WORLD 0 “ und „ HELLO WORLD 1 “ an.

img


4.7.4 Lüftermodul

Beschreibung:

Der 130er Motor kann die Geschwindigkeit über PWM einstellen. Dabei müssen zwei Pins zur Steuerung angeschlossen werden.

Das Modul eignet sich für vielfältige Anwendungen, wie z.B. Computer-Wärmeableitung und industrielle Produktion. Darüber hinaus ist es kompakt und einfach zu installieren, was sehr praktisch ist.

img


Schaltplan:

img


Schaltplan:

Verbinden Sie den Motor mit io18 und io19.

Achtung: Gelb an S (Signal), Rot an V (Strom) und Schwarz an GND anschließen. Nicht vertauschen!

img


Testcode:

  • Lüfter-Pin INA einstellen

img

  • Stellen Sie den Leistungs