2. OBJETIVOS
9.3 Evaluación del plan de trabajo
En el siguiente esquema se observa el plan de trabajo trazado en la propuesta de proyecto de grado, en donde se puede evaluar que en cuanto a la implementación de la comunicación BLE y LoRa fue desarrollada de a forma deseada, y que el hecho de no encontrar un sensor apropiado para un sistema microfluídico hizo suponer una reestructuración en todo el proyecto, que se empezó con una investigación para luego realizar un proceso de diseño de un sensor, el cual debe cumplir con un proceso de caracterización riguroso, del que se espera un proceso de continuación.
10 DISCUSIÓN
Como se denotó en el anterior literal, se logró un profundo estudio y el desarrollo del diseño de un sensor de flujo térmico, el cual consta de un mayor número de etapas, que posiblemente hagan retroalimentación a anteriores procesos de diseño, tal y como sucedió con la resistencia de contacto entre los paths y los cables de los sensores, que no fueron lo suficientemente determinantes para que se logre una adecuada integración de una salida de voltaje a dicha respuesta.
Proyecto de Grado
Santiago Tovar- Sistema de comunicación de bajo consumo para la medición de caudal en válvulas de agua en sistemas microfluídicos
SEMANAS Duración del plan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Familiarización Feather (BLE Y LoRa) 1 2 100% Prueba de envío de datos 1 2 100% Estudio Protocolo LoRa 2 2 100% Estudio Sensores de caudal 2 6 100% Prueba envío de datos larga distancia 2 2 80% Elección sensor caudal 4 5 100% Acoplamineto sensor y comunicación 2 16 30% Pruebas básico funcionamiento 5 13 60%
Protocolo pruebas 1 12 6 70%
Protocolo pruebas 2 14 4 30%
Caracterización sistema 13 5 60% Consideraciones finales y conclusiones 17 1 100%
78%
ACTIVIDAD INICIO DEL PLAN DURACIÓN DEL PLAN
PORCENTAJE COMPLETADO
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
38
También es motivo de discusión el modelamiento teórico de la resistencia obtenida, ya que se debe hacer un mayor análisis del impacto de tener un punto de contacto determinado en un área superficial, y como éste puede afectar en la variación de una respuesta. Ahora, se encontró luego que los efectos de la resistividad en películas delgadas tienen que considerarse usando un modelo distinto. Eso sí, la resistividad eléctrica de una película delgada aumentará a medida que el grosor de esa película disminuya de tamaño. Además, la resistividad eléctrica también aumentará a medida que aumenta la temperatura. Pero a través de varios estudios experimentales, se entiende que cuando los materiales se reducen a dimensiones en la nano escala, muchas de las propiedades o características que muestran en forma masiva ya no son válidas. Se ha demostrado que las propiedades mecánicas, termodinámicas, eléctricas y ópticas están alteradas debido a la diferencia de tamaño. Las razones de este cambio en las propiedades se deben al aumento de las interacciones de la superficie, así como a los efectos de absorción y dispersión[31].
Variación de la resistividad ante cambios del ancho de una placa de cobre bajo dos distintos procesos de manufactura (a y b) [31]
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
39
Por ello es necesario realizar un estudio más profundo para encontrar adaptar un modelo teórico más preciso a dicha resistencia, tanto en la capa de cobre como en la de cromo, y también especificar que el método de VPD puede llegar a afectar también la resistividad del material. Así mismo, determinar cuál es el modelo en placas nanométricas para la variación de resistividad con la temperatura.
En cuanto al uso de cobre y cromo también puede llegar a replantearse usar el Platino o el níquel para su elaboración debido a que son por excelencia las resistencias utilizadas en el mercado, debido a su mayor variación en la resistividad por cambios de temperatura, eso sí, teniendo en cuenta que su comportamiento ya no será lineal, por lo que necesitará de una mejor adecuación de la señal para obtener los resultados esperados.
También es necesario un redimensionamiento a la placa diseñada, tanto como de sus paths como de la superficie de contacto con el flujo, y de paso, buscar dentro de la caracterización de estos sensores si es necesario realizar una redistribución del orden en que se encuentra los sensores y el calentamiento, tanto en su posición, como en la distancia entre ellos, con el objetivo de también implementar de una mejor forma en el sistema el comportamiento teórico y así el funcionamiento del sensor de flujo calorimétrico.
Por lo anteriormente discutido se llega a la conclusión de que también dicho diseño hizo frenar el proceso de implementar un mejor sistema de enlace entre la comunicación de las tarjetas, que mostrase información propiamente de flujos en microsistemas.
11 CONCLUSIONES
• Se logró implementar un sistema de comunicación entre un celular y una tarjeta Adafruit® Feather 32u4 Bluefruit, en donde se lleva a cabo envío y recepción de datos por medio de un servicio característico en atributos genéricos GATT. Así mismo se desarrolló una aplicación de esta por medio de MIT® AppInventor2. • Se logró una comunicación para un sensor comercial YF.S401 por medio del
protocolo de modulación LoRa mediante una Adafruit® Feather M0 RFM95, enviando bit a bit el mensaje del valor del flujo obtenido.
• Se llegó a la conclusión de que no era posible implementar un sensor comercial para sistemas microfluídicos de bajo costo, por lo que se procedió a realizar una etapa de investigación y diseño de un sistema térmico de flujos en sistemas microfluídicos.El costo de la implementación de éste sensor es menor al de uno comercial, el cual está avaluado en $5.000.000COP, el cual durante su desarrollo ha dejado un costo de $300.000 COP, esto sin tener en cuenta el sistema de comunicación que se busca incorporar, que en total de costos de las dos tarjetas sería de $280.000 aproximadamente; además, es necesario tener en cuenta el costo de manufacturación en sala limpia por PVD de la placa que contiene el
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
40
calentador y los sensores. Todo esto tendrá un mayor sentido si se es continuado el proyecto para obtener así un prototipo totalmente funcional.
• Existe una incoherencia entre la resistencia modelada teóricamente y la obtenida en práctica, esto debido a que el modelamiento teórico para placas nanométricas es distinto al modelo principalmente planteado, también debe tenerse en cuenta la superficie de contacto con la que se evalúa el valor de dicha resistencia, por el contacto del cable con el que se pretende acoplar a un sistema de adecuación de la variación de la resistencia de los sensores en cuanto a cambio de flujo térmico. • Se puede llegar a realizar un buen sistema que tenga el respaldo de una cámara
térmica, la cual de llegar a ser acoplada al microcontrolador daría una mejor respuesta a lo que se espera como valor del flujo de salida.
• Se puede llegar a realizar un reajuste a la distribución y las distancias del calentador y los sensores, con el objetivo de implementar además un sensor de flujo calorimétrico y obtener una mejor respuesta a un cambio de la resistencia del sensor debido a determinado flujo térmico.
12 AGRADECIMIENTOS
Agradezco a Dios, a mis padres, a mis hermanos, por todo el apoyo para llevar a cabo este proyecto en diferentes perspectivas. Un gran agradecimiento a mi asesor Johann Osma, tanto por hacer un excelente acompañamiento en distintas etapas del proyecto, como por conducirme a un grupo de trabajo en CMUA, en donde debo agradecer en a personas como Cesar Hernández, quien tiene un especial agradecimiento por su acompañamiento en la última etapa del proyecto, a Juliana Noguera, por sus constantes apoyos, al igual que los aportes de Brayan Ariza, Paula Peñaranda, Oscar Corzo y a todas las personas que hicieron parte de este proceso en pequeños momentos como Ana, Katerine, Miguel, Vihlai y demás amigos que fueron un especial apoyo, así como a Chente.
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
41
13 REFERENCIAS
[1] "Objetivos de Desarrollo Sostenible", El PNUD en Colombia, 2019. [Online]. Disponible: http://www.co.undp.org/content/colombia/es/home/sustainable-development-goals.html. [Acceso: 29- May- 2019].
[2] C. Radio, "En el país se desperdicia el 43 % del agua: U. de la Sabana", Caracol
Radio, 2019. [Online]. Disponible:
https://caracol.com.co/radio/2017/03/23/nacional/1490285432_157802.html. [Acceso: 29- May- 2019].
[3] "Salvar agua en Bogotá", Eltiempo.com, 2019. [Online]. Disponible: https://www.eltiempo.com/Multimedia/especiales/salvar_agua_bogota/. [Acceso: 29- May- 2019].
[4] Cepal.org, 2019. [Online]. Disponible:
https://www.cepal.org/ilpes/noticias/paginas/1/52961/Doc-86.pdf. [Acceso: 29- May- 2019].
[5] "En Colombia se desperdicia el 43% del agua potable, según Planeación Nacional", Noticias RCN, 2019. [Online]. Disponible: https://noticias.canalrcn.com/nacional-pais/colombia-se-desperdicia-el-43-del-agua-potable-segun-planeacion-nacional. [Acceso: 29- May- 2019].
[6]Indigoo.com, 2019. [Online]. Disponible:
http://indigoo.com/dox/itdp/12_MobileWireless/LPWAN.pdf. [Acceso: 26- Sep- 2019]. [7]M. Maceli, "EnviroPi: Taking a DIY Internet-of-Things approach to an environmental monitoring system", Code4Lib Journal, no. 42, 08-11-2018, 2018. Disponible: https://journal.code4lib.org/articles/13943. [Acceso 26 September 2019].
[8]"Adafruit Feather 32u4 Bluefruit LE", Adafruit Learning System, 2019. [Online]. Disponible: https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le/overview. [Acceso: 01- Sep- 2019].
[9] "Medidor de agua con comunicación LoRa® ciclométrico TECUN - Beyond Ideas", TECUN - Beyond Ideas, 2019. [Online]. Disponible: https://tecun.com/medidores/medidor-de-agua-con-comunicacion-lora-ciclometrico-tecun/. [Acceso: 29- May- 2019].
[10]"LoRaWAN y LoRa", Lorawan.es, 2019. [Online]. Disponible: https://lorawan.es/. [Acceso: 01- Sep- 2019].
[11]"Adafruit Feather M0 Radio with LoRa Radio Module", Adafruit Learning System, 2019. [Online]. Disponible: https://learn.adafruit.com/adafruit-feather-m0-radio-with-lora-radio-module?view=all. [Acceso: 01- Sep- 2019].
[12]"YF-S401", 5.imimg.com, 2019. [Online]. Disponible: https://5.imimg.com/data5/VQ/ME/MY-1833510/yf-s401-pvc-water-flow-hall-sensor-flowmeter-counter-wh.pdf. [Acceso: 16- Sep- 2019].
[13]"Manejo de Interrupciones", Facultad de Ingeniería Universidad Nacional de Mar de
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
42
http://www3.fi.mdp.edu.ar/electrica/opt_archivos/arduino/Manejo_de_Interrupciones.p df. [Acceso: 19- Sep- 2019].
[14]MIT App inventor2. MIT, 2019.
[15]"A COMPARATIVE ANALYSIS OF THERMAL FLOW SENSING IN BIOMEDICAL APPLICATIONS", International Journal of Biomedical Engineering and Science (IJBES), Vol. 3, No. 3, July 2016, 2019. [Online]. Available: https://arxiv.org/ftp/arxiv/papers/1608/1608.03603.pdf. [Accessed: 18- Sep- 2019]. [16]"MFS - Microfluidic flow sensors - Elveflow", Elveflow, 2019. [Online]. Available:
https://www.elveflow.com/microfluidic-flow-control-products/microfluidic-flow-control-module/microfluidic-liquid-mass-flow-sensors/. [Accessed: 18- Sep- 2019]. [17]W. Wu, P. Rezai, H. Hsu and P. Selvaganapathy, "Materials and methods for the microfabrication of microfluidic biomedical devices", Microfluidic Devices for Biomedical Applications, pp. 3-62, 2013. Available: 10.1533/9780857097040.1.3 [Accessed 23 November 2019].
[18]P. Abgrall and A. Gué, "Lab-on-chip technologies: making a microfluidic network and coupling it into a complete microsystem—a review", Journal of Micromechanics and Microengineering, vol. 17, no. 5, pp. R15-R49, 2007. Available: 10.1088/0960-1317/17/5/r01 [Accessed 26 November 2019].
[19] Y. Ren, S. Ray and Y. Liu, "Reconfigurable Acrylic-tape Hybrid Microfluidics", Scientific Reports, vol. 9, no. 1, 2019. Available: 10.1038/s41598-019-41208-y [Accessed 21 November 2019].
[20] Memsic Transducer Systems Co, "FLOW SENSING MODULE WITH BYPASS CHANNEL", US 2018/0066970 A1, 2018.
[21] T. Dinh, N. Nguyen and D. Dao, Thermoelectrical Effect in SiC for High-Temperature MEMS Sensors. Singapore: Springer Singapore, 2018, pp. 90-97.
[22] "Resistencia en Materiales y aleaciones", Universidad Politécnica de Valencia, 2019. [Online]. Available: https://www.upv.es/materiales/Fcm/Fcm08/pfcm8_3_3.html. [Accessed: 28- Nov- 2019].
[23] J. Kuo, L. Yu and E. Meng, "Micromachined Thermal Flow Sensors—A Review", Micromachines, vol. 3, no. 3, pp. 550-573, 2013. Available: 10.3390/mi3030550 [Accessed 18 October 2019].
[24]C. Sosna, T. Walter and W. Lang, "Response time of thermal flow sensors with air as fluid", Sensors and Actuators A: Physical, vol. 172, no. 1, pp. 15-20, 2011. Available: 10.1016/j.sna.2011.02.023 [Accessed 26 November 2019].
[25] C. Wu, D. Kang, P. Chen and Y. Tai, "MEMS thermal flow sensors", Sensors and Actuators A: Physical, vol. 241, pp. 135-144, 2016. Available: 10.1016/j.sna.2016.02.018 [Accessed 26 November 2019].
[26] E. Vértiz Aguirre, «¿Cómo calculamos la resistencia eléctrica?», PREPA2, vol. 2, n.º 4, jul. 2015.
[27]D. Mattox, Handbook of physical vapor deposition (PVD) processing. Park Ridge, N.J.: Noyes Press, 2010, p. 1.
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
43
[28] "Panasonic, «Infrared Array Sensor “Grid-EYE”».", Robot-electronics.co.uk, 2019. [Online]. Available: https://www.robot-electronics.co.uk/files/grideyeappnote.pdf. [Accessed: 01- Dec- 2019].
[29] "SIL Compliant Thermal Flow Meters & Switches Instrumented Systems", Fluid Handling Pro, 2019. [Online]. Available: https://fluidhandlingpro.com/compliant-thermal-flow-switches/. [Accessed: 02- Dec- 2019].
[30] "NTC2050", Idrd.gov.co, 2019. [Online]. Available: https://www.idrd.gov.co/sitio/idrd/sites/default/files/imagenes/ntc%2020500.pdf.
[Accessed: 02- Dec- 2019].
[31] F. Lacy, "Developing a theoretical relationship between electrical resistivity, temperature, and film thickness for conductors", Nanoscale Research Letters, vol. 6, no. 1, 2011. Available: 10.1186/1556-276x-6-636 [Accessed 3 December 2019].
14 APENDICES
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
44
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
45
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
46
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
47
Fig 1. Diagramas de bloques de la aplicación BLE
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
48
Fig 3.Montaje sensor YF-S401 con tarjetas LoRa
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
49
Fig. 5.Diseño PCB preliminar sistema microfluídico
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
50
Tabla 2.Diferentes sensores de flujos térmicos en comparación [21]
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
51
Fig. 6.Diseño PCB placa para proceso de litografía para máscara del sistema
Fig. 7.Montaje para caracterización del calentador del sistema
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
52
/********************************************************************* This is an example for our nRF51822 based Bluefruit LE modules
Pick one up today in the adafruit shop!
Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing
products from Adafruit!
MIT license, check LICENSE for more information
All text above, and the splash screen below must be included in any redistribution
*********************************************************************/
#include <Arduino.h>
#include <SPI.h>
#if not defined (_VARIANT_ARDUINO_DUE_X_) && not defined (_VARIANT_ARDUINO_ZERO_) #include <SoftwareSerial.h> #endif #include "Adafruit_BLE.h" #include "Adafruit_BluefruitLE_SPI.h" #include "Adafruit_BluefruitLE_UART.h" #include <BMP180ST.h> #include <Wire.h> #include "BluefruitConfig_h.c" /*======================================================================= == APPLICATION SETTINGS
FACTORYRESET_ENABLE Perform a factory reset when running this sketch
Enabling this will put your Bluefruit LE module
in a 'known good' state and clear any config
data set in previous sketches or projects, so
running this at least once is a good idea. When deploying your project, however, you will
want to disable factory reset by setting this
value to 0. If you are making changes to your
Bluefruit LE device via AT commands, and those
changes aren't persisting across resets, this
is the reason why. Factory reset will erase the non-volatile memory where config data is
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
53
stored, setting it back to factory default values.
Some sketches that require you to bond to a central device (HID mouse, keyboard, etc.) won't work at all with this feature enabled since the factory reset will clear all of the
bonding data stored on the chip, meaning the
central device won't be able to reconnect. MINIMUM_FIRMWARE_VERSION Minimum firmware version to have some new features
MODE_LED_BEHAVIOUR LED activity, valid options are "DISABLE" or "MODE" or "BLEUART" or "HWUART" or "SPI" or "MANUAL"
---*/
#define FACTORYRESET_ENABLE 1
#define MINIMUM_FIRMWARE_VERSION "0.6.6"
#define MODE_LED_BEHAVIOUR "MODE"
/*======================================================================= ==*/
// Pin Configuration and Firmware Declarations
#define LED_W A0
#define LED_X A1
#define LED_Y A2
#define LED_Z A3
int WState = LOW;
int XState = LOW;
int YState = LOW;
int ZState = LOW;
double temperatura = 0;
double presion = 0;
int tiempo = 0;
// Create the bluefruit object, either software serial...uncomment these lines
/*
SoftwareSerial bluefruitSS = SoftwareSerial(BLUEFRUIT_SWUART_TXD_PIN, BLUEFRUIT_SWUART_RXD_PIN);
Adafruit_BluefruitLE_UART ble(bluefruitSS, BLUEFRUIT_UART_MODE_PIN, BLUEFRUIT_UART_CTS_PIN, BLUEFRUIT_UART_RTS_PIN); */
/* ...or hardware serial, which does not need the RTS/CTS pins. Uncomment this line */
// Adafruit_BluefruitLE_UART ble(Serial1, BLUEFRUIT_UART_MODE_PIN);
/* ...hardware SPI, using SCK/MOSI/MISO hardware SPI pins and then user selected CS/IRQ/RST */
Adafruit_BluefruitLE_SPI ble(BLUEFRUIT_SPI_CS, BLUEFRUIT_SPI_IRQ,
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
54
/* ...software SPI, using SCK/MOSI/MISO user-defined SPI pins and then user selected CS/IRQ/RST */
//Adafruit_BluefruitLE_SPI ble(BLUEFRUIT_SPI_SCK, BLUEFRUIT_SPI_MISO, // BLUEFRUIT_SPI_MOSI, BLUEFRUIT_SPI_CS, // BLUEFRUIT_SPI_IRQ, BLUEFRUIT_SPI_RST);
// A small helper
void error(const __FlashStringHelper*err) { Serial.println(err);
while (1); }
BMP180ST bmp180;
double PresionNivelMar = 1013.25; //presion sobre el nivel del mar en mbar
/************************************************************************ **/
/*!
@brief Sets up the HW an the BLE module (this function is called automatically on startup)
*/
/************************************************************************ **/
void setup(void) {
pinMode(LED_W, OUTPUT); pinMode(LED_X, OUTPUT); pinMode(LED_Y, OUTPUT); pinMode(LED_Z, OUTPUT);
while (!Serial); // required for Flora & Micro
delay(500);
Serial.begin(115200);
Serial.println(F("Adafruit Bluefruit Command Mode Example")); Serial.println(F("---"));
/* Initialise the module */
Serial.print(F("Initialising the Bluefruit LE module: ")); if ( !ble.begin() )
{
error(F("Couldn't find Bluefruit, make sure it's in CoMmanD mode & check wiring?"));
}
Serial.println( F("OK!") ); if ( FACTORYRESET_ENABLE ) {
/* Perform a factory reset to make sure everything is in a known
state */
Serial.println(F("Performing a factory reset: ")); if ( ! ble.factoryReset() ) {
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
55
} }
/* Disable command echo from Bluefruit */
ble.echo(false);
Serial.println("Requesting Bluefruit info:");
/* Print Bluefruit information */
ble.info();
Serial.println(F("Please use Adafruit Bluefruit LE app to connect in UART mode"));
Serial.println(F("Then Enter characters to send to Bluefruit")); Serial.println();
ble.verbose(false); // debug info is a little annoying after this point!
/* Wait for connection */
while (! ble.isConnected()) { delay(500);
}
// LED Activity command is only supported from 0.6.6
if ( ble.isVersionAtLeast(MINIMUM_FIRMWARE_VERSION) ) {
// Change Mode LED Activity
Serial.println(F("******************************"));
Serial.println(F("Change LED activity to " MODE_LED_BEHAVIOUR)); ble.sendCommandCheckOK("AT+HWModeLED=" MODE_LED_BEHAVIOUR); Serial.println(F("******************************"));
}
if (bmp180.begin())
Serial.println("BMP180 iniciado correctamenten"); else
{
Serial.println("Error al iniciar el BMP180"); while (1); // bucle infinito
} }
/************************************************************************ **/
/*!
@brief Constantly poll for new command or response data */
/************************************************************************ **/
void loop(void) {
// Now Check for incoming characters from Bluefruit
ble.println("AT+BLEUARTRX"); ble.readline();
ble.waitForOK();
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
56
if (BLEbuffer.length() && BLEbuffer.indexOf("OK") == -1) Serial.print(F("[Recv] ")); Serial.println(BLEbuffer);
if (BLEbuffer.indexOf("Estado") >= 0) {
Serial.println(F("Estado de conexión en búsqueda de Servicio")); ble.print("AT+BLEUARTTX=");
if (WState) {
ble.println("ON-W"); }
else {
ble.println("OFF-W"); }
if (XState) {
ble.println("ON-X"); }
else {
ble.println("OFF-X"); }
if (YState) {
ble.println("ON-Y"); }
else {
ble.println("OFF-Y"); }
if (ZState) {
ble.println("ON-Z"); }
else {
ble.println("OFF-Z"); }
// check response stastus
if (! ble.waitForOK() ) {
Serial.println(F("Failed to get response")); }
ble.println("AT+BLEUARTRX"); }
else if (BLEbuffer.indexOf("ON-W") >= 0) { WState = HIGH;
digitalWrite(LED_W, WState); ble.print("AT+BLEUARTTX="); ble.println("ON-W");
Serial.println(F("W ENCENDIDO")); Serial.println(WState);
ble.println("AT+BLEUARTRX"); }
else if (BLEbuffer.indexOf("OFF-W") >= 0) { WState = LOW;
digitalWrite(LED_W, WState); ble.print("AT+BLEUARTTX="); ble.println("OFF-W");
Serial.println(F("W APAGADO")); Serial.println(WState);
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
57
ble.println("AT+BLEUARTRX"); }
else if (BLEbuffer.indexOf("OFF-X") >= 0) { XState = LOW;
digitalWrite(LED_X, XState); ble.print("AT+BLEUARTTX="); ble.println("OFF-X");
Serial.println(F("X APAGADO")); Serial.println(XState);
ble.println("AT+BLEUARTRX"); }
else if (BLEbuffer.indexOf("ON-X") >= 0) { XState = HIGH;
digitalWrite(LED_X, XState); ble.print("AT+BLEUARTTX="); ble.println("ON-X");
Serial.println(F("X ENCENDIDO")); Serial.println(XState);
ble.println("AT+BLEUARTRX"); }
else if (BLEbuffer.indexOf("OFF-Y") >= 0) { YState = LOW;
digitalWrite(LED_Y, YState); ble.print("AT+BLEUARTTX="); ble.println("OFF-Y");
Serial.println(F("Y APAGADO")); Serial.println(YState);
ble.println("AT+BLEUARTRX"); }
else if (BLEbuffer.indexOf("ON-Y") >= 0) { YState = HIGH;
digitalWrite(LED_Y, YState); ble.print("AT+BLEUARTTX="); ble.println("ON-Y");
Serial.println(F("Y ENCENDIDO")); Serial.println(YState);
ble.println("AT+BLEUARTRX"); }
else if (BLEbuffer.indexOf("OFF-Z") >= 0) { ZState = LOW;
digitalWrite(LED_Z, ZState); ble.print("AT+BLEUARTTX="); ble.println("OFF-Z");
Serial.println(F("Z APAGADO")); Serial.println(ZState);
ble.println("AT+BLEUARTRX"); }
else if (BLEbuffer.indexOf("ON-Z") >= 0) { ZState = HIGH;
digitalWrite(LED_Z, ZState); ble.print("AT+BLEUARTTX="); ble.println("ON-Z");
Serial.println(F("Z ENCENDIDO")); Serial.println(ZState);
ble.println("AT+BLEUARTRX"); }
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS
58
else if (millis() - tiempo > 10000) { char status;
status = bmp180.inicioTemperatura();//Inicio de lectura de temperatura
if (status != 0) {
delay(status); //Pausa para que finalice la lectura
status = bmp180.obtenerTemperatura(temperatura); //Obtener la temperatura
if (status != 0) {
status = bmp180.inicioPresAtm(3);//Inicio lectura de presión
if (status != 0) {
delay(status);//Pausa para que finalice la lectura
status = bmp180.obtenerPresAtm(presion, temperatura);
//Obtenemos la presión
if (status != 0) {
ble.print("AT+BLEUARTTX=");
ble.println(":BMP:" + String(temperatura + 2) + ":" +
String(presion) + ":::"); tiempo = millis(); } } } } } }
Código 1. Comunicación implementada para Feather BLE
// Feather9x_RX // mode: C++
-*-// Example sketch showing how to create a simple messaging client (receiver)
// with the RH_RF95 class. RH_RF95 class does not provide for addressing or
// reliability, so you should only use RH_RF95 if you do not need the higher
// level messaging abilities.
// It is designed to work with the other example Feather9x_TX
#include <SPI.h>
#include <RH_RF95.h>
/* for feather m0 RFM9x */
#define RFM95_CS 8
SISTEMA ELECTRÓNICO PARA LA MEDICIÓN DE CAUDAL EN MICROSISTEMAS