Medición de caudal y temperatura

INTRODUCCIÓN 

Este proyecto pretende ser útil para medir el caudal que pasa por un tubo y llevar un registro tanto del volumen de líquido que ha pasado por él, como de la temperatura del recipiente en el que se encuentra.  

A continuación, explicaremos los materiales utilizados, el circuito montado de la protoboard, los pasos que hemos seguido para llevar a cabo el proyecto y los problemas a los que nos hemos enfrentado con sus respectivas soluciones.  

MATERIALES UTILIZADOS  

MATERIALES PROPORCIONADOS POR URJC: 

Componente Imagen 
 Placa Arduino UNO  
 Placa protoboard  
 Cables para la placa protoboard  Cable Conector para Placas de Prueba Kitronik 4110, 200mm, Jumper Wire, Negro, Azul, Rojo, Blanco, Amarillo 
 Resistencias de 10k y 5k Ohmios  0R68 2W Resistencia Oxido Metal 0,68 Ohm 2W 5%  
 Botón  Pulsador Membrana Circuito Impreso - Cetronic 

MATERIALES EXTRA 

Componente Precio Imagen 
 Caudalímetro YF-S201   8,99€ Seeed Studio 314150005 Imagen ampliada 
 Micro bomba sumergible de agua RUNCCI-YUN   8,99€  (Pack de tres, aunque solo se ha utilizado una) HALJIA Bomba de agua CC Motor horizontal Mini Micro Ultra Silencioso Sumergible  Agua sin Escobillas DC 3-5V 1.2-1.6L/Min Bajo ruido para pecera Acuario  Negro : Amazon.es: Productos para mascotas 
 Sensor de temperatura sumergible DS18B20   7,49€ (Pack de dos, aunque solo se ha utilizado una) OcioDual Sonda Sumergible 1 metro Sensor de Temperatura Termometro para  Raspberry DS18B20 : Amazon.es: Bricolaje y herramientas    
 Tubos de plástico  Incluido en el precio de la bomba Kesote 7mm (diámetro Interior) x 9mm (diámetro Exterior) Tubo Flexible de PVC, Tubo Transparente de 3 Metros Ideal para Tanque y Acuario 
 Placas de madera  8,99€ (Dos unidades) Placa múltiplex de 12 mm placas de madera contrachapada corte melamina recubierta blanca - Imagen 1 de 6 
 Escuadras de metal  4,48€ (Dos unidades)  
 Sujeciones de plástico para el tubo  0,80€ PRO ELEC PELB0174 
 Bote de plástico  0,95€ Bote Packer de PET de 200 ml, plástico, blanco, boca: GPI 45/400 
 Cinta aislante  –   
 Clavos  – (9 uds)  
 Tornillos  – (8 uds)  
 Rosca de tubería de metal   – (2 uds) Imagen que contiene estructuras metálicas, avión

Descripción generada automáticamente 

IMAGEN DEL CIRCUITO MONTADO  

PROBLEMAS ENCONTRADOS Y SOLUCIONES 

Problemas Soluciones 
 La salida de agua de la bomba y la entrada al caudalímetro eran de distinto diámetro, por lo que no podíamos hacer que el agua fluyera de un componente a otro Pusimos un tubo que cuadrara con el diámetro de la bomba, y cogimos una rosca de una tubería que cuadrara con la entrada del caudalímetro y tuviera una entrada más pequeña. Como la rosca seguía siendo un poco grande, cortamos un cacho de tubo más grueso y lo usamos para hacer un empalme entre la rosca y el tubo de la bomba. 
En algún punto del circuito debido a que las conexiones entre tubos no eran suficientemente buenas, perdía agua. Pusimos cinta aislante en la conexión que perdía agua para sellarla 
Cuando empezamos a montar el circuito, la bomba no funcionaba debido a que se pasaba de altura a la que tenía que bombear Reducimos la diferencia de altura subiendo un poco la bomba para hacer que funcionara.  

PASOS SEGUIDOS 

Para hacer el proyecto hemos ido implementando poco a poco las distintas partes del circuito, empezando por lo más sencillo como base y construyendo a partir de ahí, acoplando el resto de los componentes. 

