Litros de un depósito en el móvil

Construcción de un medidor de nivel de líquidos por ultrasonidos con Arduino. Los litros que contiene un depósito se calculan en función de la ditancia libre del depósito, medida por ultrasonidos, y se muestran en un display OLED con una resolución de 1 litro. Las medidas del depósito se deben configurar en el firmware, antes de programar el ATMega328P. Todos los ajustes y medidas pueden comprobarse a distancia en un teléfono móvil, mediante una conexión Bluetooth.

Interior del medidor de litros

Nivel de un depósito con ultrasonidos

Mejoras con respecto al montaje anterior

  • Montar un módulo Bluetooth para ver en el teléfono todos los datos de cada medida, además de los litros, que es lo único que muestra el display.
  • Bajar la resolución de la medida a milímetros, para coseguir que los litros que muestra el display cambien de uno en uno, y no cada 7,4 litros.

Resolución de la medida

Precisión de la medida

Los litros que muestra este medidor sólo sirven como referencia orientativa. Aunque la precisión de la medida de distancia por ultrasonidos sea bastante buena, hay que tener en cuenta otros factores:

  • Lo normal es que un depósito no sea totalmente simétrico, debido a los flejes de refuerzo y sus ondaluciones.  Si además es un depósito de plástico,  su capacidad varía en función del volumen de líquido que contiene y su temperatura.
  • Teniendo en cuenta que en el depósito que lo instalé, cada milímetro de combustible se corresponden a 0,74 litros, en el mejor de los casos la precisión de la medida sería de +/-1 litro.

Esquema

A continuación se muestra el nuevo esquema del medidor de litros por ultrasonidos. Lo único que cambia con respecto al esquema anterior, es el pulsador del Reset y el módulo Bluetooth HC-05.

Esquema del medidor de litros

Bluetooth HC-05

Es necesario configurar el módulo Bluetooth HC-05 antes de montarlo en el circuito. Aparte de su nombre y password, se debe configurar en modo esclavo a 38.400bps. Luego sólo habría que hacer 3 conexiones con este medidor: los dos hilos de alimentación (5VCC), y la conexión entre el terminal RXD del módulo HC-05 y el terminal TX del microcontrolador ATmega328P.

La conexión TX del módulo ARDUINO UNO está rotulada como D1, y se corresponde con el pin número 3 del microcontrolador ATmega328P.

Configuración del módulo Bluetooth HC-05

El pulsador Reset lo monté para poder reiniciar el microcontrolador en cualquier momento, y permitir que el módulo Bluetooth envíe los datos de configuración del depósito al teléfono móvil.

Configuración del depósito en el móvil

Configurar el tamaño del depósito

Las medidas y capacidad del depósito forman parte de los parámetros de ajuste del código del programa, pudiendo así adaptar con facilidad el firmware a las dimensiones y volumen de cualquier depósito.

Configuración del tamaño del depósito

En esta versión hay que poner todas las medidas en milímetros. Las valores de las tres últimas variables se dejan sin valor, el programa se encargará de calcular estos valores en función de las medidas del depósito.

Al aumentar la resolución de la medida de distancia hasta un milímetro, es muy fácil que cualquier movimiento del líquido en la superficie del depósito haga fluctuar la medida. Para minimizar este efecto, el programa realizará una serie de medidas consecutivas y mostrará el promedio de todas ellas. Cada vez que toma una muestra, introducirá un pequeño retardo antes de realizar la medida siguiente. Este retardo lo calcula el programa, y varía en función de la altura del depósito. Con este retardo se minimiza el efecto eco de una medida anterior en la siguiente, lo cuál introduciría un error al calcular el promedio.

APP para el móvil

Para mostrar los datos que envía el medidor en un teléfono móvil, se puede instalar cualquier aplicación de tipo ‘Terminal‘, yo utilizo una APP gratuita:

Serial Bluetooth Terminal 

APP: Serial Bluetooth Terminal

Firmware

El código que necesitas para programar el ATMEGA-328P de Arduino, lo puedes descargar del repositorio GitHub:

https://github.com/J-RPM/Level-of-a-tank-with-ultrasound

¿Necesitas fabricar un circuito impreso?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.

Logo: PCBWay

https://www.pcbway.es/

 

Nivel de un depósito con ultrasonidos

Construcción de un medidor de nivel de líquidos para un depósito con ultrasonidos. En un depósito simétrico, dividiendo su capacidad máxima en litros entre la altura en centímetros, obtendremos el número de litros que contiene cada centímetro del líquido dentro del depósito. Conociendo la capacidad máxima del depósito, es posible medir la distancia libre de la parte superior del depósito por reflexión de los ultrasonidos en la superficie del líquido. Luego restamos esa distancia con la altura total del depósito, y así podremos calcular los litros que almacena en su interior.

