产品简介
这是⼀款能直接输出紫外线UV指数的传感器,能检测240-370nm波⻓范围内的紫外线强度,涵盖UVA\UVB\UVC三种波长范围。主要波长集中在UVB段,常⽤于皮肤健康评估和UV指数监测。
UV Index 240370 Sensor通过底层MCU的计算,能直接输出0-11的UV指数等级,无需做任何转换,就能得到准确的紫外线指数。并且还会输出1-5之间的危害风险警告,以便做出有效的防护措施。
该传感器⽀持I2C和UART两种数据输出模式,适配绝大多数主控读取数据。
紫外线(UV)科普知识
什么是紫外线?
紫外线(UV)是⼀种不可见的电磁波,波⻓比可见光短,但比X射线长。它的波长范围通常从10纳米(nm)到400纳米之间。紫外线按波长可分为三种主要类型:UVA、UVB和UVC。
- 生物影响:
-
UVA(320-400nm): 最常见,穿透力最强,能穿透皮肤的真皮层。长期暴露可能导致皮肤⽼化、皱纹和皮肤癌。
-
UVB(280-320nm): 穿透力较弱,主要作用于皮肤的表皮层,是造成晒伤的主要原因,也是合成维生素D的重要源泉,但也能引起皮肤癌。
-
UVC(100-280nm): 具有最强的杀菌作用,通常被地球的大气层吸收,未能到达地表。然而,人工UVC光源(如消毒灯)在工业和医疗中有广泛应用。
- 自然界的作用:
-
合成维生素D: 紫外线帮助皮肤合成维生素D,对骨骼健康至关重要。
-
生态系统: UV光影响植物的光合作用及植物的生长周期,对生态平衡有重要作用。
- 紫外线的危害:
-
皮肤损伤: 紫外线能破坏皮肤细胞的DNA,增加⽪肤癌的风险。
-
眼睛损伤: 长时间暴露于紫外线下可引发白内障、角膜炎等眼部疾病。
-
免疫系统抑制: 紫外线过量可能会影响免疫系统的正常功能。
紫外线指数(UV Index)范围和健康建议
- 0-2:低风险
-
健康影响:对大多数人来说,紫外线辐射对健康的影响非常小。
-
建议:即使在这类低风险情况下,也可以采取⼀些基本的防护措施,如佩戴太阳镜。
- 3-5:中等风险
-
健康影响:紫外线辐射对健康的影响开始变得显著,特别是在长时间暴露下。
-
建议:在户外活动时,建议采取⼀些防护措施,如使用防晒霜、穿遮阳衣物和佩戴太阳镜。
- 6-7:高风险
-
健康影响:紫外线辐射对健康的影响较大,可能导致皮肤晒伤和眼睛损伤。
-
建议:避免在中午时分(10:00 AM 到 4:00 PM)长时间暴露于阳光下。穿戴保护性衣物、使用高SPF防晒霜,并佩戴太阳镜。
- 8-10:很高风险
-
健康影响:紫外线辐射对健康的影响非常显著,晒伤的风险很⾼。
-
建议:尽量避免在阳光下长时间活动。采取全面的防护措施,包括穿着遮阳衣物、涂抹高SPF防晒霜、佩戴帽子和太阳镜,尤其是在阳光强烈的时段。
- 11+:极高风险
-
健康影响:紫外线辐射极其强烈,短时间内就能导致严重的晒伤。
-
建议:尽量避免在阳光下活动,特别是在中午时分。采取所有可能的防护措施,尽量待在阴凉处。
产品特性
-
UV波长范围240-370nm
-
高性能紫外线传感器芯片,质量可靠
-
直接输出紫外线指数与危害等级,⽆需转换
-
支持3.3V-5V电压及电平范围
-
支持I2C和UART两种通讯方式
应用场景
-
环境监测:用于检测和监控紫外线辐射水平,帮助评估环境中的UV污染情况。
-
健康保护:可以监测紫外线强度,提醒用户保护皮肤免受过度暴露于紫外线的伤害。
-
光伏系统:用于优化太阳能电池板的性能,通过测量UV辐射来评估太阳能资源。
-
农业:用于监控植物的光环境,帮助优化植物的生长条件和防止紫外线对植物的损害。
-
实验室研究:在科学研究中,用于测量和分析紫外线辐射对不同材料或生物体的影响。
规格参数
- 工作电压:3.3-5V DC
- 通讯方式:I2C、UART
- I2C地址:0x23
- UV波长范围:240-370nm
- 工作温度:-30~80°C
- 尺寸:30mm×22mm
功能示意图
标号 | 接口名称 | 说明 |
---|---|---|
1 | D/R | I2C数据线SDA或串口UART接收端RXD |
2 | C/T | I2C时钟线SCL或串口UART发送端TXD |
3 | GND | 电源负极 |
4 | VCC | 电源正极(3.3~5V) |
5 | 通讯模式选择开关 | 选择I2C/UART通讯模式 |
尺寸图
紫外线指数表
紫外线指数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
紫外线原始值 | <50 | 227 | 318 | 408 | 503 | 606 | 696 | 795 | 881 | 976 | 1079 | 1170 |
紫外线风险等级 | 低 | 低 | 低 | 中 | 中 | 中 | 高 | 高 | 很高 | 很高 | 很高 | 极高 |
Arduino使用教程
软硬件准备
- 硬件
- DFRduino UNO控制器 x1
- Gravity: 240370紫外线指数传感器 x1
- 软件
- Arduino IDE 点击下载Arduino IDE
- 下载并安装DFRobot_UVIndex240370Sensor
- 下载并安装DFRobot RTU
- 如何安装库?
使用I2C读取数据
接线图
样例代码
- 将模块与UNO控制器按照上方的连线图相连,当然你也可以配合扩展板使用,可以更方便、更快速的完成项目原型搭建。
- 将传感器上的选择开关,拨到I2C一侧。
- 下载并安装UVIndex240370Sensor和RTU库。
- 打开Arduino IDE,将下面的代码上传到UNO控制器。
- 打开Arduino IDE的串口监控视器,把波特率调至115200,观察串口打印结果。
#include "DFRobot_UVIndex240370Sensor.h"
#include <Wire.h>
DFRobot_UVIndex240370Sensor UVIndex240370Sensor(&Wire);
void setup()
{
Serial.begin(115200);
while(UVIndex240370Sensor.begin() != true){
Serial.println(" Sensor initialize failed!!");
delay(1000);
}
Serial.println(" Sensor initialize success!!");
}
void loop()
{
uint16_t voltage = UVIndex240370Sensor.readUvOriginalData();
uint16_t index = UVIndex240370Sensor.readUvIndexData();
uint16_t level = UVIndex240370Sensor.readRiskLevelData();
Serial.print("voltage:"); Serial.print(voltage); Serial.println(" mV");
Serial.print("index:"); Serial.println(index);
if(level==0)
Serial.println("Low Risk");
else if(level==1)
Serial.println("Moderate Risk");
else if(level==2)
Serial.println("High Risk");
else if(level==3)
Serial.println("Very High Risk");
else if(level==4)
Serial.println("Extreme Risk");
delay(100);
}
结果
本实验需要到阳光下面测试,串口监视器会打印类似以下的信息:
voltage:82 mV
index:1
Low Risk
其中,“voltage:82 mV”表示紫外线的原始值,“index:1”表示紫外线指数,“Low Risk”表示当前的紫外线为低风险
使用UART读取数据
接线图
样例代码
- 将模块与UNO控制器按照上方的连线图相连,当然你也可以配合扩展板使用,可以更方便、更快速的完成项目原型搭建。
- 将传感器上的选择开关,拨到UART一侧。
- 下载并安装UVIndex240370Sensor和RTU库。
- 打开Arduino IDE,将下面的代码上传到UNO控制器。
- 打开Arduino IDE的串口监控视器,把波特率调至115200,观察串口打印结果。
#include "DFRobot_UVIndex240370Sensor.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial(4, 5);
DFRobot_UVIndex240370Sensor UVIndex240370Sensor(&mySerial);
void setup()
{
mySerial.begin(9600);
Serial.begin(115200);
while(UVIndex240370Sensor.begin() != true){
Serial.println(" Sensor initialize failed!!");
delay(1000);
}
Serial.println(" Sensor initialize success!!");
}
void loop()
{
uint16_t voltage = UVIndex240370Sensor.readUvOriginalData();
uint16_t index = UVIndex240370Sensor.readUvIndexData();
uint16_t level = UVIndex240370Sensor.readRiskLevelData();
Serial.print("voltage:"); Serial.print(voltage); Serial.println(" mV");
Serial.print("index:"); Serial.println(index);
if(level==0)
Serial.println("Low Risk");
else if(level==1)
Serial.println("Moderate Risk");
else if(level==2)
Serial.println("High Risk");
else if(level==3)
Serial.println("Very High Risk");
else if(level==4)
Serial.println("Extreme Risk");
delay(100);
}
结果
本实验需要到阳光下面测试,串口监视器会打印类似以下的信息:
voltage:82 mV
index:1
Low Risk
其中,“voltage:82 mV”表示紫外线的原始值,“index:1”表示紫外线指数,“Low Risk”表示当前的紫外线为低风险
API函数
/**
* @fn begin
* @brief 初始化传感器
* @return 初始化结果
* @retval true 成功
* @retval false 失败
*/
int8_t begin(void);
/**
* @fn readUvOriginalData
* @brief 读取紫外线电压值
* @return 电压值 (单位:mV)
*/
uint16_t readUvOriginalData(void);
/**
* @fn readUvIndexData
* @brief 读取紫外线指数
* @return 紫外线指数(0-11)
*/
uint16_t readUvIndexData(void);
/**
* @fn readRiskLevelData
* @brief 读取风险等级
* @return 0-4 (低风险,中风险,高风险,很高风险,极高风险)
*/
uint16_t readRiskLevelData(void);
Mind+(基于Scratch3.0)图形化编程
-
下载Mind+编程软件。 点击下载Mind+
-
详细安装教程:Mind+基础wiki教程-软件下载安装
-
打开Mind+软件,选择上传模式,“扩展”中选择“主控板”中的“Arduino Uno”,然后点击用户库。
-
复制以下链接:https://gitee.com/dfrobotcd/ext-uvindex240370sensor,在用户库搜索栏中粘贴,然后进行搜索,添加紫外线模块。
-
进行编程,程序如下图:
-
菜单“连接设备”,“上传到设备”
-
程序上传完毕后,打开串口即可看到数据输出。详细教程:Mind+基础wiki教程-串口打印
Makecode使用教程
-
在浏览器输入网址打开MakeCode编程平台:https://makecode.microbit.org/
-
新建项目并为项目命名。
-
载入紫外线传感器的程序库:依次点击 “设置”、“扩展”,然后在搜索框中粘贴链接:https://github.com/cdjq/pxt-DFRobot_UVIndex240370Sensor
-
进行编程,程序如下图:
- 点击下载,程序上传完毕后,打开“Show data设备”即可看到数据输出。
更多资料下载
常见问题
还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。