Wetterstation: Das Schnee-Orakel
Schnee an Weihnachten. Da freut sich wohl jeder. Ok! Vielleicht nicht alle. Aber die Chancen für ein weißes
Weihnachten stehen dieses Jahr nicht sonderlich gut. Trotz des viel zu warmen Winters habe ich die Hoffnung
jedoch noch nicht aufgegeben. Es ist ja auch noch etwas Zeit. Auch wenn man die
Schneewahrscheinlichkeit schon nicht beeinflussen
kann so ist sie doch auf irgendeine Weise messbar.
Die Idee
Ob sich in einer Regenwolke Schnee bildet, lässt sich mit der Wetterstation natürlich nicht messen. Allerdings können wir
anhand des Lufdrucks und der Außentemperatur eine Aussage treffen. Eine schlechte Wetterlage und Temperaturen von -2 bis + 3 Grad
bilden zumindest eine gute Grundlage und erhöhen die Wahrscheinlichkeit für Schnee. Das Orakel versucht die Messergebnisse in
einer Art "Preudo-Wahrscheinlichkeit" abzubilden.
Die Anwendungen für die Franzis Wetterstation
$include "lcd.bas" $include "weather.bas" Dim Page As Byte Dim Column As Byte Dim Temp As Word Dim Result As Word Init_lcd 22 Do Clear_lcd Loadwordadr Title Page = 0 Column = 0 Print_bmp Page , Column , 1 , 50 Loadwordadr Snowflake Page = 3 Column = 16 Print_bmp Page , Column , 4 , 32 Result = 1 Temp = Read_temp() Temp = Temp + 5 Temp = Temp And &B0000000011111111 If Temp <= 7 Then Result = Result + 43 Result = Result + Temp End If Temp = Read_press() Temp = Temp + 34 If Temp <= 1000 Then Temp = 1000 - Temp Result = Result + Temp End If If Result >= 100 Then Result = 99 End If Page = 4 Column = 70 Print_word Page , Column , Result Column = 90 Loadwordadr Percent Print_bmp Page , Column , 1 , 8 Waitms 1000 Loop End Snowflake: Data &H00 , &H00 , &H80 , &HC0 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H80 , &H00 , &H20 , &H49 , &HFE, Data &H49 , &H20 , &H00 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &HC0 , &H80 , &H00 , &H00 , &H00, Data &H00 , &H00 , &H00 , &H00 , &H03 , &H2B , &H68 , &H6E , &H30 , &H3E , &H4C , &H80 , &H5B , &H43 , &H36 , &H8F, Data &H36 , &H43 , &H5B , &H80 , &H4E , &H3C , &H30 , &H6E , &H68 , &H4B , &H03 , &H00 , &H00 , &H00 , &H00 , &H00, Data &H00 , &H00 , &H80 , &H80 , &H60 , &H69 , &H0B , &H3B , &H06 , &H1E , &H39 , &H80 , &H6D , &H61 , &H36 , &HF8, Data &H36 , &H61 , &H6D , &H80 , &H39 , &H1E , &H06 , &H3B , &H0B , &H69 , &H60 , &H80 , &H80 , &H00 , &H00 , &H00, Data &H00 , &H00 , &H00 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H02 , &H49 , &H3F, Data &H49 , &H02 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H00 , &H00 , &H00 , &H00, Percent: Data &H02 , &H65 , &H12 , &H08 , &H24 , &H53 , &H20 , &H00 Title: data &H92, &HA5, &HA9, &H92, &H80, &H98, &HA4, &HA4, &H80, &HBF, &H84, &HB8, &H80, &HBC, &H84, &HB8, data &H80, &H98, &HA4, &HA8, &H80, &H98, &HA4, &HA8, &H80, &H88, &H88, &H80, &H9E, &HA1, &HA1, &HA1, data &H9E, &H80, &HBC, &H84, &H80, &H94, &HA4, &HB8, &H80, &HBF, &H88, &HB4, &H80, &H98, &HA4, &HA8, Data &H80 , &HBF,
Funktion
Die Berechnung des Ergebnisses ist nicht besonders spektakulär. Hier kann man sich noch austoben. Wie zuverlässig die Vorhersage
wirklich funktioniert wird sich in den nächsten Wochen zeigen.
Hinweis
Die aktuelle API gibt den Temperaturwert für die Funktion "Read_temp()" als 16-Bit-Wert zurück. Dennoch liegt der Wert für
die interne Sensorabrage in einem Bereich zwischen 0 und 255, d.h. eine negative Temperatur (-1 °C) führt nicht wie angenommen zu einem Überlauf
und einem Wert von "65535" sondern zu "255". Aus diesem Grund wird nach der Verschiebung der Wert mit "Temp = Temp And &B0000000011111111"
maskiert.
Die Vorhersage ist gar nicht so schlecht. Bei Beginn des Schneefalls zeigte das Orakel 93% an.
Man sollte allerdings den Standort für seine Versuche mit Bedacht wählen (am besten einen Unterstand).
Die Platine der Wetterstation sowie das Gehäuse sind nicht wasserdicht.
Der Winter steht vor der Tür.
Download und Links: