Wolkensensor - Die astronomische Wetterstation

Knickohr

BASCOM-Experte
29. Feb. 2008
465
0
16
Sprachen
Guten Abend,

nachdem mich fast täglich eMails aus allen möglichen Foren (hauptsächlich aus Astronomie-Foren) erreichen, wie das denn mit der "Cloud Detection" so funktioniert, verweise ich gerne mal hier auf das Forum und den Beitrag hier.

Die Theorie besteht darin, das man die Umgebungstemperatur mißt und dann den Himmel durch ein schmales "Fenster" der Wäremstrahlung. Idealerweise hat der klare Himmel die Temperatur des Weltraumes, also nahe dem absoluten Nullpunkt (-273°C). Er ist also ein idealer schwarzer Körper. Nun ja, schön wäre es, wann alles ideal wäre, aber das ist ein anderes Thema.

Zurück zur "Wolkenmessung". Sind nun Wolken am Himmel, so reflektieren diese die Wärmestrahlung von der Erde mehr oder weniger. Auch Dunst und Feuchtigkeit machen das und sind somit eigentlich Störfaktoren. Doch weniger in der Astronomie. Hier sind die Messungen dieser Störfaktioren sogar erwünscht, da man bei Nebel und hoher Luftfeuchte auch keine Astronomie betreiben kann.

Ihr kennt sicher alle so berührungslose "Fieberthermometer", die man ins Ohr Steckt ;) Oder diese Bewegungsmelder. Die Sensoren sind im Prinzip alle nach dem gleichen Schema gestrickt. Sie messen die Umgebungstemperatur und die Wärmestrahlung des "Objektes" (also Trommelfell oder die sich bewegende Person vor der Alarmanlage).

Ausgewertet wird also eine Temperaturdifferenz. Je höher die Differenz, desto mehr Wolken. Natürlich muß der Sensor auch in der Lage sein, die Temperaturänderung der Umgebung mit zu machen. Deshalb auch eine relativ aufwendige analoge Auswertelektronik mit einer hohen Stabilität und Kompensation. Das Ganze spielt sich auch noch im µV-Bereich ab. Genau genommen messen wir also in einer klaren Nacht die Temperatur des Weltraums, bei Bewölkung die an den Wolken reflektierte Wärmestrahlung von der Erde.

Wer sich weiter schlau machen will, kann sich das mal rein ziehen :
http://www.google.de/url?sa=t&ct=re...bxQqaiT3nVV1P1fGQ&sig2=uCWw3O_s5ncgSI4zjWWqdA

Ab Kapitel 4 wirds interessant.

Die Analogschaltung ist bereits entwickelt und die Platinen sind zur Zeit in Produktion. Bin echt mal gespannt, was sich daraus entwickelt. Natürlich kommt später als Auswerteelektronik ein Atmega zum Einsatz ;) eventuell sogar mit Grafikdisplay.

Genug gebabbelt.

Thomas
 

Anhänge

  • CloudPCB.gif
    CloudPCB.gif
    31,6 KB · Aufrufe: 202
  • CloudSCH.gif
    CloudSCH.gif
    73,2 KB · Aufrufe: 351
Guten Abend :)

Die Astro-Wetterstation entwickelt sich :

SHT71-1.jpg
SHT71-2.jpg


Das Display wechselt alle 10 Sekunden zwischen den beiden Anzeigen. Auf dem Grafikdisplay ist momentan der Verlauf der Temperatur über der Zeit zu erkennen. 1 Pixel entspricht 1°C bzw. 1 Minute. Später einmal soll hier der Verlauf der Bewölkung dargestellt werden.

Hmmm, wenn ich jetzt irgend woher die Formeln zur Berechnung der Sonnen- bzw. Mondaufgänge und -untergänge bekomme, dann könnte ich das auch noch rein programmieren *fg*

Thomas
 
Hallo :)

