Inhaltsverzeichnis:

HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!): 3 Schritte
HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!): 3 Schritte

Video: HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!): 3 Schritte

Video: HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!): 3 Schritte
Video: HRV TEMPERATUR TINGGI / OVER HEAT... RADIATOR BUNTU PARAH 2024, Juli
Anonim
HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!)
HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!)
HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!)
HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!)
HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!)
HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!)

HRV - Drahtlos zu OpenHAB

Dieses anweisbare ist speziell für diejenigen, die ein HRV-System (Heizungs-Umluft-Belüftung) haben - obwohl Teile der Platine, Openhab-Konfiguration oder Arduino-Code (wie das Lesen von seriellen TTL-Daten) für Ihre eigenen Projekte praktisch sein oder gut zum Lernen dienen können. Es wird davon ausgegangen, dass Sie über ausreichende Kenntnisse der Arduino-IDE und des ESP8266-Chips verfügen.

Einführung

Im Folgenden wird beschrieben, wie Sie einen ESP8266 bauen, der sich mit einem HRV-System verbindet und Dach- und Haustemperaturen, Bedienfeldtemperatur und Lüftergeschwindigkeit über MQTT-Nachrichten an OpenHAB sendet. Dies ist für die Arbeit mit einem ESP8266-01-Board ausgelegt (obwohl es mit jeder ESP8266 3.3V-Version funktionieren sollte)., in welcher Struktur die Daten gesendet werden.

OpenHAB und Mosquitto

Der ESP8266-Code wurde speziell für die Arbeit mit OpenHAB (Open-Source-Heimautomatisierungssoftware) und einem MQTT-Broker wie Mosquitto (einem Protokoll vom Typ Messaging Subscribe/Publish, das leichtgewichtig und hervorragend für die Kommunikation zwischen Geräten geeignet ist) geschrieben Akronyme erschrecken Sie, sie sind wirklich recht einfach zu verwenden, wenn Sie erst einmal wissen, wie sie funktionieren. Ich verwende OpenHAB auf einem NTC C. H. I. P (9 US-Dollar Computer), aber viele Leute verwenden einen Raspberry Pi oder ähnliches. In diesem Tutorial wird davon ausgegangen, dass Sie OpenHAB implementiert haben (wenn Sie Hilfe beim Einrichten von OpenHAB benötigen, folgen Sie diesem ausgezeichneten Artikel von der makeuseof-Website). Sie können dies an anderer Stelle in Ihrem Netzwerk installieren, aber die meisten Leute installieren es einfach auf demselben Computer wie OpenHAB, um es einfach zu halten.

Um Mosquitto zu installieren, folgen Sie diesem Link, wählen Sie dann den von Ihnen verwendeten Gerätetyp aus und folgen Sie den Anweisungen. Da C. H. I. P Debian (Jessie) ausführt, können Sie die Raspberry Pi-Anweisungen befolgen, wenn Sie C. H. I. P für Ihr Home Automation-Gerät verwenden (beachten Sie auch, dass Sie CHIP am besten neu konfigurieren, um von der CLI zu booten. Anweisungen dafür gibt es hier)

Sobald OpenHAB und Mosquitto ausgeführt werden, müssen Sie die Arduino-IDE für den ESP8266 und den Code vorbereiten. Zuerst müssen Sie die Bibliothek "PubSubClient" hinzufügen. Gehen Sie in der Arduino IDE im Menü zu Sketch, Include Library, Manage Libraries. Geben Sie im Filtersuchfeld PubSubClient ein, markieren Sie das Suchergebnis und klicken Sie auf Installieren (zum Zeitpunkt des Schreibens ist die neueste Version 2.6.0). Sie müssen auch das ESP8266-Board zur Arduino-IDE hinzufügen, was durch Befolgen der Anweisungen hier erfolgen kann

Was bringt mir das?

