Gasverbrauch

Die automatisierte Erfassung des Gasverbrauches befindet sich seit dem 27.02.2010 in der Erprobung. Der mit einem Arduino Microcontroller realisierte Gasverbrauchszähler kann per Hand auf Null zurückgesetzt werden. Nun heisst es abwarten um zu sehen, wie gross die Differenz zwischen dem tatsächlichen und dem erfassten Verbrauch ist. 

 

 

 Ein interaktives Diagramm zum Gasverbrauch: Gasverbrauch Interaktiv

 

Da der vom Magnetsensor erfasste Gasverbrauch gegenüber dem Zählerstand des Gaszählers Abweichungen aufweist, teste ich zur Zeit unterschiedliche Sensorpositionen, um den Einfluss der Position auf die Messung zu erfassen. Wenn sich eine geeignete Positionen finden läßt, werde ich mich der Software zuwenden, um dort weitere Verbesserungen einzupflegen.

Variation der Position des Magnetsensors und der Timeout Zeit

Datum Uhrzeit Position Timeout Gaszähler Verbrauch Messung Diff.
    2.0R HL 60s        
16.03.2010 08:00 2.0L HL 60s 3132,57    n/a  
14.03.2010 17:00 2.0R HL 60s 3117,36 19,19 28,6 +49%
12.03.2010 15:30 2.0R LH 60s 3098,175 18,5 21,6 +16,8%
10.03.2010 18:00 2.0R LH 10s 3079,684 30,2 31,2 +3,3%
07.03.2010 18:00  2.0R LH 10 s 3049,468  28,6 29,3 +2,5%
04.03.2010 20:45 2.0L LH 1 s 3020,835   n/a  
04.03.2010 18:00 1.5R LH 1 s 3019,677 12,4 18,4 +48% 
03.03.2010 07:35 3.0L LH 1 s 3007,297 3,5 n/a  
02.03.2010 22:30 3.0R LH 1 s 3003,771 1,5 n/a  
02.03.2010   2.0R LH 1 s 3002,270 18,8 22,2 + 18%
28.02.2010     1 s 2983,456      

 

An dieser Stelle der Arduino Source Code der Sensorauslesefunktion readMeter(), wie er sich zur Zeit im Einsatz befindet. Die Funktion liest das Signal des Magnetsensor und inkrementiert bei Statuswechsel von HIGH auf LOW die Gaszählervariable iGasMeterCount:

void readMeter()
{
  int val = digitalRead(schalter);
  if( val == LOW && oldVal == HIGH )
  {
    if( !lock )
    { 
      digitalWrite(ledPin, HIGH); 
      lock = true;
      delay( timeout ); 
      iGasMeterCount++;
      Serial.print("MeterCount: ");
      Serial.println( iGasMeterCount);
      updatePachube();
    }
  }
  
  if( val == HIGH && oldVal == LOW ) 
  {
    lock = false;
     digitalWrite(ledPin, LOW); 
  }

  oldVal = val;  
}

Erstes Fazit:     Die für eine kontinuierliche Erfassung des Gasverbrauches notwendige Genauigkeit konnte mit den vorgenommen Änderungen im Aufbau und in der Software leider nicht erreicht werden. Ich habe daher bei der Firma Pipersberg einen Impulsnehmer bestellt, der speziell für den vorhandenen Gaszähler vorgesehen ist.