Auf- und Untergangszeiten sind eingebaut (siehe oben) ;) Allerdings nicht für die Sonne oder dem Mond. Was stört den Astronomen am Meißten ? Richtig, die Dämmerung ! Deshalb auch der Beginn der (natürlich astronomische) Dämmerung am Morgen und das Ende der Dämmererung am Abend (Sonne 18° unter Horizont).

War ganz schön hartnäckig, eine richtige Formelschlacht. Und dazu soll es dann auch noch möglichst einfach und ohne viel Ressourcen in den Atmel passen. Nun ja, die Genauigkeit ist so ca. 5 Minuten, dürfte aber voll ausreichen. Ich könnte noch statt den Single-Variablen Double nehmen, macht aber an der Genauigkeit nicht mehr viel wett. Wird nur jede Menge Speicher verbraten.

Thomas
 
Guten Abend :)

Sonnenauf- und -untergangszeiten sind jetzt auch drin ;)

Beim Mond wird es etwas komplizierter. Muß mir vielleicht doch die passende Literatur kaufen.

Nochmal zur Erklärung :
- die 2. Zeile ist die Temperatur, was sonst ? *fg*
- die 3. Zeile der Taupunkt oder Frostpunkt, je nachdem, was aktuell ist
- die 4. Zeile die (korrigierte, reelle) Luftfeuchte
- die 5. Zeile Datum und Uhrzeit
- die 6. Zeile die Sternzeit
- die 7. Zeile Beginn und Ende der astronomischen Dämmerung
- die 8. Zeile Sonnenauf- und -untergangszeit

Das Display ist voll ... Gibts eigentlich noch größere Display mit mehr Auflösung, das man sauber und einfach mit BASCOM ansteuern kann ?

Thomas
 
Sodale,

DCF77 läuft auch. Hat mich heute den ganzen Tag und einige meiner letzten Haare gekostet.

Punkt 1: Der Pin, an dem das DCF-Signal liegt wird beim Config gleichzeitig der Pull-Up Widerstand an dem Pin aktiviert. Ich verwende das Reichelt-Modul, weils energiesparender ist und man es über einen Pin abschalten kann. Nachteil, der Signalausgang ist sehr hochohmig und mit dem ungewollt eingeschalteten Pull-Up zieht das Modul den Pegel nicht mehr auf Null. Also, Transistor dazwischen schalten. Aber da muß ich MCS mal anschreiben. Das kanns nicht sein. Den Pull-Up möchte ich nicht auf Auge gedrückt bekommen.

Punkt 2: Anscheinend ist bei mir der Empfang nur so lalaaa. Eine angeschlossene LED am Pin hat zwar schön im Sekundentakt geblinkt, aber irgendwie konnte das Signal nicht sauber decodiert werden. Irgendwann habe ich es dann doch mal geschafft. Zumindest war es der Beweis, das es nicht am Code und an mir liegt ;)

Punkt 3: Das Reichelt-Modul soll angeblich empfindlicher sein als die von ELV oder Conrad. Aber es ist auch empfindlicher gegen Störeinflüsse. Also immer schön Kondendatoren an die Versorgungsspannungspins machen. Eine 33µ Tantal mit einem 100n Keramikkondensator und ein 33 Ohm Widerstand in Reihe zur Versorgungspanung direkt am Modul konnten dann ein sauberes DCF-Signal aus dem Modul entlocken.

Ein weiterer Schritt zur Astro-Wetterstation ist getan. Jetzt muß ich mich an den Wolkensensor und dem Analogteil machen.

Thomas
 
Hört sich gut an? Wo gibts aktuelle Bilder und Code zum schnuppern? Bilder vom Prototyp?

Grüße,
Markus
 
Hallo Markus,

der Prototyp sieht so aus :

SHT71-3.jpg


Rechts oben die neue Platine für den Analogteil (Wolkensensor). Rechts unten der Lochrasteraufbau für den Wolkensensor. Der Wolkensensor scheint zu funktionieren. Zumindest ändert sich die Spannung am Ausgang in Abhängigkeit von der Wolkendichte und Feuchtigkeit in der Luft. Genauere Messungen kann ich erst machen, wenn das Wetter wieder besser ist und ich über den Atmel eine längere Zeit erfassen kann.