Wie bereits erwähnt, können Sie mit diesem Projekt das Dach Ihres HRV-Bedienfelds, das Haus, die Temperatur des Bedienfelds und die Lüftergeschwindigkeit in der OpenHAB-GUI (in Echtzeit!) anzeigen bekommt man durch das Bohren in die verschiedenen Temperaturen.

Um die Diagramme zu erhalten, müssen Sie auch die RRD4J-Bindung installieren und konfigurieren (dies ist sehr einfach). Dadurch können Sie entweder auf "Haus" oder "Dach" klicken und einen Verlauf der HRV-Temperaturen für jeden in der Vergangenheit abrufen Stunde, Tag oder Woche (oder länger, wenn Sie die Konfiguration entsprechend ändern) Die gezeigten Bilder sind in Celsius, und es ist eindeutig Winter auf der Südhalbkugel, als ich dies gemacht habe!

Darüber hinaus habe ich eine OpenHAB-Ansicht erstellt, die einen Vergleich zwischen der Außentemperatur (bereitgestellt durch das Wetterbindungs-Add-On, in meinem Fall mit Wunderground) und den Dach- und Haustemperaturen zeigt, indem ich auf die Option 'Steuerung' klicke (Bild zeigt die Grafik mit Haus-, Dach- und Außentemperatur aufgetragen). Ich plane, diese Daten in Regeln zu verwenden, um Heizgeräte nach Bedarf einzuschalten. Fügen Sie einfach das Element Weather zu Ihrer Bild-URL in der Sitemap-Datei hinzu und fügen Sie es in dieselbe Grafik ein (zB: …items=houseTemp, RoofTemp, weatherTemp…)

Schritt 1: Benötigte Teile / Montage

Benötigte Teile / Montage
Benötigte Teile / Montage
Benötigte Teile / Montage
Benötigte Teile / Montage
Benötigte Teile / Montage
Benötigte Teile / Montage

Sie benötigen die folgenden Teile

  • Ein RJ11-Splitter (dieser teilt das Signal vom Controller im Dach, zum Bedienfeld und zum ESP8266)
  • Etwas Flachbandkabel und ein RJ11-Stecker (um Drähte vom Splitter zum ESP8266 zu führen)
  • ESP8266-01 (andere 3.3V-Versionen sollten funktionieren)
  • TTL-Logikpegelwandler (um Daten von 5V -> 3,3V zu ändern)
  • AMS1117 3.3V Spannungsregler (oder ähnlich, um die Spannung von HRV 5V -> 3.3V zu ändern, um ESP8266 zu versorgen)
  • 1N5817 Schottky-Diode (aus irgendeinem Grund half dies, das Zurücksetzen des HRV-Bedienfelds beim Einschalten des ESP zu stoppen)
  • 10K Ohm Widerstand (Pullup-Widerstand zwischen 3.3 Spannungsregler und ESP CH_PD)
  • 10V 10uF Kondensator (oder ähnlich, um die eingehende Leistung von HRV zu glätten und zu stabilisieren)
  • 10V 1uF Kondensator (oder ähnlich, um die ausgehende Leistung zum ESP zu glätten und zu stabilisieren)
  • Optionaler Schiebeknopf zum Programmieren des ESP (ansonsten muss GPIO0 manuell auf GND gezogen werden, um zu programmieren)
  • Ein FTDI-Adapter (um das ESP zu programmieren, konvertiert USB in seriell)

Nach dem Schema zusammenbauen

Das Steckbrettbild zeigt, wie die Teile zusammengebaut werden sollten. Beachten Sie, dass es 6 Pins gibt, die das Flachbandkabel von der HRV-Controller-Einheit in der Decke herunterkommen:

Pins 1 und 6 sind 5V VCC

Pins 2 und 5 sind GND

Pins 3 und 4 sind Daten.

Sie müssen nur die Pins 1, 2, 3 und 6 verwenden (1 und 6 VCC versorgen ESP8266 und die High-Side des TTL-Logikwandlers, 2 ist eine gemeinsame Masse und 3 dient zum Lesen von seriellen TTL-Daten).

