- Erforderliche Materialien:
- Arbeitsmethodik:
- Voraussetzungen:
- Funktionieren einer AC-Fernbedienung:
- Schaltplan und Erklärung:
- Dekodieren Ihrer AC-Remote-Signale:
- Haupt-Arduino-Programm:
- Funktionsweise des automatischen AC-Temperaturregelungssystems:
Eine Klimaanlage, die einst als Luxusartikel galt und nur in großen Hotels, Kinosälen, Restaurants usw. zu finden war. Aber jetzt hat fast jeder eine Klimaanlage in unserem Haus, um den Sommer zu überstehen. Winter und diejenigen, die es haben, sorgen sich um eine gemeinsame Sache. Das ist ihr hoher Stromverbrauch und die damit verbundenen Ladegeräte. In diesem Projekt werden wir einen kleinen automatischen Temperaturregelkreis herstellen, der die Stromladegeräte minimieren kann, indem die Wechselstromtemperatur automatisch basierend auf der Raumtemperatur variiert wird. Durch periodisches Variieren der eingestellten Temperatur können wir vermeiden, dass der Wechselstrom lange Zeit für niedrigere Temperaturwerte arbeitet und somit weniger Strom verbraucht.
Die meisten von uns hätten eine Situation erlebt, in der wir die eingestellte Temperatur der Klimaanlage zu verschiedenen Tageszeiten auf unterschiedliche Werte ändern müssten, um uns durchgehend wohl zu fühlen. Um diesen Prozess zu automatisieren, verwendet dieses Projekt einen Temperatursensor (DHT11), der die aktuelle Temperatur des Raums liest und basierend auf diesem Wert Befehle über einen IR-Blaster ähnlich der Fernbedienung des AC an den AC sendet. Der AC reagiert auf diese Befehle so, als würde er auf seine Fernbedienung reagieren, und passt somit die Temperatur an. Wenn sich die Temperatur Ihres Raums ändert, passt der Arduino auch die eingestellte Temperatur Ihres Wechselstroms an, um Ihre Temperatur so zu halten, wie Sie es möchten. Klingt cool, oder?… Mal sehen, wie man einen baut.
Erforderliche Materialien:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- Infrarot-LED
- DHT11 Temperatur- / Feuchtigkeitssensor
- Beliebige Farb-LED und 1K-Widerstand (optional)
- Steckbrett
- Kabel anschließen
Arbeitsmethodik:
Alle Fernbedienungen in unserem Haus, mit denen wir Fernseher, Heimkino, Klimaanlage usw. steuern, funktionieren mit Hilfe von IR-Strahlern. Ein IR-Blaster ist nichts anderes als eine IR-LED, die ein Signal durch wiederholtes Pulsieren strahlen kann. Dieses Signal wird vom Empfänger im Elektronikgerät gelesen. Für jede andere Taste auf der Fernbedienung wird ein eindeutiges Signal ausgegeben, das nach dem Lesen durch den Empfänger verwendet wird, um eine bestimmte vordefinierte Aufgabe auszuführen. Wenn wir dieses von der Fernbedienung ausgehende Signal lesen können, können wir dasselbe Signal mithilfe einer IR-LED nachahmen, wenn dies für die Ausführung dieser bestimmten Aufgabe erforderlich ist. Wir haben zuvor eine IR-Blaster-Schaltung für Universal IR Remote hergestellt.
Ein TSOP ist ein IR-Empfänger, mit dem das von den Fernbedienungen kommende Signal decodiert werden kann. Dieser Empfänger wird mit Arduino verbunden, um für jede Taste ein Signal zu geben, und dann wird eine IR-LED mit Arduino verwendet, um das Signal zu imitieren, wann immer dies erforderlich ist. Auf diese Weise können wir mit Arduino die Kontrolle über unseren Wechselstrom erlangen.
Jetzt müssen Sie nur noch den Temperaturwert mit DHT11 ablesen und den Wechselstrom mit den IR-Signalen entsprechend anweisen. Um das Projekt attraktiver und benutzerfreundlicher zu gestalten, habe ich auch ein OLED-Display hinzugefügt , das die aktuelle Temperatur, Luftfeuchtigkeit und eingestellte Wechselstromtemperatur anzeigt. Erfahren Sie mehr über die Verwendung von OLED mit Arduino.
Voraussetzungen:
Dieses Projekt für den automatischen AC-Temperaturregler ist für Anfänger etwas fortgeschritten. Mit Hilfe einiger anderer Tutorials kann dies jedoch jeder mit der Zeit erstellen. Wenn Sie ein absoluter Neuling in OLED, DHT11 oder TSOP sind, greifen Sie bitte auf die folgenden Tutorials zurück, in denen Sie die Grundlagen und den Einstieg in diese lernen können. Die Liste scheint etwas lang zu sein, aber glauben Sie mir, es ist einfach und es lohnt sich zu lernen, und es wird auch Türen für viele neue Projekte öffnen.
- Grundschaltung mit TSOP und IR LED unter ihrer Arbeitsweise
- Grundlegende Schnittstellenanleitung für DHT11 mit Arduino
- Grundlegende Schnittstellenanleitung für OLED mit Arduino
- Schnittstelle von TSOP mit Arduino zum Lesen von IR-Remote-Werten
Stellen Sie sicher, dass Sie ein Arduino Mega und eine andere Version von Arduino haben, da die Codegröße schwer ist. Überprüfen Sie auch, ob Sie die folgenden Arduino-Bibliotheken bereits installiert haben, wenn Sie sie nicht über den folgenden Link installieren
- IR Remote Library für TSOP und IR Blaster
- Adafruit Library für OLED
- GFX-Grafikbibliothek für OLED
- DHT11-Sensorbibliothek für Temperatursensor
Funktionieren einer AC-Fernbedienung:
Bevor wir mit dem Projekt fortfahren, nehmen Sie sich etwas Zeit und beachten Sie, wie Ihre AC-Fernbedienung funktioniert. AC-Fernbedienungen funktionieren etwas anders als TV- und DVD-IR-Fernbedienungen. Auf Ihrer Fernbedienung befinden sich möglicherweise nur 10-12 Tasten, die jedoch viele verschiedene Arten von Signalen senden können. Dies bedeutet, dass die Fernbedienung nicht jedes Mal denselben Code für dieselbe Schaltfläche sendet. Wenn Sie beispielsweise die Temperatur mit der Abwärtstaste auf 24 ° C (Grad Celsius) senken, erhalten Sie ein Signal mit einem Datensatz. Wenn Sie es jedoch erneut drücken, um 25 ° C einzustellen, erhalten Sie nicht dasselbe Daten, da die Temperatur jetzt 25 und nicht 24 ist. In ähnlicher Weise variiert der Code für 25 auch für unterschiedliche Lüfterdrehzahlen, Schlafeinstellungen usw. Lassen Sie uns also nicht mit allen Optionen herumspielen und nur die Temperaturwerte mit einem konstanten Wert für andere Einstellungen konzentrieren.
Ein weiteres Problem ist die Datenmenge, die bei jedem Tastendruck gesendet wird. Normale Fernbedienungen senden entweder 24 Bit oder 48 Bit. Eine AC-Fernbedienung sendet jedoch möglicherweise bis zu 228 Bit, da jedes Signal viele Informationen wie Temp, Lüftergeschwindigkeit, Schlaf-Timing, Swing-Stil usw. Dies ist der Grund, warum wir einen Arduino Mega für bessere Speicheroptionen benötigen.
Schaltplan und Erklärung:
Glücklicherweise ist die Hardware-Einrichtung dieses Projekts zur automatischen Temperaturregelung sehr einfach. Sie können einfach ein Steckbrett verwenden und die Verbindungen wie unten gezeigt herstellen.
Die folgende Tabelle kann auch zum Überprüfen Ihrer Verbindungen verwendet werden.
S.No: |
Komponentenstift |
Arduino Pin |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED-SCK, D0, SCL, CLK |
4 |
4 |
OLED-SDA, D1, MOSI, Daten |
3 |
5 |
OLED-RES, RST, RESET |
7 |
6 |
OLED-DC, A0 |
5 |
7 |
OLED-CS, Chip Select |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - Signal |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
Gnd |
13 |
IR-LED - Anode |
9 |
14 |
IR-LED - Kathode |
Gnd |
Sobald Ihre Verbindungen hergestellt sind, sollte es ungefähr so aussehen (siehe unten). Ich habe ein Steckbrett verwendet, um Dinge aufzuräumen, aber Sie können auch Sie Draht zu Buchse direkt, um alle Komponenten anzuschließen
Dekodieren Ihrer AC-Remote-Signale:
Der erste Schritt zur Steuerung Ihres Wechselstroms besteht darin, mit TSOP1738 die IR-Codes der Wechselstromfernbedienung zu decodieren. Stellen Sie alle Verbindungen wie im Schaltplan gezeigt her und stellen Sie sicher, dass Sie alle genannten Bibliotheken installiert haben. Öffnen Sie nun das Beispielprogramm „ IRrecvDumpV2 “, das Sie unter Datei -> Beispiele -> IRremote -> IRrecvDumpV2 finden . Laden Sie das Programm auf Ihr Arduino Mega hoch und öffnen Sie den seriellen Monitor.
Richten Sie Ihre Fernbedienung auf TSOP und drücken Sie eine beliebige Taste. Für jede Taste, die Sie drücken, wird das entsprechende Signal vom TSOP1738 gelesen, von Arduino dekodiert und im seriellen Monitor angezeigt. Für jede Temperaturänderung auf Ihrer Fernbedienung erhalten Sie andere Daten. Speichern Sie diese Daten, damit wir sie in unserem Hauptprogramm verwenden können. Ihr serieller Monitor sieht ungefähr so aus. Ich habe auch die Word-Datei angezeigt, in der ich die kopierten Daten gespeichert habe.
Der Screenshot zeigt den Code zum Einstellen der Temperatur für meine AC-Fernbedienung auf 26 ° C. Basierend auf Ihrer Fernbedienung erhalten Sie einen anderen Satz von Codes. Kopieren Sie auf ähnliche Weise die Codes für alle unterschiedlichen Temperaturniveaus. Sie können alle IR-Codes der Klimaanlagenfernbedienung im Arduino-Code überprüfen, der am Ende dieses Tutorials angegeben ist.
Haupt-Arduino-Programm:
Das vollständige Hauptprogramm von Arduino finden Sie unten auf dieser Seite, Sie können jedoch nicht dasselbe Programm verwenden. Sie müssen die Signalcodewerte ändern, die wir gerade aus der obigen Beispielskizze erhalten haben. Öffnen Sie das Hauptprogramm auf Ihrer Arduino IDE und scrollen Sie zu diesem unten gezeigten Bereich, in dem Sie die Array-Werte durch die Werte ersetzen müssen, die Sie für Ihre Fernbedienung erhalten haben.
Beachten Sie, dass ich 10 Arrays verwendet habe, von denen zwei zum Ein- und Ausschalten des Wechselstroms verwendet wurden, während der Rest 8 zum Einstellen unterschiedlicher Temperaturen verwendet wird. Zum Beispiel wird Temp23 verwendet, um 23 ° C an Ihrem Wechselstrom einzustellen. Verwenden Sie daher den entsprechenden Code in diesem Array. Sobald dies erledigt ist, müssen Sie nur noch den Code auf Ihr Arduino hochladen und ihn gegenüber Ihrem AC platzieren und die Cool Breeze genießen.
Die Erklärung des Codes lautet wie folgt: Zuerst müssen wir den DHT1-Temperatursensor verwenden, um die Temperatur und Luftfeuchtigkeit zu lesen und auf der OLED anzuzeigen. Dies erfolgt durch den folgenden Code.
DHT.read11 (DHT11_PIN); // Lesen Sie die Temperatur und Luftfeuchtigkeit Measured_temp = DHT.temperature + temp_error; Measured_Humi = DHT.humidity; // Textanzeigetests display.setTextSize (1); display.setTextColor (WHITE); display.setCursor (0,0); display.print ("Temperatur:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Luftfeuchtigkeit:"); display.print (Measured_Humi); display.println ("%");
Sobald wir die Temperatur des Raumes kennen, müssen wir sie nur noch mit dem gewünschten Wert vergleichen. Dieser gewünschte Wert ist ein konstanter Wert, der in meinem Programm auf 27 ° C (Grad Celsius) eingestellt ist. Basierend auf diesem Vergleich werden wir also eine entsprechende Wechselstromtemperatur einstellen, wie unten gezeigt
if (Measured_temp == Desired_temperature + 3) // Wenn AC eingeschaltet ist und die gemessene Temperatur sehr hoch als gewünscht ist {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // Signal senden, um 24 * C AC_Temp = 24 zu setzen; }}
Hier wird der Wechselstrom auf 24 ° C eingestellt, wenn die gemessene Temperatur 30 ° C beträgt (da die gewünschte Temperatur 27 beträgt). In ähnlicher Weise können wir viele If- Schleifen erstellen, um basierend auf der gemessenen Temperatur unterschiedliche Temperaturniveaus einzustellen, wie unten gezeigt.
if (Measured_temp == Desired_temperature-1) // Wenn AC eingeschaltet ist und die gemessene Temperatur niedriger als der gewünschte Wert ist {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // Signal senden, um 28 * C AC_Temp = 28 zu setzen; } if (Measured_temp == Desired_temperature-2) // Wenn AC eingeschaltet ist und die gemessene Temperatur sehr niedrig als der gewünschte Wert ist {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // Signal senden, um 29 * C AC_Temp = 29 zu setzen; } if (Measured_temp == Desired_temperature-3) // Wenn AC eingeschaltet ist und die gemessene Temperatur sehr, sehr niedrig ist, gewünschter Wert {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // Signal senden, um 30 * C AC_Temp = 30 einzustellen; }}
Funktionsweise des automatischen AC-Temperaturregelungssystems:
Wenn Ihr Code und Ihre Hardware bereit sind, laden Sie den Code auf Ihr Board hoch, und Sie sollten feststellen, dass auf der OLED etwas Ähnliches angezeigt wird.
Stellen Sie nun die Schaltung gegenüber Ihrer Klimaanlage auf und Sie bemerken, dass die Temperatur des Wechselstroms basierend auf der Raumtemperatur geregelt wird. Sie können versuchen, die Temperatur in der Nähe des DHT11-Sensors zu erhöhen, um zu überprüfen, ob die Temperatur des Wechselstroms wie im folgenden Video gezeigt geregelt wird.
Sie können das Programm optimieren, um eine beliebige Aktion auszuführen. Sie benötigen lediglich den Code, den Sie aus der Beispielskizze erhalten haben. Ich hoffe, Sie haben dieses Projekt für den automatischen Temperaturregler verstanden und es genossen, etwas sehr Ähnliches zu bauen. Ich weiß, dass es hier viele Orte gibt, an denen man stecken bleiben kann, aber dann mach dir keine Sorgen. Verwenden Sie einfach das Forum oder den Kommentarbereich, um Ihr Problem zu erklären, und die Leute hier werden Ihnen sicherlich helfen, es zu lösen.