Inhaltsverzeichnis:

IDC2018IOT Sag mir, wann ich die Klimaanlage ausschalten soll - Gunook
IDC2018IOT Sag mir, wann ich die Klimaanlage ausschalten soll - Gunook

Video: IDC2018IOT Sag mir, wann ich die Klimaanlage ausschalten soll - Gunook

Video: IDC2018IOT Sag mir, wann ich die Klimaanlage ausschalten soll - Gunook
Video: I Analyze Data -Raw Data to Business Insights: What You Need to Build a Modern Data Lake (Level 200) 2024, Juli
Anonim
Image
Image

Viele von uns, vor allem im Sommer, nutzen die Klimaanlage fast ununterbrochen, wenn wir in Wirklichkeit zu bestimmten Tageszeiten einfach ein Fenster öffnen und eine schöne Brise genießen können. Außerdem ist uns persönlich aufgefallen, dass wir beim Verlassen des Zimmers manchmal sogar vergessen, die Klimaanlage auszuschalten, was Energie und Geld verschwendet.

Die Lösung, die wir bauen werden, vergleicht die Innentemperatur mit der Außentemperatur und benachrichtigt uns über den Facebook-Messanger, wenn sie nahe genug sind, dass es Zeit ist, ein Fenster zu öffnen und der Klimaanlage etwas Ruhe zu gönnen.

Außerdem werden wir einen anderen Mechanismus einrichten, um uns zu benachrichtigen, wenn wir die Klimaanlage vergessen und den Raum verlassen haben.

Schritt 1: Ein bisschen mehr Details

Wir sammeln Daten von 4 verschiedenen Sensoren:

  • Zwei DHT-Sensoren erfassen die Temperatur im Haus und außerhalb des Hauses.
  • Ein PIR-Sensor erkennt Bewegungen im Raum.
  • Ein Elektret-Mikrofon wird verwendet, um den Wind zu erkennen, der aus der Lüftungsöffnung der Klimaanlage kommt, eine einfache und zuverlässige Möglichkeit, um festzustellen, ob die Klimaanlage eingeschaltet ist.

Die von den Sensoren kommenden Daten werden verarbeitet und an den Blynk gesendet, wo sie in einer von uns erstellten Schnittstelle angezeigt werden. Außerdem werden wir IFTTT-Ereignisse auslösen, um den Benutzer zu benachrichtigen, wenn er ein Fenster anstelle der Klimaanlage öffnen kann und wenn er die Klimaanlage vergessen und den Raum für einen vordefinierten Zeitraum verlassen hat.

Die Blynk-Benutzeroberfläche bietet uns auch die Möglichkeit, relevante Einstellungen gemäß den Benutzerpräferenzen zu ändern, wie wir später genauer besprechen werden.

Benötigte Teile:

  1. WLAN-Modul - ESP8266
  2. PIR-Sensor.
  3. DHT11/DHT22 Temperatursensoren x2.
  4. 10k/4,7k Widerstände (DHT11 - 4,7k, DHT22 - 10k, PIR - 10k).
  5. Elektret-Mikrofon.
  6. Jumper.
  7. Lange Kabel (Telefonkabel machen einen guten Job).

Der vollständige Code des Projekts wird am Ende mit Kommentaren im gesamten Code angehängt.

Logischerweise hat es ein paar verschiedene Funktionsebenen:

  • Die Daten der Sensoren werden in Intervallen von 3 Sekunden ausgelesen, da sie sich als genauer zeigen und mehr nicht erforderlich ist.
  • Ein Teil des Codes verfolgt den AC-Zustand durch die Werte, die vom Elektretmikrofon kommen, das über der Öffnung des AC platziert ist.
  • Ein anderer Teil besteht darin, die von den Temperatursensoren kommenden Messwerte zu verfolgen und den Unterschied zwischen der Verwendung als akzeptabel zu definieren, um die Klimaanlage auszuschalten und stattdessen ein Fenster zu öffnen. Wir suchen den Moment, in dem die Temperaturen nahe genug kommen.
  • Ein dritter Teil verfolgt die Bewegung im Raum. Wenn es innerhalb eines vom Benutzer definierten Zeitraums keine größere Bewegung erkennt (die Methode zum Überprüfen von größeren wird in Kürze erklärt) und der AC-Status EIN ist, wird eine Benachrichtigung an den Benutzer gesendet.
  • Die Benachrichtigungen werden durch das Auslösen von IFTTT-Webhooks verarbeitet, die vordefinierte Nachrichten über den Facebook Messenger an den Benutzer senden
  • Der letzte erwähnenswerte Teil ist der Teil, der die Blynk-Schnittstelle handhabt, sowohl indem er die Änderungen erhält, die der Benutzer an Variablen vornimmt, als auch umgekehrt - Daten an die Blynk-Schnittstelle übertragen, damit der Benutzer sie sehen kann.