Der Splitter, den Sie benötigen, ist nur ein RJ11-Splitter, stellen Sie nur sicher, dass es sich um einen Splitter handelt, bei dem die Pins gerade durch sind (z. B.: Pin 1 geht an Pin 1, Pin 2 an Pin 2 usw.) Beachten Sie, dass die zusätzlichen weiblichen Pins (wie wie in den Bildern gezeigt) sind für den Anschluss eines FTDI für die spätere Umprogrammierung des ESP, und der gezeigte Schalter versetzt ihn in den "Programming"-Modus. Diese sind optional, werden aber empfohlen (zB: wenn Sie Ihr WiFi-Passwort ändern, da der WiFi-AP und das Passwort fest in den Code einprogrammiert sind, den Sie hochladen müssen, sobald Ihr ESP8266 gebaut ist)

Schritt 2: Code hochladen und testen

Hochladen von Code und Testen
Hochladen von Code und Testen
Hochladen von Code und Testen
Hochladen von Code und Testen
Hochladen von Code und Testen
Hochladen von Code und Testen
Hochladen von Code und Testen
Hochladen von Code und Testen

Codeänderungen

Alternativer Download-Link zum Arduino-Code HIER

Öffnen Sie in der Arduino IDE, stellen Sie sicher, dass das ESP-Board sowie der PubSubClient installiert sind und dass Sie das ESP8266-Board ausgewählt haben (Tools, Board, Generic ESP8266 Board) Bearbeiten Sie den Code und ändern Sie den WLAN-AP-Namen und -Passwort sowie die IP-Adresse von Ihren MQTT-Broker (dies sind die einzigen Dinge, die Sie ändern müssen) wie unten gezeigt. Klicken Sie auf die Schaltfläche "Verifizieren", um sicherzustellen, dass die Kompilierung in Ordnung ist, stellen Sie dann sicher, dass der richtige COM-Port ausgewählt ist (Tools, Port) und laden Sie den Code auf Ihren ESP8266 hoch. Es gibt viele Artikel darüber, wie das geht, ich werde das Rad hier nicht neu erfinden.

// W-lan

const char* ssid = "your_wifi_ssid_here"; const char* password = "your_wifi_password_here"; // MQTT-Broker-IP-Adresse MQTT_SERVER(192, 168, 222, 254);

MQTT-Tests

Zum Testen können Sie Ihren FTDI-Adapter angeschlossen lassen und den Serial Monitor in der Arduino IDE öffnen. Sie sollten Meldungen sehen, die die Temperaturinformationen in der Konsole drucken. Wenn Sie eingehende MQTT-Nachrichten vom ESP8266 an Ihren MQTT-Broker beheben müssen, führen Sie auf dem Mosquitto-Server einen der folgenden Befehle aus, um die eingehenden Nachrichten zu abonnieren:

mosquitto_sub -d -t openhab/hrv/status

Sie sollten alle 30 Sekunden eingehende PUBLISH-Nachrichten vom ESP8266 mit der Zahl "1" sehen (bedeutet "Ich lebe"). Wenn Sie konstante "0" (oder überhaupt nichts) sehen, gibt es keine Kommunikation. Sobald Sie die Nummer 1 sehen, bedeutet dies, dass der ESP8266 mit dem MQTT-Broker kommuniziert (suchen Sie nach "MQTT Last Will and Testament", um mehr darüber zu erfahren, wie dies funktioniert, oder sehen Sie sich diesen wirklich guten Blogeintrag an).

Sie können jetzt Temperatur- und Lüftergeschwindigkeitsdaten verfolgen, abonnieren Sie eine der folgenden Optionen. Beachten Sie jedoch, dass der Code nur dann die Temperaturdaten sendet, wenn sich Daten geändert haben. Es verfolgt die zuletzt gesendeten Daten zu Temperatur, Lüftergeschwindigkeit usw., sodass Sie möglicherweise nicht sofort Informationen sehen.

mosquitto_sub -d -t openhab/hrv/rooftemp