Es fehlt noch die Platine für den Digitalteil. Das wird eine größere Aktion. Muß erst ein paar Probleme mit der DCF-Uhr lösen. Da ich den Atmel nur über den internen 1MHz RC-Oszillator rennen lasse, ist die ganze Sache recht ungenau, was den Timer für die DCF77-Config an geht. Es sind Unterschiede von mehreren Minuten pro Tag. Ich synchronisiere die Zeit nur einmal am Tag. Das ganze soll ja batteriebetrieben (oder akkubetrieben) werden, da kann ich mir keine Stromfresser leisten. Momentan verbraucht die Schaltung mit allem drumherum nicht mal 1mA (inkl. Wolkensensor). Und das soll auch so bleiben !

Schade, das man Config DCF77 nicht gleichzeitig mit Config Soft und dem Uhrenquarz verwenden kann. Das würde die ganze Sache vereinfachen. Der Uhrenquarz läuft für einen Tag stabil genug. Wenn die Softclock mit dem DCF77 synchronisiert ist, erscheint im Display neben dem Batteriesymbol eine kleine Uhr.

Mondauf- und -untergang fehlt auch noch. Das ist dann die letzte Zeile, wo jetzt noch "Astro-Wetterstation" im Display steht.

Man sieht auch, alles (noch) ohne Tasten. Ich möchte das so gut es geht auch ohne machen. Naja, eine Taste für die Displaybeleuchtung wird es wohl geben.

Der Code beinhaltet noch nicht die Wolkenmessung. Aber der Code wird Dir weitgehenst bekannt vor kommen ;)

Thomas
 

Anhänge

  • Wetterstation.zip
    11,6 KB · Aufrufe: 348
Guten Abend :)

Schaut mal, ich habe ein Riesendisplay am rennen. 240x128 Pixel, ein echtes Grafikdisplay. Das Ding braucht ganz schön Strom und jede Menge Rechenpower. Unter 8MHz Takt geht da gar nichts, wenn man einen Sectic sauber auf dem Display anzeigen will.

240x128.jpg


Die Startroutine beim Einschalten ist noch nicht ganz sauber. Kommt ab und zu vor, das mir das Display gar nichts oder nur Müll anzeigt. Viuelleicht muß ich das Display nach der Initialisierung zusätzlich resetten. Hat schon jemand Erfahrung mit so "großen" Displays gemacht ?

Thomas
 
Hallo Thomas,

das sieht gut aus. Was ist es denn für ein Display? Wahrscheinlich ist ja auf dem Display ein LCD-Controller integriert, welcher ist es denn?

Es könnte sein, dass das Timing bei der Initialisierung nicht stimmt, oft ist es so, dass bestimmte Kommandos ein bisschen Zeit benötigen, bis diese der LCD-Controller ausgeführt hat. Wenn du dann zu früh das nächste Kommando sendest, kann es sein, dass dieses nicht ausgeführt wird und dann ist das Display nicht richtig initialisiert. Versuch einfach mal zwischen den Initialisierungskommandos Pausen zu setzen, bzw. zu erhöhen, vielleicht gibt es auch die Möglichkeit in einem Statusregister ein Busy-Flag abzufragen.

Ist das Display erst einmal richtig initialisiert, wird eigentlich nur noch der Adresszeiger des Grafikspeichers geändert (locate), bzw. Grafikdaten übertragen, das ist in der Regel vom Timing nicht mehr so kritisch, da hier nur in Register geschrieben wird.

Gruß,
Dirk
 
Hallo Dirk,

das GLCD ist ein MS240128A2 mit T6939C Controller. Schau mal bei eBay unter "240x128" nach, dann bekommst Du genügend Angebote. Sind auch recht günstig zu bekommen. Jedenfalls ist das MS240120A2 günstiger als das EA DOGM128-6.

