Projekt: HeizungsLogger für Öl-Brennwert-Heizungsanlagen

Hallo alle,

ich bin hier noch nicht so sehr lange dabei und habe bisher hauptsächlich mitgelesen und vieles gelernt. Dafür möchte ich mich bedanken bei allen, die hier unermüdlich reichlich Input geben!
Damit auch etwas zurückkommt, hier die Vorstellung eines meiner Projekte.

Das Projekt „HeizungsLogger“ liest 4 Dallas DS18B20 Temperatursensoren ein und zeigt sie auf einem 4x20 LCD-Display zusammen mit Datum und Uhrzeit an, die von einer DS1307 RTC geliefert werden.
Die Temperatursensoren sind sternförmig an einen Arduino Mega angeschlossen, die gesamte Buslänge beträgt 20m und wurde mit einfach geschirmter 3-Ader-Litze (3x0,14mm²) realisiert. In Arduino-Board-Nähe wird ein 2kOhm-Widerstand als Pullup für den I²C-Bus verwendet.
Die Temperatursensoren messen die Vorlauf-, Rücklauf- und die Aussentemperatur sowie die Raumtemperatur des Wohnzimmers.
Ein digitaler Pin des Arduinos wird benutzt, um den Status des Öl-Brenners einzulesen (Brenner aktiv bzw. passiv).
Die aktive Zeit des Brenners wird aufsummiert und angezeigt.
Die Brennerstarts werden gezählt und angezeigt.
Das Programm überwacht die Rücklauftemperatur am Brenner und zeichnet zusätzlich auf, wenn sie 43°C übersteigt UND der Brenner aktiv ist (heizt). In genau diesem Fall würde der Brennwerteffekt der Anlage nicht genutzt werden, da der Abgasstrom nicht mehr am niedrigen Rücklauf kondensieren kann. Die tageskumulierte Zeit dieses Zustands wird ermittelt und sowohl in Stunden als auch in Prozent der aktiven Brennzeit angezeigt. Hohe anteilige Werte können z.B. auf eine nicht optimal eingestellte Öl-Brennwert-Heizungsanlage hinweisen.
Das Programm ermittelt auf Tagesbasis ständig die minimale und maximale Außentemperatur und berechnet laufend die Durchschnitts-Aussentemperatur. Alle drei Werte werden auf dem LCD-Display angezeigt.

Ein Ethernet-Shield bietet die Möglichkeit, die Temperaturdaten und verschiedene Stati des Brenners im 10sec-Takt als .csv-Datei auf SD-Karte abzuspeichern. In einer weiteren .csv-Datei werden die Tagesdaten jeweils in einer einzelnen Zeile pro Tag abgespeichert (Statistikdaten).
Mit Hilfe eines Tasters wird zwischen drei verschiedenen Anzeigen des LCD-Displays umgeschaltet, wenn die Betätigungszeit des Tasters unter 2sec liegt:
erste Seite: Datum + Uhrzeit, Recording auf SD-Card an/aus, Brenner aktiv/passiv, alle vier Temperaturwerte
zweite Seite: Hilfsanzeige für die Werte auf der dritten Seite
dritte Seite: Aussentemperatur min, Durchschnitt und max, Online-Zeit der Überwachung am jeweiligen Tag in h, Summe der aktiv-Zeiten des Brenners am jeweiligen Tag in h, Summe der Zeiten, in denen die Rücklauftemperatur von 43°C überschritten wurde UND der Brenner aktiv war (in h) und dieser Wert auch noch einmal prozentual von der aktiv-Zeit des Brenners.
Eine längere Betätigung des Tasters stoppt/startet die Datenaufzeichnung auf SD-Karte.

Ein kleiner WebServer stellt alle oben beschriebenen Daten im Netzwerk zur Verfügung und zeigt sie numerisch an. Die Anwendung ermöglicht auch einen Blick auf die Daten der zurückliegenden Tage, indem die Statistikdatei angezeigt werden kann.

An dieser Stelle möchte ich mich bei vielen Forumanen hier bedanken, die HowTo’s und konkrete Vorschläge zu diesem Projekt lieferten, ohne es zu ahnen oder zu wissen. Mancher wird seine Handschrift bestimmt erkennen, denke ich.

Für den Nachbau müssen die Adressen der Temperatursensoren sowie die Mac-Adresse und die IP-Adresse des Ethernet-Shields angepasst werden.

Viel Spaß beim Stöbern wünscht Reinhardt!

HeizungsLogger_V0304M.ino (40.2 KB)

Und noch ein paar Bilder dazu...

gleich fertig....

nun aber...
Allen einen guten Rutsch und ein frohes neues Jahr!

Sehr schön, Reinhardt !
Danke für den interessanten .ino

  1. Zum Arduino:
    Sehe ich das richtig, dass du ziemlich früh ( bevor was funktioniert hat ) von Uno auf Mega umgestiegen bist ?

  2. Zur Brennwert-Technik:
    Nutzt du den Brenner auch zum Warmwasser Heizen ?

Alles Gute für 2014 !

Großes Kompliment!!
Ein tolles Projekt und auch sehr detailiert beschrieben! Genau sowas wollte ich auch schon realisieren leider sind meine Programmierkenntnisse noch nicht ausreichend genug. Was ist denn das für ein Gehäuse das du bearbeitet hast? Und hast du einen Schaltplan erstellt?

Gruß
Frank

Hallo Reinhardt,

erst mal an Dich und alle anderen "Ein gutes Neues Jahr 2014"

Nun zu deinem Projekt, super und detailliert erklärt. Top! Und mechanisch scheinst Du ja ebenfalls Top ausgestattet zu sein. Da kann man ja echt neidisch werden....

Ich weiß auch nicht, wovon ich mehr beeindruckt sein soll: vom Programm oder der mechanischen Ausführung. Ach was soll's, beides ist super 8)

Hallo,
schön, dass Euch das Projekt gefällt, danke für die Blumen!
Ich hatte es gestern mal zusammengeschrieben, weil ich bei „iselein“ gesehen habe, dass er ähnliche Anforderungen hat.
Meine vorherige Logger-Variante lief auf einem PC, der 24/7/365 durchlief und mit seinen 75W im Jahr ca. 150€ an Stromkosten verursachte (Tendenz im Rahmen der Energiewendemaßnahmen aufgrund steigender Abgaben: auch steigend).

@michael_x:
zu a): es funktionierte schon Einiges, bevor ich auf den Mega umgestiegen bin, aber ich bin letztendlich über den zu kleinen Speicherplatz gestolpert. Ich weiß: es gibt beim Code noch eine Menge besser zu machen, z.B. die Stringausgaben mit F(), aber das hätte an Optimierung nicht ausgereicht.

zu b): Brennwert-Technik: gut aufgepasst!
Ja, der Brenner erzeugt auch Heißwasser, es ist ein Wolf COB20 und läuft seit 2 Jahren. Wenn man sich die aufgezeichneten Daten einmal genauer ansieht („DAILSTAT Forum.csv“), dann sieht man für den 22.12.13: 0,16h Überschreitung der RL-Temperatur während der Heizphase, das sind 2,8% der täglichen Heizdauer, also völlig zu vernachlässigen.
Wenn man nun wissen will, unter welchen Bedingungen das passiert, schaut man in die jeweilige Datendatei des Tages hinein (131222.csv) und arbeitet sie grafisch auf (siehe „20131222 Temperaturgänge.pdf“). Dort ist erkennbar, dass die Überschreitung meistens mit der Warmwasserbereitung zusammenfällt (? der Peak der roten Kurve).

@Scherheinz:
Das Gehäuse habe ich von C****d (Best. Nr. 535167), Hersteller ist Hammond (Canada), die machen gutes Zeug.
Ja, Schaltbild ist eine gute Idee, siehe bitte im Anhang, ja?

