VEML7700 和 VEML6030 环境光传感器
veml7700 传感器平台允许您在 ESPHome 中使用 Vishay VEML7700 和 VEML6030 环境光传感器。
与设备的通信通过 I²C 进行,因此您的配置中必须包含 I²C 总线。VEML7700 和 VEML6030
本质上是相同的传感器,只是封装不同。VEML7700 使用固定地址 0x10,而较小的 VEML6030
可以配置使用 0x10 或 0x48。
VEML 7700/6030 设备可从多个供应商的扩展板上获得,包括 Adafruit、SparkFun、 DFRobot 等。
该传感器是一款高精度环境光数字传感器,具有 16 位分辨率,动态范围从 0 lux 到约 120,000 lux。 其广泛的测量范围由四个可配置的_增益_级别和六种不同的_积分时间_选项实现。 较高的增益值通常用于较低光照条件。
该传感器有两个具有不同光谱响应的光电二极管,由两个通道表示:ALS 通道和 WHITE 通道。 ALS(环境光)通道非常接近所谓的人眼曲线。WHITE 通道覆盖更宽的波长/光谱范围,捕获大量近红外辐射。
建议使用此组件的自动测量模式;在此模式下,组件会在进行几次测量后自动选择适当的_增益_和_积分时间_。为此,它遵循制造商推荐的流程。
如果您希望手动控制这些参数,请注意:
- 1/8 和 1/4 的增益级别应在大多数情况下使用。
- 1 和 2 的增益级别仅适用于低光照条件 < 100 lux。对于非常高的照度,它会表现出高度非线性。
- 在 0 lux - 1000 lux 范围内,增益 1/4 和 1/8 的传感器测量严格线性,超过 1000 lux 后会表现出非线性。
在明亮条件下使用 lux 补偿公式可获得更好的读数。 但是,在非常明亮的直射阳光下,它会产生相当大的误差(可能会显示 150-200k+ 而不是 100-120 kilolux)。
维基百科文章中有一个用于比较的 lux 值表格。
自动测量模式
Section titled “自动测量模式”在自动测量模式下,组件从增益 1/8 和 100ms 开始(默认值)。
- 如果照度高于 46 lx(100 计数),它会逐渐减少积分时间以获得良好的读数(最佳范围在 100 - 10,000 计数之间)。
- 如果照度较低(小于 46 lx),它会尝试逐渐增加增益,然后再增加积分时间。
请注意,在低光照条件下,由于长曝光时间和传感器重新配置,测量过程可能需要几秒钟。
可以通过设置 gain 和 integration_time 参数来覆盖起始值。如果可能,增益值会首先被调整。
Lux 补偿
Section titled “Lux 补偿”Lux 补偿按照制造商的建议进行,但可以通过在设备配置中设置 lux_compensation: false 来关闭。
lux = counts × resolution(time, gain)lux_comp = 6.0135e-13 × lux⁴ - 9.3924e-9 × lux³ + 8.1488e-5 × lux² + 1.0023 × lux其中:
counts- 传感器读数,计数resolution- 给定积分时间和增益下的传感器分辨率,lx/计数lux- 计算的照度,lxlux_comp- 补偿后的照度,lx
该实现提供七个传感器:
-
两个提供 lux 值,
-
两个直接来自设备的无量纲数据测量,
-
两个用于测量的实际_增益_和_积分时间_值(在自动模式下有用),以及
-
一个完全人工的,某种程度上代表近红外光谱部分。
-
ambient_light:ALS 通道的照度值,代表人眼,lx
-
full_spectrum:WHITE 通道的照度值,具有宽光谱,lx
-
infrared:计算的照度值(WHITE 减去 ALS),代表近红外光谱,lx
-
ambient_light_counts:ALS 通道的原始 16 位读数,计数
-
full_spectrum_counts:WHITE 通道的原始 16 位读数,计数
-
actual_gain:用于报告值的实际增益值,倍数
-
actual_integration_time:用于报告值的实际积分时间,ms
# 配置条目示例sensor: - platform: veml7700 address: 0x10 update_interval: 60s
# 传感器定义的简写形式: ambient_light: "环境光" # 传感器定义的完整形式: actual_gain: name: "实际增益"-
auto_mode (可选, 布尔值): 自动选择增益和积分时间。默认为
True。 -
integration_time (可选, 时间): 传感器曝光的时间量。有效值为
25ms、50ms、100ms(默认)、200ms、400ms、800ms。在自动模式下设置起始值。 -
gain (可选, 字符串): 设备用于内部 ADC 的增益。有效值为
1/8x(默认)、1/4x、1x、2x。较高的值在低光照条件下更好。 在自动模式下设置起始增益值。 -
lux_compensation (可选, 布尔值): 按照制造商建议使用 lux 补偿公式。 默认为
True。 -
glass_attenuation_factor (可选): 如果传感器位于玻璃或塑料面板后面,则为玻璃的衰减因子。默认为
1.0,表示100%透射率。2表示50%透射率等。 -
update_interval (可选, 时间): 检查传感器的时间间隔。 默认为
60s。 -
I²C 设备中描述的所有其他选项。 传感器支持”标准”和”快速”总线模式:10 kHz 至 400 kHz。
您可以配置前面描述的所有传感器或任意子集。
每个配置的传感器在每个 update_interval 单独报告。
支持 传感器的所有选项。
但是,如果您不需要任何其他选项,可以像这样使用简写形式:ambient_light: 环境光。
- ambient_light (可选): 可见光照度(ALS 通道),lx。
- full_spectrum (可选): 全光谱传感器的照度(WHITE 通道),lx。
- infrared (可选): 近红外光谱的计算照度(WHITE 减去 ALS),lx。
- ambient_light_counts (可选): 可见光读数(ALS 通道),计数。
- full_spectrum_counts (可选): 全光谱传感器的读数(WHITE 通道),计数。
- actual_gain (可选): 用于报告值的增益值。在选择”auto_mode”时特别有用。
- actual_integration_time (可选): 用于报告值的积分时间,ms。在选择”auto_mode”时特别有用。