Mit dem UVM30 UV-Sensor kann die Intensität des ultravioletten Lichts gemessen und anschließend als UV-Index ausgegeben werden. Vor allem in DIY Wetterstationen kann dieser Messwert eine sinnvolle Ergänzung sein.
UV-Index
Der UV-Index beschreibt den am Boden erwarteten Spitzenwert der sonnenbrand-wirksamen UV-Strahlung. Je höher der UV-Index ist, desto höher ist die UV-Bestrahlungsstärke, desto schneller kann bei ungeschützter Haut ein Sonnenbrand auftreten.
Der UV-Index wurde von der WHO definiert und ist weltweit einheitlich.
Die UV-Index-Skala ist in verschiedene Bereiche unterteilt, für die unterschiedliche Schutzempfehlungen gelten. Er ist somit nicht nur ein Maß für die zu erwartende UV-Belastungen, sondern dient darüber hinaus als Orientierungshilfe für Empfehlungen, welche Schutzmaßnahmen ergriffen werden sollten.
Folgende Faktoren beeinflussen die UV-Intensität:
- aktueller Sonnenstand (Morgens, Mittags, Abends)
- geografische Breitenlage
- Ozonkonzentration in der Atmosphäre
- Höhenlage eines Ortes
- Bewölkung
UVM30 UV-Sensor
Der UVM30 UV-Sensor misst die Intensität des ultralioletten Lichts und rechnet diese in einen analogen Wert um. Dieser Wert muss nun lediglich in einen UV-Index übersetzt werden um lesbare Daten zu erhalten.
Technische Daten
Betriebsspannung | 3-5 V |
Ausgangsspannung | 0-1 V |
Genauigkeit | ± 1UV Index |
Betriebsstrom | 0,06 mA (Standard) / 0,1 mA (max.) |
Messbereich | 200nm bis 370nm |
Betriebstemperatur | -20 °C bis -85 °C |
Maße (L x B x H) | 28 x 13 x 10 mm |
Aufbau und Schaltplan
Im Versuchsaufbau wurde ein Arduino Nano V3.0 und ein HALJIA UVM-30A Sensor verwendet. Es sind lediglich drei Verbindungen zwischen den zwei Geräten notwendig:
Arduino Nano V3.0 | UVM30 Sensor |
---|---|
5V | VCC (+) |
A0 | Out |
GND | GND (-) |
UVM30 Arduino Sketch
void setup() { Serial.begin(9600); } void loop() { int analogwert; analogwert = analogRead(0); if (analogwert < 10 ) { Serial.print("UV-Index : 0"); } if (analogwert < 46 & analogwert >= 10 ) { Serial.print("UV-Index : 1"); } if (analogwert < 65 & analogwert >= 46 ) { Serial.print("UV-Index : 2"); } if (analogwert < 83 & analogwert >= 65 ) { Serial.print("UV-Index : 3"); } if (analogwert < 103 & analogwert >= 83 ) { Serial.print("UV-Index : 4"); } if (analogwert < 124 & analogwert >= 103 ) { Serial.print("UV-Index : 5"); } if (analogwert < 142 & analogwert >= 124 ) { Serial.print("UV-Index : 6"); } if (analogwert < 162 & analogwert >= 142 ) { Serial.print("UV-Index : 7"); } if (analogwert < 180 & analogwert >= 162 ) { Serial.print("UV-Index : 8"); } if (analogwert < 200 & analogwert >= 180 ) { Serial.print("UV-Index : 9"); } if (analogwert < 221 & analogwert >= 200 ) { Serial.print("UV-Index : 10"); } if (analogwert >= 221 ) { Serial.print("UV-Index : 11"); } delay(5000); }
Da der Sensor den gemessenen UV-Wert nur in Millivolt ausgibt, muss dieser Wert dem entsprechenden UV-Index zugeordnet werden. Im o.g. Sketch erfolgt diese Zuordnung mit Hilfe mehrerer IF-Anfragen.
Soll die Zuordnung andersweitig realisiert werden kann die folgende Tabelle genutzt werden:
Analogwert in mV | UV-Index |
---|---|
0 – 9 | 0 |
10 – 45 | 1 |
46 – 64 | 2 |
65 – 82 | 3 |
83 – 103 | 4 |
104 – 124 | 5 |
125 – 141 | 6 |
142 – 161 | 7 |
162 – 179 | 8 |
180 – 199 | 9 |
200 – 220 | 10 |
ab 221 | >11 |
Mehr zum Thema Arduino Sensoren und Co
Möchtest du mehr interessante Arduino Projekte kennen lernen und weiter in die Welt der Mikrocontroller einsteigen? Dann empfehle ich das Buch Arduino Kompendium: Elektronik, Programmierung und Projekte.
Hiermit ist es möglich auch ohne umfassende Elektronik- und Programmiervorkenntnisse spannende IoT Projekte umzusetzen.
- Danny Schreiter (Autor)