Schritt 2: In vielen weiteren Details - Sensoren

In vielen weiteren Details - Sensoren
In vielen weiteren Details - Sensoren
In vielen weiteren Details - Sensoren
In vielen weiteren Details - Sensoren

Lasst uns beginnen.

Zuerst müssen wir sicherstellen, dass unsere beiden DHT-Sensoren die gleiche Temperatur messen, wenn sie an der gleichen Stelle platziert werden. Dazu haben wir am Ende dieses Abschnitts eine einfache Skizze erstellt (CompareSensors.ino). Schließen Sie beide Sensoren an und stellen Sie sicher, dass Sie den Typ der DHT-Sensoren in der Skizze entsprechend den von Ihnen vorhandenen ändern (die Standardeinstellung ist ein DHT11 und ein DHT22, damit Sie sehen können, wie beide im Code behandelt werden). Öffnen Sie den seriellen Monitor und lassen Sie sie eine Weile arbeiten, insbesondere wenn Sie DHT11-Sensoren verwenden, da sie tendenziell länger brauchen, um sich an Temperaturänderungen anzupassen.

Beachten Sie den Unterschied zwischen den Sensoren und fügen Sie ihn später im Hauptcode in die Variable "offset" ein.

Platzierung der Sensoren:

Ein DHT-Sensor sollte an der Außenwand des Hauses angebracht werden, also verbinden Sie ihn mit einigen langen Kabeln, die lang genug sind, um Ihren ESP8266 im Raum zu erreichen, und stellen Sie ihn draußen auf (kann leicht durch das Fenster erfolgen). Der andere DHT-Sensor sollte auf dem Steckbrett in dem Raum platziert werden, in dem wir die Klimaanlage verwenden.

Das Elektretmikrofon sollte auch mit ausreichend langen Kabeln verbunden und an einer Stelle platziert werden, an der der Wind aus der Wechselstromanlage darauf trifft.

Schließlich sollte der PIR-Sensor an einer Stelle mit Blick auf die Mitte des Raums platziert werden, damit er jede Bewegung im Raum erfasst. Beachten Sie, dass der Sensor zwei kleine Knöpfe hat, einer steuert die Verzögerung (wie lange das HIGH-Signal der Bewegungserkennung auf HIGH gehalten wird) und der andere steuert die Empfindlichkeit (siehe Bild).

Möglicherweise müssen Sie damit herumspielen, bis Sie die Lektüre erhalten, mit der Sie zufrieden sind. Für uns war das beste Ergebnis die Verzögerung ganz links (niedrigster Wert) und die Empfindlichkeit ganz in der Mitte. Der Code bietet Seriendrucke, die Messwerte von allen Sensoren enthalten, die das Debuggen solcher Probleme erheblich erleichtern.

Anschließen der Sensoren:

Die von uns verwendeten PIN-Nummern lauten wie folgt (und können im Hauptcode geändert werden):

Außen-DHT-Sensor - D2.

Innen-DHT-Sensor - D3.

Elektret - A0 (analoger Stift).

PIR - D5.

Die Schaltpläne für die Verbindung jedes von ihnen können leicht mit der Google-Bildsuche mit etwas in der Art von "PIR-Widerstand Arduino-Schema" gefunden werden (wir möchten sie nicht hier kopieren und Copyright-Linien überschreiten:)).

Wir haben auch ein Bild von unserem Steckbrett beigefügt, es ist wahrscheinlich schwer, den Verbindungen wirklich zu folgen, aber es kann ein gutes Gefühl dafür geben.

Wie Sie wahrscheinlich wissen, funktionieren die Dinge selten, wenn überhaupt, wenn wir sie zum ersten Mal verbinden. Aus diesem Grund haben wir eine Funktion entwickelt, die die Messwerte der Sensoren leicht lesbar ausdruckt, damit Sie Fehler beheben können, damit sie funktionieren. Wenn Sie nicht möchten, dass der Code während des Debuggens versucht, eine Verbindung zu Blynk herzustellen, kommentieren Sie einfach "Blynk.begin(auth, ssid, pass);" aus. Führen Sie es aus dem Setup-Teil des Codes aus und öffnen Sie den seriellen Monitor, um die Ausdrucke anzuzeigen. Wir haben auch ein Bild der Drucke angehängt.

