DIY - UV-Licht Sensor

Wenn die Temperaturen im Sommer steigen und wir uns länger draußen aufhalten, versuchen wir uns zunehmend vor der UV-Einstrahlung der Sonne zu schützen, zum Beispiel mit Sonnencreme. Doch gibt es diese UV-Strahlung nur im Sommer? Wie sieht es aus wenn die Sonne verdeckt ist und wie stark schwanken die Werte? Finde heraus wie viel UV-Strahlung die Erde erreicht und messe die UV-Intensität mit deiner senseBox!


Vorraussetzungen

Ziele der Station

In dieser Station verwenden wir einen UV-Lichtsensor, um die Intensität des UV-Lichts in Mikrowatt je Quadratzentimeter (μW / cm²) zu erfassen. Anschließend wollen wir den Wert in den UV-Index umrechnen.

Materialien

  • UV-Licht Sensor VEML6070

Grundlagen

UV-Strahlung

Ultraviolettstrahlung (UV-Licht) ist für den Menschen unsichtbare elektromagnetische Strahlung mit einer Wellenlänge, die kürzer ist als die sichtbaren Lichtes, aber länger als die der Röntgenstrahlung. UV-Licht umfasst die Wellenlängen von 100 nm bis 380 nm. Wegen der Absorption in der Erdatmosphäre - insbesondere in der Ozonschicht - dringt nur wenig UV-B-Strahlung (100 - 300 nm) bis zur Erdoberfläche vor. UV-A-Strahlung (300 - 380 nm), welche weniger gefährlich für die menschliche Haut ist, wird weniger durch die Atmosphäre absorbiert.

UV-Lichtintensität wird in Mikrowatt je Quadratzentimeter (μW / cm²) gemessen. Unser Sensor misst im Bereich von ca. 300 - 400 nm, nimmt also nur UV-A Strahlung auf (für genauere Angaben beachte das Datenblatt).

Aufbau

Belichtungs- und UV-Sensor angeschlossen über I2C-Port
Belichtungs- und UV-Sensor angeschlossen über I2C-Port

Schließe den Sensor an die senseBoxMCU an, wie es in der Grafik dargestellt ist.

Programmierung

Stelle sicher, dass du das aktuellste Board-Support-Package installiert hast, da du die korrekten Software-Bibliotheken benötigst. Wie das geht wurde dir in Schritt 2 erklärt!
Als erstes muss eine Instanz des Sensors angelegt werden.

#include "SenseBoxMCU.h"
VEML6070 vml;

setup() Funktion

In der setup()-Funktion soll der Sensor nun gestartet werden:

void setup(){
    vml.begin();
}

loop() Funktion

In der loop()-Funktion können wir mit dem Befehl 'getIlluminance()' die aktuelle gemessene Lichtintensität abrufen:

void loop(){
  vml.getUvIntensity();
}
Möchtest du dir den UV-Index anzeigen lassen so musst du dir vorher eine Funktion deklarieren die das für dich übernimmt. Wie das geht erfährst du im nächsten Schritt!

Umrechnung in den UV-Index

Da im Alltag häufig mit dem UV-Index gearbeitet wird, wollen wir nun eine Methode schreiben, welche uns den Messwert in einen UV-Index umrechnet:

/*
 * getUVI()
 * erwartet den Messert des UV-Sensors als Eingabeparameter
 * und gibt den entsprechenden Wert auf dem UV-Index zurück
 */
float getUVI(int uv) {

  float refVal = 0.4; // Referenzwert: 0,01 W/m^2 ist äquivalent zu 0.4 als UV-Index
  float uvi = refVal * (uv * 5.625) / 1000;
  return uvi;
}

Aufgaben

Aufgabe 1

Versuche dir im seriellen Monitor nun mithilfe der getUVI()-Funktion den UV-Index ausgeben zu lassen.

results matching ""

    No results matching ""