Und ich habe noch 2 ScreenShots beider WebPage-Ansichten zugepackt. Vielleicht ist hier jemand, der sich mit HTML besser auskennt, das ist mir nicht so glatt von der Hand gegangen (wechselseitiger Aufruf beider Seiten). Da gibt es auch noch was zu verbessern…

DAILSTAT Forum.CSV (1.4 KB)

20131222 Temperaturgänge.pdf (216 KB)

noch ein'...

Hallo Reinhardt,

ich steuere ja auch meine Heizung mit einem Mega.
Ein Verbesserung habe ich noch, tausch deine DS1307 gegen eine DS3231, die gibt es bei ebay für unter 3 Euro.
Bei mir lief die 1307 sehr ungenau, die 3231 geht in einer Woche nicht eine Sekunde falsch und läuft auch mit der gleichen lib.
Gruß
Bernward

Glückwunsch, sieht nach einem sehr gelungenem Projekt aus! An der Verarbeitung gibt es nichts zu meckern. Eiwand von Bernward mit dem DS1307 ist berechtigt, der DS3231 ist besser. Aber über das NetzwerkShield kann er die Uhr auch täglich mit dem NTP Dienst abgleichen

Nochmal danke das du alles so schön offen legst. Jetzt werd ich die Brennwert Heizung meiner Eltern mal in Angriff nehmen :slight_smile:
Das Gehäuse scheint super zum Mega zu passen, ich werds mir mal genauer ansehen.
Was die Uhr angeht geb ich maverick1509 recht, hab auch eine DS3231 im Einsatz. Die läuft schon seit 6 Monaten ohne falsch zu gehen obwohl sie immer nur kurz mit Spannung versorgt wird.

Gruß

Danke Euch Dreien für den Vorschlag mit dem DS3231,
ich habe gleich mal ein paar davon bestellt.

Was das Offenlegen angeht: wenn ich nicht vorher hätte studieren können, was ihr hier preisgebt, wäre ich in 2Monaten nicht so weit gekommen, der Dank geht also zurück!

@Frank,
in das Gehäuse passt der Mega zwar ohne Probleme hinein, wenn man jedoch in der ersten Schicht das LCD-Modul versenken möchte, muss man das Gehäuse etwas auffräsen (seitlich, also in Display-HÖHE) - das ist ja nicht jedermanns Sache, wg. Fräsmaschine.
Aber dann macht die Anschlussseite des Boards (USB-Buchse) die nächsten Probleme: das Board passt nicht zwischen den angespritzten Stehbolzen des Gehäuses vorbei, daher die Hilfsmechanik aus Messing für die Deckelbefestigung.
Wenn man dann noch das Ethernet-Shield draufpackt, muss man zwangsläufig noch etwas Tiefe gewinnen, daher die ausgefräste Tasche für das Display als Erstes. An der Stelle, wo das Ethernet-Shield hinten zu Ende ist, beginnt auch gleich die Mulde auf der Gehäuserückseite, um bei Betrieb auch mit normalen Fingern an die SD-Karte heranzukommen.
Jedenfalls: beim finalen Schließen des Gehäuses hört man quasi, wie die Restluft entweicht. Ich hätte gern ein etwas größeres Gehäuse verwendet, habe aber keins zu einem adäquaten Preis gefunden.
Das war jedenfalls etwa so, als wenn man die Grugahalle durch's Schüsselloch tapeziert. XD

Achso, ok da war viel Geschick gefragt :cold_sweat:
Ich dachte wenn man das LCD in ein seperates Gehäuse packt reicht der Rest ohne viel Anpassungsarbeiten. Weißt du eigentlich wieviele Stunden du an diesem Projekt gearbeitet hast?

Moin Frank,

naja, viel Geschick..., ich weiß nicht, ich mag zwar die Hammond-Gehäuse, aber von den Maßen her war dieses zu geizig bemessen, ich möchte es wegen der Stehbolzen, die herausgetrennt werden müssen, nicht empfehlen. Dieses Problem bleibt bestehen, auch wenn man das Display auslagert (siehe auch Bild 7 weiter oben).
Ich hänge hier noch ein paar Bilder dran, die das Gerät auch von hinten zeigen, mit dem Bedienschacht, und seitlich mit der Ethernet-Buchse genau auf der Gehäuse-Trennung. Ich fand das alles zu fummelig und wenn ich nicht noch so ein Gehäuse hier liegen hätte, würde ich für das nächste Projekt lieber noch länger nach einem Gehäuse suchen.

Aber ich hatte bzgl. eines Gehäuses auch schon hier im Forum gesucht und irgendwie nichts gefunden.
Oder gibt es da etwas, bis auf diese Arduino-Standard-Lösungen?

zur Projektlaufzeit:
ich meine, ich habe Anfang Oktober mit dem Projekt begonnen und es lief dann in der jetzigen Version Anfang Dezember, also 2 Monate, incl. Grundlagen I²C-Bus, Sensoren, Verkabelung im Haus, vergießen der Sensoren in Messinghülsen und den ganzen Kram, Softwarelösungen aus Beispielen ansehen und verstehen, das böse Wort DELAY vermeiden usw.. Aber es hat echt Spaß gemacht! Aber eine Anzahl von Stunden kann ich nicht nennen.
Die Grundstruktur des Sketches habe ich nun schon verwendet für das nächste Projekt, einen "StromLogger".
Ich will damit sagen: neue Projekte können von vorherigen Projekten partizipieren, man muss nicht mehr so weit vorn beginnen wie beim ersten Projekt.

Der StromLogger ist inzwischen in Arbeit und verwendet die gleiche Hardware (ohne die Sensoren) und liest das Blinken der LED unseres Stromzählers aus, zeigt den aktuellen Leistungsbezug aus dem Stromnetz an, zeigt Pmin, Pquer, Pmax des Tages an, speichert alle 10sec auf SD-Karte, ermittelt statistische Tagesdaten und alles auch wieder als WebServer. Was die NSA weltweit kann, das kann ich zu Hause auch - hier geht zukünftig keiner mehr nachts unkontrolliert an den Kühlschrank... XD

Hallo Reinhardt!
Da geb ich dir Recht, es bleibt eh nie bei einem Projekt :wink:
Das optimale Gehäuse suche ich auch schon länger. Vorallem wenn man einen Mega in Verbindung mit dem Ethernet/SD Shield benutzt wirds schwer. Ich denke es ist einfacher wenn man den SD Slot umsetzt um ihn besser von außen bedienen zu können.

Gruß

Hallo Reinhardt,

Ich finde das ist ein sehr schöne Steuerung geworden. Daumen Hoch

Bin selbst da bei mein Aquarium Steuerung zu Verbessern und zu erweitern, besonders interessiere ich mich bei dein Projekt für den WebSever. Insbesondere auf was für ein Beispiel oder Literatur hast du das aufgebaut bzw. informiert?

Das mit den SD Slot auf dem Ethernet Shield ist nicht so toll wenn man es in ein Gehäuse ein bauen will. Kann man eigentlich das SD Slot auf dem Ethernet Shield deaktivieren oder einfach ein zweites anschließen?

Moin Ingo,

Demos zum Ethernet-Shield gibt es z.B. schon einige in der installierten IDE (unter Beispiele/Ethernet).
Dann wurde ich noch auf diese Seiten aufmerksam:

Oder schau Dir auch mal das hier an:

Die SD-Karte auf dem Ethernet-Shield musst Du nicht unbedingt benutzen. Wenn Du Pin4 auf HIGH lässt, ist die SD-Karte dort nicht selektiert. Ich denke, man sollte eine weitere SD-Karte über den 6-poligen ICSP-Header anschließen können, ggf. mit Pegelwandlung 3,3V/5V und die Karte dann über einen anderen Digitalpin selektieren.

Hallo Reinhardt,

Danke für die Links die beiden Links von jleopold kannte ich noch nicht. Werde ich mir mal anschauen und es dann in angriff nehmen.

Das mit der zweiten SD-Karte werde ich auch ausprobieren.