Schritt 3: In vielen weiteren Details - IFTTT-Sequenz

In vielen weiteren Details - IFTTT-Sequenz
In vielen weiteren Details - IFTTT-Sequenz

Wir möchten also in zwei Szenarien benachrichtigt werden:

1. Die Außentemperatur ist nahe genug an der, die wir drinnen haben, wenn die Klimaanlage funktioniert.

2. Wir haben das Zimmer für längere Zeit verlassen und die Klimaanlage funktioniert noch.

IFTTT ermöglicht es uns, viele verschiedene Dienste, die normalerweise nicht interagieren, auf sehr einfache Weise zu verbinden. In unserem Fall können wir Benachrichtigungen sehr einfach über viele Dienste senden. Wir haben uns für Facebook Messanger entschieden, aber nachdem Sie es mit Facebook Messanger zum Laufen gebracht haben, können Sie es problemlos auf einen anderen Dienst Ihrer Wahl umstellen.

Der Prozess:

Klicken Sie auf der IFTTT-Website auf Ihren Benutzernamen (oben rechts) und dann auf „Neues Applet“, wählen Sie „Webhooks“als Auslöser (das „diese“) und wählen Sie „Webanfrage erhalten“. Legen Sie einen Ereignisnamen fest (z. B. empty_room).