Primero nos centramos en hacer que funcionara la bomba. Para ello conectamos los componentes mínimos necesarios: la bomba, un botón, un transistor NPN y una resistencia de 10k ohmios. Cuando tuvimos montada esta parte hicimos el código y probamos que funcionara tal y como queríamos. En este primer circuito metimos la bomba en un tupper con agua e hicimos un circuito cerrado, haciendo que el agua se bombeara al mismo sitio de donde salía para que nos fuera más cómodo probarlo. 

Luego hicimos lo propio con el sensor térmico. Añadimos los componentes necesarios al circuito: una resistencia de 5k ohmios, y las conexiones del sensor al positivo y negativo. Una vez conectado, planteamos el código y probamos el sensor a temperatura ambiente para ver cómo se iban registrando los cambios por pantalla. Por último, lo probamos en el tupper introduciendo agua fría y viendo cómo bajaba la temperatura. 

Lo último que implementamos fue el caudalímetro ya que era lo que más trabajo nos iba a llevar, y necesitábamos tener la bomba en funcionamiento para probarlo correctamente. Conectamos a través de un tubo el caudalímetro y la bomba, y llevamos la salida del caudalímetro al tupper de nuevo a través de un tubo. Añadimos una resistencia y conectamos los cables de positivo, negativo y señal, e hicimos el código. Una vez ya teníamos este componente pudimos probar la funcionalidad  

Cuando tuvimos montado el circuito y probamos que funcionaba correctamente, hicimos una reestructuración de componentes y cables para que quedara más limpio. 

Por último, procedimos al montaje final del proyecto.  

Utilizamos como base del proyecto dos tablones de madera unidos en forma de L por dos escuadras de metal y tornillos. Luego fijamos la placa a la tabla horizontal con celo, ajustamos los tubos con ayuda de clavos a las tablas, pusimos el caudalímetro y cambiamos el recipiente en el que iba la bomba a una botella con 2L de capacidad. 

CÓDIGO COMPLETO 

El código está estructurado en 3 partes diferenciadas claramente, una por cada componente del circuito, y la parte de setup. 

