You are on page 1of 17

“AÑO DE LA LUCHA CONTRA LA CORRUPCIÓN Y LA IMPUNIDAD”

UNIVERSIDAD NACIONAL DE INGENIERÍA


FACULTAD DE INGENIERIA MECÁNICA

INFORME DEL PROYECTO

“MEDICIÓN DE CAUDAL EMPLEANDO SENSOR DE


FLUJO POR EFECTO HALL Y ARDUINO NANO”

CURSO: LABORATORIO DE INGENIERÍA MECÁNICA (MN 465)

SECCIÓN: “B”

DOCENTE: MORALES TAQUIRI, OSWALDO MORLA

INTEGRANTES:

- FLORES CAMPOS, WALDIR EDMUNDO 20150472J


- GÓMEZ DÁVILA, LUIS FERNANDO 20150072A
- LEYVA SAMANAMUD, SANTIAGO ANGEL 20154001A
- MACARIO LOPEZ, WILFREDO 19992133J
- MORY TEODOR, KENDRICK JOFFE 20154553D
- ORELLANA OYARCE, NESTOR ANDRÉ 20162026J
- PISFIL PUICON, PIERO ADRIAN 20164048K

LIMA-PERÚ
2019-1
1
ÍNDICE

FUNDAMENTO TEÓRICO……………………………………………………………………………….3

DIAGRAMA ELECTRÓNICO DEL CIRCUITO……………………………………………………...7

CÓDIGO ARDUINO DEL SENSORY DEL ENVIÓ DE DATOS INALÁMBRICAMENTE

MEDIANTE EL MÓDULO LORA………………………………………………………………………..8

CONCLUSIONES…………………………………………………………………………………………..16

BIBLIOGRAFIA……………………………………………………………………………………………..17

2
FUNDAMENTO TEÓRICO

I. SENSOR DE CAUDAL
El sensor de flujo de agua, también llamado flujómetro o caudalímetro,
podemos utilizarlo en muchos proyectos con Arduino donde tengamos
que mover líquidos y necesitemos medir el caudal que está pasando por
nuestro sistema.

El caso típico de uso es en los sistemas de riego por aspersión o riego


por goteo donde podríamos necesitar conocer cuánta agua estamos
mandando a las plantas o en situaciones donde utilicemos bombas de
agua y para proteger el motor necesitemos saber en todo momento si
está pasando líquido por nuestra bomba.

II. ¿QUÉ ES EL CAUDAL?


El caudal es la cantidad de líquido o fluido que circula a través de una
cañería, tubería o manguera por unidad de tiempo. Por lo general se
expresa en la unidad de volumen dividida por la unidad de tiempo (por
ejemplo: l/m, l/h, m³/h, etc.).

III. TIPOS DE CAUDALÍMETRO


Podemos elegir entre diferentes tipos de caudalímetros o medidores de
caudal según el uso que le daremos y los recursos con los que contamos.
Existen caudalímetros que sirven para medir distintos fluidos (agua,
combustibles, aceites) y distintos volúmenes con mayor o menor
precisión, y van desde los 2 u$s hasta los 10.000 u$s. Veamos algunos
tipos de sensores de flujo:

 Caudalímetro Mecánico de Turbina: Es el típico medidor de agua


que tenemos todos en nuestras viviendas. El flujo hace girar un
molino cuyo eje mueve un contador mecánico que acumula las
lecturas. Al ser mecánico no sirve para Arduino..

3
 Caudalímetro Ultrasónico: Se utilizan en la industria y cuestan
miles de dólares. Mide a través de cañerías de cualquier material
el tiempo que tarda el ultrasonido en atravesar el fluido a medir.

 Caudalímetro Electromagnético: Utilizado en la industria para


cañerías de hasta 40 pulgadas y altas presiones. También cuesta
miles de dólares.

 Caudalímetro Electrónico a Turbina: Son de bajo costo y bastante


precisos. La desventaja que tienen es que al ser intrusivos tienen
alta perdida de carga y sufren alto deterioro en sus piezas, pero
son los ideales para utilizar en nuestros proyectos con Arduino.

IV. ¿CÓMO FUNCIONA EL SENSOR DE FLUJO CON ARDUINO?


