Langzeit-Feuchtigkeitsmessung

Letztes Jahr wurde im Keller eine feuchte Wand saniert. Der Grund war Salpeter der sich bereits großflächig auf dem Mauerwerk verteilte. Die Sanierung ist nun fast ein Jahr her und das Mauerwerk im Keller des 1905 erbauten Hauses liegt mehr oder weniger frei und gibt die Feuchtigkeit in den Raum ab. Zudem findet ein regelmäßiger Luftaustausch statt.
Versuchsgebiet "Der sanierte Kellerraum"
Die Frage die sich mir jetzt stellt. "Ist die Feuchtigkeit in einem vertretbaren Rahmen oder drohen weiterhin Ausblühungen oder besteht sogar Schimmelgefahr".
Datenlogger zur Langzeitmessung
Ein Programm zur Lösung dieser Aufgabe ist schnell geschrieben. Als Grundlage dient die Anwendung "DataLogger" aus dem Lernpaket.
Datenlogger für die Luftfeuchtigkeit
Sourcecode
$include "lcd.bas"                                          'LCD-API einbinden
$include "weather.bas"                                      'Sensor-API einbinden

Dim Temp As Word                                            'Variablen anlegen
Dim Page As Byte
Dim Column As Byte
Dim Pixel As Byte
Dim Position As Byte

Clear_lcd
Loadwordadr Title
Print_bmp Page , Column , 1 , 44

Do
   Temp = Read_rh()                                         'Feuchtigkeitsmessung
   Temp = Temp / 2                                          'Anzeigeanpassung
   Temp = 64 - Temp                                         'y-Position bestimmen
   Page = Temp / 8                                          'Page bestimmen
   Column = Temp Mod 8
   Set_pointer Page , Position
   Pixel = 2 ^ Column                                       'Pixelmuster
   Out_data Pixel                                           'Punkt zeichnen
   Position = Position + 1
   Position = Position Mod 128
   'Waitms 100
   'Wait 60
   Wait 3600
Loop
End

Title:
Data &HBF , &HA1 , &HA1 , &HA1 , &H9E , &H80 , &H94 , &HA4 , &HB8 , &H80 , &H9E , &HA4 , &H80 , &H94 , &HA4 , &HB8,
Data &H80 , &H80 , &H80 , &HBF , &HA0 , &HA0 , &H80 , &H98 , &HA4 , &HA4 , &H98 , &H80 , &H18 , &HA4 , &HA4 , &H7C,
Data &H00 , &H18 , &HA4 , &HA4 , &H7C , &H00 , &H98 , &HA4 , &HA8 , &H80 , &HBC , &H84,
Das Updateintervall lässt sich über die Wartezeit am Ende der Schleif steuern. Aktuell findet alle Stunde (Wait 3600) eine Messung statt. Mit einer horizontalen Auflösung von 128 Pixel lässt sich so ein Zeitraum von 5,33 Tagen dokumentieren.
Rückmeldung von Hermann Lau (26.01.16):
"Ich hatte mir die Wetterstation gekauft, um eine Langzeit-Messung des Luftdruckes vornehmen zu können. (gemäß Kapitel 15 Ihres Buches)."
"Ich habe wait = 1200 eingestellt, ergibt also ein Pixel alle 20 Minuten. Wenn also 128 Messungen durchgelaufen sind, sollte die erste Spalte wieder leer sein. Jetzt schreibt er zwar in die erste Spalte, aber man weiß nicht welches der aktuelle Punkt ist. Gibt es einen Befehl mit dem man diese Problem lösen kann?"
"Ein weitere Anregung wäre, das Display nicht vollständig zu löschen, sondern am Ende die Kurve zu verschieben, sodaß man immer eine längere Zeitspanne verfolgen kann."
Lösungsvorschlag
Eine schnelle Lösung für dieses Problem ist die Verwendung einer inneren Schleife. Für die Langzeit-Feuchtigkeitsmessung könnte es folgendermaßen aussehen:
Do
   Clear_lcd
   Loadwordadr Title
   Page = 0
   Column = 0
   Print_bmp Page , Column , 1 , 44
   Position = 0

   Do
      Temp = Read_rh()                                      'Feuchtigkeitsmessung
      Temp = Temp / 2                                       'Anzeigeanpassung
      Temp = 64 - Temp                                      'y-Position bestimmen
      Page = Temp / 8                                       'Page bestimmen
      Column = Temp Mod 8
      Set_pointer Page , Position
      Pixel = 2 ^ Column                                    'Pixelmuster
      Out_data Pixel                                        'Punkt zeichnen
      Position = Position + 1
      Waitms 10
      'Wait 60
      'Wait 3600                                                'Updateintervall

   Loop Until Position = 128
Loop
End
Anregungen
Für einen sauberen Rundlauf der Messwererfassung ist es nötig eine einzelne Spalte zu löschen (über alle Pages) und danach erst den Messwert zu schreiben. Eine fortlaufende Verschiebung der Anzeige kann über die Speicherung der Messwerte realisiert werden.
Download und Links: