Wolken

Projekt zu Wolken, Sensoren und neuronalen Netzen

Arbeitsbereich A/D Konverter

In extremen Wertebereichen der Spannungswerte der Lichtsensoren zeigen sich gelegentlich untypische Kurvenverläufe.

Analogsensoren

In den Kurven von Sensor 1 (grüne Kurve) ist gelegentlich eine geringere Variation der Messwerte im Vergleich zu den anderen Sensoren zu beobachten. Möglicherweise ist der Spannungsteiler für diesen Sensor ungünstig dimensioniert, und erzeugt diesen nichtlinearen Effekt.

Spannungsteiler

In der ersten Version des Sensoraufbaus sind alle Spannungsteiler gleich ausgelegt. Die LDR erhalten unterschiedliche Lichtmengen durch Maskierung oder Farbfilterung.

Für Sensor 1 ist der Widerstand R1 evtl. zu groß gewählt. Die fixen Widerstände werden nun neu berechnet, so dass die jeweiligen Werte der Spannungsteiler durchschnittlich im mittleren Messbereich des A/D Wandlers liegen.

Wettertaugliches Gehäuse

Für einen dauerhaften Ausseneinsatz müssen die elektronischen Bauteile gegen Feuchtigkeit geschützt werden, der Temperatur- und Feuchtigkeitssensor aber belüftet sein.

sensor

Der obere Teil des Sensorgehäuses ist in einem Glaskolben (Reagenzglas, Ø 3cm) untergebracht. In der unteren belüfteten Sensorkammer ist der Sensor BME280 für Temperatur, Luftdruck und Luftfeuchte platziert. Über schräge Öffnungen kann eindringendes Wasser abfließen. (Bild links)

Die Halterung und Maskierung für die Lichtsensoren ist 3d-gedruckt. Ein kugelförmiger Reflektor wird von Sensor 1 erfasst, Helligkeit der Sonne und des Himmels werden gemessen. Zwei Röhren mit Sensoren (2,3) sind nach oben ausgerichtet, die Helligkeit eines Himmelssegments wird gemessen.(Bild mitte)

Der obere Lichtsensor 1 (LDR) ist nach unten auf die Reflexionsfläche ausgerichtet. Die LDR-Widerstände 2 und 3 (Blaufilter) sind ins Zenit gerichtet. Der Messwinkel ist begrenzt, die Sonne wird nie erfasst. Der kombinierte Temperatur-, Druck- und Feuchtesensor ist möglichst nicht Sonne, Regen oder Wind direkt ausgesetzt. (Bild rechts)

Sensoren über I2C

Ein kombinierter Sensor für Temperatur, Luftfeuchte und Luftdruck wird über eine digitale Schnittstelle angebunden.

bme280

Bei der Berechnung der Wolkendeckung ist der Luftdruck möglicherweise ein wichtiger Faktor. Um meteorologische Grunddaten zu erfassen wird der Sensor BME280 verwendet. Einzelsensoren für Temperatur, Luftfeuchte und Luftdruck sind in einem Gehäuse untergebracht.

Jeder Sensorbaustein wird während der Produktion kalibriert, die Daten werden im Sensor abgespeichert. Für ein korrektes Messergebnis müssen die rohen Messwerte mit den Korrekturdaten verrechnet werden. Bei Luftdruck und Luftfeuchte werden auch Temperatur-Messwerte einbezogen.

Mit der libi2c Bibliothek wird auf die Register des Sensors zugegriffen.

Das Datenblatt des Sensors schlägt aus Performance-Gründen das blockweise Auslesen von Registern vor.

Linkliste

Beaglebone Hardware http://maximebranger.synology.me:180/epubfs.php?data=249&comp=c06.xhtml

bme280 Datasheet https://www.makershop.de/download/bst-bme280-ds002.pdf

bme280 Breakout board https://www.makershop.de/download/bme280-breakout-schematic.jpg

i2c Verdrahtung https://elinux.org/File:BoneGPIO.png

i2c Interface https://www.kernel.org/doc/Documentation/i2c/dev-interface

i2c Code https://github.com/ControlEverythingCommunity/BME280/blob/master/C/BME280.c

i2c Code http://blog.generationmake.de/articles/5/bosch-bme280-luftdr

i2c Code https://elinux.org/Interfacing_with_I2C_Devices

https://de.mathworks.com/help/supportpkg/beagleboneio/ug/the-beaglebone-black-gpio-pins.html

https://stackoverflow.com/questions/29972421/reading-an-input-4096-from-a-directory-to-use-in-c

Elektronik

Operationsverstärker https://www.ti.com/lit/pdf/slyt701

OpAmp LM324N https://www.ti.com/lit/ds/symlink/lm324-n.pdf https://www.ti.com/lit/pdf/sloa277

Meteo

Luftdruck https://rechneronline.de/barometer/

Höhenprofil https://de-de.topographic-map.com/map-95z57/Deutschland/?center=50.12909%2C8.69358&zoom=16

Neuronal

NN https://ai.googleblog.com/2016/06/wide-deep-learning-better-together-with.html

Steve Brunton https://www.youtube.com/c/Eigensteve/videos ML https://www.youtube.com/watch?v=QpzQYDcczRQ NN https://www.youtube.com/watch?v=aIZtJqtzdQs

3blue1brown https://www.youtube.com/c/3blue1brown NN https://www.youtube.com/watch?v=aircAruvnKk&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi

C++

https://cplusplus.com/doc/tutorial/files/

http://www.willemer.de/informatik/cpp/timelib.htm

https://wiki.debian.org/DateTime

Sensorwerte in der Datenbank

Die Sensorwerte werden vorverarbeitet in die Datenbank geschrieben.

Datenbank

Für überwachtes Lernen des neuronales Netzes werden die abhängigen Parameter "Kalwolk, Kalcc, Kalreg" als Daten zur Klassifizierung in die Datenbank geschrieben.

Zeitlich zusammenhängende Werte werden, um gemeinsam als zeitinvariante Daten zum Training benutzbar zu sein, mit einer gleichen zID gespeichert.

Um als zeitlicher Parameter "zZeit" als Eingangswert des neuronalen Netzes linear verwendbar zu sein, ist die Tageszeit in "julianischen" Minuten kodiert. ;)

Sensoren für diffuses / direktes Licht

Mit zwei Helligkeitssensoren lässt sich der Grad der Bewölkung abschätzen.

Sensor 1 (Gesamt) misst über die Reflektionsfläche das direkte Licht der Sonne und das Umgebungslicht des Himmels. Sensor 2 (Zenit) misst ein Segment des Himmels, in dem sich die Sonne nie befindet. Bei bewölktem Himmel ist die Helligkeit bei Sensor 2 größer als bei Sensor 1. Bei wolkenlosem Himmel ist die Helligkeit bei Sensor 1 größer. Aus der Differenz lässt sich die Verdeckung der Sonne durch Wolken, also der Bewölkungsgrad ableiten.

Sensor 1 2

Weiter links oder unten liegende Datenpunkte repräsentieren eine höhere Helligkeit. Messwerte bei bewölktem Himmel (rot), und wolkenlosem Himmel (blau) lassen sich gut unterscheiden.

Wolkensensor und neuronale Netze

Ein Projekt zu Erkundung der Möglichkeiten neuronaler Netze. Mit wenigen Helligkeitssensoren wird der Deckungsgrad der Bewölkung gemessen.

sensorphalanx

Das Ziel des Projekts ist, die Programmierung und den Einsatz von künstlichen neuronalen Netzen zu erkunden. Im Versuchsaufbau werden mehrere Sensoren (Helligkeit, Luftdruck, Luftfeuchtigkeit) an einen Einplatinencomputer angeschlossen. Messwerte werden in regelmässigen Abständen in einer Datenbank gespeichert. Ein neuronales Netz berechnet den Deckungsgrad der Bewölkung.

Sensorphalanx
Helligkeitssensoren (LDR) messen verschiedene Lichtparameter des Himmels. In einer Aufbaustufe werden auch Temperatur, Luftdruck und Luftfeuchte gemessen.
Datenaquisition
In z.B fünfminütigem Abstand werden die Sensoren abgefragt, und die Messwerte an die Datenbank geschickt.
Datenbank / Frontend
Aktuelle Messwerte werde ausgelesen und in einem Dashboard angezeigt. In einer Histogrammdarstellung wird ein zeitlicher Verlauf dargestellt.

Für die Berechnung der Bewölkung werden mehrere Helligkeitswerte und andere Parameter erfasst:

Direktes und diffuses Licht
Ein LDR-Sensor ist nach unten auf eine halbkugelförmige Reflexionsfläche gerichtet. Direktes Sonnenlicht, als auch diffuses Umgebungslicht des Himmels werden von der matten Oberfläche reflektiert.
Diffuses Licht
Ein Sensor ist ins Zenit ausgerichtet. Durch Positionierung in einer Röhre wird der Messwinkel begrenzt, direktes Sonnenlicht fällt niemals auf diesen Sensor.
Blaus Licht
Im Messwinkel begrenzt, und mit einer Farbfolie versehen messen zwei Sensoren jeweils den Rot- und Blauanteil des diffusen Lichts.
Tageszeit
Die Wolkendeckung bildet sich zu verschiedenen Uhzeiten u.U. in verschiedenen Farb und Helligkeitskombinationen ab.
(Luftdruck, Temperatur, Luftfeuchte)
Die vorherrschende Wolkenart wird möglicherweise stark durch diese Parameter bestimmt. Die Sensoren werden in einer weiteren Ausbaustufe hinzugefügt.

Als Zielparameter sollen berechnet werden:

Wolkendeckung
Der Grad der Bewölkung, bei Cirrus die Abschwächung des Sonnenlichts durch die Wolken, bei Cumulus der Anteil an Bedeckung der Himmelsfläche.
Bewölkungsart
Das Spektrum von Cumulus- bis Cirrusbewölkung wird berechnet.