El funcionamiento del sensor de flujo electrónico a turbina que
utilizaremos con Arduino es simple y complejo a la vez. Simple porque
básicamente consta de una turbina que gira al pasar el agua a través de
ella, y complejo por utiliza un sensor de efecto Hall para calcular el flujo
de agua. No entraremos en este artículo a describir el efecto Hall, ya que
no es necesario comprenderlo para hacer un buen uso del flujómetro.

El agua circula a través del cuerpo del medidor de flujo haciendo girar la
turbina o hélice que tiene dentro. Cuanto más flujo haya más rápido
girarán las aspas de la turbina. Un imán situado en la turbina genera un
pulso positivo cada vez que pasa por el sensor de efecto Hall. De esta
forma podemos conocer las RPM que general la hélice y calcular el
caudal de agua con una sencilla ecuación.

4
V. MODELOS DE SENSORES CON ARDUINO
Son 4 los sensores de caudal más utilizados con Arduino, la mayor
diferencia entre ellos es el tamaño de las roscas de conexión y por
supuesto el caudal que miden, veámoslo comparativamente:

VI. CONEXIÓN DEL SENSOR

La conexión eléctrica es muy sencilla, todos los sensores de flujo tienen


3 cables: rojo y negro para positivo y GND y amarillo para la salida de los
pulsos. Como es necesario utilizar interrupciones externas, podemos
utilizar los pines 2 ó 3 de Arduino UNO, que son los que manejan
interrupciones. Nos decidimos por el pin 2 para que funcione también
el código en otras placas Arduino que manejan interrupciones externas
en ese pin (mega, nano, mini y micro).

5
VII. STRETCH ARDUINO
La conversión de frecuencia de pulsos (Hz) a caudal (L/min) varía entre
modelos y depende de factores como la presión, la densidad de líquido
e incluso del mismo caudal.

Para calcular el caudal debemos usar un factor de conversión y una


formula provistos por el fabricante. Este factor de conversión sólo nos
servirá de referencia, ya que en la mayoría de los casos deberemos
ajustarlo realizando pruebas.

Fórmula: f(Hz) = K * Q(L/min)

Donde f es la frecuencia de pulsos, K es el factor de conversión y Q es el


Caudal en litros por minuto. Despejando Q en la ecuación obtenemos
que

Q = f/K

Factores de conversión para cada sensor de flujo según el fabricante:

Sensor de ¼”: S
Sensor de ½”: 7,5
Sensor de ¾”: 5,5
Sensor de 1″: 4,8

6
DIAGRAMA ELECTRÓNICO DEL CIRCUITO

7
CÓDIGO ARDUINO DEL SENSORY DEL ENVIÓ DE DATOS
INALÁMBRICAMENTE MEDIANTE EL MÓDULO LORA

 TRANSMISOR

#include <SPI.h>

#include <RH_RF95.h>

#define RFM95_CS 10

#define RFM95_RST 9

#define RFM95_INT 2

// Change to 434.0 or other frequency, must match RX's freq!

#define RF95_FREQ 433.0

// Singleton instance of the radio driver

RH_RF95 rf95(RFM95_CS, RFM95_INT);

unsigned long interval=15000; // the time we need to wait. In this case,


10 seconds.

unsigned long previousMillis=0; // millis() returns an unsigned long.

//Water Flow

volatile int flow_frequency; // Measures flow meter pulses

unsigned int l_hour; // Calculated litres/hour

unsigned char flowmeter = 3; // Flow Meter Pin number

8
unsigned long cloopTime;

unsigned long currentTime;

unsigned float fc=7.5;

char cstr[10];

void setup()

//interrupts();

pinMode(RFM95_RST, OUTPUT);

digitalWrite(RFM95_RST, HIGH);

//while (!Serial);

Serial.begin(9600);

//delay(100);

pinMode(flowmeter, INPUT);

attachInterrupt(digitalPinToInterrupt(3), flow, RISING);

//Serial.println("Arduino LoRa TX Test!");

// manual reset

digitalWrite(RFM95_RST, LOW);

delay(10);

digitalWrite(RFM95_RST, HIGH);

9
delay(10);