Medidor de nivel por ultrasonidos, instalado en el depósito

Aprovechando el medidor de distancias ultrasónico que hice el año 2018, sólo he tenido que adaptar su código para convertir el medidor de distancia en un medidor de litros, y mostrarlos en el display.

OLED: SSD1306 ‘Fake in China’ & Sensor de proximidad para invidentes

Litros de un depósito

Para calcular el número de litros que hay dentro de un depósito simétrico, podemos medir la distancia libre de líquido, desde su nivel máximo de llenado hasta la superficie del líquido. Luego restamos esa distancia de la altura total del depósito, y la multiplicamos por el número de litros por centímetro que previamente hemos calculado en función de la altura del depósito y su capacidad máxima.

Litros en el depósito

De esta forma podemos realizar la medida desde arriba, colocando un medidor de distancia ultrasónico en alguna de las bocas de respiración del depósito. Apuntando el haz ultrasónico del medidor hacia el fondo, el sensor recibirá el eco que se refleje en la superficie del líquido. A partir de esa medida ya podemos calcular el número de litros que contiene el depósito, evitamos que el sensor entre en contacto con el líquido, y podríamos medir cualquier producto químico o corrosivo.

Funcionamiento del sensor HC-SR04

El sensor de ultrasonidos HC-SR04 tiene dos cápsulas piezoeléctrias, por una de ellas transmite un tren de impulsos inaudible (40 KHz), y por la otra recibe el eco de la señal reflejada. Dependiendo de la distancia del punto de reflexión, el eco recibido llegará con mayor o menor retardo. Tomando como referencia la velocidad de propagación del sonido en el espacio libre, con tan sólo medir el tiempo de retardo del eco recibido con respecto al origen, podremos calcular con precisión a qué distancia del sensor se encuentra el obstáculo.

Sensor HC-SR04

El sensor HC-SR04 dispone de 4 pines de conexión, 2 de ellos son para alimentar su circuito con 5VDC (Vcc/GND), y los otros dos son para realizar las medidas:

      • Trig: Un microprocesador externo envía un impulso de corta duración cada vez que necesita obtener una medida.
      • Echo: El sensor entrega un impulso de ancho variable, y midiendo su duración obtenemos la distancia a la que se encuentra el obstáculo.


    Sensor HC-SR04

Esquema

Este circuito incluye un zumbador piezoeléctrico, el cual he aprovechado en este montaje para utilizarlo como alarma acústica, y avisar cuando el nivel del líquido está por debajo del nivel mínimo que hayamos prefijado (reserva).

Esquema: Detector de proximidad

Características del depósito

Las medidas y capacidad del depósito forman parte de los parámetros de ajuste del código del programa, pudiendo así adaptar con facilidad el firmware a las dimensiones y volumen de cualquier depósito.

Ajustes del tamaño del depósito

El nivel de la reserva también se configura en el código del programa, y son los centímetros desde el fondo del depósito hasta el nivel mínimo prefijado. En función del número de litros por centímetro del depósito, podemos calcular el número de litros de la reserva. En este caso, el nivel de reserva sería: 7,41 L/cm. X 40 cms. = 296,4 litros.

Montaje en el depósito

Como este medidor es muy pequeño, lo monté en una de las bocas de respiración para el llenado del depósito, sustituyendo su tapón por un soporte que hice a medida con la impresora 3D.

Soportes 3D, para el interruptor y el sensor de medida por ultrasonidos

Para conectar el medidor ultrasónico sólo cuando lo necesite, cambié  su interruptor de encendido por un conector de alimentación. Desde el conector hice una prolongación con cable paralelo, hasta llegar al interruptor de encendido/apagado. El interruptor lo puse en la puerta de acceso al hueco donde tengo el depósito, con el fin de no tener que acercarme hasta el depósito para ver su contenido.

Test de funcionamiento

Antes de montar el sensor en el depósito, es conveniente comprobar que no hemos cometido algún error al introducir los parámetros de ajuste en el código del programa, y de paso comprobar que funciona correctamente en todo el rango de medidas.

Test del calibrado

En la imagen anterior, comprobé que el display mostraba 1000 litros a una distancia de 5 cms. La capacidad máxima de mi depósito es de 1000 litros, y la distancia entre el sensor y el nivel máximo del depósito (offset) es de 5 cms.

Firmware

El código que necesitas para programar el ATMEGA-328P de Arduino, lo puedes descargar del repositorio GitHub:

https://github.com/J-RPM/Level-of-a-tank-with-ultrasound

Soportes 3D

El soporte del medidor y su interruptor remoto los hice on PLA de color negro. Los ficheros los puedes descargar desde el siguiente link:

https://www.thingiverse.com/thing:5633438

¿Necesitas fabricar un circuito impreso?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.

Logo: PCBWay

https://www.pcbway.es/