Módulo de medición de distancia ultrasónico a prueba de agua

Para medir el nivel del agua en mi depósito de agua, decidí probar un módulo de medición de distancia ultrasónico a prueba de agua. Esto funciona de la misma manera que los módulos ultrasónicos estándar que utilicé en mi tutorial anterior de Medición de distancia ultrasónica usando Python.

El sensor ultrasónico a prueba de agua que pedí se ve así:

Consiste en :

  • transductor impermeable
  • Cable
  • Tabla de control

La placa de control tiene las mismas cuatro conexiones que los módulos HR-SR04:

El módulo proporciona medidas dentro de un rango de 25 cm a 450 cm. El transductor en sí se parece al dispositivo que encontraría en un sistema de sensor de marcha atrás de un automóvil en lugar de la disposición de transductor doble del módulo clásico HR-SR04.

Conexión a la Pi

El módulo se puede alimentar desde los pines de tierra y 5 V de Pi. Usé el Pin 2 y el Pin 6 en el encabezado GPIO de Pi.

El pin de entrada en el módulo se denomina «disparador», ya que se utiliza para activar el envío del pulso ultrasónico. Funciona bien con una señal de 3,3 V del GPIO, así que conecté el gatillo directamente al pin 16 (GPIO23).

La salida del módulo se llama «eco» y necesita un poco más de reflexión. El pin de salida está bajo (0V) hasta que el módulo haya tomado su medida de distancia. Luego establece este pin alto (+5V) por la misma cantidad de tiempo que tardó el pulso en regresar. Entonces, nuestro script necesita medir el tiempo que este pin permanece alto. El módulo usa un nivel de +5V para un «alto», pero esto es demasiado alto para las entradas en el Pi que solo necesitan 3.3V. Para asegurarnos de que Pi solo reciba 3,3 V, podemos usar un divisor de voltaje básico. Este se forma con dos resistencias.

Si R1 y R2 son iguales, entonces el voltaje se divide por la mitad. Esto nos daría 2.5V. Si R2 es el doble del valor de R1, obtenemos 3,33 V, lo cual está bien. Entonces, idealmente, desea que R2 esté entre R1 y R1 x 2. En mi circuito de ejemplo, utilicé resistencias de 330 y 470 ohmios. Una alternativa sería utilizar valores de 1K y 1K5.

Aquí hay un diagrama de mi circuito final. Elegí GPIO23 y GPIO24 pero puedes usar cualquiera de los 17 pines GPIO disponibles en el encabezado GPIO. Solo recuerde actualizar el script de Python en consecuencia.

Circuito de módulo ultrasónico

Usé un pequeño trozo de tablero para crear el divisor de voltaje:

El cable blanco está conectado al pin Echo, el cable púrpura a GPIO24 y los cables azul/negro a tierra. Ignore las resistencias azules ya que no se utilizan en este caso.

Secuencias de comandos de Python

Para probar mi módulo, utilicé el mismo script que utilicé en mis artículos anteriores sobre sensores ultrasónicos. Aunque esta vez hice algunas mejoras.

Hay dos scripts de Python de ejemplo que puede descargar y probar.

ultrasonic_1.py
Un script para tomar una sola lectura y mostrar el resultado en centímetros.

ultrasonic_2.py
Un script para tomar lecturas continuas y mostrar el resultado en centímetros.

Puede descargarlos directamente a su Pi usando:

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/ultrasonic_1.py

y :

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/ultrasonic_2.py

Una vez descargados, se pueden ejecutar usando:

python ultrasonic_1.py

y :

python ultrasonic_2.py

Si lo tiene instalado, los scripts también deberían funcionar en Python 3:

python3 ultrasonic_1.py

Puede usar cualquier pin GPIO que desee para modificar su secuencia de comandos de Python en consecuencia.

Velocidad del sonido

El cálculo que se utiliza para encontrar la distancia se basa en la velocidad del sonido. Esto varía con la temperatura, así que actualicé estos scripts para calcular el valor correcto para usar en función de una temperatura definida. Puede cambiar este valor si es necesario o tal vez medirlo dinámicamente usando un sensor de temperatura.

Colillas de agua

Me gustan los botines de agua grandes y no puedo mentir. Estoy en el proceso de colocar un poco de concreto para formar una base más adecuada para mis colillas de agua, pero una vez que estén instaladas, colocaré este sensor en la tapa de una de ellas. Escribiré una nueva publicación detallando eso, pero lo más probable es que sea un proyecto de primavera el próximo año.

Exactitud

Aquí hay algunos puntos sobre la precisión:

  • Obtiene mejores lecturas desde una superficie sólida y plana sin otros objetos cercanos. El sensor envía pulsos que forman un «cono», por lo que cualquier cosa que se interponga en el camino afectará los resultados.
  • La precisión de la medición de la distancia depende del tiempo. Python bajo Linux no es ideal para la sincronización precisa, pero para el desorden general funcionará bien. Para mejorar la precisión, debería comenzar a buscar el uso de C en su lugar.
  • Cuando los GPIO están configurados, el módulo necesita algo de tiempo antes de que esté listo para realizar su primera lectura, por lo que agregué un retraso de 0,5 segundos al inicio del script.

Comprar este sensor ultrasónico a prueba de agua

Aquí hay un enlace al sensor del transductor de medición de distancia del módulo ultrasónico a prueba de agua que pedí en eBay. Estos dispositivos están disponibles a través de otros vendedores y puede ver la selección buscando en eBay «Sensor de módulo ultrasónico resistente al agua».