1. 简介
TEMT6000 它是一种简单而便宜的环境光传感器。传感器本身会根据照射到传感器的光量来改变其电阻。为了让我们阅读这个电阻,你可以购买这些芯片的分线板,通常有一个小的恒定电阻和三个引脚GND
:VCC
和SIG
。连接VCC
到任何可用3.3V
的模拟引脚。
为了获得传感器测量的亮度,我们只需要使用它模数传感器SIG
测量(也称为OUT
)引脚上的电压,将这些电压测量值转换为以勒克斯为单位的照度值:
关键代码属于传感器类ADC库,端口是A0)实体温湿度传感器
sensor: - platform: adc pin: A0 name: "TEMT6000 Illuminance" device_class: illuminance unit_of_measurement: lx filters: - lambda: |- return (x / 10000.0) * 2000000.0;
TEMT6000 上引脚OUT
到 ADC 引脚、连接GND
到GND
和连接VCC
到3.3V
2. 公式说明
为了获得以勒克斯为单位的照度,我们首先需要将测量的电压转换为流动 TEMT6000 传感器的电流。电流也等于流经分压器电路 10kΩ 电阻器的电流,即。I=adc_value/10000k?
TEMT6000的数据表指定电流和照度之间的比例关系:每次 2 μA 的电流与 1 lx 照度相关。
ESP8266 和 ESP32 的 ADC 默认电压范围为 0 到 1.0V。因此,您将无法使用默认设置来测量任何高于 200 lx 的值。
对于 ESP您可以选择设置32电压衰减(请注意,如果设置衰减,则不需要调整公式,因为值
x
将自动转换为伏特)。对于 ESP不幸的是,您需要稍微修改硬件以降低电压。因此,一种选择是在引脚上创建另一个分压器,
SIG
将模拟电压除以恒定值。
3.实验过程
我使用的硬件是esp8266,实验跟着ESPHome 和 Home Assistant点灯握手,完整代码如下
需要修改wifi和密码
esphome: name: nodemcu esp8266: board: nodemcuv2 # Enable logging logger: # Enable Home Assistant API api: ota: password: "73260d7b7227a21d2f841e7afb746e84" wifi: ssid: "J09 502" password: "qwertyuiop111" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Nodemcu Fallback Hotspot" password: "2RzZYd7gW4hb" captive_portal: # Enable switch gpio2(D4) switch: - platform: gpio name: "Living Room Dehumidifier" pin: 2 # Enable switch gpio0(D3) binary_sensor: - platform: gpio name: "Living Room Window" pin: number: 0 inverted: true mode: input: true pullup: true # Example configuration entry sensor: #(https://esphome.io/cookbook/temt6000.html)A0 - platform: adc pin: A0 name: "TEMT6000 Illuminance" device_class: illuminance unit_of_measurement: lx filters: - lambda: |- return (x / 10000.0) * 2000000.0; update_interval: 10s
点击install,选择wirelessly(记住,您的设备需要完成最后一个实验OTA升级,保持设备在线,成功上传)
4. 实验效果
在配置中选择设备和服务
选择nodemcu
点击设备
可远程监控,可添加到仪表板上,方便查阅
效果如下
4. 总结
本文学习了ESPHome 和 Home Assistant传感器之TMT6000 环境光握手,以后会分享更多有趣的物联网操作,从而实现对外界的感知,充分了解这个有机无机的环境,科学合理地创造和发挥效益,然后为人类社会的发展做出微薄的贡献。
参考文献:
开始使用 ESPHomeESPHome 和 Home Assistant点灯握手