Irgendetwas zeitkritsches muß doch noch drin sein. Das Display friert mir, zumindest Teile davon, nach geraumer Zeit ein. Seltsam ist nur, das es immer in der Hauptroutine passiert. Was ich in der Sectic ausgebe, wird sauber aktualisiert. Ich vermute mal, da ist mir der Atmega644 mit internen 8MHz doch zu langsam. Werde da wohl doch auf einen externen Quarz mit 12 oder 16MHz umsteigen müssen. Da das Display eh ein Stromfresser ist, spielt das jetzt auch keine Rolle mehr.

Code schicke ich heute Abend oder Morgen mal mit, momentan ist es ein einziges Durcheinander ;)

Sodale, jetzt kann man es auch vorzeigen :cool: :

Wetter.jpg
128x240.jpg


Das obere Diagramm zeigt den Verlauf der Temperatur über 2 Stunden. Die gestrichelte Linie ist der momentane Wert des Tau- oder Frostpunktes.

Das untere Diagramm stellt momentan den Verlauf der Luftfeuchte dar. Hier soll später mal die "Wolkendichte" ausgegeben werden.

Das Problem mit der "unsauberen" Anzeige tritt auf, wenn man in der Sectic-Routine eine LCD-Ausgabe macht. Hätte ich mir eigentlich denken können. Naja, die Sectic unterbricht das Programm, um sich selbst abzuarbeiten. Jeder andere Befehl wird dann erst mal auf die Wartebank geschoben. Und wenn dann gerade eine LCD-Ausgabe im Hauptprogramm läuft, kann das ganz schön durcheinander kommen.

Die DCF77-Routine habe ich jetzt auch am Laufen. Allerdings nicht mit der BASCOM-Eigenen Routine, sondern mit einer externen Lib. Die BASCOM-Routine ist zu störanfällig und zeigt immer wieder unsinnige Werte an. Da fehlt wohl eine saubere Validitätsprüfung. Außerdem war es nicht möglich, den Uhrenquarz in einer Softclock mit der DCF-Routine von BASCOM zu vereinigen. Die Lib im Code-Anhang (auch nur aus den unendlichen Weiten des Internets geklaut :D ) funktioniert prima. Spätestens nach 2 Minuten habe ich ein sauberes und gültiges DCF77-Telegramm empfangen. Auch unter widrigen Empfangsbedingungen. Allerdings hat die Routine noch 2 kleine Makel. Es kommt bei der Compilierung zu einem Fehler, den man aber vernachlässigen kann. Weiterhin ist die Auswahl des DCF77-Eingangspins nicht so einfach frei wählbar. Da muß man in der Lib ein wenig "froschen". Ich verstehe sehr wenig von ASM, aber es müßte doch möglich sein, diese beiden unschönen Dinge auszumerzen.

Thomas
 
Guten Abend :)

Während draußen die Kamera läuft und hoffentlich wieder gute Aufnahmen macht, hab ich mich mal an die Mondauf- und -untergangszeiten gemacht.

Boah Leute, Formelschlacht pur ! Aber es hat sich gelohnt. Alle Auf- und Unterganszeiten, sowohl für die Sonne als auch für den Mond, werden jetzt mit einer Genauigkeit von +/- 1 Minute berechnet. Nur bei den Dämmerungszeiten sind es +/- 10 Minuten, geht leider nicht ohne noch größerem Aufwand besser. Ich denke, das reicht vollkommen aus.

Jetzt muß ich mal sehen, ob ich den Code etwas optimieren und einsparen kann. Ich probiere auch mal statt den Double-Variablen nur Single-Variablen zu nehmen. Wenns nur eine Minute Genauigkeit ausmacht, dann ist das Banane !

Und ich werde mich dann endlich mal an den Wolkensensor ran machen ;)

Thomas
 

Anhänge

  • Wetterstation.zip
    15,5 KB · Aufrufe: 200
Hei Thomas,

geile Sache. Ich möchte mir auch so eine Astro-Wetterstation bauen? Ich auch hab will!!!!