while (!rf95.init()) {

Serial.println("LoRa radio init failed");

while (1);

Serial.println("LoRa radio init OK!");

// Defaults after init are 434.0MHz, modulation GFSK_Rb250Fd250,


+13dbM

if (!rf95.setFrequency(RF95_FREQ)) {

Serial.println("setFrequency failed");

while (1);

Serial.print("Set Freq to: "); Serial.println(RF95_FREQ);

rf95.setTxPower(23, false);

void loop()

10
unsigned long currentMillis = millis(); // grab current time

l_hour = (flow_frequency * 60 / fc); // (Pulse frequency x 60 min) /


7.5Q = flow rate in L/hour

flow_frequency = 0; // Reset Counter

Serial.print(l_hour, DEC); // Print litres/hour

Serial.println(" L/hour");

itoa(l_hour, cstr, 10);

rf95.send(cstr, sizeof(cstr));

delay(10);

rf95.waitPacketSent();

delay(1000);

void flow () // Interrupt function

flow_frequency++;

11
 RECEPTOR

#include <SPI.h>

#include <RH_RF95.h>

#define RFM95_CS 10

#define RFM95_RST 9

#define RFM95_INT 2

// Change to 434.0 or other frequency, must match RX's freq!

#define RF95_FREQ 433.0

// Singleton instance of the radio driver

RH_RF95 rf95;//(RFM95_CS, RFM95_INT);

// Blinky on receipt

#define LED 13

void setup()

pinMode(LED, OUTPUT);

pinMode(RFM95_RST, OUTPUT);

digitalWrite(RFM95_RST, HIGH);

12
while (!Serial);

Serial.begin(9600);

delay(100);

Serial.println("Arduino LoRa RX Test!");

// manual reset

digitalWrite(RFM95_RST, LOW);

delay(10);

digitalWrite(RFM95_RST, HIGH);

delay(10);

while (!rf95.init()) {

Serial.println("LoRa radio init failed");

while (1);

Serial.println("LoRa radio init OK!");

// Defaults after init are 434.0MHz, modulation GFSK_Rb250Fd250,


+13dbM

if (!rf95.setFrequency(RF95_FREQ)) {

Serial.println("setFrequency failed");

13
while (1);

Serial.print("Set Freq to: "); Serial.println(RF95_FREQ);

rf95.setTxPower(23, false);

void loop()

if (rf95.available())

// Should be a message for us now

uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];

uint8_t len = sizeof(buf);

if (rf95.recv(buf, &len))

digitalWrite(LED, HIGH);

//RH_RF95::printBuffer("Received: ", buf, len);

Serial.print("Got: ");

Serial.println((char*)buf);

Serial.print("RSSI: ");

14
Serial.println(rf95.lastRssi(), DEC);

else

Serial.println("Receive failed");

15
CONCLUSIONES

 El proyecto nos permite utilizar los conceptos de medición de flujo


aprendidos a través de los laboratorios, además, de obtener un nuevo
método de medición mucho más automático y sin errores cometidos
por la mano del hombre.

 El sensor utilizado debe ser calibrado para obtener los valores correctos
con un error mínimo y, en caso de necesitar mediciones más exactas,
tendrá que buscarse un sensor más preciso, los cuales son más costosos.
Se debe encontrar un equilibrio entre costos y precisión dependiendo
de la aplicación que se le dará al sensor.

 Se debe trabajar dentro del rango de operación recomendado del


sensor de flujo teniendo cuidado de no llegar a usar los valores mínimos
y máximos, puesto que en estos casos el resultado no será exacto y/o la
precisión del sensor se verá afectada para mediciones posteriores.

 Se recomienda usar agua potable en lugar de otros fluidos, puesto que


el sensor está diseñado específicamente a partir de los datos notables
de este fluido, tales como la densidad, temperatura, viscosidad, etc.

 El módulo LoRa nos permite el envío y recepción de información punto


a punto con un gran alcance. Gracias a esto los datos obtenidos podrán
ser observados en un dispositivo de manera inalámbrica, en este caso
una laptop. Esto es de gran utilidad en la industria y en la simplificación
de conexiones.

 El error obtenido entre los valores teóricos calculables y los valores que
nos provee el sensor es menor al 5% por lo cual se puede concluir que,
con una debida calibración, el sensor es muy preciso.

16
BIBLIOGRAFIA

 Sensores de Flujo (2019). Proyectos con Arduino. Recuperado de:

http://proyectosconarduino.com/sensores/flujo-caudalimetro/

 Arduino nano. (2019). Arduino. Recuperado de:

https://store.arduino.cc/usa/arduino-nano

 Módulo Transceiver LORA. (2019). Naylamp Mechatronics. Recuperado

de: https://naylampmechatronics.com/inalambrico/332-modulo-

transceiver-lora-433mhz-xl1278.html?search_query=lora&results=2

17

You might also like