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.
| 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.