void setup() { 

   Serial.begin(9600); 

   sensors.begin(); 

  pinMode(BUTTON_PIN, INPUT_PULLUP); 

  pinMode(BOMB_PIN, OUTPUT); 

  pinMode(PinSensor, INPUT_PULLUP);  

  attachInterrupt(0,ContarPulsos,RISING); 

En el setup, además de establecer los pines de entrada y salida de los componentes, lo más destacable es la función “attachInterrupt”. Esta función consigue que cuando estén activadas las interrupciones y le llegue una señal de subida en el pin 2, se active la función “ContarPulsos”. Esto nos sirve para más adelante cuando mostremos el código del caudalímetro. 

Ahora nos centraremos en el loop en las 3 partes del código 

// PARA QUE FUNCIONA LA BOMBA 

  button_state = digitalRead(BUTTON_PIN); 

  if (button_state == LOW && prev_button_state == HIGH){ 

    if (bomb_state==0){ 

      bomb_state=1; 

      digitalWrite(BOMB_PIN, HIGH); 

    } 

    else{ 

      bomb_state=0; 

      digitalWrite(BOMB_PIN, LOW); 

    }     

  } 

En la parte de la bomba simplemente recibimos la información del botón, y cuando se pulsa cambia de estado, es decir, pasa de activo a inactivo y viceversa. 

/PARA OBTENER LA TEMPERATURA 

  sensors.requestTemperatures(); 

  float temperatura = sensors.getTempCByIndex(0); 

Esta parte es para el sensor térmico. Son dos funciones que consiguen acceder al valor del sensor y lo asignan a una variable «temperatura”. 

/—Función que se ejecuta en interrupción————— 

void ContarPulsos () 

{  

  NumPulsos++;  //incrementamos la variable de pulsos 

}  

//—Función para obtener frecuencia de los pulsos——– 

int ObtenerFrecuencia()  

  int frecuencia; 

  NumPulsos = 0;   //Ponemos a 0 el número de pulsos 

  interrupts();    //Habilitamos las interrupciones 

  delay(1000);   //muestra de 1 segundo 

  noInterrupts(); //Desabilitamos las interrupciones 

  frecuencia=NumPulsos; //Hz(pulsos por segundo) 

  return frecuencia; 

Estas dos funciones van de la mano y sirven para calcular el caudal que pasa por el caudalímetro. Cuando se llama a la funcion ObtenerFrecuencia, se calculan con la funcion contarpulsos los pulsos que pasan en un segundo, dependiendo de los flancos de subida que se detecten en el caudalimetro. 

//PARA OBTENER EL CAUDAL 

  float frecuencia=ObtenerFrecuencia(); //obtenemos la Frecuencia de los pulsos en Hz 

  float caudal_L_m=frecuencia*2.25*60/factor_conversion; //calculamos el caudal en L/m 

  float caudal_L_h=caudal_L_m*60; //calculamos el caudal en L/h 

  volumen = volumen + caudal_L_m/60; 

Para calcular el caudal conseguimos los pulsos por segundo que recoge el caudalímetro y luego mediante un factor de conversión transformamos el valor el caudal por minuto, hora, y volumen total. 

FUNCIONAMIENTO Y CASOS DE USO 

FUNCIONAMIENTO DEL PROYECTO 

El proyecto tiene como objetivo medir el caudal y el volumen total que pasa a través del tubo con un caudalímetro y la temperatura del agua mediante un sensor de temperatura. Hemos construido un circuito cerrado de agua con una bomba, un recipiente y tubos de plástico. Usamos una placa de Arduino para recopilar datos del caudalímetro y del sensor de temperatura. Aquí está el desglose de cómo funciona: 

  • Botón de encendido y apagado de la bomba: 

Nos permite interactuar con el circuito, al presionarlo comienza el funcionamiento de la bomba de agua y al volver a presionarlo esta de apaga deteniendo así el flujo de agua. 

  • Caudalímetro: 

Recoge la información del flujo de agua que pasa por él mediante pulsaciones. Este está conectado al positivo y negativo de la protoboard, además de al pin 2 de Arduino regulado por una resistencia de 5kΩ. 

  • Sensor de temperatura: 

Mide la temperatura del agua que está contenida en el recipiente. El sensor está conectado al positivo y negativo de la protoboard, y al pin 4 del arduino también regulado por una resistencia, de 10kΩ.  

  • Bomba de agua: 

Nos permite controlar el flujo del agua. Está conectada al positivo de la protoboard y al emisor del transistor. Este transistor además conecta el ground a su colector y el pin 9 de arduino a la base, permitiéndonos tener un interruptor controlado por Arduino para regular la corriente hacia la bomba. 

CASOS DE USO 

Este proyecto está basado fundamentalmente en sistemas de control de agua para las viviendas. La finalidad es saber lo que hay que pagar de agua al tener registrado el valor total de agua consumida. También almacenamos información extra como la temperatura del agua para saber si debemos regularla según los objetivos que se planteen. 

Pero, además se podrían hacer circuitos parecidos en cuanto a componentes para conseguir otras aplicaciones. Varios ejemplos de ello pueden ser: 

  • Un sistema de control de riego automático: se podría activar la bomba de agua para propulsar el agua a cierta temperatura (controlada por el sensor), y medir con el caudalímetro el total de agua utilizada. 
  • Seguridad en procesos industriales: en ciertos procesos industriales se necesitan controles muy exhaustivos, con requisitos como podrían ser la temperatura o la cantidad de ciertos líquidos. Ahí entraría un proyecto parecido al nuestro, que bombeara ciertos líquidos solo cuando estén a una temperatura adecuada a las especificaciones de los controles de calidad. 
  • Sistemas de control de temperatura: en sistemas más grandes se podría conseguir que cuando se detecte cierta temperatura que el sistema bombee liquido refrigerante a través de los tubos, en cierta cantidad controlada por el caudalímetro. 

REPARTO DE TAREAS  

Todos los miembros del equipo hemos estado presentes en todo momento al realizar el proyecto, aun así, podríamos dividir las tereas que hemos realizado en conjunto en: 

  • Compra de materiales y componentes extra. 
  • Diseño de un código base. 
  • Montaje del circuito. 
  • Pruebas para comprobar el funcionamiento de cada componente. 
  • Modificación y refactorización del código inicial. 
  • Construcción de la maqueta. 
  • Documentación del proyecto.

VIDEO

 

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *