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