martinbulinski.de

Gaszähler auslesen am PC Drucken E-Mail
  
Mittwoch, 12. November 2008 um 08:34

Seit etwa Mitte Januar 2007 lese mich meinen Gasverbrauch mit dem PC aus. Klappt ungemein gut.

  

Die Idee

Da im Keller sowieso ein Server läuft, der den ganzen Tag nichts zu tun hat, ausser Faxe und Anrufe anzunehmen und ab und zu ein paar MP3-Files zu liefern, habe ich nach Möglichkeiten gesucht, den Gasverbrauch per PC auszulesen.
Nach einiger Sucherei bin ich auf einen Thread gestossen im EIB-Userclub

Der Kontakt zum Zähler

Da ich auch einen Gaszähler der Firma KROM-SCHROEDER besitze und tatsächlich eine Aussparung unter dem Zähler ist, um einen Abnehmer eben oben genannter Firma anzuschliessen (ca. 30EUR), habe ich mir anstelle dessen bei Reichelt einen REED-Kontakt Nr. MK471 B bestellt (ca. 2.50EUR). Meine vorhergehenden Versuche mit anderen REED-Kontakten sind allesamt misslungen.

Den Reedkontakt, den ich nun gekauft habe, mußte ich nicht einmal einkleben: Wenn er an der einen Fläche ein wenig befeilt wird, kann man ihn sehr gut in die Aussparung “einklemmen”. Kurz und gut, der Zähler zählt auf 10Liter genau, da der Magnetkontakt in der Drehscheibe der zweiten Stelle hinter dem Komma bei jeder Umdrehung den Kontakt auslöst (und der Gaszähler ja den Verbrauch in Kubikmeter zeigt).

 

Der Anschluss am Gameport

Da mir meine serielle Schnittstelle zu kostbar war für so ein einfaches Auslösen und Zählen, habe ich den Gameport verwendet.
Die Beschaltung des Gameport sieht so aus:

Also anschliessen an Pin 4 (Masse) und einen der Button-Pins 2,7,10 oder 14. Polung ist ja egal, weil es sich einfach nur um einen Schalter handelt.
Ein kleines C-Programm, dass den Fire-Button des Ports prüft, war schnell geschrieben und seitdem wird jede Zählerumdrehung protokolliert. Hier ein kleiner Auszug (Adresse 0×201 ist der Gameport). In der Variablen i steht das Bit des geschlossenen Pins. Ich prüfe hier pauschal, ob irgendein Schalter geschlossen ist.

...  
if (ioperm(0x201, 1, 1))
{ perror("ioperm");
exit(1);
}
while (1) /* Schleife */
{ i = inb(0x201);
/* shift to lower nibble */
i = i >> 4;
if ((i != 15 ) )
{ time(&uhrzeit);
aktuhrzeit = localtime(&uhrzeit);
strftime(buff1,80,"%d.%m.%Y %H:%M:%S",aktuhrzeit);
puts(buff1);
}
}
...

Um Mitternacht wird das Protokoll in eine mySQL-Datenbank übertragen, dort auf Verbrauch pro Stunde “gestaucht” (genauer brauch ich es wirklich nicht…) und dann im Webbrowser grafisch präsentiert.

Das Ergebnis

Hier z.B. ein Auszug aus dem täglichen Verbrauch im Februar (vom 6.- 9.2. hatte ich leider einen kleinen Serverausfall wg. einer defekten Platte :-( ). Der Screenshot ist vom 7.4., der März ist eigentlich der erste Monat, in dem ohne Ausfall durchgemessen wurde. Ich verbrauche im Jahr ca. 1200 Kubikmeter Gas.

Tja, und da die Aussage über den Gasverbrauch natürlich wenig wert ist, wenn man das nicht ins Verhältnis mit der Aussentemperatur setzt, war das nächste ein PT1000-Temperatursensor am Gameport. Dazu später mehr…

HIer gehts zu den Verbrauchswerten

Aktualisiert ( Donnerstag, 10. September 2009 um 09:57 )
 
Benutzerbewertung: / 10
SchwachPerfekt 

Kommentare  

 
0 #4 Marian 2012-01-13 11:40 Was soll ich sagen, es funktioniert! Jetzt kann ich mich daran machen, ein Arduino-Programm zu schreiben, das mir die Daten in die Wohnung funkt. Zitieren
 
 
+1 #3 martin 2012-01-13 11:09 Hi Marian, habe nochmal geschaut:
Also, ich habe mich vertan, die auslösende Stelle ist die dritte hinter dem Komma (bei mir ist in diesem Rad auch nochmal eine optische Markierung an Zählerstelle 6, die einen reflektierenden "Bauch" hat.).
Ich kann mich erinnern, dass die Ausrichtung ein wenig Gefummel war. Richtig eingesetzt wird er wie auf dem Foto: Die bedruckte Seite nach oben (hast Du), und der Kabelausgang geht nach links (also die schwarz vergossene Seite nach "hinten"). Mein drittes Zählrad steht nicht mittig über dem Zähler, sondern etwas mehr Richtung Kabelausgang des Reed-Kontakts. Ich habe nochmal nachgemessen. Zwischen der rechten Seite der Ausparung am Zähler und dem Beginn des Sensors habe ich noch 4mm "Lücke". Wenn bei mir die Zahl 6 des letzten Zählrades (also das 3. hinter dem Komma) unten durchläuft (also nicht in der Anzeige, sondern unten, wo der Sensor klebt), wird das Signal ausgelöst, Du solltest dann also glatten Durchgang am Multimeter haben. Hoffe, das hilft
Zitieren
 
 
0 #2 Marian 2012-01-13 10:23 Wenn ich den Reed in die Aussparung am Zähler stecke, mit der bedruckten Oberseite nach oben und der breiten Fläche mit den zwei Bohrungen nach unten, bekomme ich keine Veränderung des Widerstands beim Durchlauf des letzten Rades. Habe ich die falsche Orientierung? Wie rum hast Du den Reed eingesetzt?

Ich musste übrigens den Kontakt nicht bearbeiten. Er passt so ganz hervorragend in die Aussparung und hält gut.

Vielleicht habe ich auch nicht richtig verstanden, wann ich einen Zählimpuls bekommen müsste. Wenn Du sagst, dass ein Zählimpuls je 10 Liter erfolgt, müsste es ja pro Umdrehung des hintersten Rades (3. Stelle hinterm Komma -> 10 mal 0,001 Kubikmeter) einen Zählimpuls geben. Du schreibst aber "da der Magnetkontakt in der Drehscheibe der zweiten Stelle hinter dem Komma bei jeder Umdrehung den Kontakt auslöst". Das würde bedeuten, dass es nur einen Zählimpuls je 0,1 Kubikmeter, also je 100 Liter, gibt.

Danke für Klärung! Und vielen Dank überhaupt für den Artikel!
Zitieren
 
 
0 #1 Eckhard 2011-02-28 09:28 Hallo,

ich finde deine Umsetzung mit der GAS Ablesung super!

Was würde ich dafür geben, mehr von Elektrotechnik zu verstehen und von alte Traktoren zu reparieren
Ich habe wohl das Falsche gelernt (-> Bankkaufmann). Mit PCs kenne ich mich (sehr) gut aus (Programmieren kann ich nicht, nur VBA in Excel). Ich bin ein echter Wadenbeisser, wenn ich ein Thema für mich entdeckt habe.

Dies mit den Reedkontakten sieht erstmal relativ einfach aus (so wie du es beschrieben hast). Ich würde es auch gerne für mich umsetzen. Statt einen PC in den Keller zu stellen würde ich ggf. sowas nutzen wollen: http://www.elv.de/USB-PC-Datenlogger-PCD-300/x.aspx/cid_726/detail_31648

Hättest du ggf. noch weitere Informationen für mich? GGf. auch Buchempfehlunge n? (achtung, sollte für Anfänger sein).

Vielen Dank für Deine Tipps!

Viele Grüße,

Eckhard
Eckhard Ficke
Bardenfleth 5, 26931 Elsfleth
Mobil 0173 6124659
Zitieren
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Anmeldung



Wer ist online

Wir haben 10 Gäste online