Lite-On 环境光与接近传感器
ltr_als_ps 传感器平台允许您在 ESPHome 中使用一系列 LiteOn 环境光和接近传感器。需要在配置中设置 I²C 总线 才能使此传感器工作。
传感器系列包括:
- 环境光传感器 LTR-303ALS 和 LTR-329ALS
- 集成环境光和接近传感器 LTR-553ALS、LTR-556ALS、LTR-559ALS
- 接近传感器 LTR-659ALS(带 PS 增益控制)
这些传感器非常相似,共享相同的数据手册。前两个默认 I²C 地址为 0x29,其余默认 I²C 地址为 0x23。这些传感器可从多家供应商的开发板上获取,例如 Adafruit 或 Pimoroni。
接近传感器是您在手机和平板电脑中发现的那种传感器,用于在您将设备靠近耳朵时关闭屏幕。它们可能对自动开启或关闭显示器和控制面板很有用。一个例子是 M5Stack 的 CoreS3 开发板,其屏幕下方集成了一个 LTR-559ALS 传感器。
该传感器平台在 0.01 lux 到 64k lux 的宽动态范围内提供线性响应,非常适合高环境亮度下的应用。共有六种增益设置(1X、2X、4X、8X、48X 和 96X)供用户配置。在较暗区域使用较高增益。
设备由两个光电二极管组成:CH0 二极管对可见光和红外光都敏感,CH1 二极管仅对红外光敏感。
环境光照度计算
Section titled “环境光照度计算”数据手册摘录:
RATIO = CH1/(CH0+CH1)IF (RATIO < 0.45) ALS_LUX = (1.7743 * CH0 + 1.1059 * CH1) / ALS_GAIN / ALS_INTELSEIF (RATIO < 0.64 && RATIO >= 0.45) ALS_LUX = (4.2785 * CH0 – 1.9548 * CH1) / ALS_GAIN / ALS_INTELSEIF (RATIO < 0.85 && RATIO >= 0.64) ALS_LUX = (0.5926 * CH0 + 0.1185 * CH1) / ALS_GAIN / ALS_INTELSE ALS_LUX = 0END其中:
CH0和CH1分别是可见光+红外(Ch0)和仅红外(Ch1)传感器的传感器值(测量计数)。ALS_GAIN是增益倍数ALS_INT是积分时间,单位 ms/100
ALS 增益级别
Section titled “ALS 增益级别”下表列出了增益值和相应的照度范围:
| 增益 | 照度范围 |
|---|---|
1X | 1 lux 到 64k lux(默认) |
2X | 0.5 lux 到 32k lux |
4X | 0.25 lux 到 16k lux |
8X | 0.125 lux 到 8k lux |
48X | 0.02 lux 到 1.3k lux |
96X | 0.01 lux 到 600 lux |
维基百科文章有一个照度值比较表。
接近传感器内置发射器和检测器。传感器检测从发射器反射的红外光,并给出与距离成反指数关系的原始计数值。计数值降低意味着物体正在远离传感器,反之亦然。数据手册都没有提供如何将原始计数值转换为距离的信息。唯一的方法是自己测试传感器,并根据您的需求和环境选择阈值。确切数值将取决于物体的类型、颜色和反射率。
sensor: - platform: ltr_als_ps address: 0x23 update_interval: 60s type: ALS_PS # 或 ALS 或 PS ambient_light: "环境光" # 仅 PS 部分 ps_cooldown: 5 s ps_high_threshold: 500 on_ps_high_threshold: then: - .... # 执行某些操作 - 例如点亮屏幕 ps_counts: "接近计数值"-
id (可选, ID):手动指定用于代码生成的 ID。
-
address (可选, int):手动指定传感器的 I²C 地址。默认为
0x29。 -
type (可选, string):传感器类型。有效值为
ALS_PS(默认) 用于集成传感器,ALS用于仅环境光设备,或PS用于仅接近设备。 -
auto_mode (可选, boolean):自动增益和积分时间选择。默认为 True。
-
gain (可选, string):设备将使用的增益。较高的值在低光条件下效果更好。 有效值为
1X(默认)、2X、4X、8X、48X、96X。 -
integration_time (可选, 时间): 传感器曝光的时间长度。较长时间意味着更准确的数值。 有效值为:
50ms(默认)、100ms、150ms、200ms、250ms、300ms、350ms、400ms。 -
glass_attenuation_factor (可选, float):如果传感器位于玻璃或塑料面板后面,玻璃的衰减系数。默认为
1.0,表示100%透射率。2表示50%透射率等。 -
update_interval (可选, 时间):检查传感器的时间间隔。 默认为
60s。 -
ps_cooldown (可选, 时间):接近传感器触发后的”冷却”期。 有助于避免多次调用。默认为
5s。 -
ps_gain (可选, string):设备用于接近传感器的增益。较高的值在低光条件下效果更好。 有效值为
16X(默认)、32X、64X。仅适用于 LTR-659ALS。 -
ps_high_threshold (可选, int):接近传感器在物体靠近时触发的阈值。 默认为
65535,意味着永远不会触发。 -
ps_low_threshold (可选, int):接近传感器在物体远离时触发的阈值。 默认为
0,意味着永远不会触发。 -
on_ps_high_threshold (可选):接近传感器在物体靠近时触发时执行的操作。
-
on_ps_low_threshold (可选):接近传感器在物体远离时触发时执行的操作。
此组件为配备 ALS 的设备提供五个传感器,为配备 PS 的设备提供一个传感器。
您可以配置所有或任意子集的传感器。每个配置的传感器在每个 update_interval 单独报告。每个都是 ESPHome 传感器,可以相应配置;如果您不需要配置额外的 传感器 变量,可以简单地使用传感器的简写语法。例如:ambient_light: "环境光"
- ambient_light (可选):环境光照度,接近人眼光谱,lx。
- infrared_counts (可选):来自红外敏感传感器(CH1)的传感器计数值,counts。
- full_spectrum_counts (可选):来自对可见光和红外都敏感的传感器(CH0)的传感器计数值,counts。
- actual_gain (可选):用于测量数据的增益值,倍数。当选择”auto_mode”时特别有用。
- actual_integration_time (可选):用于测量数据的积分时间,ms。当选择”auto_mode”时特别有用。
- ps_counts (可选) - 来自接近传感器的原始 11 位读数,counts。