产品简介
Gravity: 色温照度传感器是一款高性能的光源感知传感器,专为精确测量和控制光照环境而设计。它能直接输出色温和光照强度两个关键光学物理量,使您对环境光的理解更为准确。
该传感器支持I2C和UART两种通讯方式,经过出厂校准,能够快速、准确地测量环境中多种光源数据。借助这些精准的数据,您可以实现如家庭灯光色温同步、色温照度艺术交互项目等多种应用,让您的光照环境更加符合需求。
色温
色温是一种用来描述光源颜色特性的物理量,单位为开尔文(K)。它的定义来源于物理学中的黑体辐射理论,即当黑体被加热到某个温度时,会发出特定颜色的光,这个温度就被定义为这种颜色的色温。
在我们的日常生活中,色温的概念无处不在。例如,我们常说的暖光灯和冷光灯,其实就是指的光源的色温不同。暖光灯的色温较低,通常在2000K-3000K,发出的光偏向红色或暖色;而冷光灯的色温较高,通常在5000K以上,发出的光偏向蓝色或冷色。天气阴晴、一天中不同时间的光线色温也不同,这款色温照度传感器可以将这些环境的光转化为标准的物理量(开尔文,K)。
光照强度
光照强度,也称为照度,是描述光源在特定距离或面积上的亮度强度的物理量,单位为勒克斯(Lux)。它反映了光线照射到单位面积上的光通量,也就是我们通常所说的“明亮程度”。例如,在一个阳光充足的户外环境,光照强度可能高达10,000 Lux,而在一个昏暗的室内环境,光照强度可能只有几十或几百 Lux。在照明设计、摄影、植物光合作用研究等领域,光照强度都是一个重要的参数。
产品特性
-
输出多种光源数据(色温、照度、xy色坐标)
-
采用I2C和UART两种通讯方式,Gravity接口
-
超小体积,尺寸仅26mm×24mm
-
兼容3.3~5V主控器
应用场景
-
室内照明系统
-
展览馆照明系统
-
灯光质量检测设备
-
超市照明系统
-
屏幕显示调节
规格参数
-
工作电压:3.3-5V DC
-
工作电流:2.8mA
-
通讯方式:I2C、UART
-
照度测量范围:10-10000lux
-
照度测量误差:(±5)+(±10%)lux
-
色温测量范围:2700-6500K
-
色温测量误差:±10% K
-
测量光源角度:90°
-
工作温度:-10~60°C
-
尺寸:26mm×24mm
-
部分环境色温照度数据参考:
-
家庭生活区:2700K-5000K、100-500 Lux
-
办公室工作区:3000K-5000K、300-500 Lux
-
商店照明:3500K-4100K、在200-1000 Lux
-
画廊或博物馆:3500K-4100K、100-500 Lux
-
学校或图书馆:4100K-5000K、300-500 Lux
-
功能示意图
标号 | 接口名称 | 说明 |
---|---|---|
1 | D/R | I2C数据线SDA或串口UART接收端RXD |
2 | C/T | I2C时钟线SCL或串口UART发送端TXD |
3 | GND | 电源负极 |
4 | VCC | 电源正极(3.3~5V) |
5 | 通讯模式选择开关 | 选择I2C/UART通讯模式 |
注:拨动通讯选择开关时需要断电
尺寸图
串口通信说明
出厂参数
- 设备地址:0x0032
- 波特率:9600bps
命令表:
设备地址 | 输入寄存器地址 | 波特率地址 | 读取光照强度地址 | 读取色温数据地址 | 读取色坐标x地址 | 读取色坐标y地址 |
---|---|---|---|---|---|---|
0x0032 | 0x0004 | 0x0003 | 0x0006 | 0x0007 | 0x0008 | 0x0009 |
发送指令的格式为:设备地址 + 功能码 + 寄存器起始地址 + 寄存器个数 + CRC校验。
读取串口波特率
主机通过串口读取模块的波特率,主机发送:32 04 00 03 00 01 C4 09 //读取波特率为:32 04 02 00 03 FD 35
设备地址--------------------32
功能码----------------------04//读输入寄存器
寄存器起始地址----------------00 03//读取模块波特率寄存器地址
寄存器个数-------------------00 01
CRC校验---------------------C4 09
模块返回的串口波特率数据为:32 04 02 00 03 FD 35
设备地址--------------------32
功能码----------------------04//读输入寄存器
字节数----------------------02//返回数据字节的数量
读取数据---------------------00 03//9600bps
CRC校验---------------------FD 35
波特率表:
2400bps | 4800bps | 9600bps | 14400bps | 19200bps | 38400bps | 57600bps | 115200bps | 115200bps |
---|---|---|---|---|---|---|---|---|
0x0001 | 0x0002 | 0x0003 | 0x0004 | 0x0005 | 0x0006 | 0x0007 | 0x0008 | Other |
注意:CRC校验码是通过一种叫做循环冗余校验(Cyclic Redundancy Check)的算法计算出来的。这种算法会对数据进行一系列的位操作,包括异或、移位等,最终得到一个校验码。校验码可以用来检查数据在传输过程中是否出现错误。
读取光照强度
主机通过串口读取模块测得的光照强度。
主机发送32 04 00 06 00 01 D4 08 //读取到光照强度32 04 02 00 A4 BC 8F
设备地址--------------------32
功能码----------------------04//读输入寄存器
寄存器起始地址----------------00 06//读取光照强度寄存器地址
寄存器个数-------------------00 01
CRC校验---------------------D4 08
模块读取的光照强度为:32 04 02 00 A4 BC 8F
设备地址--------------------32
功能码----------------------04//读输入寄存器
字节数----------------------02//返回数据字节的数量
读取数据---------------------00 A4//换算成十进制为164lux
CRC校验---------------------FD 35
读取色温数据
主机通过串口读取模块测得的色温数据
主机发送32 04 00 07 00 01 85 C8 //读取到色温数据32 04 02 21 05 65 67
设备地址--------------------32
功能码----------------------04//读输入寄存器
寄存器起始地址----------------00 07//读取色温寄存器地址
寄存器个数-------------------00 01
CRC校验---------------------85 C8
模块读取的色温数据为:32 04 02 21 05 65 67
设备地址--------------------32
功能码----------------------04//读输入寄存器
字节数----------------------02//返回数据字节的数量
读取数据---------------------21 05//换算成十进制为8453K
CRC校验---------------------65 67
读取色坐标x
主机通过串口读取模块测得的色坐标x
主机发送32 04 00 08 00 01 B5 CB //读取到色坐标x为32 04 02 0A 87 FB F6
设备地址--------------------32
功能码----------------------04//读输入寄存器
寄存器起始地址----------------00 08//读取色坐标x寄存器地址
寄存器个数-------------------00 01
CRC校验---------------------B5 CB
模块读取的色坐标x为:32 04 02 0A 87 FB F6
设备地址--------------------32
功能码----------------------04//读输入寄存器
字节数----------------------02//返回数据字节的数量
读取数据---------------------0A 87//0x0a87/1000
CRC校验---------------------FB F6
读取色坐标y
主机通过串口读取模块测得的色坐标y
主机发送32 04 00 09 00 01 E4 0B //读取到色坐标y为32 04 02 0C 22 38 2D
设备地址--------------------32
功能码----------------------04//读输入寄存器
寄存器起始地址----------------00 09//读取色坐标y寄存器地址
寄存器个数-------------------00 01
CRC校验---------------------E4 0B
模块读取的色坐标y为:32 04 02 0C 22 38 2D
设备地址--------------------32
功能码----------------------04//读输入寄存器
字节数----------------------02//返回数据字节的数量
读取数据---------------------0C 22//0x0c22/1000
CRC校验---------------------38 2D
Arduino使用教程
软硬件准备
- 硬件
- DFRduino UNO控制器 x1
- SEN0611 Gravity: 色温照度传感 x1
- 软件
- Arduino IDE 点击下载Arduino IDE
- 下载并安装DFRobot_ColorTemperature库。如何安装库?
- 下载并安装DFRobot_RTU如何安装库?
使用I2C读取数据
接线图
样例代码
- 将模块与UNO控制器按照上方的连线图相连,当然你也可以配合扩展板使用,可以更方便、更快速的完成项目原型搭建。
- 将传感器上的选择开关,拨到I2C一侧。
- 下载并安装DFRobot_ColorTemperature库。如何安装库?
- 下载并安装DFRobot_RTU如何安装库?
- 打开Arduino IDE,将下面的代码上传到UNO控制器。
- 打开Arduino IDE的串口监控视器,把波特率调至115200,观察串口打印结果。
注意:波动选择开关时需要断电
#include "DFRobot_ColorTemperature.h"
DFRobot_ColorTemperature CT(&Wire);
void setup()
{
Serial.begin(115200);
while(CT.begin() != 0){
Serial.println(" Sensor initialize failed!!");
delay(1000);
}
Serial.println(" Sensor initialize success!!");
}
void loop()
{
Serial.println("-------------------------------");
Serial.print("LUX: ");
Serial.println(CT.readLUX());
Serial.print("CCT: ");
Serial.println(CT.readCCT());
Serial.print("X: ");
Serial.println(CT.readX());
Serial.print("Y: ");
Serial.println(CT.readY());
Serial.println("-------------------------------");
delay(500);
}
结果
打开串口监视器,得到最终的色温、光照强度及X、Y色坐标的数据。
使用UART读取数据
接线图
样例代码
- 将模块与UNO控制器按照上方的连线图相连,当然你也可以配合扩展板使用,可以更方便、更快速的完成项目原型搭建。
- 将传感器上的选择开关,拨到UART一侧。
- 下载并安装DFRobot_ColorTemperature库。如何安装库?
- 下载并安装DFRobot_RTU如何安装库?
- 打开Arduino IDE,将下面的代码上传到UNO控制器。
- 打开Arduino IDE的串口监控视器,把波特率调至115200,观察串口打印结果。
注意:波动选择开关时需要断电
#include "DFRobot_ColorTemperature.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial(/*rx =*/4, /*tx =*/5);
DFRobot_ColorTemperature CT(/*s =*/&mySerial);
void setup()
{
mySerial.begin(9600);
Serial.begin(115200);
while(CT.begin() != 0){
Serial.println(" Sensor initialize failed!!");
delay(1000);
}
Serial.println(" Sensor initialize success!!");
}
void loop()
{
Serial.println("-------------------------------");
Serial.print("LUX: ");
Serial.println(CT.readLUX());
Serial.print("CCT: ");
Serial.println(CT.readCCT());
Serial.print("X: ");
Serial.println(CT.readX());
Serial.print("Y: ");
Serial.println(CT.readY());
Serial.println("-------------------------------");
delay(500);
}
结果
打开串口监视器,得到最终的色温、光照强度及X、Y色坐标的数据。
API函数
class DFRobot_ColorTemperature: public DFRobot_RTU{
public:
#define COLORTEMPERATURE_ADDR 0x32 ///<设备地址
#define COLORTEMPERATURE_ADDR_REG 0X02 ///<设备地址寄存器
#define COLORTEMPERATURE_LUX_REG 0X06 ///<照度寄存器
#define COLORTEMPERATURE_CCT_REG 0X07 ///<色温寄存器
#define COLORTEMPERATURE_X_REG 0X08 ///<色坐标X寄存器
#define COLORTEMPERATURE_Y_REG 0X09 ///<色坐标Y寄存器
/**
* @fn DFRobot_ColorTemperature
* @brief DFRobot_ColorTemperature构造函数
* @param pWire 指向TwoWire流的I2C指针,在演示中需要调用begin来初始化Arduino的I2C配置。
* @param addr SEN0611设备的I2C通信地址
*/
DFRobot_ColorTemperature(TwoWire *pWire);
/**
* @fn DFRobot_ColorTemperature
* @brief DFRobot_ColorTemperature构造函数
* @param addr 主机和SEN0611从设备通信的设备地址
* @param s 指向Stream的串口指针,在演示中需要调用begin来初始化Arduino主控的通信串口配置,以符合SEN0611设备从机的配置。
* @n SEN0611串口配置:9600波特率,8位数据位,无校验位,1停止位,参数不能更改。
*/
DFRobot_ColorTemperature(Stream *s);
~DFRobot_ColorTemperature(){};
/**
* @fn begin
* @brief 初始化
* @return 初始化状态
* @retval 0 成功
* @retval -1 失败
*/
int8_t begin(void);
/**
* @fn readLUX
* @brief 获取传感器照度
* @return 获得的照度
*/
uint16_t readLUX(void);
/**
* @fn readCCT
* @brief 获取色温数据
* @return 获得的色温
*/
uint16_t readCCT(void);
/**
* @fn readX
* @brief 获取色坐标X
* @return 获得的色坐标X
*/
float readX(void);
/**
* @fn readY
* @brief 获取色坐标Y
* @return 获得的色坐标Y
*/
float readY(void);
更多资料下载
常见问题(FAQ)
还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。