mosquitto_sub -d -t openhab/hrv/housetemp

mosquitto_sub -d -t openhab/hrv/controltemp

mosquitto_sub -d -t openhab/hrv/fanspeed

Hinweis: Abonnieren Sie die obige Bedienfeldtemperatur und drücken Sie dann die Temperaturtaste auf dem Bedienfeld selbst, um die neue Temperatureinstellung anzuzeigen.

Wenn Sie zum Löten kommen, passt eine 3 cm x 7 cm große Platine gut in die Unterputzdose hinter dem HRV-Bedienfeld. Ich würde dies nur empfehlen, wenn es sich um eine Kunststoff-Unterputzdose handelt, da eine Metalldose die WLAN-Signale stören oder möglicherweise Verbindungen auf der Platine kurzschließen kann. Alternativ können Sie ein 3D-Kunststoffgehäuse ausdrucken, um die Platine zu montieren.

Schritt 3: OpenHAB-Änderungen

OpenHAB-Konfiguration

Folgende OpenHAB-Änderungen sind erforderlich:

'items'-Datei:

/* HRVNumber hrvStatus "HRV Status [MAP(status.map):%d]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/status:state:default]" }Nummer houseTemp "Haus [%.1f." C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/housetemp:state:default]" }Nummer houseTemp_Chart_Period "Chart Period"Nummer RoofTemp "Roof [%.1f C]" (gHRV) { mqtt=" <[mqttbroker:openhab/hrv/rooftemp:state:default]" }Number RoofTemp_Chart_Period "Chart Period"Number controlTemp "Control [%.1f C]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/controltemp: state:default]" }String fanSpeed "Fan Speed [%s]" (gHRV) { mqtt="<[mqttbroker:openhab/hrv/fanspeed:state:default]" }*/

'Sitemap'-Datei:

Frame label="HRV Temperature" {Text item=roofTemp {Frame { Switch item=roofTemp_Chart_Period label="Period" mappings=[0="Stunde", 1="Tag", 2="Woche"] Image url="https://localhost:8080/rrdchart.png" refresh=6000 Sichtbarkeit=[roofTemp_Chart_Period==0, RoofTemp_Chart_Period=="Uninitialized"] Image url="https://localhost:8080/rrdchart.png" refresh=30000 Sichtbarkeit= [roofTemp_Chart_Period==1] Image url="https://localhost:8080/rrdchart.png" refresh=30000 Sichtbarkeit=[roofTemp_Chart_Period==2] } } Text item=houseTemp { Frame { Switch item=houseTemp_Chart_Period label="Period " maps=[0="Stunde", 1="Tag", 2="Woche"] Image url="https://localhost:8080/rrdchart.png" refresh=6000 Sichtbarkeit=[houseTemp_Chart_Period==0, houseTemp_Chart_Period =="Nicht initialisiert"] Image url="https://localhost:8080/rrdchart.png" refresh=30000 Sichtbarkeit=[houseTemp_Chart_Period==1] Image url="https://localhost:8080/rrdchart.png" refresh =30000 Sichtbarkeit=[houseTemp_Chart_Period==2] } } Text item=controlTemp { Frame { Switch item=Combin ed_Chart_Period label="Period" mappings=[0="Stunde", 1="Tag", 2="Woche"] Image url="https://localhost:8080/rrdchart.png" refresh=6000 Sichtbarkeit=[Combined_Chart_Period ==0, Combined_Chart_Period=="Uninitialized"] Image url="https://localhost:8080/rrdchart.png" refresh=30000 Sichtbarkeit=[Combined_Chart_Period==1] Image url="https://localhost:8080/ rrdchart.png" refresh=30000 visible=[Combined_Chart_Period==2] } } Text item=fanSpeed }

Zusätzliche Icons für OpenHAB sind enthalten (Rechtsklick und Bilder speichern)

Speichern Sie diese Dateien im Ordner..\OpenHAB Home\webapps\images auf Ihrem OpenHAB-Server

Empfohlen: