VEML6075紫外线传感器

概述

该紫外线传感器是一款先进的紫外(UVA/UVB)光传感器,利用可见光和红外噪声补偿以及余弦的聚四氟乙烯扩散器角度响应校正,每通道16位分辨率,能够精确检测出UVA和UVB强度,能够测出紫外线指数和紫外线强度。VEML6075紫外线传感器提供出色的温度补偿,在长时间的曝晒下,仍然能测量正确的数据。 这款紫外线传感器适用于3.3V或5V电源,采用I2C接口协议,能够与任何支持I2C的微控制器配合使用。我们提供了Arduino和Python的示例代码和库,可以用在arduino和树莓派上。同时提供Gravity接口和Gravity接口的排线,可以在不焊接的情况下直接使用它。

主要用途

紫外线测试仪、户外紫外线检测设备、杀菌灯设备

技术规格

⚠ 注意:实际使用中对准光源照射方向,否则测量结果不准确。

引脚说明



紫外线传感器管脚定义

标号 名称 功能描述
1 SDA I2C数据输入引脚,连接到微控制器I2C数据线
2 SCL I2C时钟输入引脚,连接到微控制器I2C时钟线
3 GND 电源负
4 VCC DC 3.3V~5.5V

在Arduino上使用

与Arduino连接

以连接Arduino UNO主板为例,如下图,连接模块与UNO主板(通过I2C接口)。



运行Arduino示例代码

点击下载DFRobot_VEML6075库文件如何安装库?

/*!
        file VEML6075SimpleTest.ino
        simple test for VEML6075
        Print UVA index, UVB index and UV index on the serial monitor

        Copyright    [DFRobot](http://www.dfrobot.com), 2018
        Copyright    GNU Lesser General Public License
        version  V1.0
        date  2018-12-18
*/

#include <Wire.h>
#include <DFRobot_VEML6075.h>

#define VEML6075_ADDR   0x10

DFRobot_VEML6075_IIC VEML6075(&Wire, VEML6075_ADDR);  // create object

void setup()
{
  Serial.begin(115200);
  delay(2000);
  while (!Serial);

  Serial.println();
  while (VEML6075.begin() != true) {
    Serial.println("VEML6075 begin faild");
    delay(2000);
  }
  Serial.println("VEML6075 begin successed");
}

void loop()
{
  uint16_t    UvaRaw = VEML6075.readUvaRaw();         // read UVA raw
  uint16_t    UvbRaw = VEML6075.readUvbRaw();         // read UVB raw
  uint16_t    comp1Raw = VEML6075.readUvComp1Raw();   // read COMP1 raw
  uint16_t    comp2Raw = VEML6075.readUvComp2Raw();   // read COMP2 raw

  float       Uva = VEML6075.getUva();                // get UVA
  float       Uvb = VEML6075.getUvb();                // get UVB
  float       Uvi = VEML6075.getUvi(Uva, Uvb);        // get UV index

  Serial.println();
  Serial.println("======== start print ========");
  Serial.print("UVA raw:    ");
  Serial.println(UvaRaw);
  Serial.print("UVB raw:    ");
  Serial.println(UvbRaw);
  Serial.print("COMP1 raw:  ");
  Serial.println(comp1Raw);
  Serial.print("COMP2 raw:  ");
  Serial.println(comp2Raw);
  Serial.print("UVA:        ");
  Serial.println(Uva, 2);
  Serial.print("UVB:        ");
  Serial.println(Uvb, 2);
  Serial.print("UVIndex:    ");
  Serial.print(Uvi, 2);
  if (Uvi < UVI_LOW)
    Serial.println("  UVI low");
  else if (Uvi < UVI_MODERATE)
    Serial.println("  UVI moderate");
  else if (Uvi < UVI_HIGH)
    Serial.println("  UVI high");
  else if (Uvi < UVI_VERY_HIGH)
    Serial.println("  UVI very high");
  else
    Serial.println("  UVI extreme");
  Serial.print("mw/cm^2:    ");
  Serial.println(Uvi2mwpcm2(Uvi), 2);
  Serial.println("======== end print ========");
  delay(1000);
}

串口查看

将紫外线传感器正对紫外线光源,然后打开Arduino软件的串口监视器,波特率为115200。
VEML6075 UV sensor module VEML6075紫外线传感器紫外线测量

在树莓派上使用

与树莓派连接

这里以树莓派3B+为例,按照下图连接。


运行树莓派示例代码

点击下载DFRobot_VEML6075库文件到你的树莓派中,然后确保你已成功打开树莓派的I2C接口。 参照下面的命令运行DFRobot_VEML6075_demo.py示例。 进入树莓派示例所在的目录
cd /DFRobot_VEML6075-master/raspberry/examples

运行树莓派示例程序
python DFRobot_VEML6075_demo.py

DFRobot_VEML6075_demo.py示例内容如下。

# -*- coding: utf-8 -*-

'''
    *  file DFRobot_VEML6075_demo.py
    *  normal test for VEML6075
    *  UVA index, UVB index and UV index will print on terminal
    *
    *  Copyright    [DFRobot](http://www.dfrobot.com), 2018
    *  Copyright    GNU Lesser General Public License
    *  version  V1.0
    *  date  2018-12-18
'''

import sys
import time

from DFRobot_VEML6075 import DFRobot_VEML6075

sys.path.append("..")


if __name__ == '__main__':

    # use i2c bus 1, module address is 0x10
    VEML6075 = DFRobot_VEML6075(1, 0x10)

    while VEML6075.begin() != True:
        print("VEML6075 begin faild")
        time.sleep(2)
        print("VEML6075 begin succeed")

    while True:
        Uva = VEML6075.getUva()          # get UVA
        Uvb = VEML6075.getUvb()          # get UVB
        Uvi = VEML6075.getUvi(Uva, Uvb)  # get UVI
        print("")
        print("======== start print ========")
        print("UVA:     %.2f" % (Uva))
        print("UVB:     %.2f" % (Uvb))
        print("UVA:     %.2f" % (Uvi))
        print("mw/cm^2: %.2f" % (VEML6075.Uvi2mwpcm2(Uvi)))
        print("======== end print =========")
        time.sleep(1)

在树莓派上读取到的紫外线指数和紫外线强度。
VEML6075紫外线传感器紫外线读取

产品尺寸图



更多

DFshopping_car1.png DFRobot商城购买链接