UVM30 UV-Sensor – UV Index mit dem Arduino messen

Arduino UV Sensor UVM30

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.

UV Index Skala
UV Index (Quelle: Bundesamt für Strahlenschutz)

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

Betriebsspannung3-5 V
Ausgangsspannung0-1 V
Genauigkeit± 1UV Index
Betriebsstrom0,06 mA (Standard) / 0,1 mA (max.)
Messbereich200nm bis 370nm
Betriebstemperatur-20 °C bis -85 °C
Maße (L x B x H)28 x 13 x 10 mm
UVM30 Pinout
UVM30 Pinout

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 und UVM30 UV-Sensor
Arduino Nano und UVM30 UV-Sensor
Arduino Nano V3.0UVM30 Sensor
5VVCC (+)
A0Out
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 mVUV-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.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert