83 lines
2.2 KiB
Arduino
83 lines
2.2 KiB
Arduino
|
#include <Wire.h>
|
||
|
#include "Adafruit_VEML6070.h"
|
||
|
|
||
|
Adafruit_VEML6070 uv = Adafruit_VEML6070();
|
||
|
|
||
|
void setup() {
|
||
|
Serial.begin(9600);
|
||
|
Serial.println("VEML6070 Test");
|
||
|
uv.begin(VEML6070_2_T); // pass in the integration time constant
|
||
|
/*
|
||
|
possible integration times: -> adapt the convert_to_risk_level-function accordingly!
|
||
|
VEML6070_HALF_T ~62.5ms
|
||
|
VEML6070_1_T ~125ms
|
||
|
VEML6070_2_T ~250ms
|
||
|
VEML6070_4_T ~500ms
|
||
|
|
||
|
*/
|
||
|
}
|
||
|
|
||
|
|
||
|
//Source: https://github.com/adafruit/Adafruit_CircuitPython_VEML6070/blob/main/adafruit_veml6070.py
|
||
|
String convert_to_risk_level(int reading)
|
||
|
{
|
||
|
int integration_time = 4; //available for Integration-Time 1, 2, 4
|
||
|
// MUST be adjusted according to the set integration time
|
||
|
reading = reading / integration_time;
|
||
|
|
||
|
String risk_level;
|
||
|
|
||
|
if(reading <= 560)
|
||
|
risk_level = "LOW (UV 0-2)";
|
||
|
else if(reading > 560 && reading <= 1120)
|
||
|
risk_level = "Moderate (UV 3-5)";
|
||
|
else if(reading > 1120 && reading <= 1494)
|
||
|
risk_level = "High (UV 6-7)";
|
||
|
else if(reading > 1494 && reading <= 2054)
|
||
|
risk_level = "Very High (UV 8-10)";
|
||
|
else if(reading > 2054 && reading <= 9999)
|
||
|
risk_level = "Extreme (UV >10)";
|
||
|
else
|
||
|
risk_level = "ERROR";
|
||
|
|
||
|
return risk_level;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
// German equivalent
|
||
|
String convert_to_risk_level(int reading)
|
||
|
{
|
||
|
int integration_time = 4; //available for Integration-Time 1, 2, 4
|
||
|
// MUST be adjusted according to the set integration time
|
||
|
reading = reading / integration_time;
|
||
|
|
||
|
String risk_level;
|
||
|
|
||
|
if(reading <= 560)
|
||
|
risk_level = "Niedrig (UV 0-2)";
|
||
|
else if(reading > 560 && reading <= 1120)
|
||
|
risk_level = "Mittel (UV 3-5)";
|
||
|
else if(reading > 1120 && reading <= 1494)
|
||
|
risk_level = "Hoch (UV 6-7)";
|
||
|
else if(reading > 1494 && reading <= 2054)
|
||
|
risk_level = "Sehr Hoch (UV 8-10)";
|
||
|
else if(reading > 2054 && reading <= 9999)
|
||
|
risk_level = "Extrem (UV >10)";
|
||
|
else
|
||
|
risk_level = "ERROR";
|
||
|
|
||
|
return risk_level;
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
void loop() {
|
||
|
int reading = uv.readUV();
|
||
|
|
||
|
Serial.print("UV light level: ");
|
||
|
Serial.print(reading);
|
||
|
Serial.print(" Risk level is: ");
|
||
|
Serial.println(convert_to_risk_level(reading));
|
||
|
|
||
|
delay(1000);
|
||
|
}
|