Banner publicitario de PCBWay

[VL53L0X] - Volumen remanente de agua en tanque de reserva.

fwalsh

Automirador de dedo.
Quiero comenzar este post aclarando que todo lo aquí vertido es simplemente una prueba que realice con un sensor que me llamó la atención para algo puntual y sin vistas a ser demasiado preciso o extenderlo a otras locuras.

Con eso en mente, el sensor es el VL53L0X de la firma ST cuya hoja de datos adjunto conjuntamente con el Manual de Usuario, para aquellos que deseen obtener el conjunto de funciones API le dejo este vínculo en donde se registran y lo descargan; que contiene?, lo desconozco ya que no me dedico a la programación en lenguaje C ( en realidad podría decirse con más exactitud que no me dedico a la programación :LOL: )

Podríamos decir que el VL53L0X es un sensor de distancia que opera por láser infrarrojo de clase 1 para medir distancias de 50mm a 2000 mm, también opera con elevada luz ambiental infrarroja e incorpora un sistema de compensación de la medición que le permite funcionar incluso detrás de un cristal protector. ( Incluyo un vínculo a un video de ST Labs en donde pueden ver sus características y su funcionamiento aún en entornos con elevados contaminantes )


Mi idea fué sensar el volumen remanente de un tanque de agua, utilizándolo aún cuando sospechaba que su longitud de onda ( 940nm ) podría atravesar el líquido y no medir nada o en el mejor de los casos sin precision, el resultado fue que midió con bastante precisión a pesar de lo antedicho.

Todavía queda por ver si no se produce condensación de agua en el sensor que perturbe la medición como pasaba con el sensor de ultrasonido que tenía colocado previamente; si bien era hermético, la condesación generaba gotas de agua que el sensor interpretaba como "pared" y devolvia error de medicion dado que estaba fuera del rango permitido.

Este es el dispositivo VL53L0X montado en la placa TOF200C junto al ESP-01 que utilicé para las pruebas y su integración con el Home Assistant.

1748163349914.png

En ESPHome este sensor está soportado y se encuentra aquí, para quienes deseen utilizarlo con Arduino, hay una librería desarrollada por Adafruit "Adafruit_VL53L0X.h"

Su conexionado es más que evidente

VIN - 3.3V
GND - GND
SDA - GPIO2 del ESP-01
SCL - GPIO0 del ESP-01
INT - NC
SHUT ( o XSHUT ) - NC

En ESPHome hay que declarar primero la configuración I2C para que el sensor funcione, por ejemplo en YAML sería:
YAML:
i2c:
  sda: GPIO2
  scl: GPIO0
  scan: true
  id: bus_a

y luego el sensor

YAML:
sensor:
  - platform: vl53l0x
    name: "VL53L0x Distance"
    address: 0x29
    update_interval: 60s
    long_range: true

en caso de utilizar mas de un sensor en el bus I2C en ESPHome, hay que definir las diferentes GPIO que corresponderán a cada sensor en el ESPXX y, en este caso, conectarlas a cada SHUT o X-SHUT correspondiente ( ver página 13 del datasheet ). Esto no lo he probado.


YAML:
sensor:
  - platform: vl53l0x
    name: "distancia1"
    id: distancia1
    address: 0x41
    enable_pin: GPIOXX
    timeout: 200us
    update_interval: 500ms
    unit_of_measurement: "m"

  - platform: vl53l0x
    name: "distancia2"
    id: distancia2
    address: 0x42
    enable_pin: GPIOXX
    timeout: 200us
    update_interval: 500ms
    unit_of_measurement: "m"

Si alguien quiere aportar algo mas al tema, como siempre bienvenido!
 

Adjuntos

  • vl53l0x.pdf
    2.1 MB · Visitas: 0
  • um2039.pdf
    1.1 MB · Visitas: 0
Atrás
Arriba