Wählen Sie für den ausgelösten Dienst die Aktion (das "das"), wählen Sie Facebook Messenger > Nachricht senden und geben Sie die Nachricht ein, die Sie erhalten möchten, wenn dieses Ereignis eintritt (z.

Während wir hier sind, sollten Sie auch Ihren geheimen Schlüssel finden, den Sie an der entsprechenden Stelle im Code einfügen müssen.

Um Ihren geheimen Schlüssel zu finden, gehen Sie zu https://ifttt.com/services/maker_webhooks/settings Dort finden Sie eine URL mit Ihrem Schlüssel im folgenden Format:

Schritt 4: In vielen weiteren Details - Blynk

Image
Image
In vielen weiteren Details - Blynk
In vielen weiteren Details - Blynk
In vielen weiteren Details - Blynk
In vielen weiteren Details - Blynk

Wir wollen auch eine Schnittstelle mit den folgenden Funktionen:

1. Möglichkeit einzustellen, wie lange der Raum bei funktionierender Klimaanlage leer sein soll, bevor wir benachrichtigt werden

2. Möglichkeit zu wählen, wie nah die Außentemperatur an der Innenseite sein soll.

3. Eine Anzeige für die Messwerte der Temperatursensoren

4. Eine LED, die uns den Status der Klimaanlage anzeigt (ein/aus).

5. Und vor allem eine Anzeige, die anzeigt, wie viel $$$ und wie viel Energie wir gespart haben.

So erstellen Sie die Blynk-Benutzeroberfläche:

Wenn Sie die Blynk-App noch nicht haben, laden Sie sie auf Ihr Telefon herunter. Wenn Sie die App öffnen und ein neues Projekt erstellen, achten Sie darauf, das entsprechende Gerät auszuwählen (z. B. ESP8266).

Sie erhalten eine E-Mail mit einem Authentifizierungstoken, das Sie an der entsprechenden Stelle in den Code einfügen (bei Verlust können Sie es sich auch später aus den Einstellungen erneut zusenden).

Um neue Widgets auf Ihrem Bildschirm zu platzieren, klicken Sie oben auf das +-Zeichen. Wählen Sie die Widgets aus und klicken Sie dann auf ein Widget, um seine Einstellungen einzugeben. Wir haben zu Ihrer Information Bilder der Einstellungen für alle von uns verwendeten Widgets hinzugefügt.

Nachdem Sie mit der App fertig sind und sie schließlich verwenden möchten, klicken Sie einfach auf das "Play"-Symbol in der oberen rechten Ecke, um die Blynk-App auszuführen. Sie können auch sehen, wann Ihr ESP8266 eine Verbindung herstellt.

Hinweis - Die Schaltfläche "Aktualisieren" wird verwendet, um die Temperatur und den Zustand der Klimaanlage abzurufen, damit wir sie in der App sehen können. Es ist nicht erforderlich, wenn Einstellungen geändert werden (z. B. die Temperaturdifferenz), da diese automatisch verschoben werden.

Schritt 5: Der Code

Wir haben uns große Mühe gegeben, jeden Teil des Codes so zu dokumentieren, dass das Verständnis so einfach wie möglich ist.

Auf Teile des Codes, die Sie vor der Verwendung ändern müssen (als Authentifizierungsschlüssel für Blynk, Ihre WLAN-SSID und Ihr Passwort usw.), folgt der Kommentar //*change*, damit Sie sie leicht suchen können.

Sie benötigen die im Code verwendeten Bibliotheken. Sie können sie über die Arduino IDE installieren, indem Sie auf Skizze> Bibliotheken einschließen> Bibliotheken verwalten klicken. Dort können Sie nach dem Bibliotheksnamen suchen und ihn installieren. Stellen Sie außerdem sicher, dass Sie die Datei "generical8266_ifttt.h" am selben Speicherort wie ACsaver.ino ablegen.

Ein Teil des Codes, den wir hier erklären, da wir den Code nicht überladen wollten, ist, wie wir entscheiden, wann wir den Zustand der Klimaanlage von ein auf aus und den Zustand des Raums von leer auf nicht leer ändern.

Wir lesen alle 3 Sekunden von den Sensoren, aber da die Sensoren nicht 100% genau sind, möchten wir nicht, dass ein einziger Messwert den Zustand ändert, von dem wir glauben, dass er jetzt im Raum ist. Um dies zu lösen, haben wir einen Zähler, den wir ++ erhalten, wenn wir eine Anzeige zugunsten von "AC is on" erhalten, und - sonst. Wenn wir dann den in SWITCHAFTER definierten Wert erreichen (Standardwert 4), ändern wir den Status in "AC is on", wenn wir -SWITCHAFTER (negativ der gleiche Wert) erreichen, ändern wir den Status in "AC is off" ".

Die Auswirkungen auf die Wechselzeit sind vernachlässigbar, und wir finden, dass es sehr zuverlässig ist, nur korrekte Änderungen zu erkennen.

Schritt 6: Alles zusammenfügen

Ok, alle Sensoren sind vorhanden und funktionieren ordnungsgemäß. Die Blynk-Schnittstelle ist eingestellt (mit den richtigen virtuellen Pins!). Und die IFTTT-Events warten auf unseren Trigger.

Sie haben den geheimen IFTTT-Schlüssel in den Code eingefügt, den Auth-Schlüssel von Blynk, die SSID Ihres WLANs und das Passwort, und Sie haben sogar überprüft, ob die DHT-Sensoren kalibriert sind und wenn nicht, den Offset entsprechend geändert (zum Beispiel unser außerhalb von DHT lasen die Temperaturen um 1 Grad Celsius höher als die, die er haben sollte, also haben wir Offset = -1 verwendet.

Stellen Sie sicher, dass Ihr WLAN aktiviert ist, starten Sie Ihre Blynk-App und laden Sie den Code auf Ihren ESP8266.

Das ist es. Wenn alles richtig gemacht wurde, können Sie jetzt herumspielen und es in Aktion sehen.

Und wenn Sie es einfach in Aktion sehen möchten, ohne alles zusammensetzen zu müssen … Nun … Scrollen Sie nach oben und sehen Sie sich das Video an. (Mit Untertiteln ansehen! Kein Voice-Over)

Schritt 7: Gedanken

Wir hatten hier zwei Hauptherausforderungen.

Zunächst einmal, woher wissen wir, dass die Klimaanlage eingeschaltet ist? Wir haben versucht, einen IR-Empfänger zu verwenden, der die Kommunikation zwischen dem AC und der Fernbedienung "hört". Es schien zu kompliziert zu sein, da die Daten sehr unordentlich und nicht konsistent genug waren, um "ok, dies ist ein EIN-Signal" zu verstehen. Also suchten wir nach anderen Wegen. Eine Idee war, einen kleinen Propeller zu verwenden, der bei Bewegungen durch den Wind des AC einen kleinen Strom erzeugt, eine andere Idee, die wir versuchten, war, einen Beschleunigungsmesser den Winkel der rotierenden Flügel an den Lüftungsöffnungen messen zu lassen und ihre Bewegung aus der OFF-Position zu erkennen.

Am einfachsten ist uns dies schließlich mit dem Elektretmikrofon gelungen, das sehr zuverlässig den aus der Klimaanlage kommenden Wind erkennt

Die DHT-Sensoren zum Laufen zu bringen war ein Kinderspiel;), aber erst später stellten wir fest, dass einer von ihnen etwas von der tatsächlichen Temperatur abweicht. Der PIR-Sensor erforderte ebenfalls einige Anpassungen, wie zuvor beschrieben.

Die zweite Herausforderung bestand darin, die gesamte Lösung einfach und zuverlässig zu gestalten. In gewissem Sinne sollte es nervig sein, es zu benutzen, es sollte einfach da sein und anstoßen, wenn Sie es brauchen. Andernfalls würden wir wahrscheinlich selbst aufhören, es zu verwenden.

Also haben wir uns Gedanken gemacht, was in der Blynk-Schnittstelle sein sollte, und versuchten, den Code so zuverlässig wie möglich zu machen, indem wir uns um jeden denkbaren Grenzfall kümmerten.

Eine weitere Herausforderung, die wir beim Schreiben dieser Anleitung nicht gelöst haben, bestand darin, einen IR-Blaster hinzuzufügen, mit dem wir die AC von der Blynk-Schnittstelle ausschalten können. Was bringt es, zu wissen, dass Sie die Klimaanlage vergessen haben, ohne die Möglichkeit zu haben, sie auszuschalten? (Nun… du könntest jemanden fragen, ob er zu Hause ist).

Leider hatten wir mit dem ESP8266 einige Schwierigkeiten, die Signale, die wir von der Fernbedienung aufgenommen haben, zurück zum AC wiederzugeben. Wir haben es geschafft, die AC von einem Arduino Uno zu steuern, nach diesem instructable:

www.instructables.com/id/How-to-control-th…

Wir werden es bald erneut versuchen und die Anleitung mit unseren Ergebnissen und hoffentlich Anweisungen zum Hinzufügen dieser Fähigkeit aktualisieren.

Eine weitere Einschränkung, die wir sehen, ist die Tatsache, dass wir einen Sensor außerhalb des Fensters anschließen müssen, was in bestimmten Situationen möglicherweise nicht möglich ist und auch ein langes Kabel nach draußen erfordert. Eine Lösung kann darin bestehen, Wetterdaten Ihres Standorts aus dem Internet abzurufen. Außerdem kann der Elektretsensor, der von der Wechselstromquelle ausgeht, durch den oben beschriebenen IR-Empfänger für Wechselstrommodelle mit bekannteren oder einfacher zu decodierenden IR-Codes ersetzt werden.

Das Projekt kann in vielerlei Hinsicht erweitert werden. Wie oben erwähnt, werden wir versuchen, einen Weg zu finden, die IR-Steuerung der Klimaanlage zu integrieren, was dann eine ganz neue Welt von Möglichkeiten eröffnet, die Klimaanlage von überall auf der Welt ein- und auszuschalten oder Ein- und Ausschaltzeiten über das Blynk. festzulegen app, als weiteres Beispiel. Nachdem Sie die technischen IR-Schwierigkeiten herausgefunden haben, ist das Hinzufügen des Codes ziemlich einfach und unkompliziert und sollte nicht lange dauern.

Wenn wir wirklich groß träumen wollen… Aus dem Projekt kann ein komplettes Modul werden, das jede Klimaanlage zu einer intelligenten Klimaanlage macht. Und es braucht nicht viel mehr als wir. Nur mehr Code, mehr Nutzung der IR, und wenn wir wollen, dass es massenhaft produziert wird, stellen Sie vielleicht sicher, dass Wetterdaten nach Standort abgerufen werden, dann können wir das Ganze in eine winzige Kiste packen.

Eigentlich brauchen wir nur einen Temperatursensor für die Innentemperatur, einen PIR-Sensor zur Bewegungserkennung und eine IR-LED als Blaster und einen IR-Empfänger, um die Kommunikation zwischen der Klimaanlage und der von uns verwendeten Fernbedienung zu "hören".

Blynk bietet alle Funktionen, die wir benötigen, um die Zauberbox auf sehr einfache und zuverlässige Weise zu steuern.

Die Erstellung eines solchen vollständigen Projekts wird einige Zeit in Anspruch nehmen, insbesondere im Hinblick darauf, dass es vielseitig genug ist, um sich selbst zu konfigurieren und die meisten ACs automatisch zu erkennen und zu verstehen.

Aber es selbst zu machen, na ja, wenn Sie es in Ihrer Freizeit machen, sollten wir ungefähr nicht länger als ein oder zwei Wochen dauern. Hängt davon ab, wie viel Freizeit Sie haben… Die größte Herausforderung hier besteht darin, all die verschiedenen Signale zu speichern, die die AC-Fernbedienung senden kann, und sie zu verstehen. (Obwohl es noch einfacher sein sollte, sie einfach wiederzugeben).

Empfohlen: