如何让Arduino使用VEML6075 UV传感器

在这个Arduino UV传感器教程中,你会学到如何将VEML6075 UV与Arduino Uno的电路连接,利用Adafruit的VEML6075库与UV传感器进行交互。

VEML6075是一款经济实惠的低功率UV传感器,可同时读取UVA和UVB光波段。该传感器内置了校准寄存器,可将UVA/UVB读数轻松转换为UV指数。

这款传感器非常适用于Arduino项目,它的设计目的是暴露在紫外光下。因此,主要用于户外项目,如气象站或简单的设备,提醒你当前的UV指数。

也可以将这个同样的UV传感器与Raspberry Pi一起使用。Raspberry Pi和Arduino都是非常适合VEML6075的设备。

材料清单

必备材料

  • Arduino Uno
  • 面包板
  • 面包板线
  • VEML6075 UV传感器

搭建Arduino UV传感器连接电路

幸运的是,VEML6075 UV传感器的接线过程很简单,因为它使用串行接口与设备进行交互。我们最多只需要将四根线连接到Arduino上就可以了。

下面是一些关于如何将UV传感器连接到Arduino的书面说明,并附上了一张图,展示了VEML6075 UV传感器与Arduino Uno的接线图。

  • 将UV传感器的VIN引脚连接到Arduino上的(3v3)。
  • 将UV传感器的GND引脚连接到Arduino上的(GND)。
  • 将UV传感器的SDA引脚与Arduino上的(SDA)连接。
  • 将UV传感器的SCL引脚连接到Arduino上的(SCL)。

Arduino-VEML6075-UV-Sensor-Wiring-Schematic

导入VEML6075 UV传感器库

依靠Adafruit VEML6075库,让Arduino Uno与VEML6075 UV传感器进行交互非常方便。

Adafruit VEML6075库就是为了让Arduino的I2C接口与UV传感器进行交互而设计。

  1. 在Arduino IDE中打开库菜单,进入Sketch (1.) -> Include Library(2.) -> Manage Libraries (3.)

Arduino-VEML6075-UV-Sensor-Manage-Libraries

  1. 在此窗口中搜索 “Adafruit VEML6075”(1.),找到 “Adafruit VELM6075库”(2.

点击 “install”(3.)按钮,安装最新版本的库,如下图所示。

Arduino-VEML6075-UV-Sensor-Installing-the-Adafruit-VEML6075-library

为VEML6075 UV传感器编写程序

  1. 打开Arduino IDE界面,开始输入以下几行代码。

每一行代码都会进行解释,让你了解工作原理。

#include <Wire.h>
#include "Adafruit_VEML6075.h"

在脚本开始,我们在脚本中包含了与VEML6075 UV传感器通信所依赖的库的头文件。

Wire库是需要导入的最重要的库,这个库提供了通过I2C串行协议与传感器进行对话和交互的功能。

Adafruit_VEML6075库用于与VEML6075 UV传感器本身进行交互,这个库完成了所有与传感器通信和解读报告数据的重任。

我们将使用该库的功能来计算传感器检测到的当前UV指数。

Adafruit_VEML6075 uv = Adafruit_VEML6075();

现在我们将 “Adafruit_VEML6075 “库实例化为 “uv “变量,使用这个对象来交互和读取UV传感器的数据。

void setup() {
  Serial.begin(9600);
  Serial.println("VEML6075 Test");

  if (! uv.begin()) {
    Serial.println("Failed to communicate with VEML6075 sensor.");
  }
  Serial.println("Found the VEML6075 sensor");
}

当Arduino开机时,“setup()“函数由Arduino主动运行,我们利用这个函数来初始化我们的主循环所需要的东西。

为了开始设置,我们运行”Serial.begin()“函数启动串行连接,波特率为9600。

使用这个串行连接来打印出文本,让我们知道程序已经启动。

之后,我们使用”uv”对象的”begin()“函数,让它与VEML6075 UV传感器串行连接。这样做可以让我们在循环中读取传感器返回的UV数据。

如果”uv.begin()“函数返回false,我们就用Arduino的串行连接打印一条消息,提醒用户有问题。否则,我们会打印一条消息,说明我们成功找到了传感器。

void loop() {
  Serial.print("UV Index reading: "); Serial.println(uv.readUVI());
  delay(1000);
}

“loop()“函数在”setup()“函数启动完毕后运行。只要Arduino有电,这个循环就会一直进行下去。

在这个循环中,我们要做的第一件事是打印出由Adafruit的VEML6075 UV传感器库计算出的UV指数。运行”uv”对象的”readUVI()“函数来完成。

“readUVI()“函数通过读取UV传感器的UVA(长波射线)和UVB(短波射线)来计算UV指数,并使用这些值来计算指数。

可以通过”readUVA()“和”readUVB()“函数分别读入UVA和UVB值。

在循环的最后,使用”delay()“函数让脚本休眠1秒(1000ms)。

  1. 完整的代码如下所示。
#include <Wire.h> 
#include "Adafruit_VEML6075.h"

Adafruit_VEML6075 uv = Adafruit_VEML6075();

void setup() {
  Serial.begin(9600);
  Serial.println("VEML6075 Test");

  if (! uv.begin()) {
    Serial.println("Failed to communicate with VEML6075 sensor.");
  }
  Serial.println("Found the VEML6075 sensor");
}

void loop() {
  Serial.print("UV Index reading: "); Serial.println(uv.readUVI());
  delay(1000);
}

测试Arduino UV传感器

  1. 把Arduino UV传感器的代码上传到Arduino,请去点击 “Verify”按钮(1.),然后点击 “Upload”按钮(2.)Arduino-VEML6075-UV-Sensor-Verify-and-upload如果你遇到任何问题,请检查代码。

要验证你的Arduino设备是否连接到电脑,请在Tools->Port下找到并选择它。

  1. 现在Arduino已经读取了VEML6075 UV传感器的数据,我们现在可以加载Arduino IDE串行监控器了。

你可以通过点击”Tools”(1.),然后点击 “Serial Monitor”(2.) 打开Arduino串行监控器软件。Arduino-VEML6075-UV-Sensor-Serial-Monitor

  1. 串行监控器启动后,你应该开始看到数据被Arduino读取并通过串行连接输出。

Arduino-VEML6075-UV-Sensor-Serial-Monitor-output

有很多项目中,这个传感器会派上用场。你可以将其与湿度和温度传感器捆绑在一起,建立一个基本的Arduino气象站。可能性是无穷无尽的。

希望在本教程结束时,你的Arduino UV传感器已经成功地运行起来了。现在,你应该已经掌握如何将VEML6075传感器连接到Arduino上,从传感器中读取数据,并将其显示在串行显示器中了。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 如何让Arduino使用VEML6075 UV传感器

赞 (0)

评论

9+7=