Hast Du Dir schon Gedanken darüber gemacht, wie das Ding aussehen soll wenns mal fertig ist?
Wirst Du eine PCB hierzu fertigen lassen oder bleibt es ein fliegender Aufbau?
Hast Du Lust das Gerät in größeren Stückzahlen bauen zu lassen?
Hast Du Dir schon ein schönes Gehäuse rausgesucht?

Wenn Du Dein Arbeiten an der Astro-Wetterstation abgeschlossen hast dann sende mir doch den Schaltplan und den BASCOM-Code damit ich das Ding nachbauen kann.
Solltest Du das ganze als Bausatz konzipieren, dann bin ich dabei!!

Grüße,
Markus
 
Hallo Markus,

ich denke, das Ganze wird so ähnlich laufen, wie die Timer. Die Platine wird so groß sein, wie das Display, so das man sie einfach darunter schrauben kann. Es gibt dann noch die kleine Sensorplatine für den Wolkensensor. Die muß aber möglichst nah am Wolkensensor sein.

Probleme bereiten mir die Versorgungsspannungen. Ich brauche ca. 12V für den Analogteil des Wolkensensors und dann noch mal 5V für das Display. Dem Prozessor ist es ziemlich Wurst, was er bekommt. Kann so im Bereich von 3 bis 5 Volt sein. Möchte das Ganze möglichst verlustfrei aber auch ohne großen Aufwand realisieren. In der Sternwarte habe ich etwa 12V aus der Solaranlage und der Ladebatterie. irgendwie muß ich jetzt noch runter auf 5V kommen. Vermutlich wirds auf einen kleinen Schaltregler raus laufen. Ich brauche so knapp 100mA mit Beleuchtung, ohne Beleuchtung begnügt sich das Display mit ca. 15mA.

Das Ganze in ein recht flaches Gehäuse ohne viel Drumherum. So das es halt gerade rein paßt. Ich weiß noch nicht mal, ob ich überhaupt irgendwelche Taster oder Schalter dran mache. Die Uhr stellt sich automatisch. Einzig die Ortskoordinaten müßten eingegeben werden. Vielleicht ein Mäuseklavier auf der Platine ? Oder GPS ? *fg* Nun gut, einen Taster brauche ich für die Beleuchtung.

Eigentlich sollten es ja 2 Geräte sein. Eine kleine, stromsparende Einheit ohne dem großen Display (vielleicht doch das stromsparende EA 128x64) in der Sternwarte und die große Displayeinheit in der Bude. Übertragung der Signale natürlich mit den kleinen Funkmodulen. Muß ja auch mächtig Lärm machen, wenn Wolken kommen, sonst werde ich nicht wach.

Hmm, ist alles noch nicht so ganz ausgegoren. Hab heute noch die Mondphase mit dazu programmiert. Die Codeoptimierung war ein voller Erfolg. Single-Variablen reichen voll aus und die Dämmerungszeiten habe ich jetzt auch auf +/- 2 Minuten genau.

Sodale, ich muß wieder ans Fernrohr, die Aufnahme läuft, ein letzter Blick und dann gehts in die Haia. Morgen früh um fünf wird das Ganze Geraffel mit hoffentlich neuen Bildern rein geholt.

Noch ein Foto :

Display_Wetter.jpg


Thomas
 
Guten Abend,

auch mal wieder was neues von mir und der berüchtigen Wetterstation mit dem Wolkensensor.

Das muß ich jetzt noch loswerden :
Das ist kein Fake, das Ding soll angeblich wirklich funktionieren. Jedenfalls reagiert das Ding auf meine Handwärme, warum soll es dann nicht auch auf (warme) Wolken reagieren ? ;) Der erste Peak im unteren Diagramm kommt von meiner Hand. Der zweite ist von meiner Birne mit Fotoapparat. Es erreichen mich immer wieder eMails, das ich nicht so einen Blödsinn verbreiten soll. Irgendwie finde ich das auch etwas lustig :D

Hier nochmal ein Foto von der funktionierenden Astro-Wetterstation mit dem Wolkensensor. Schade, das ich das Ding noch nicht in der Natur testen konnte. Ausgerechnet jetzt, wo ich den Wolkensensor am rennen habe, regnet es. Und Strom und Wasser vertragen sich nicht so dolle ...

Astrowetter.jpg


Bis zur Serienreife dauert es aber noch ein Weilchen ;)

Thomas
 
Hallo :)

In den letzten beiden Stunden hat der Wolkensensor zum ersten Mal den Himmel gesehen :

Cloud_01.gif


Man erkennt wunderbar, das vor ca. 100 bis 85 Minuten der Himmel ein wenig klar war und dann die Bewölkung immer mehr zunahm. Ich muß mir noch was einfallen lassen, damit das Diagrammfeld immer optimal ausgenutzt wird. So was wie eine automatische Verstärkungsregelung. Eines darf der Wolkensensor auf gar keinem Fall sehen : Die Sonne. Dann sprengt die Linie die Skala !

Das Sch...-Ding funktioniert !!!

Thomas
 
:) :p :D ;)
Glückwunsch Thomas!
Ich bin begeistert! Du weisst ja, ich auch so ein Ding hab will!
Grüße,
Markus
 
OK, ich glaube das Ding ist langsam Serienreif. Nach einigen Tagen ausgiebigen Test funktioniert der Wolkensensor eigentlich recht zuverlässig :

Wetter1.jpg


Hier ist der Verlauf über die letzten 6 Stunden dargestellt. Man erkennt, das es heute Nachmittag ein Gewitter gab (Der Berg ganz am Anfang). Dann schlichen immer wieder leichte Wolken und Zirren über den Himmel. Und in den letzten beiden Stunden klarte es immer mehr auf.

Prinzipell kann man sagen, wenn die Wolkentemperatur unter 0°C sinkt, das man mit keinem Niederschlag rechen muß. Sinkt die Temperatur schließlich unter -10°C dann ist der Himmel richtig klar.

Leider wird es heute Nacht vermutlich keine Beobachtungsnacht mehr werden, es ist einfach zu feucht. Temperatur und Taupunkt unterscheiden sich gerade mal um 3°C und die Kurven nähern sich an. Naja, bei 82% Luftfeuchte säuft mir vermutlich das Teleskop ab, bevor es richtig dunkel ist, auch wenn keine Wolken da sind.

Irgendwie habe ich noch ein Problem mit Artefakten auf dem Display. Da kommen wohl noch irgendwo Störungen rein. Vielleicht muß ich doch ab und zu mal einen CLS machen und die Anzeige säubern. Das Dumme ist nur, dann muß ich alles neu aufbauen und das sieht man für so ca. 1 bis 2 Sekunden.

Thomas
 
Hallo Thomas,

das Ergebnis sieht echt gut aus.

Irgendwie habe ich noch ein Problem mit Artefakten auf dem Display. Da kommen wohl noch irgendwo Störungen rein.

Treten denn die Störungen immer an der selben Stelle auf, nur bei Datenübertragung zum Display?

Du überträgst reine Grafikdaten, das heisst, das Display hat kein Character-Memory?

Grüße,
Dirk
 
Hallo Dirk,

die Artefakte treten immer bei einem "Fusing" auf. Da muß wohl irgendetwas bei den Störungen in den String mit rein kommen. Habe das jetzt mal ohne das Fusing gemacht und die Werte auf plausible Inhalte geprüft. Bis jetzt hat es keine Artefakte mehr gegeben. Es liegt definitiv am Fusing und nicht an der Übertragung vom SHT71, da auch bei der Wolkentemperatur, die über den internen A/D des Atmegas gemessen wird, die Artefakte auftreten.

Ich teste noch ein bißchen ;)

Ach ja, ich verwende das Display im Hochformat, da kann ich leider nicht die internen Schriften verwenden. Also alles im Grafikmodus "aufgemalt".

Thomas
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)