Innehållsförteckning:

HRV -temperatur till OpenHAB Via ESP8266 (seriekodsexempel!): 3 steg
HRV -temperatur till OpenHAB Via ESP8266 (seriekodsexempel!): 3 steg

Video: HRV -temperatur till OpenHAB Via ESP8266 (seriekodsexempel!): 3 steg

Video: HRV -temperatur till OpenHAB Via ESP8266 (seriekodsexempel!): 3 steg
Video: Tour a Smart Home GeenStar Gut rehab with OA Awesome Wall (Corrected) 2024, November
Anonim
HRV -temperatur till OpenHAB Via ESP8266 (seriekodsexempel!)
HRV -temperatur till OpenHAB Via ESP8266 (seriekodsexempel!)
HRV -temperatur till OpenHAB Via ESP8266 (seriekodsexempel!)
HRV -temperatur till OpenHAB Via ESP8266 (seriekodsexempel!)
HRV -temperatur till OpenHAB Via ESP8266 (seriekodsexempel!)
HRV -temperatur till OpenHAB Via ESP8266 (seriekodsexempel!)

HRV - Trådlöst till OpenHAB

Denna instruktion är speciellt för dem som har ett HRV -system (värmecirkulationsventilation) - även om delar av kretskortet, openhab -konfiguration eller Arduino -kod (som att läsa TTL -seriedata) kan vara praktiska för dina egna projekt eller fungera bra för inlärning. Det förutsätter att du har en rimlig kunskap om Arduino IDE och vad ett ESP8266 -chip är.

Introduktion

Följande beskriver hur man bygger en ESP8266 som ansluter till ett HRV -system och skickar tak- och hustemperaturer, kontrollpaneltemperatur och fläkthastighet via MQTT -meddelanden till OpenHAB. Detta är utformat för att fungera med ett ESP8266-01-kort (även om det ska fungera med alla ESP8266 3.3V-versioner) Om du har ett liknande HRV-system från en alternativ leverantör måste du avgöra om data skickas som TTL-seriell och i så fall, vilken struktur data skickas som.

OpenHAB och Mosquitto

ESP8266 -koden har skrivits specifikt för att fungera med OpenHAB (öppen källkod hemautomatiseringsprogram) och en MQTT -mäklare som Mosquitto (ett protokoll som prenumererar/publicerar typ som är lätt och bra för kommunikation mellan enheter) Låt inte namnen eller akronymer skrämmer dig, de är verkligen ganska enkla att använda när du väl får veta hur de fungerar. Jag använder OpenHAB på en NTC C. H. I. P (US $ 9 -dator) men många använder en Raspberry Pi eller liknande. Denna handledning förutsätter att du har implementerat OpenHAB (om du behöver hjälp med att konfigurera OpenHAB, följ den här utmärkta artikeln från webbplatsen makeuseof) Du måste också ladda ner och installera Mosquitto (MQTT -mäklare) och relaterad OpenHAB -bindning. Du kan installera detta någon annanstans i ditt nätverk, men de flesta installerar bara det på samma dator som OpenHAB för att hålla det enkelt.

För att installera Mosquitto, följ denna länk, välj sedan vilken typ av enhet du använder och följ instruktionerna. Eftersom C. H. I. P kör Debian (Jessie) kan du följa Raspberry Pi -instruktionerna om du använder C. H. I. P för din hemautomationsenhet (observera också att det är bäst att omkonfigurera CHIP för att starta från CLI. Det finns instruktioner för detta här)

När du har OpenHAB och Mosquitto igång måste du förbereda Arduino IDE för ESP8266 och kod. Först måste du lägga till biblioteket "PubSubClient". I Arduino IDE, från menyn går du till Sketch, Include Library, Manage Libraries I filtersökrutan skriver du PubSubClient och markerar sedan sökresultatet och klickar för att installera (i skrivande stund är den senaste versionen 2.6.0) Du kommer att måste också lägga till ESP8266 -kortet i Arduino IDE vilket kan göras genom att följa instruktionerna här

Vad ger detta mig?

Som tidigare nämnts kommer detta projekt att tillåta dig att se ditt tak för HRV -kontrollpanel, hus, kontrollpaneltemperaturer och fläkthastighet i OpenHAB GUI (i realtid!) Bilderna visar hur det ser ut från min iPhone, plus diagrammen du kommer genom att borra ner i de olika temperaturerna.

För att få graferna måste du också installera och konfigurera RRD4J -bindningen (detta är väldigt rakt fram) Detta låter dig klicka på antingen "Hus" eller "Tak" och få en historik över HRV -temperaturer för varje tidigare timme, dag eller vecka (eller längre, om du ändrar konfigurationen för att passa) Bilderna som visas är i celsius, och det är klart att det är vinter på södra halvklotet när jag gjorde detta!

Dessutom skapade jag en OpenHAB-vy som visar en jämförelse mellan utomhustemperatur (tillhandahålls av tillägget Väderbindning, i mitt fall med Wunderground) jämfört med tak- och hustemperaturer genom att klicka på alternativet "Kontroll" (bilden visar grafen med hus, tak och utetemperatur plottade). Jag planerar att använda dessa data i regler för att slå på värmeapparater efter behov. Lägg helt enkelt till väderobjektet i din bild -URL i webbplatskartfilen och inkludera detta på samma graf (t.ex.:… items = houseTemp, roofTemp, weatherTemp…)

Steg 1: Nödvändiga delar / montering

Nödvändiga delar / montering
Nödvändiga delar / montering
Nödvändiga delar / montering
Nödvändiga delar / montering
Nödvändiga delar / montering
Nödvändiga delar / montering

Du behöver följande delar

  • En RJ11 -delare (detta delar signalen från styrenheten i taket, till kontrollpanelen och ESP8266)
  • Någon bandkabel och en RJ11 -kontakt (för att driva ledningar från splitter till ESP8266)
  • ESP8266-01 (andra 3.3V-versioner bör fungera)
  • TTL -logikkonverterare (för att ändra data från 5V -> 3,3V)
  • AMS1117 3.3V spänningsregulator (eller liknande, för att ändra spänning från HRV 5V -> 3.3V till ström ESP8266)
  • 1N5817 schottky -diod (av någon anledning hjälpte detta till att stoppa HRV -kontrollpanelen när ESP slås på)
  • 10K ohm motstånd (pullup motstånd mellan 3,3 spänningsregulator och ESP CH_PD)
  • 10V 10uF kondensator (eller liknande, för att jämna ut och stabelisera inkommande effekt från HRV)
  • 10V 1uF kondensator (eller liknande, för att jämna ut och stabelisera utgående ström till ESP)
  • Valfri glidknapp för att programmera ESP (annars måste du dra GPIO0 till GND manuellt för att programmera)
  • En FTDI -adapter (för att programmera ESP, konverterar USB till seriell)

Montera enligt schemat

Panelen visar hur delarna ska monteras. Observera att det finns 6 stift som kommer ner i bandkabeln från HRV -styrenheten i taket:

Stift 1 och 6 är 5V VCC

Stift 2 och 5 är GND

Stift 3 och 4 är data.

Du behöver bara använda stiften 1, 2, 3 och 6 (1 och 6 VCC driver ESP8266 och högsidan av TTL -logikomvandlaren, 2 är en gemensam grund och 3 är för att läsa TTL -seriedata)

Delaren du behöver kommer bara att vara en RJ11 -splitter, se bara till att det är en splitter där stiften är raka igenom (t.ex.: stift 1 går till stift 1, stift 2 till stift 2 och så vidare) Observera att de extra honstiften (som visas på bilderna) är för anslutning av en FTDI för omprogrammering av ESP senare, och omkopplaren som visas sätter den i "programmerings" -läge. Dessa är valfria, men rekommenderas (t.ex.: om du ändrar ditt WiFi -lösenord eftersom WiFi AP och lösenord är hårt programmerade i koden, som du måste ladda upp när din ESP8266 är byggd)

Steg 2: Ladda upp kod och testa

Uppladdningskod och testning
Uppladdningskod och testning
Uppladdningskod och testning
Uppladdningskod och testning
Uppladdningskod och testning
Uppladdningskod och testning
Uppladdningskod och testning
Uppladdningskod och testning

Kodändringar

Alternativ nedladdningslänk till Arduino -kod HÄR

Öppna i Arduino IDE, se till att ESP -kortet är installerat liksom PubSubClient och att du har valt ESP8266 -kortet (Tools, Board, Generic ESP8266 Board) Redigera koden och ändra WiFi AP -namn och lösenord och IP -adressen för din MQTT -mäklare (det är de enda sakerna du behöver ändra) som visas nedan. Klicka på "Verifiera" -knappen för att se till att den kompileras ok, se till att rätt COM -port är vald (Verktyg, Port) och ladda upp koden till din ESP8266. Det finns gott om artiklar om hur man gör detta, jag kommer inte att uppfinna hjulet på nytt här.

// Wifi

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

MQTT -testning

För testning kan du låta din FTDI -adapter vara ansluten och öppna seriemonitorn i Arduino IDE. Du bör se meddelanden som skriver ut temperaturinformationen i konsolen. Om du behöver felsöka inkommande MQTT -meddelanden från ESP8266 till din MQTT -mäklare, kör på Mosquitto -servern ett av följande kommandon för att prenumerera på inkommande meddelanden:

mosquitto_sub -d -t openhab/hrv/status

Du bör se inkommande PUBLISH -meddelanden som kommer in från ESP8266 var 30: e sekund eller så med siffran "1" (vilket betyder "jag lever") Om du ser konstanta "0: or" (eller ingenting alls) så finns det ingen kommunikation. När du väl sett siffran 1 kommer in betyder det att ESP8266 kommunicerar med MQTT -mäklaren (sök "MQTT Last Will and Testament" för mer information om hur det fungerar, eller se det här riktigt bra blogginlägget)

Du kan nu spåra temperatur- och fläkthastighetsdata, prenumerera på något av följande. Observera dock att koden bara skickar temperaturdata om någon data har ändrats. Den håller reda på den senaste temperaturen, fläkthastigheten etc som skickades, så du kanske inte ser information komma in direkt.

mosquitto_sub -d -t openhab/hrv/rooftemp

mosquitto_sub -d -t openhab/hrv/housetemp

mosquitto_sub -d -t openhab/hrv/controltemp

mygga_sub -d -t openhab/hrv/fanspeed

Tips: prenumerera på kontrollpanelens temperatur ovan, tryck sedan på temperaturknappen på kontrollpanelen själv så att den nya temperaturinställningen kommer in.

När du börjar löda detta passar ett 3 cm x 7 cm kretskort fint i spolboxen bakom HRV -kontrollpanelen. Jag rekommenderar bara att göra detta om det är en plastspolningslåda eftersom en metallbox kan störa Wifi -signaler eller eventuellt kortsluta anslutningar på kretskortet. Alternativt kan du skriva ut ett plast 3D -fodral för att montera kortet i.

Steg 3: OpenHAB -ändringar

OpenHAB -konfiguration

OpenHAB -ändringar som krävs är följande:

"objekt" -fil:

/* HRVNumber hrvStatus "HRV Status [MAP (status.map):%d]" (gHRV) {mqtt = "<[mqttbroker: openhab/hrv/status: state: default]"} Number houseTemp "House [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/housetemp: state: default] "} Number houseTemp_Chart_Period" Chart Period "Number roofTemp" Tak [%.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' -fil:

Rametikett = "HRV -temperatur" {Text item = roofTemp {Frame {Switch item = roofTemp_Chart_Period label = "Period" mappings = [0 = "Time", 1 = "Day", 2 = "Week"] Image url = "https:// localhost: 8080/rrdchart-p.webp

Extra ikoner för OpenHAB ingår (högerklicka och spara bilder)

Spara dessa filer i mappen.. / OpenHAB Home / webapps / images på din OpenHAB -server

Rekommenderad: