Está en la página 1de 99

U NIVERSIDAD D ISTRITAL F RANCISCO J OSE DE C ALDAS

P ROYECTO DE GRADO

Sistema inalámbrico de adquisición de datos


implementado en túnel de viento para la
caracterización aerodinámica de turbinas eólicas

Pregrado: Ingeniería Electrónica


Autor: Director:
Jhoan Sebastian Casallas Valero PhD. Elvis Eduardo Gaona
Co-Director:
MsC. Héctor Guillermo Parra

GITUD

24 de octubre de 2022
III

Índice general

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. Objetivos específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Marco teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Energía Eólica: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1. Turbinas: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2. Generadores de vórtice: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.3. Túnel de viento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2. Comportamiento aerodinámico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.1. Límite de Betz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.2. Dinámica de Fluidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3. Sistema de monitorizacion de viento . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.1. Modulo de captura de datos . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.2. Modulo de adquisición de datos . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.3. Sistemas embebidos para monitorización de variables: . . . . . . . . . . 13
3.3.4. Instrumentos de medición de velocidad del viento . . . . . . . . . . . . 14
3.3.5. Instrumentos de medición de dirección del viento . . . . . . . . . . . . 15
3.3.6. Módulo de procesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.7. Modulo de transmisión de datos . . . . . . . . . . . . . . . . . . . . . . . 16
4. Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1. Trabajos desarrollados para mejorar la eficiencia de las turbinas . . . . . . . . . . 19
4.1.1. Diseño y fabricación de palas de turbinas eólica de baja capacidad uti-
lizando técnicas CAD/CAM y materiales compuestos . . . . . . . . . . 19
4.1.2. Uso de un mecanismo de manivela para reorientar las palas planas de
la turbina eólica vertical para mejorar su rendimiento . . . . . . . . . . 20
4.1.3. Turbina bio-inspirada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2. Ejemplos de generadores de vórtice para aumentar la eficiencia de las turbinas
eólicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3. Caracterización aerodinámica: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.4. Simulaciones mediante CFD en busca de mejoras aerodinámicas para las turbi-
nas eólicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.4.1. Simulación en CFD del halcón peregrino: . . . . . . . . . . . . . . . . . 26
4.5. Proyectos de sistemas de adquisición de datos . . . . . . . . . . . . . . . . . . . . 27
4.5.1. Diseño e implementación de un sistema DAQ de bajo costo para me-
diciones de propiedades termoeléctricas . . . . . . . . . . . . . . . . . . 27
4.5.2. Diseño conceptual del sistema DAQ inalámbrico para pruebas de ex-
plosión de vehículos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
IV

4.5.3. Un sistema de evaluación y monitoreo de visualización inalámbri-


co para módulos fotovoltaicos comerciales únicamente en el entorno
MATLAB / Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5. Diseño y desarrollo del prototipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.1. Componentes del módulo de adquisición de datos . . . . . . . . . . . . . . . . . . 32
5.1.1. Acelerómetro MMA7361 . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.1.2. Wind Sensor rev.P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2. Componentes del módulo de procesamiento de datos . . . . . . . . . . . . . . . . 34
5.3. Componentes del módulo de transferencia inalámbrica de datos . . . . . . . . . 36
5.3.1. Protocolo IEEE 802.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3.2. Protocolo IEEE 802.11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.4. Componentes del módulo de apoyo . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.5. Desarrollo del código del dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.5.1. Bibliotecas: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.5.2. Variables de inicio: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.5.3. Entradas y Salidas: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.5.4. Variables para la transferencia mediante Wi-Fi . . . . . . . . . . . . . . . 39
5.5.5. Variable Globales: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.5.6. Funciones: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.5.7. Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.5.8. Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.6. Desarrollo de software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.6.1. Monitorización en tiempo real . . . . . . . . . . . . . . . . . . . . . . . . 45
5.7. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.1. Pruebas y resultados del dispositivo inalámbrico de adquisición de datos para
la monitorización aerodinámica de una turbina eólica . . . . . . . . . . . . . . . . 52
7. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8. Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

A. Productos en el mercado 66

B. Código del dispositivo 67

C. Código del software 75


V

Índice de figuras

1. Velocidad del viento de máxima energía en Colombia [9]. . . . . . . . . . . . . . . . . . . 5


2. Procesamiento de energía de una turbina eólica [7]. . . . . . . . . . . . . . . . . . . . . . 6
3. Procesamiento de energía de una turbina eólica [7]. . . . . . . . . . . . . . . . . . . . . . 6
4. Estructura de los generadores de Vórtice. [10] . . . . . . . . . . . . . . . . . . . . . . . . . 7
5. Túnel de viento [12]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6. Componentes de un túnel de viento [13]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7. Algunas rugosidades y su escala [8]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
8. Potencia disponible para una turbina eólica en función del diámetro del rotor [8]. . . . . 10
9. Esquema planteado en la teoría del límite de Betz [5]. . . . . . . . . . . . . . . . . . . . . 10
10. Esquema de una corriente de viento al atravesar un objeto [8]. . . . . . . . . . . . . . . . 11
11. Gráfica obtenida de simulaciones mediante CFD, suministrada por el grupo de inves-
tigación GITUD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
12. Protocolo de comunicación serial UART. [39] . . . . . . . . . . . . . . . . . . . . . . . . . 17
13. Prototipo de aspa compuesta por fibra de vidrio y poliuretano. [40] . . . . . . . . . . . . 19
14. Diseño de aspa compuesta por fibra de vidrio y poliuretano. [40] . . . . . . . . . . . . . 19
15. Resultados de aspa compuesta por fibra de vidrio y poliuretano. [40] . . . . . . . . . . . 20
16. Movimiento generado por corrientes de viento en la turbina tradicional y mejorada. [41] 20
17. Turbina con mecanismo manivela-manivela. [41] . . . . . . . . . . . . . . . . . . . . . . . 21
18. Diseño turbina bio-inspirada. [42]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
19. Desarrollo del prototipo turbina bio-inspirada. [42]. . . . . . . . . . . . . . . . . . . . . . 21
20. Desarrollo de simulación y construcción de turbina Bio-inspirada. [42]. . . . . . . . . . . 22
21. Geometría del perfil aerodinámico S809 con implementación de VG. [43]. . . . . . . . . 22
22. Gráficas del perfil aerodinámico S809 afectado por los GV sobre los parámetros de: a)
coeficiente de sustentación, b) coeficiente de resistencia. [43]. . . . . . . . . . . . . . . . . 23
23. Coeficientes de fuerza tangencial. [43]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
24. Comparación entre los resultados CFD y los datos experimentales con túnel de viento.
a) Coeficientes de sustentación y coeficientes de arrastre sin VG. b) Coeficientes de
sustentación y coeficientes de arrastre de VG. [44]. . . . . . . . . . . . . . . . . . . . . . . 25
25. Resultados de contornos de velocidad de viento mediante CFD de perfil del halcón
peregrino. [45]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
26. Estructura del sistema de adquisición de datos para mediciones de propiedades termo-
eléctricas. [46]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
27. Diagrama circuital del sistema de adquisición de datos para mediciones de propieda-
des termoeléctricas. [46]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
28. Resultados del sistema de adquisición de datos para mediciones de propiedades ter-
moeléctricas. [46]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
29. Sistema propuesto para obtener las lesiones que puede causar una explosión cerca de
un vehículo a su tripulante. [47]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
VI

30. Estructura del sistema de evaluación y monitoreo de visualización inalámbrico para


módulos fotovoltaicos comerciales. [48]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
31. Resultados del sistema de evaluación y monitoreo de visualización inalámbrico para
módulos fotovoltaicos comerciales. [48]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
32. Esquema de diseño del dispositivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
33. Acelerómetro MMA7361 [31] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
34. Wind Sensor Rev.P [23]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
35. Configuración de los puertos de entrada y salida de la ESP32 [53]. . . . . . . . . . . . . . 35
36. Especificaciones técnicas ESP32 [37]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
37. Pestaña de configuración de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
38. Pestaña número 1 de gráficas de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . 44
39. Pestaña número 2 de gráficas de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . 44
40. Pestaña de información de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
41. Circuito de conexión entre ESP32, el acelerómetro MMA7361 y el wind Sensor rev.P. . . 46
42. Dispositivo inalámbrico de adquisición de datos . . . . . . . . . . . . . . . . . . . . . . . 47
43. Esquemático de conexión de los componentes. . . . . . . . . . . . . . . . . . . . . . . . . 48
44. Esquemático circuital. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
45. Esquemático diseño de PCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
46. Diseño de PCB para el dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
47. Modelo esquema 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
48. Modelo esquema 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
49. Modelo esquema 3D túnel de viento, suministrado por grupo de investigación GITUD. 51
50. Dispositivo y aplicación en funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 52
51. Montaje para pruebas del funcionamiento del dispositivo . . . . . . . . . . . . . . . . . . 53
52. Montaje para realizar las pruebas de funcionamiento del dispositivo con pluma . . . . . 53
53. Prueba del funcionamiento del dispositivo y la aplicación en el modo rápido. . . . . . . 54
54. Prueba segunda pestaña del funcionamiento del dispositivo y la aplicación en el modo
rápido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
55. Prueba del funcionamiento del dispositivo y la aplicación en el modo lento. . . . . . . . 55
56. Prueba segunda pestaña del funcionamiento del dispositivo y la aplicación en el modo
lento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
57. Ejemplo de simulación mediante CFD de una pluma, suministrada por grupo de in-
vestigación GITUD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
58. Perdida de información en la transferencia inalámbrica de datos. . . . . . . . . . . . . . 58
59. Prueba del retardo de captura y visualización de datos. . . . . . . . . . . . . . . . . . . . 59
1

Índice de cuadros

1. Opciones de instrumentos para medir la velocidad del viento . . . . . . . . . . . . . . . 14


2. Opciones de instrumentos para la medición de la dirección del viento. . . . . . . . . . . 15
3. Opciones para la implementación del módulo de procesamiento de datos . . . . . . . . 16
4. Parámetros de los VG en este proyecto. [43]. . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5. Prueba de cobertura del dispositivo inalámbrico de adquisición de datos para la moni-
torización del comportamiento aerodinámico de una turbina. . . . . . . . . . . . . . . . 56
6. Velocidad de transmisión del dispositivo inalámbrico de adquisición de datos para la
monitorización aerodinámica de una turbina eólica. . . . . . . . . . . . . . . . . . . . . . 57
7. Prueba de estabilidad en la conexión inalámbrica entre el computador y el dispositi-
vo inalámbrico de adquisición de datos para la monitorización aerodinámica de una
turbina eólica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

A.1. Cuadro comparativo de productos en el mercado . . . . . . . . . . . . . . . . . . . . . . . 66


2

1. Introducción
En la actualidad cada vez es mayor el uso de las energías renovables debido al aumento de interés
por cuidar el medio ambiente. El afán por tener energía más limpia a bajo costo da lugar a tecnolo-
gías sostenibles capaces de aprovechar los recursos naturales renovables, entre estas destacan la solar
fotovoltaica, solar térmica y eólica.

Y es que tanto en las fuentes de energía eólicas como la solar fotovoltaica se ha notado una re-
ducción en los costos en estos últimos años, esto ha conducido a que cada vez más se implementen
las energías renovables, a tal punto, que actualmente las energías renovables tienen una participación
del 27 % a nivel mundial. Adicionalmente, las fuentes de energía eólicas y solares fotovoltaicos repre-
sentan más del 7 % en la generación de electricidad. [1].

En América Latina el sector eléctrico representa el 29 % de la contaminación por gases de inver-


nadero, por este motivo es que el uso de fuentes renovables ha contribuido a la reducción del calen-
tamiento global producido por los gases de invernadero. [2]. En el año 2013 las energías renovables
representaron el 25 % del suministro total de energía primaria, siendo la más usada los biocombusti-
bles con una participación del 57 % y la energía hidroeléctrica con un 31 %.

En Colombia se ha visto un aumento en el interés por su uso, considerándose como uno de los
motores de desarrollo al optar por las energías renovables se puede evidenciar en el PIB donde repre-
sentaron el 9,7 % en el periodo del 2006-2009 y un 11,2 % en el periodo de 2010-2013. Ahora, la meta
en el país es aprovechar al máximo las fuentes de energía sostenibles renovables, cubrir más zonas y
optimizar los servicios públicos domiciliaros eléctricos. Lo anterior con el fin de mejorar la calidad de
vida de las personas, especialmente de las que viven en regiones alejadas.

En la penetración de generación de energía renovable, se evidenció que en 2018 la potencia insta-


lada a nivel mundial fue de alrededor de 600 GW, siendo casi el triple que en el 2010 con esto se puede
apreciar que el proceso de transición energética global es una realidad cada vez más consolidada [3].
Los países lideres en la instalación de energía eólica son China, EE. UU., Alemania e India. Sin em-
bargo, aunque Colombia no se encuentra en la lista de países líderes en el campo de la energía eólica,
el país avanza, según la Unidad de Planeación Minero-Energética (Upme) el potencial de generación
eólica en la Guajira es próximo a los 15.000 MW de capacidad instalable. Por lo tanto, se pretende
aumentar en la matriz energética la participación de las energías renovables no convencionales, al
querer pasar del 1 % a más de 12 % y así saltar de 50 MW a 2.400 MW [4], es por esto por lo que en
Colombia se proyecta la construcción de más de 50 parques eólicos que tendrían una capacidad de
6.862 MW.

Si bien existe una gran cantidad de energía eólica aprovechable, existen proyectos donde los dise-
ños de turbinas incorporan generadores de vórtice en la superficie de las aspas, buscando así aumen-
tar la producción de energía al incrementar la velocidad de rotación. Para los diseños que propone el
uso de generadores de vórtice se evidencia la necesidad de hacer pruebas mediante túneles de viento,
para caracterizar el comportamiento aerodinámico de las turbinas e identificar las mejoras que se pre-
sentan, propuesto en el proyecto de investigación financiado por el CIDC “Desarrollo de generadores
de vórtice activos bio-inspirados para rotores eólicos en zonas rurales de Cundinamarca mediante
CFD" en la cual se estudia la implementación de los generadores de vórtice para aumentar la efi-
ciencia aerodinámica de las turbinas eólicas, para lo anterior se plantea evaluar el comportamiento
3

aerodinámico con simulaciones por medio de CFD.

Al recurrir a las simulaciones CFD para la caracterización de las turbinas, se requieren pruebas
físicas que validen los datos con los cuales se va a realizar el estudio de los diseños. Las pruebas de
las turbinas, se realizan introduciendo la turbina dentro de un túnel de viento para caracterizar el
comportamiento aerodinámico de la turbina. Para esto, se requiere de un sistema de adquisición de
datos inalámbrico que se pueda instalar dentro del túnel de viento. Con el fin de capturar los datos
y así validar las simulaciones. Por esta razón, surge la necesidad de implementar un sistema de me-
dición con alta precisión, fidelidad, resolución y frecuencia de muestreo, capaz de transferir los datos
adquiridos vía inalámbrica, y acceder a los mismos de manera remota.

Se propone el desarrollo de un sistema embebido inalámbrico de adquisición de datos, para la


monitorización aerodinámica de una turbina eólica en tiempo real, con el fin de apoyar diseños que
se enfoque en aprovechar al máximo el recurso renovable del viento. Este proyecto en modalidad de
investigación se realiza con el grupo de investigación GITUD.
4

2. Objetivos
2.1. Objetivo general
Diseñar e implementar un sistema de adquisición de datos inalámbrico para instalar en un túnel
de viento que aporte a la caracterización aerodinámica de nuevos diseños de turbinas con generadores
de vórtice.

2.2. Objetivos específicos


Identificar las variables y los requerimientos para caracterizar el comportamiento aerodinámico
de las turbinas eólicas.

Seleccionar los dispositivos, tecnologías y protocolos a emplear para la implementación de los


módulos de adquisición, procesamiento y transferencia inalámbrica de datos.

Implementar los módulos para la visualización en tiempo real de los datos adquiridos mediante
el desarrollo de una interfaz gráfica.

Evaluar el funcionamiento del sistema de adquisición inalámbrico de datos.


5

3. Marco teórico
3.1. Energía Eólica:
Las fuentes de energía eólica son fuentes que producen electricidad a partir de la energía cinética
generada por el viento [5],[6]. El viento es una masa de aire en movimiento, que es producida por una
diferencia en el calentamiento de la superficie terrestre debido a diferentes intensidades de radiación
solar, por lo cual se puede considerar la energía eólica como un pequeño porcentaje de la energía solar
incidente sobre la tierra [5],[7],[8]. En la figura 1 se puede observar un mapa otorgado por obtenidos
por el instituto de Hidrología, Meteorología y Estudios Ambientales (IDEAM). del potencial eólico en
Colombia con respecto a la velocidad, del mapa se puede apreciar que el potencial eólico disponible
es diferente en cada zona por lo cual es importante caracterizar la turbina para una adecuada imple-
mentación dependiendo de la zona de instalación.

F IGURA 1: Velocidad del viento de máxima energía en Colombia [9].

Las ventajas de implementar fuentes de energía eólica son que es una fuente de energía renovable,
gratuita y amigable con el medio ambiente. Por otro lado, se tiene como desventaja que las corrientes
de viento son dispersas y aleatorias [5],[6],[8], lo cual hace de vital importancia aumentar el desem-
peño de las fuentes eólicas.

3.1.1. Turbinas:
Lo que diferencia las turbinas eólicas de otras turbinas es que el fluido que impacta sobre las
palas del elemento giratorio es el aire en movimiento, el viento. La turbina eólica es un dispositivo
mecánico que transforma la energía cinética producida por el viento en electricidad. Para entender
mejor el funcionamiento de la turbina se ilustra de manera básica el proceso de transformación de
energía en la figura 2.
6

F IGURA 2: Procesamiento de energía de una turbina eólica [7].

Cuando el viento golpea las aspas de la turbina hace girar un rotor cuya función es convertir la
energía cinética del viento en energía mecánica, este rotor a su vez mueve el rotor de un generador
acoplado al eje de la turbina, transformando la energía mecánica en electricidad [5], [6], [7]. En la
figura 3 se pueden observar los componentes de la turbina eólica.

F IGURA 3: Procesamiento de energía de una turbina eólica [7].

En cuanto al funcionamiento de la turbina existen tres leyes básicas fundamentales que describen
la cantidad de energía que puede ser aprovechada del viento:

La cantidad de electricidad que puede producir una turbina es proporcional a la velocidad del
viento al cuadrado.

La energía que puede ser aprovechada por la turbina es proporcional al cuadrado de la longitud
de sus aspas.

Teóricamente la eficiencia máxima de una turbina eólica es del 59 % pero en la implementación


es menor [5].
7

3.1.2. Generadores de vórtice:


Un aerogenerador de vórtice es un dispositivo mecánico (Figura 4), usado en las superficies de las
palas del rotor eólico, y tiene como función controlar las turbulencias, aumentando el desprendimien-
to de la capa límite. El uso de estos dispositivos en las palas del rotor eólico, incrementan la velocidad
de rotación del rotor esperando un aumento en la producción energética de las turbinas. [10].

F IGURA 4: Estructura de los generadores de Vórtice. [10]

3.1.3. Túnel de viento


Un túnel de viento (Figura 5) es una infraestructura que genera un flujo de viento constante de pa-
rámetros conocidos, usado para estudiar y verificar los efectos del viento sobre un objeto, obteniendo
información acerca del comportamiento del viento, distribución de presiones y las cargas globales que
se producen. Entre las diversas aplicaciones del túnel de viento en ingeniería, destacan las siguientes
áreas: calibración de ventiladores, simulaciones de aeronáutica, mecánica de fluidos y la caracteriza-
ción aerodinámica de las turbinas eólicas [11],[12], [13].

F IGURA 5: Túnel de viento [12].


8

En la Figura 6 se puede observar la composición de un túnel de viento. Un túnel de viento está


compuesto por: Cámara de establecimiento, cuya función es hacer que el flujo de viento sea uniforme
y se mueva en una sola dirección. Cono de aceleración, esta parte del túnel se encarga de acelerar
la velocidad de la corriente de aire. Cámara de ensayos, en esta parte es donde se ubica el objeto de
estudio, para este proyecto serían la turbina eólica y el dispositivo de muestreo que se va a desa-
rrollar. Difusor, en esta parte del túnel se reduce la velocidad del viento disminuyendo las pérdidas
energéticas del túnel. Por último, se encuentra el sistema integrado de ventiladores de gran alcance
para producir las diferentes velocidades de las corrientes de aire a la que se va a someter el objeto de
estudio [13], [14], [15].

8
F IGURA 6: Componentes de un túnel de viento [13].

3.2. Comportamiento aerodinámico


En esta sección se realizó una investigación acerca de los factores que afectan la aerodinámica de
una turbina, para esto primero se consultó el concepto de aerodinámica.

La aerodinámica es el estudio de las fuerzas y movimientos que se ejercen sobre un objeto que
atraviesa una corriente de aire [16]. Cuando una corriente de aire fluye alrededor de un objeto se
presenta el choque entre dos fuerzas que son la resistencia contra el objeto en función de la veloci-
dad y la sustentación que es la fuerza ejercida sobre el objeto. La sustentación es una fuerza que se
ejerce en el objeto de abajo hacia arriba y la dirección de esta fuerza es perpendicular a la del viento [5].

Existen diferentes factores que afectan la aerodinámica de la turbina debido a que dichos factores
influyen en el flujo de viento afectando la eficiencia de la turbina. De los factores que afectan el flu-
jo del viento destacan cuatro que son mencionados a continuación. El primero es la ubicación de la
turbina debido a que la dirección y la velocidad del viento dependen de los efectos locales, es decir
la topografía de la zona colinas, acantilados, valles, etc... La segunda es la velocidad del viento de la
cual depende la cantidad de producción de electricidad, el funcionamiento de la turbina (arranque,
parada y orientación del sistema) y la vida útil de la turbina (máxima turbulencia soportada por el
sistema). Cabe destacar que para una turbina eólica pequeña la velocidad mínima requerida para su
funcionamiento es de 3.5 m/s y, para producir la máxima potencia de generación, se requiere una
velocidad de aproximadamente 10 m/s [17]. La velocidad del viento depende de la rugosidad del te-
rreno (figura 7), de la estabilidad de la atmósfera y de la circulación general, cada una de las zonas en
que se puede dividir el planeta tierra tiene un determinado régimen de viento en el caso de Colombia
es el que se puede observar en la figura 1. La tercera es la turbulencia del viento la cual depende de
los rasgos topográficos locales, formaciones geográficas, flora y/o estructuras artificiales. Este tipo de
9

parámetros no se tienen en cuenta debido a que la experimentación va a ser desarrollada dentro de


un túnel de viento. La última es la densidad del aire la cual depende de la temperatura del ambiente
y de la altura a nivel del mar de la zona donde se realice la implementación , en temperaturas bajas la
densidad del aire es más alta lo cual aumenta la eficiencia de la turbina eólica [8].

F IGURA 7: Algunas rugosidades y su escala [8].

La producción de electricidad de la turbina es dependiente de la velocidad del viento, debido


a que la turbina aprovecha la energía cinética producida por el viento[18]. La energía cinética es
producida cuando la corriente de aire se desplaza a cierta velocidad y se define así:

1 2
E= mv (1)
2
Expresando la energía cinética del viento en unidad por volumen es:

1 2
e= ℘v (2)
2
La potencia eólica disponible para la turbina es una sección de área perpendicular a la corriente
de aire:

1 3
Pd = ℘v A (3)
2
Una ilustración acerca de la potencia disponible para una turbina eólica en función del diámetro
del rotor se puede observar en la figura 8.
10

F IGURA 8: Potencia disponible para una turbina eólica en función del diámetro del rotor
[8].

Ecuaciones tomadas de [18],[8].Teniendo un valor de la potencia que puede ser aprovechada por
la turbina se continua con en el estudio del comportamiento aerodinámico en este existen dos fuertes
estudios que son la dinámica de fluidos y la teoría de la cantidad de movimiento (el límite de Betz)

3.2.1. Límite de Betz


En 1919 Albert Betz demostró que en cuanto mayor sea la cantidad de energía que aproveche la
turbina del viento, mayor es la perdida de velocidad que sufre este al pasar por la turbina 9. La teoría
desarrollada por Betz es una primera aproximación al problema de la inmersión de la turbina en un
flujo de aire, esta teoría permite obtener resultados globales a partir del uso de pocos parámetros,
pero permite comprender el fenómeno de las masas de aire en movimiento [8].

F IGURA 9: Esquema planteado en la teoría del límite de Betz [5].

De acuerdo con lo planteado por Betz y a la conservación de masa se obtiene que la mayor eficien-
cia que puede tener una turbina eólica es del 59 % y la potencia generada por una corriente de viento
al atravesar un objeto se deduce de la figura 9 y se define con la ecuación 4.
11

1
Pd = ℘ Av3 Cp (4)
2

F IGURA 10: Esquema de una corriente de viento al atravesar un objeto [8].

De este estudio cabe destacar que no se tienen en cuenta parámetros como los efectos viscosos del
fluido, el número de palas de la turbina, el sentido del rotor, y los fenómenos estacionarios como la
variación de la velocidad del aire con el tiempo.

3.2.2. Dinámica de Fluidos


La dinámica de fluidos (CFD), es una técnica que estudia el comportamiento de los fluidos basan-
do en parámetros como la velocidad, presión, temperatura, etc., mediante técnicas computacionales
[6]. Para el uso de simulaciones mediante CFD es importante validar los resultados con resultados ob-
tenidos de experimentaciones en este caso serían los datos que se obtengas de la implementación en
el túnel de viento. Para realizar el análisis del comportamiento aerodinámico de la turbina mediante
simulaciones CFD es necesario considerar el viento como un fluido para esto se tiene que tener pre-
sente parámetros como: el número de Mach el cual es utilizado como una referencia de la velocidad,
la viscosidad que es la propiedad que describe la resistencia de un fluido al deslizarse, la capa limite
es la capa que se encuentra entre la capa del flujo que se adhiere a la superficie del objeto de estudio y
la capa de corriente libre, capa laminar la cual se produce cuando el movimiento del aire dentro de la
capa limite es en forma de capas paralelas, por ultimo está el número de Reynolds del cual dependen
los coeficientes aerodinámicos [16]. El número de Reynolds se define como la ecuación 5.

psV
Re = (5)
µ

Donde V es la velocidad del flujo en la corriente de aire a su paso por el rotor, S la longitud del objeto
que atraviesa la corriente, p es la densidad del aire considerada como constante debido a hipótesis de
flujo incomprensible y µ la viscosidad dinámica del fluido. Además, se debe considerar que si el nú-
mero de Reynolds es pequeño la capa limite es laminar y si es suficientemente grande la capa limite
es turbulenta [16], [6].

Tomando las corrientes de aire como un fluido se considera la conservación de la masa, en la


ecuación 6.
12

m = pSV (6)
La fuerza que ejerce la corriente de aire sobre el rotor es dada por la ecuación 7.

F = pSV (V1 − V2 ) (7)


Donde V1 es la velocidad del viento antes de entrar en contacto con la turbina y V2 es la velocidad
del viento luego de atravesar la turbina [6]. Y la potencia que se puede extraer del viento se describe
la ecuación 8.

P = pSV 2 (V1 − V2 ) (8)


Como ejemplo del uso que van a tener los datos obtenidos por el dispositivo y almacenados por el
software planteados en este proyecto, se presenta la figura 11 donde se puede observar la simulación
del comportamiento aerodinámico de una turbina en el software de dinámica de fluidos computacio-
nal. Esta gráfica es suministrada por un miembro del grupo de investigación GITUD. Con los datos
que suministre el dispositivo se espera dar un apoyo o para validar este tipo de simulaciones.

F IGURA 11: Gráfica obtenida de simulaciones mediante CFD, suministrada por el grupo
de investigación GITUD

3.3. Sistema de monitorizacion de viento


En los anexos A se encuentra una tabla donde se presentan diferentes productos que se encuentran
en el mercado, estos productos se mencionan debido a que a las características técnicas que tienen, sir-
viendo como guía para el dispositivo inalámbrico de adquisición de datos a desarrollar en el presente
proyecto.

3.3.1. Modulo de captura de datos


De acuerdo con las ecuaciones 3, 4 y 8, solo se requiere medir la velocidad del viento para monito-
rizar el comportamiento aerodinámico de la turbina eólica, pero un estudio más avanzado como el de
la dinámica de fluidos requiere medir la velocidad del viento en dos puntos, uno antes de la turbina
eólica y otro después de la turbina eólica. A continuación, se describe la función de los dispositivos
que comúnmente se usan para las mediciones cuando se implementa una turbina eólica de acuerdo
con los parámetros mencionados anteriormente.

Anemómetro: este tipo de instrumento se utiliza para medir la velocidad del viento.
13

Veleta: es un dispositivo de giro libre que se ubica sobre un eje vertical, permitiendo medir la
dirección del viento.

Termómetros: para medir la temperatura ambiente, con lo cual se determina la potencia sumi-
nistrada.

Una vez determinados los parámetros que influyen en el comportamiento aerodinámico de la


turbina, se consultan los dispositivos que están en el mercado y cuáles de ellos podrían servir para
la implementación en una zona rural de Cundinamarca. Estos son los criterios de selección de los
dispositivos para implementar el sistema de adquisición y tx de datos inalámbrico:

De tamaño pequeño para facilitar su instalación dentro del túnel de viento y para no afectar el
comportamiento aerodinámico de la turbina.

De transferencia de datos inalámbrico para evitar el cableado dentro del túnel de viento. Ade-
más de que el usuario puede estar a una distancia segura de la zona de las pruebas.

De bajo consumo para maximizar el tiempo de funcionamiento del dispositivo.

Con dos modos de operación el primero con una tasa de muestreo rápida y el segundo con una
tasa de muestreo lenta.

3.3.2. Modulo de adquisición de datos


El dispositivo inalámbrico de adquisición de datos está compuesto por tres módulos: adquisición
de datos, procesamiento de datos y transferencia inalámbrica de datos. Cada módulo está conformado
por diferentes componentes para lo cual se realizó una búsqueda de materiales que proporcionaran
un adecuado funcionamiento del dispositivo, además de que tengan un reducido tamaño para man-
tener el tamaño del dispositivo pequeño con el fin de no afectar el comportamiento aerodinámico de
la turbina. A continuación, se presentan tablas con los posibles elementos a utilizar para la imple-
mentación de los módulos que conforman al dispositivo. Se empieza por el módulo de adquisición
de datos, conformado por un sensor para medir la velocidad del viento y un sensor para medir la di-
rección del viento. Después se presenta los posibles elementos con lo que implementar el módulo de
procesamiento de datos y finalmente se presentan los elementos con los que se podría implementar
el módulo de transferencia inalámbrica de datos.

3.3.3. Sistemas embebidos para monitorización de variables:


Actualmente para un sistema de monitorización de sensores se hace necesario recurrir a la tecno-
logía del internet de las cosas (IoT), con el fin de almacenar en la nube los datos obtenidos en tiempo
real sin necesidad de cablear la herramienta de medición al equipo donde se visualizarán las variables
de interés, lo que permite que se pueda realizar un estudio de las variables medidas sin tener que es-
tar en la misma ubicación que los sensores. Para la monitorización de variables por medio de sensores
es necesario establecer protocolos de comunicación serial entre el microprocesador encargado de la
transmisión, los sensores, y los módulos de trasmisión. Entre los protocolos de comunicación serial
más usados en la actualidad se encuentra el protocolo de comunicación UART.
14

3.3.4. Instrumentos de medición de velocidad del viento


En la tabla 1 se muestran los diferentes dispositivos disponibles en el mercado para realizar la
medición de la velocidad del viento, el cual es el parámetro más importante por medir para realizar
la caracterización aerodinámica de la turbina eólica. En la tabla 1 también se documenta las caracte-
rísticas de cada dispositivo, además de las ventajas y desventajas que representa la implementación
de esta en el dispositivo.

TABLA 1: Opciones de instrumentos para medir la velocidad del viento


Dispositivo Descripción Características Ventajas Desventajas Fuente Foto

Es un dispositivo usado - Poca precisión.


generalmente en estaciones - El tamaño es muy
Rango de medición: 0 - 35 m/s.
meteorológicas. Este - Elemento robusto grande para ser
Precisión: +/-(2 % +0.2 m/s).
dispositivo mide únicamente que puede soportar implementado en
Anemómetro de copa Periodo de muestreo: 1 [19],[20],[21]
la velocidad del viento cuyo fuertes corrientes el dispositivo.
muestra por segundo.
desplazamiento sea de viento. - Requiere de una
Tensión de alimentación: 12-36 V
perpendicular al eje de sus alta fuente de
copas de rotación alimentación.

- El tamaño es muy
Instrumentó de medición la
Rango de medición de la Realiza medición
componente horizontal de la
velocidad del viento: 0 - 75 m/s. de velocidad y grande para ser
velocidad del viento y la
Rango de medición de la dirección del implementado en
Anemómetro Ultrasónico dirección del viento, adicional [22]
dirección del viento:0-360°. viento. Además de el dispositivo.
a esto este anemómetro puede
Precisión: +/- (2 % + 0.1 m/s) medir la temperatura - Requiere de una
medir la temperatura virtual
Tensión de alimentación: 9 - 36 V ambiente. alta fuente de
acústica
alimentación.

Es un anemómetro desarrollado - Tamaño pequeño. - El tamaño es muy


con el fin de ser usado en Rango de medición de la - Salida adecuada
proyectos electrónicos y es un velocidad del viento: 0 - 67 m/s. para conectar grande para ser
Anemómetro de hilo instrumento de bajo costo. Este Tensión de alimentación: 10 - 12 V. directamente al implementado en
[23]
caliente Anemómetro es usado para módulo de adquisición el dispositivo.
medir la velocidad del viento Resolución: +/- 0.5 m/s. de datos. - Requiere de una
mediante la técnica del hilo Tensión de salida: 0 - 3.3 V. - Alto rango de alta fuente de
caliente. medición. alimentación.

Finalmente, se considera que el mejor instrumento para realizar las mediciones de la velocidad del
viento es el instrumento anemómetro de hilo caliente (wind sensor rev.P). Las razones que destacan
el wind sensor rev.P sobre los otros instrumentos de medición de la velocidad del viento son una alta
precisión, un rango de operación grande, tamaño pequeño haciendo más sencilla su implementación
y transporte. Por último, este sensor posee una salida analógica de 3.3 V facilitando la conexión con
el módulo de procesamiento de datos. Dichas razones son adecuadas para el diseño del dispositivo
de adquisición de datos inalámbrica para la monitorización aerodinámica de una turbina eólica.
15

3.3.5. Instrumentos de medición de dirección del viento


Para medir la dirección del viento el cual es un parámetro importante para la caracterización ae-
rodinámica de una turbina eólica. En la tabla 2 se presentan diferentes instrumentos para realizar la
medición de la dirección del viento donde se destacarán las características y los motivos por los cuales
pueden ser considerados para la implementación del dispositivo de adquisición de datos inalámbrico
para la caracterización aerodinámica de una turbina eólica.

TABLA 2: Opciones de instrumentos para la medición de la dirección del viento.


Referencia Descripción Características Ventajas Desventajas Fuente Foto

Es un dispositivo usado - Poca precisión.


generalmente en estaciones - El tamaño es muy
Valor mínimo de medición: 0.8 m/s
meteorológicas. Este - Elemento robusto grande para ser
Rango de medición: 0-360°
dispositivo mide únicamente que puede soportar implementado en
PCE-FST-200-202 Precisión: +/-(2 %+0.2m/s) [24]
la velocidad del viento cuyo fuertes corrientes el dispositivo.
Tensión de alimentación: 12-36 V
desplazamiento sea de viento. - Requiere de una
Salida analógica de: 0-10 V
perpendicular al eje de sus alta fuente de
copas de rotación. alimentación.

- Bajo consumo de potencia


- Tiempo de respuesta rápido
Este tipo de sensor es el más usado suficiente para realizar una
comúnmente par la medición de la captura rápida de datos por
aceleración de un objeto debido a su parte del módulo de
Rango de medición: +/- 500 g
bajo costo y que destaca por ser uno procesamiento de datos. - No es un instrumento
Sensibilidad: 206 mV/g
de los acelerómetros más pequeños. - Permite medir la inclinación diseñado principalmente
Acelerómetro MMA7361 Tensión de alimentación: 3.3-5 V [25],[26],[27]
Es un instrumento con la capacidad de la turbina así medir la para medir la dirección
Salida analógica de: 0-3.3 V
de medir la inclinación de un objeto dirección del viento y además del viento
Tiempo de respuesta: 0.5 ms
en los ejes x,y,z. Usualmente este permite medir las vibraciones
sensor se usa para detectar vibraciones que presente la turbina.
y/o medir la inclinaciones de un objeto - Es un componente pequeño
lo que facilita su
implementación en el dispositivo

- Frecuencia de trabajo rápida


Es un acelerómetro que está conformado suficiente para realizar una
por un sustrato el cual se deforma cuando captura rápida de datos por - El tamaño es muy
se ejerce sobre este una fuerza, al Rango de medición: 2-200 g parte del módulo de grande para ser
deformarse el sustrato provoca un cambio Rango de operación: 0-2000 Hz procesamiento de datos. implementado en
TE4610 [26],[28],[25],[29]
en la resistencia del sensor. Al variar la Tensión de alimentación: 4-30 V - Permite medir la inclinación el dispositivo.
resistencia se genera una intensidad Salida analógica de: 0-2 V de la turbina así medir la - Es un instrumento
eléctrica la cual se mide mediante un dirección del viento y además muy costoso.
puente de Whetstone permite medir las vibraciones
que presente la turbina.

- El tamaño es muy
el funcionamiento de este sensor es similar grande para ser
- Alta sensibilidad
al acelerómetro pizoresistivo la diferencia Rango de medición: +/- 500 g implementado en
- Alto rango de operación tanto
está en que al ejercer una fuerza sobre el Rango de operación: 0.5-10000 Hz el dispositivo.
en frecuencia como en amplitud
KISTEL 8704 acelerómetro provocando un cambio en la Sensibilidad: 10 mV/g - Requiere de una [26], [30],[31],[32]
- Salida analógica adecuada
estructura del cristal piezoeléctrico Tensión de alimentación: 20-30 V alta fuente de
para la implementación en el
generando una tensión eléctrica proporcional Salida analógica de: 0-5 V alimentación.
dispositivo
a la aceleración -Es un instrumento muy
costoso

Finalmente, se considera que el mejor instrumento para realizar las mediciones de la dirección del
viento es el acelerómetro MMA7361. Las razones que destacan este sensor sobre los otros instrumen-
tos de medición es que tiene un bajo consumo de potencia, es un componente de tamaño pequeño, es
de precio moderado, tiene la capacidad de medir tanto la dirección del viento mediante la inclinación
del objeto como las vibraciones de la turbina en los ejes X,Y y Z. Por último, este sensor posee una
salida analógica de 3.3 V facilitando la conexión con el módulo de procesamiento de datos. Dichas
razones son adecuadas para el diseño del dispositivo de adquisición de datos inalámbrica para la
monitorización aerodinámica de una turbina eólica.

3.3.6. Módulo de procesamiento


Se requiere de una placa de desarrollo para el procesamiento de los datos tomados por el módulo
de adquisición de datos. El procesamiento de los datos es necesario debido a que se requiere convertir
las señales analógicas de los sensores a señales digitales mediante un ADC. La señal digital otorgada
16

por el módulo de procesamiento de datos da la capacidad de poder transferir y visualizar los datos.
En la tabla 3 se relacionan la comparación de dispositivos para el módulo de procesamiento de datos..

TABLA 3: Opciones para la implementación del módulo de procesamiento de datos


Referencia Descripción Características Ventajas Desventajas Fuente Foto

Es una placa de desarrollo de fácil - Frecuencia de trabajo


Tensión de alimentación: 5 V
manejo, desataca por ser un dispositivo - Es un instrumento fácil de baja, lo que afecta la
Cuenta con ADC
de bajo costo y ser la placa más utilizada manejar toma de datos en el
Arduino UNO Resolución de 10 bits [33]
de las que desarrolla Arduino. El Arduino - Es de bajo costo modo de operación
Tasa de muestreo: 153-615 kHz
Uno es una placa de microcontrolador - Tiene un tamaño moderado rápido
6 pines de entrada analógica
basada en el integrado ATmega328P. - Resolución baja

- Es un instrumento fácil de
manejar
Esta placa cuenta con un entorno en el que Tensión de alimentación: 3.3-5 V - Es de bajo costo - La resolución depende
la codifican se hace mediante el uso de Cuenta con ADC - Tiene un tamaño moderado de la velocidad de
PSoC 5lp bloques y lenguaje c++. La PSoC 5LP Resolución de 8-15 bits - Cuenta con una alta resolución muestreo. Se tiene una [34]
ofrece una mayor eficiencia debido a Tasa de muestreo: 536-384000 - Cuenta con un alto periodo de alta resolución a una baja
controlado DMA de alto rendimiento. muestras por segundo. muestreo lo que le da la capacidad tasa de muestreo-
de operar en el modo rápido
requerido para el proyecto.
- Puede manejar procesos paralelos
- Cuenta con una alta resolución - El tamaño es muy
Es una FPGA de mayor rendimiento Tensión de alimentación: 5 V
y tasa de muestreo grande para ser
que los microcontroladores Cuenta con ADC
permitiendo tener mejores resultados implementado en
Basys 3 mencionados anteriormente. La Resolución de 12 bits [35]
en las mediciones el dispositivo.
Basys 3 está basada en una FPGA Tasa de muestreo: 1 millón de
- Cuenta con múltiples pines que - Es un instrumento
Xilinx Artix-7. muestras por segundo.
funcionan como ADC permitiendo muy costoso.
la conexión de varios sensores
- Cuenta con una alta resolución
La placa de desarrollo esp32 es un y tasa de muestreo
SoC (System On Chip) diseñado por Tensión de alimentación: 3.3-5 V permitiendo tener mejores resultados
Espressif System quien la define Cuenta con ADC en las mediciones
como la solución para los Resolución de 12 bits - Cuenta con múltiples pines que
microcontroladores que carecen de Tasa de muestreo: 1000 de funcionan como ADC permitiendo
medios de transición inalámbrica de muestras por segundo. la conexión de varios sensores - No soporta señales de
ESP32 datos esto debido a que este tipo de Cuenta con módulo de - Tiene implementados módulos de entrada superiores a [36],[37],[38]
placas son comúnmente usados como transferencia inalámbrica de transferencia inalámbrica de datos 3.3 V
los medios para tener acceso a la datos Wi-Fi, Bluetooth y Ble. por lo que no es necesario recurrir a
tecnología de IoT, además tienen la 32 pines de entrada y de salida, elementos externos que aumenten el
capacidad para ser usadas para la de los cuales 18 pueden ser tamaño del dispositivo.
monitorización de variables en usados como ADC - Es un instrumento de pequeñas
tiempo real dimensiones.
- Es de bajo costo

Las razones mencionadas en el tabla 3 son por la que selecciona a la placa ESP32 como el módulo
de procesamiento de datos, además de que puede ser usado también como el módulo de transferencia
de datos inalámbrico adecuado para la adquisición de datos dentro del túnel de viento, debido a
que se va a ocupar menos espacio en la implementación del dispositivo, abatiendo un dispositivo
inalámbrico de adquisición de datos para la monitorización del comportamiento aerodinámico de
una turbina eólica.

3.3.7. Modulo de transmisión de datos


El internet de las cosas (IoT): Es la red de conexión e intercambio de información entre diferen-
tes objetos tecnológicos sin que una persona los esté supervisando. El IoT es la capacidad de que los
dispositivos de red detecten y recolecten datos para luego ser compartidos por medio del internet,
con el fin de procesar, visualizar o realizar otras aplicaciones para la manipulación de los datos. La
idea esencial del IoT ha existido durante casi dos décadas y ha atraído a muchos investigadores e
industrias, debido a su gran impacto estimado en la mejora de nuestra vida cotidiana y la sociedad
[39].

Comunicación serial: Para las tecnologías como IoT, dispositivos integrados o diferentes com-
ponentes de un dispositivo es necesario un intercambio de información entre estos para su buen
funcionamiento, el intercambio de datos entre estos dispositivos se puede realizar por medio de una
comunicación serial o paralela. La comunicación serial es el método más común de comunicación el
17

cual se basa en transferir un bit a la vez, a través de un medio dado. Para este tipo de comunicación
se requiere solo de una línea de comunicación lo cual facilita la transferencia de datos. Algunos de
los canales de comunicación más populares de la comunicación serial son estándar 232 (RS232), bus
serie universal (USB), Interfaz multimedia de alta definición (HDMI), interfaz serie periférica (SPI),
circuito integrado (I2C), área del controlador Red (CAN), Transmisor-Receptor asíncrono universal
(UART), etc. [39].

UART: Es una comunicación serial asíncrona, comúnmente usada en dispositivos integrados y de


IoT. Al ser un protocolo asíncrono significa que no hace uso de un reloj para sincronizar los disposi-
tivos que se están comunicando. Es decir, los datos transferidos por medio del protocolo UART son
intercambiados por los dispositivos sin la necesidad de una línea adicional de reloj externo (CLK),
este tipo de protocolo es más que todo usado porque se minimiza la pérdida de datos. El protocolo
UART se conforma por un bit de inicio que declara que los datos son los siguientes a él, el mensa-
je que se va a transferir el cual tiene un formato de 8 bits, un bit de paridad con el cual se pueden
comprobar errores y corrupción de datos y por último un bit de parada que simboliza que el mensaje
ha finalizado, esto se puede observar en la figura 12. El protocolo UART al no hacer uso de un reloj
de sincronismo, requiere establecer la misma velocidad de baudios en los dispositivos que se están
comunicando. La velocidad de baudios establece la velocidad a la cual se transfieren los datos, el nú-
mero de bits por segundo que se están transfiriendo. Las tasas de baudios más usados comúnmente
son de 9600, 38400, 19200, 57600 y 115200 [39].

F IGURA 12: Protocolo de comunicación serial UART. [39]

Módulo de transferencia inalámbrica de datos: Debido a la ventaja que otorga la ESP32 en cuan-
to a la reducción de espacio, siendo implementada tanto como módulo de procesamiento de datos y
módulo de transferencia inalámbrica de datos. Esta placa de desarrollo se escoge para el diseño del
dispositivo del presente proyecto.

En cuanto a las características técnicas de conecxión con las que cuenta la ESP32, se presentan a
continuación la de conectividad WiFI:

Protocolo de comunicación soportado: 802.11 b/g/n.

Transmisión: 802.11 n (2.4 GHz), hasta 150 Mbps.

Tiene soporte para 802.11 e: QoS (WiFi multimedia): donde se prioriza el tráfico de red para
aumentar el rendimiento de aplicaciones, como stream de audio y video.

En cuanto a la conectividad por Bluetooth cuenta con las siguientes características:

Compatibilidad con Bluetooth v4.2 BR/EDR y BLE.

Potencia de transmisión: 12dBm


18

Sensibilidad de recepción (NZIF) BLE: -97 dBm.

El dispositivo inalámbrico de adquisición de datos para la caracterización aerodinámica de una


turbina eólica funciona adecuadamente, al establecer periodos de tiempo para sincronizar correcta-
mente todos los módulos del dispositivo, Debido a que se implementan protocolos de comunicación
asíncronos. Lo anterior refiere a que cuando se establece tiempos adecuados para la adquisición, pro-
cesamiento, transferencia, y la visualización de datos, sea de acuerdo a las características de cada
módulo.
19

4. Estado del arte


El estado del arte se dividirá en las siguientes secciones, trabajos desarrollados para mejorar la efi-
ciencia de las turbinas, ejemplos de generadores de vórtice para aumentar la eficiencia de las turbinas
eólicas, caracterización aerodinámica, simulaciones mediante CFD en busca de mejoras aerodinámi-
cas para las turbinas eólicas y proyectos de sistemas de adquisición de datos.

4.1. Trabajos desarrollados para mejorar la eficiencia de las turbinas


4.1.1. Diseño y fabricación de palas de turbinas eólica de baja capacidad utilizando técnicas
CAD/CAM y materiales compuestos
En este proyecto se busca eliminar todos los efectos de disipación de energía debido a la visco-
sidad del aire, se propone el diseño de una hoja compuesta por fibra de vidrio y poliuretano (figura
13) mediante el Software CAD para dibujar la geometría de la hoja y simularla mediante el software
CAM (figura 14). [40].

F IGURA 13: Prototipo de aspa compuesta por fibra de vidrio y poliuretano. [40]

F IGURA 14: Diseño de aspa compuesta por fibra de vidrio y poliuretano. [40]
20

F IGURA 15: Resultados de aspa compuesta por fibra de vidrio y poliuretano. [40]

Para la toma de datos fue necesario generar las corrientes de viento mediante un túnel de viento,
las conclusiones obtenidas al realizar la medición de la tensión contra la velocidad del viento fueron
que las técnicas de diseño de aerogeneradores con CAM/CAD garantizan una aerodinámica perfecta
lo cual corresponde a una mejora en la eficiencia de la máquina (figura 15).

4.1.2. Uso de un mecanismo de manivela para reorientar las palas planas de la turbina eólica
vertical para mejorar su rendimiento
Las turbinas eólicas VAWT generan la potencia máxima instantánea cuando la dirección del vien-
to es perpendicular a la superficie de la pala, esto hace que el promedio de potencia entregado por
las turbinas VAWT sea dependiente de la dirección del viento, este proyecto propone un mecanismo
para aprovechar la corriente de viento sin que la dirección de donde provengan afecte el funciona-
miento de la turbina. El diseño propuesto se puede observar en las figuras 16 y 17, como se puede
notar el diseño consta de un mecanismo mecánico de manivela-manivela (cuatro cuchillas planas au-
to orientadas además de una jaula auto orientada) para proporcionarles a las palas la capacidad de
reorientarse para que estén continuamente perpendiculares a la dirección del viento. [41].

F IGURA 16: Movimiento generado por corrientes de viento en la turbina tradicional y


mejorada. [41]
21

F IGURA 17: Turbina con mecanismo manivela-manivela. [41]

Al poner la turbina mejorada frente a un túnel de viento notaron que mejoró la eficiencia de la
turbina VAWT, esto se logró a través de este movimiento auto orientado que asegura una orientación
perpendicular continua entre la superficie de las cuchillas y la dirección del viento. Además, el di-
seño propuesto depende del uso de cuatro cuchillas planas para reducir los costos de fabricación y
mantenimiento. [41].

4.1.3. Turbina bio-inspirada


La amplia investigación sobre energía eólica ha llevado a que actualmente se están realizando
trabajos de diseño mecánicos basados en las características de los seres vivos. En Colombia se está
desarrollando el diseño y construcción de un rotor eólico usando como referencia la estructura natural
de la planta conocida como “Chorrillo"), en las figura 18 se puede observar el diseño propuesto para
la turbina bio-inspirada y en la figura 19 se observa el prototipo desarrollado. [42].

F IGURA 18: Diseño turbina bio-inspirada. [42].

F IGURA 19: Desarrollo del prototipo turbina bio-inspirada. [42].


22

F IGURA 20: Desarrollo de simulación y construcción de turbina Bio-inspirada. [42].

Los resultados obtenidos en este trabajo se puede apreciar en la figura 20, donde se nota que la
turbina bio-inspirada logra alcanzar rendimientos similares a rotores actuales de Aero-bombas. Por
otro lado, la turbina bio-inspirada presenta mayor ventaja que una turbina convencional al ser más
liviana y resistente al aire, mejorando el comportamiento de arranque del sistema. [42].

4.2. Ejemplos de generadores de vórtice para aumentar la eficiencia de las turbinas eóli-
cas.
Un ejemplo de cómo los generadores de vórtice mejoran la aerodinámica en las turbinas eólicas
se puede apreciar en el trabajo “Control de flujo en el perfil aerodinámicos del generador NREL S809
mediante generadores de vórtice” [43], donde se hace uso del S809 que es un aerogenerador diseñado
para aplicaciones de turbinas eólicas de eje horizontal. En este proyecto se analiza el rendimiento
aerodinámico presentado al implementar generadores de doble vórtice mediante simulaciones de
CFD [43]. En la figura ?? se puede apreciar el esquema de los generadores de doble vórtice que se
implementan en el proyecto. .

F IGURA 21: Geometría del perfil aerodinámico S809 con implementación de VG. [43].

Para las pruebas, las posiciones de cuerda de los VG fueron del 10,20 y 40 %, el generador de do-
ble vórtice fue ubicado del 10 y 20 % en las posiciones de cuerda, y el 10 y 40 % de las posiciones de
cuerda, en la tabla 4 se pueden apreciar las dimensiones de los VG [43].
23

Distancia entre bordes


Caso x/c ( %) Altura (mm) Longitud (mm) Distancia entre pares (mm) Án
posteriores (mm)
VGs_1 10 10 20 30 60 18
VGs_2 20 10 20 30 60 18
VGs_4 40 10 20 30 60 18
VGs_5 10 y 20 10 20 30 60 18
VGs_6 10 y 40 10 20 30 60 18

TABLA 4: Parámetros de los VG en este proyecto. [43].

Por medio de las simulaciones de CFD se obtuvieron gráficas para comparar la aerodinámica del
S809 con y sin VG (figura 22). En las gráficas se representa la longitud de cuerda del perfil aerodiná-
mico y AOA representa el ángulo de ataque [43].

F IGURA 22: Gráficas del perfil aerodinámico S809 afectado por los GV sobre los paráme-
tros de: a) coeficiente de sustentación, b) coeficiente de resistencia. [43].
24

F IGURA 23: Coeficientes de fuerza tangencial. [43].

En la figura 23 se puede observar un aumento en la fuerza tangencial, notando un aumento del


47,57 % con el uso de los generadores de vórtice y un aumento de aproximadamente el 96,48 % con
los generadores de doble vórtice, esto es importante debido a que la potencia de la turbina eólica
cambia con el coeficiente de la fuerza tangencial [43]. De los resultados obtenidos se concluyó que los
VG mejoran eficazmente el coeficiente de sustentación del perfil aerodinámico, retrasan la aparición
del fenómeno de perdida y la potencia de la turbina aumenta sustancialmente al implementar los
generadores de vórtice [43].

4.3. Caracterización aerodinámica:


En la actualidad los avances en la capacidad computacional y servicios de simulación permiten el
uso de simulaciones computacionales de fluidos CFD, como apoyo en los diseños de mejoras para las
turbinas eólicas. Esto es evidente en los proyectos mencionados anteriormente, los cuales recurren a la
simulación mediante CFD para optimizar los diseños propuestos y mejorar la eficiencia aerodinámica
de las turbinas. Para validar los datos obtenidos por medio de las simulaciones se realizan pruebas
físicas con el uso del túnel de viento. Las pruebas que se llevan a cabo con el túnel de viento tienen
como fin caracterizar la aerodinámica de la turbina, e identificar los cambios que surgen a partir de
la implementación de las mejoras propuestas y comprobar que se aumenta la producción de energía
por parte de las turbinas eólicas.

La popularidad que han adquirido las simulaciones mediante CFD es debido a que los datos ob-
tenidos son afines a los datos obtenidos experimentalmente por medio del uso de túneles de viento,
como evidencia de lo anterior en el proyecto de “efectos de los generadores de vórtice en un perfil
aerodinámico de borde de salida romo para turbinas eólicas” [44], se llevó a cabo una interesante
comparación entre pruebas con túneles de viento y simulaciones realizadas con CFD. En el proyecto
se realizó una investigación, de cómo los VG afectan el rendimiento aerodinámico de un borde de
25

salida romo DU97-W-300, por medio de simulaciones en CFD.

F IGURA 24: Comparación entre los resultados CFD y los datos experimentales con túnel
de viento. a) Coeficientes de sustentación y coeficientes de arrastre sin VG. b) Coeficien-
tes de sustentación y coeficientes de arrastre de VG. [44].

De la figura 24 se puede observar que los resultados de CFD son cercanos a los datos experimen-
tales obtenidos del túnel de viento, lo anterior se puede apreciar en distintos aspectos de las curvas
como que hay una alta correlación en el ángulo de ataque de perdida, en la figura (b) se evidencia
que en las curvas del coeficiente de sustentación ambos métodos son muy similares y en la curva del
coeficiente de arrastre tiene un margen de error de máximo un 8 %. La diferencia que hay en los re-
sultados de los coeficientes de arrastre, ocurre por las limitaciones del modelo de turbulencia, debido
a que, en las simulaciones numéricas, es complejo un cálculo preciso de los pequeños valores de los
coeficientes de arrastre, en estos hay un máximo de error del 10 % para considerarlos resultados acep-
tables. De esta comparación se concluye que los datos obtenidos por medio de la simulación CFD del
ángulo de ataque de pérdida y los coeficientes de sustentación tienen una alta similitud a los datos
26

obtenidos experimentalmente, y que los coeficientes de arrastre obtenidos por medio de la simulación
son tolerables [44].

4.4. Simulaciones mediante CFD en busca de mejoras aerodinámicas para las turbinas
eólicas
4.4.1. Simulación en CFD del halcón peregrino:
El halcón peregrino es considerado el animal aéreo más rápido del mundo siendo capaz de alcan-
zar velocidades de 400 km/h al descender, es por esta razón que surgen investigaciones sobre este
animal para mejorar las características aerodinámicas de los sistemas aéreos existentes. Lo que hace
que el halcón peregrino sea tan veloz son unas plumas especiales que posee en su dorso, las cuales
varían su posición de acuerdo con la vibración superficial, reduciendo la turbulencia y estabilizando
el vuelo del halcón. [45].

F IGURA 25: Resultados de contornos de velocidad de viento mediante CFD de perfil del
halcón peregrino. [45].

Algunos trabajos orientados a mejorar la aerodinámica, han estudiado el comportamiento del


vuelo del halcón (como el de Ponitz, Schmitz, Fischer, Bleckmann & Brücke. [45]), que realizan un
estudio mediante CFD figura 25, de estos resultados se puede observar cómo el ave cambia la posición
superior del dorso para mejorar su aerodinámica reduciendo la turbulencia a altas velocidades de
descenso.
27

4.5. Proyectos de sistemas de adquisición de datos


4.5.1. Diseño e implementación de un sistema DAQ de bajo costo para mediciones de propieda-
des termoeléctricas
En este proyecto se propone el sistema mostrado en la figura 26 el cual está compuesto por,
LM4140 que es un sensor de temperatura, un MCP3553 para convertir la tensión a una señal digital,
el PIC18F4550 para la comunicación mediante puerto USB y un computador, en la figura 27, se puede
observar el esquema del diseño del sistema. El sistema tiene el objetivo de calcular el coeficiente de
Seebeck mediante la medición de la tensión producida por los materiales termopar Chromel-Chromel
y los materiales Alumel-Alumel [46].

F IGURA 26: Estructura del sistema de adquisición de datos para mediciones de propie-
dades termoeléctricas. [46].

F IGURA 27: Diagrama circuital del sistema de adquisición de datos para mediciones de
propiedades termoeléctricas. [46].
28

F IGURA 28: Resultados del sistema de adquisición de datos para mediciones de propie-
dades termoeléctricas. [46].

En la figura 28 se puede observar los resultados obtenidos en el proyecto, se concluyó que la lec-
tura del valor promedio de 20 veces generaba un dato confiable. Además, con el sistema desarrollado
se eliminó el error de compensación de tensión dando como resultado que los valores obtenidos del
coeficiente de Seebeck son cercanos a los valores teóricos [46].

4.5.2. Diseño conceptual del sistema DAQ inalámbrico para pruebas de explosión de vehículos
En este artículo se requiere de la implementación de un sistema de adquisición de datos inalám-
brica, para obtener información acerca de los daños que se presentan en un vehículo cuando se ve
afectado por una explosión. El sistema al ser inalámbrico garantiza la seguridad de las personas que
se encuentran realizando el experimento y evitar la pérdida de información. Para tomar medidas va-
lida se requiere que el sistema posea una alta frecuencia de muestreo con el fin de registrar la llegada
de múltiples choques y generar datos que se aproximen a la fluctuación producida por cada uno de
los choques [47].

F IGURA 29: Sistema propuesto para obtener las lesiones que puede causar una explosión
cerca de un vehículo a su tripulante. [47].

En la figura 29 se puede observar el sistema propuesto para obtener las lesiones que puede causar
una explosión cerca de un vehículo a su tripulante. El sistema está compuesto por un acelerómetro
para en la parte posterior de la cabeza para las lesiones cerebrales, un acelerómetro en la parte pélvica
29

para detectar una alta aceleración del impacto, un sensor de celda para detectar la fuerza causada
por la explosión y finalmente un sensor de lápiz para medir la sobrepresión que se produce luego del
impacto [47].

En este artículo, se propuso un diseño conceptual de un sistema de adquisición de datos inalám-


brico en tiempo real para pruebas de explosión. Se propuso el módulo Wi-Fi 802.11n para la transmi-
sión de los datos obtenidos de varios sensores instalados para ver como el impacto de una explosión
afecta al vehículo y a sus ocupantes. El sistema propuesto aún está en estudio, y se espera que al
realizar la experimentación se pueda observar los efectos que cause la explosión a la transferencia
inalámbrica [47].

4.5.3. Un sistema de evaluación y monitoreo de visualización inalámbrico para módulos fotovol-


taicos comerciales únicamente en el entorno MATLAB / Simulink
En este proyecto se desarrolló un sistema de detección de fallas, evaluación y monitorización
inalámbrica para módulos fotovoltaicos. En la figura 30 podemos observar el sistema, el cual está
compuesto por una placa STM32F4DISCOVERY usada para la adquisición de datos inalámbrica, una
interfaz desarrollada en MATLAB/Simulink, un módulo Bluetooth HC-05 para la transferencia de
información. El sistema tiene la capacidad de medir la irradiación solar, la temperatura de la celda, la
tensión de funcionamiento y la corriente de salida del módulo fotovoltaico [48].

F IGURA 30: Estructura del sistema de evaluación y monitoreo de visualización inalám-


brico para módulos fotovoltaicos comerciales. [48].
30

F IGURA 31: Resultados del sistema de evaluación y monitoreo de visualización inalám-


brico para módulos fotovoltaicos comerciales. [48].

De la figura 31 se evidencio que el sistema propuesto posee la precisión suficiente y la fiabilidad


aceptable para la monitorear y evaluar el panel fotovoltaico. Además de lo anterior con el sistema de
adquisición de datos propuesto se pueden adquirir directamente los parámetros del panel, los cuales
se transmiten de forma inalámbrica evitando el uso de un cable de datos para la comunicación. Los
datos recolectados son usados para monitorear y evaluar el desempeño del panel y se requiere de una
sola plataforma MATLAB / Simulink para procesar la información [48].
31

5. Diseño y desarrollo del prototipo


Para el diseño del dispositivo se plantea el esquema de la figura 32, en donde se presenta el orden
que se siguió para el desarrollo del proyecto,

F IGURA 32: Esquema de diseño del dispositivo.

Para dar cumplimiento al objetivo uno se realizó la consulta mostrada en el marco teórico en
donde se da evidencia de que los parámetros a medir son la dirección y la velocidad del viento. No
obstante, al tener en cuenta lo descrito en los estudios de dinámica de fluidos, para realizar la carac-
terización del comportamiento aerodinámico de una turbina eólica, la velocidad del viento se debe
medir en dos puntos claves que son frente y detrás de las aspas de la turbina. Dos puntos que pre-
sentan complejidad para medir con un solo dispositivo, ya que una conexión física entre estos puede
presentar una obstrucción para las aspas de la turbina y al usar dos dispositivos se aumenta tanto
la complejidad de la transferencia de los datos a un solo dispositivo receptor como los tiempos de
retardo de la transferencia de información.

Por otro lado, la variación de la velocidad y dirección del viento son dos parámetros que en con-
diciones reales tienden a tener pocas variaciones significativas y que pueden tomar intervalos muy
largos para que estas variaciones ocurran. Debido a estos dos motivos se plantea que el dispositivo se
debe usar para pruebas en túnel de viento ya que este permite modificar la variable de la velocidad
del viento a un valor conocido y constante, presentando la ventaja que el dispositivo debe capturar
únicamente la velocidad del viento después de que pase por las aspas de la turbina. Adicional la di-
rección del viento no varía sino por la ubicación, en este punto se prefiere muestrear la vibración de la
turbina cuando la corriente de aire choca con esta. Planteados estos puntos se identifica que el dispo-
sitivo y el software a desarrollar para la adecuada monitorización del comportamiento aerodinámico
de la turbina eólica deben contar con las siguientes características:

Transferencia inalámbrica mediante el protocolo IEEE 802.11 (para red Wi-Fi), proporcionan-
do los datos al usuario en cualquier parte que se encuentre siempre y cuando cuente con una
conexión a internet.

Transferencia inalámbrica local mediante el protocolo IEEE 802.15 (para red Bluetooth), para
proporcionar los datos al usuario si este se encuentre a una distancia máxima de 10 metros del
dispositivo y no requiere de una conexión a internet.

Proporcionar al usuario la visualización del comportamiento aerodinámico de la turbina en


tiempo real.
32

Almacenar los datos adquiridos por el dispositivo durante las pruebas en archivos de texto para
ser utilizados en otro momento o software, principalmente en software de dinámica de fluidos
computacionales.

Un modo en que el dispositivo tome la mayor cantidad de muestras por segundo, para brindar
la información necesaria para quienes deseen realizar simulaciones mediante CFD, con los datos
obtenidos por el dispositivo.

Un modo en que el dispositivo tome muestras cada cierto periodo de tiempo con el fin de mo-
nitorizar el comportamiento aerodinámico de la turbina por prolongados periodos de tiempo
como días o semanas.

El dispositivo se compone de los módulos de adquisición, procesamiento y transferencia inalám-


brica de datos. Para dar cumplimiento al objetivo dos se presenta a continuación las secciones donde
se describen los elementos y protocolos seleccionados, para el diseño de cada uno de los módulos que
componen al dispositivo.

5.1. Componentes del módulo de adquisición de datos


El módulo de adquisición de datos se compone básicamente por dos sensores, los cuales son el
acelerómetro MMA7361 y el wind sensor Rev.P cuyo uso se describe a continuación:

El acelerómetro MMA7361 tiene dos funciones, medir las vibraciones en la turbina generadas
por el movimiento de las aspas bajo la influencia de una corriente de aire. Por otro lado, tiene
la función de medir el ángulo de inclinación de la turbina para así determinar la dirección de
la velocidad del viento, variable de importancia para monitorizar el comportamiento aerodiná-
mico de la turbina eólica. Realizar estas mediciones son posibles debido a que el sensor mide la
aceleración del movimiento de este en unidades de fuerza gravitacional (g) en los ejes X, Y y Z,
permitiendo tomar datos de cuanto se desplaza en cada uno de los ejes.

El wind sensor Rev.P es un anemómetro de hilo caliente, es decir que calienta cierta área por
donde cruza la corriente de aire y mide la variación térmica en dicha área para así determinar
la velocidad del viento. Este sensor tiene la capacidad de proporcionar la velocidad del viento
en unidades de metros por segundo (m/s).

Para la implementación de estos sensores es necesario conocer sus especificaciones técnicas, para
así determinar que se requiere para tener una adecuada lectura de las variables por parte de estos
sensores.

5.1.1. Acelerómetro MMA7361


El sensor MMA7361 (figura 33), es un acelerómetro analógico de 3 ejes (x, y, z). Este sensor nos
permite medir la inclinación que presenta el objeto de estudio con respecto al eje de la tierra y adicio-
nalmente medir las vibraciones del objeto sobre el que se ubique el sensor. Como principales ventajas
de la implementación de este sensor en el proyecto esta su reducido tamaño y que el rango de tensión
de salida esta entre 0 a 3.3 V, por lo cual se puede conectar el sensor directamente al módulo de pro-
cesamiento de datos.
33

F IGURA 33: Acelerómetro MMA7361 [31]

En la figura 33 se pueden observar los puertos de entrada y salida de este sensor donde [49],[50]:

x: salida analógica del eje x (g).

y: salida analógica del eje y (g).

z: salida analógica del eje z (g).

Sleep(SL): De acuerdo con a la tensión que reciba este pin cambia el estado del sensor. Si recibe
0 V entre en estado de bajo consumo desactivando las salidas analógicas de los ejes x,y,z.

Detect(oG): Este pin se usa cuando se desea detectar caída libre.

5v: En este pin se recomienda conectar la fuente de alimentación debido a que cuenta con un
regulador de tensión a 3.3 V para proteger al sensor de algún sobre pico.

3.3v: Al igual que el pin 5V puede ser usado para polarizar el sensor, pero no cuenta con la
protección del regulador.

Ground (GND): tierra del sensor.

Select(GS): Este pin permite seleccionar la sensibilidad del sensor, en nivel alto es de 800 mV/g
y en nivel bajo es de 206 mV/g.

SelfTest(TS): Sirve para testear el funcionamiento del sensor.

5.1.2. Wind Sensor rev.P


Para le medida de la velocidad del viento se escogió el wind sensor rev.P (Figura 34), debido a
que a diferencia de otros sensores o instrumentos que son usados generalmente para la medición del
viento, el wind sensor Rev.p destaca por tener un tamaño pequeño, también porque la salida de este
dispositivo es analógica con un rango de 0-3.3 V lo que permite conectarlo directamente al módulo
de procesamiento de datos.
34

F IGURA 34: Wind Sensor Rev.P [23].

EL wind sensor rev.P tiene 5 pines los cuales son [51], [52]:

+10-12V: Es el pin usado para la polarización del sensor.

GND: Es el pin que va conectado a la tierra en común del dispositivo a desarrollar.

OUT: Es la salida analógica del sensor. El wind sensor rev.P tiene integrado un potenciómetro
para calibrar la magnitud de la señal precedente de este pin.

SHDN: Indica la tensión de velocidad cero usada para la calibración de la medida de la veloci-
dad del viento.

TMP: Genera una señal analógica para señalar la temperatura ambiente, también es usada para
la calibración de la medida de la velocidad del viento.

Teniendo en cuenta las características técnicas de los sensores se establece, que los sensores no
requieren de elementos externos para realizar la medición de las variables, pero si se requiere de
un conversor análogo-digital debido a que ambos sensores proporcionan las medidas en tensión y se
requiere realizar la conversión de tensión a sus respectivas unidades, pero este se realiza en el módulo
de procesamiento de datos.

5.2. Componentes del módulo de procesamiento de datos


Para el módulo de procesamiento de datos se va a tomar la placa de desarrollo ESP32. El módulo
de procesamiento de datos realizara la captura de los datos proporcionados por el módulo de adqui-
sición de datos es decir los sensores, además de realizar el debido tratamiento de estos para obtener
las medidas en las unidades correspondientes a cada sensor. Para establecer la transferencia de infor-
mación entre el módulo de adquisición de datos y el módulo de procesamiento de datos se debe hacer
uso de los canales ADC (conversor análogo-digital) disponibles en la placa ESP32. En la figura 35 se
presenta el esquema de la configuración de los pines de entrada y salida de la ESP32, donde también
se puede observar los usos que se le pueden dar a cada pin es decir se puede utilizar como un ADC,
PWM o transferencia de datos mediante algún protocolo de comunicación como UART o I2C.
35

F IGURA 35: Configuración de los puertos de entrada y salida de la ESP32 [53].

Como las señales de los sensores son analógicas se usa el ADC para convertir esas señales analó-
gicas a señales digitales y así hacer el tratamiento de los datos dentro de la ESP32. Primero se debe
ajustar los puertos de la ESP32 de acuerdo con las características técnicas suministradas por el fabri-
cante y que se pueden observar en la figura 36.

F IGURA 36: Especificaciones técnicas ESP32 [37].

Debido a que la salida de tensión de los sensores seleccionados para la implementación del pro-
yecto, no superan el rango establecido por el fabricante de la ESP32 se puede hacer la lectura directa
de la tensión. La lectura de la tensión por medio de la ESP32 se realiza mediante el uso de los puertos
que cuentan con ADC, pero para un uso adecuado de los ADC se debe tener en cuenta el rango de
tensión que puede soportar la placa de desarrollo y la resolución de esta. En el caso de la ESP32 esta
cuenta con una tensión máxima de 3,3 V y una resolución de 12 bits. Teniendo en cuenta que la ESP32
36

tiene una resolución de 12 bits y un valor máximo de tensión de 3,3 V, la ESP32 cuenta con la capaci-
dad de medir 4095 niveles de tensión y cuenta con una sensibilidad de 8 uV para realizar la lectura
de tensión.

Adicional a la lectura de tensión, es necesario de un tratamiento de los datos dentro del módulo
de procesamiento de datos. Se requiere de convertir esa magnitud de tensión capturada a las uni-
dades respectivas de cada sensor. Para los datos que envía el acelerómetro MMA72361 se realiza la
conversión de la tensión leída por el módulo de procesamiento de datos a una magnitud de fuerza
gravitacional (g), para los datos del Wind sensor Rev.p se transforma la tensión leída en magnitud
de velocidad específicamente en unidades de m/s. para estas conversiones se requieren de la im-
plementación de ecuaciones que se pueden obtener de dos formas, la primera es usar la ecuación
suministrada por el fabricante y la segunda es la caracterización de los sensores, pero como este pro-
yecto se basa en el apoyo a otros proyectos no se realiza la caracterización de los sensores, esto lo
realiza la persona que va a realizar las pruebas, debido a que no se cuenta con un túnel de viento don-
de realizar la pruebas. Por tal motivo las ecuaciones que se introducen en el código para la conversión
de las variables son tomadas de las hojas de datos que proporcionan los fabricantes.

Para la conversión de los datos que proporciona el wind sensor Rev.P se requiere implementar la
ecuación 9 suministrada por el fabricante, con esta ecuación se convierte la tensión leída en velocidad
expresada en unidades de m/s.
Tensin− leda∗3,3
(( )−1,3692)
212 −1
3,038517∗10,20 ,115157
Velocidad(m/s) = 10 ∗ ( )3,009364 (9)
0,087288

En cuanto al acelerómetro MMA7361 no se requiere de una ecuación, debido a que se puede


realizar la conversión de los valores mediante la instrucción ”map”, pero el funcionamiento de esta
instrucción se describe en la sección llamada ”desarrollo del código del dispositivo”.

Finalmente, como los sensores no superan los 3.3 V de tensión de salida se pueden conectar direc-
tamente a la ESP32, aspecto que beneficia al proyecto, debido a que no se requieren de componentes
externos que aumenten el tamaño del dispositivo como divisores de tensión, amplificadores, suma-
dores, seguidores de tensión u otros para conectar el módulo de adquisición de datos con el módulo
de procesamiento de datos.

5.3. Componentes del módulo de transferencia inalámbrica de datos


La placa de desarrollo ESP32 cuenta con un módulo Bluetooth y un módulo Wi-Fi adecuados
para realizar la transferencia inalámbrica de la información capturada y procesada, por los módulos
de adquisición de datos y procesamiento de datos. Lo anterior hace que el mismo elemento que es
la ESP32 sirva como módulo de procesamiento de datos y a la vez funcione como el módulo de
transferencia inalámbrica de datos. En el proyecto se va a contar con los dos tipos de comunicaciones
Bluetooth como Wi-Fi, sacando el máximo provecho a las herramientas proporcionadas por la EPS32.
Pero debido a que se va a hacer uso de los dos medios de comunicación se debe tener presente que
para cada uno de estos hay una forma específica para cada uno de realizar el proceso del envió de la
información, esto se debe principalmente a que la transferencia de información mediante el módulo
Bluetooth es mediante una conexión local con un computador, mientras que una transferencia de
37

datos mediante el módulo Wi-Fi se requiere de un servidor WEB que sirva como puente para la
transferencia de información entre el dispositivo y el computador.

5.3.1. Protocolo IEEE 802.15


La ESP32 cuenta con dos configuraciones para la transferencia de datos mediante Bluetooth estas
son Bluetooth clásico y Bluetooth Low Energy (BLE), pero para el proyecto se utiliza la primera debido
a que se prioriza que se pueda realizar la conexión Bluetooth del dispositivo con la mayor variedad de
computadores. Lo anterior se debe a que BLE es compatible solo con versiones superiores al Windows
8, adicional el BLE puede que presente una velocidad mayor de transferencia de información y una
conexión más estable que el Bluetooth clásico, pero está muy limitado en la cantidad de datos que
puede enviar por mensaje ya que tiene la capacidad de enviar máximo 20 bits por mensaje. El módulo
Bluetooth clásico que por defecto se nombrara de aquí en adelante en el presente documento solo
como Bluetooth, es una red inalámbrica de transferencia de información local con una capacidad de
transferencia de información mucho mayor que la red inalámbrica BLE. De las características de esta
red inalámbrica Bluetooth de la ESP32 destaca que la distancia máxima entre los dispositivos es de
100 metros, en este proyecto la conexión es entre computador donde este instalado el software y el
dispositivo, distancia adecuada para que el usuario que este observando los datos en el computador
se encuentre a una distancia segura del lugar de las pruebas.

5.3.2. Protocolo IEEE 802.11


A diferencia del módulo Bluetooth, el módulo Wi-Fi no establece una conexión local, es decir una
conexión entre el dispositivo y el computado. Al hacer uso de la red inalámbrica Wi-Fi se requiere
del uso de un servidor WEB que sirva como puente para llevar la información de forma bidireccional
entre el dispositivo y el computador, pero para poder hacer uso del servidor WEB es necesario que
ambos equipos el dispositivo como el computador cuenten con una conexión a internet, este tipo de
conexión brinda la ventaja de monitorizar el comportamiento aerodinámico de la turbina desde un
computador ubicado en cualquier lugar del mundo distinto a donde se ubique el dispositivo para las
pruebas, siempre y cuando los dos cuenten con una conexión a internet.

5.4. Componentes del módulo de apoyo


Adicionalmente se adiciono al dispositivo un servomotor. Se requiere para el proyecto menciona-
do al cual se va a apoyar con el dispositivo. El servomotor es utilizado para mover unos generadores
de vórtice que van sobre la turbina esto se logra con el uso del servomotor, y la función de esto es
modificar el comportamiento aerodinámico de la turbina enriqueciendo los datos tomados durante
las pruebas que se realicen.

Dichos datos son los que se van a ingresar a las simulaciones mediante CFD para realizar la ca-
racterización del comportamiento aerodinámico de la turbina. El servomotor vario su posición de
acuerdo con una señal enviada por el módulo de procesamiento de datos y la cantidad que debe
moverse es especificada por el usuario mediante el software. El software envía el valor mediante el
protocolo de comunicación que haya establecido el usuario al dispositivo y este envía la señal para
modificar la posición del servomotor a ese valor, en la siguiente sección se describe como se realiza él
envió de la señal desde el dispositivo para modificar la posición del servomotor.
38

5.5. Desarrollo del código del dispositivo


El código implementado consta de distintas secciones en las que se definen bibliotecas, variables,
funciones y comportamientos en la ESP32. A continuación se detalla cada una de las secciones que
componen al código desarrollado para el funcionamiento del dispositivo, sin embargo, el código se
presenta en los anexos del presente documento anexo B.

5.5.1. Bibliotecas:
En esta sección se realiza la declaración de las bibliotecas necesarias para los diversos elementos
a utilizar en el código, las bibliotecas son:

”Servo.h”: Proporciona herramientas para controlar la posición de un servo motor mediante la


generación de pulsos.

”BluetoothSerial.h”: Proporciona las herramientas requeridas para inicializar, configurar y usar


el módulo Bluetooth de la ESP32.

”Wi − Fi.h”: Proporciona las herramientas requeridas para inicializar, configurar y usar el mó-
dulo Wi-Fi de la ESP32.

”PubSubClient.h”: Proporciona las herramientas requeridas para establecer la conexión con el


servidor WEB mediante el protocoló de comunicación MQTT.

5.5.2. Variables de inicio:


Estas variables son declaradas para inicializar y usar las herramientas proporcionadas por las bi-
bliotecas o que son propias de la ESP32.

Estas variables son:

”Servo servo1”: Es declarada para usar las herramientas de la biblioteca ”Servo.h”.

”Wi − FiClient espClient”: Es declarada para usar las herramientas de la biblioteca ”Wi − Fi.h”.

”PubSubClient client(espClient)”: Es declarada para usar las herramientas de la biblioteca ”PubSubClient.h”.

”BluetoothSerial SerialBT”: Es declarada para usar las herramientas de la biblioteca ”BluetoothSerial.h”.

”uS_TO_S_FACTOR 1000000”: Es declarada para establecer la conversión de microsegundos a


segundos. Esto con el fin de usar el modo de sueño propio de la ESP32.

”TI ME_TO_SLEEP 600”: Se declara para establecer cuanto segundo va a permanecer la ESP32
en modo suspendido, en este caso 600 segundo que equivalen a 10 minutos.

5.5.3. Entradas y Salidas:


Estas variables son declaradas para indicar que puertos de la ESP32 va a ser utilizados para la
captura o envió se señales. Como son puertos de entrada y salida las variables deben ser de tipo ”int”.

Estas variables son:


39

”l_x”: Puerto donde se realiza la lectura del eje X proporcionado por el acelerómetro MMA7361.

”l_y”: Puerto donde se realiza la lectura del eje Y proporcionado por el acelerómetro MMA7361.

”l_z”: Puerto donde se realiza la lectura del eje Z proporcionado por el acelerómetro MMA7361.

”l_v”: Puerto donde se realiza la lectura de la medición de la velocidad del viento proporcionada
por el anemómetro wind sensor rev.P.

”l_t”: Puerto donde se realiza la lectura de la medición de la temperatura ambiente proporcio-


nada por el anemómetro wind sensor rev.P.

”al”: Puerto que suministra la alimentación del acelerómetro MMA7361 para no tener que recu-
rrir a

5.5.4. Variables para la transferencia mediante Wi-Fi


En esta función se declaran los diferentes parámetros que requiere el dispositivo para conectarse
a internet y a su vez al servidor web utilizado como puente para enviar la transferencia de datos en-
tre el dispositivo y el software. Los parámetros que requiere el dispositivo para poder establecer la
conexión mediante el módulo Bluetooth son:

Estas variables son:

”ssid”: Establece el nombre de la red Wi-Fi a la que se puede conectar el dispositivo para tener
acceso al internet.

”password”: Es la clave que requiere el dispositivo para conectarse a la red Wi-Fi disponible.

”mqtt_server”: Establece la URL del servidor web a utilizar.

”mqtt_port”: Establece el puerto por donde se va a realizar la transmisión de los datos.

”mqtt_user”: Establece el usuario para que el dispositivo acceda a la cuenta adecuada del servi-
dor web.

”mqtt_pass”: Es la clave que requiere el dispositivo para conectarse al servidor Web disponible.

”root_topic_subscribe”: Establece el canal por el cual el dispositivo va a recibir los datos del ser-
vidor web. Estos datos se almacenan en el servidor web para que el software pueda adquirirlos.

"”root_topic_publish”: Establece el canal por el cual el dispositivo va a enviar los datos al ser-
vidor web. Estos datos son enviados por el software para mandar instrucciones al dispositivo
como que inicie su funcionamiento, que lo detenga, que modo de muestreo selecciono el usuario
y finalmente que mueva la posición del servomotor.

5.5.5. Variable Globales:


Las variables globales son utilizadas para almacenar diferentes valores que son utilizados en los
procedimientos dentro del código. Debido a que se requiere el manejo de distintos tipos de variables
es necesario la conversión de algunos valores para realizar la transferencia de información mediante
alguno de los módulos Bluetooth o Wi-Fi.
40

5.5.6. Funciones:
En esta sección del código se realiza el llamado a las distintas funciones creadas para proporcionar
una programación orientada objetos, lo que facilita corregir o actualizar el código. Estas funciones son
utilizadas para configurar los módulos, procesar datos, escoger entre el modo de lectura lento y modo
de lectura rápido entre otras cosas, a continuación, se da una breve descripción de cada una de las
funciones:

”dormir”: Esta función es utilizada para poner en estado de suspensión al dispositivo durante
10 minutos.

”en_leds”: Esta función se encarga de encender los leds del dispositivo para indicarle al usuario
que hay conexión con el software, en qué modo de muestreo se encuentra el dispositivo o si está
en estado de suspensión. La función se compone únicamente por instrucciones del tipo ”i f ” y
solo utiliza dos variables globales que son ”estado” para indicar si hay conexión con el software
y ”n_led” para indicar si el dispositivo se encuentra en modo de muestreo lento o rápido.

”callback”: Esta función es usada para que el dispositivo sepa si existe un dispositivo en este
caso un computador queriendo establecer una conexión inalámbrica, si la conexión es estable o
si se perdió la conexión.

”clear_matriz”: Usada para limpiar una matriz donde se almacena la cadena de datos que va a
ser enviada mediante el módulo Wi-Fi o Bluetooth.

”Mododeoperacin”: En esta función se encarga de configurar al dispositivo de acuerdo con las


instrucciones dadas por el usuario en el software. Esta función se compone por las variables
” f uncion” para indicar al dispositivo que inicie o detenga la toma y envió de datos, ”modo”
para indicar al dispositivo que modo de muestreo selecciono el usuario en software, ”mdulo”
para indicar al dispositivo que módulo de transferencia inalámbrica debe usar para enviar los
datos de acuerdo a la selección del usuario en el software, ”ins_dor” para indicar que se requiere
poner al dispositivo en estado de suspensión y finalmente ”dato_seleccion” es usada para indicar
el valor de la posición del servomotor y adicionalmente para indicar si se quiere configurar el
modo, la función o el módulo del dispositivo. La variable ”dato_seleccion” es de tipo entero,
debido a que se facilita el procesamiento de los valores y ahorra el uso de una variable al no
tener que recurrir a variables diferentes una para las instrucciones y otra para el valor de la
posición del servomotor. El valor que toma esta variable es de 0 a 180 para indicar la posición
del servomotor y de 200 a 206 para indicar que se va a configurar el dispositivo.

”enviar_ble”: Esta función es usada para enviar los datos mediante el módulo Bluetooth.

”enviar_Wi − Fi”: En esta ficción se determina si hay una conexión estable con el servidor web
y en caso de que sea así envía los datos mediante el módulo Wi-Fi, en caso contrario hace que el
dispositivo reintente la conexión con el servidor web.

”reconnect”: Esta función es usada cuando no hay una conexión estable entre el dispositivo y el
servidor web, en esta se entra en un bucle donde se envían peticiones por parte del dispositivo
al servidor web para establecer una conexión. El bucle se repite una y otra vez hasta que se
establezca la adecuada conexión entre el dispositivo y el servidor web.

”setup_Wi − Fi”: Esta función es donde se establece la conexión entre el dispositivo y una red
Wi-Fi disponible usando las variables ”ssid” y ”password” al igual que en la funcion ”reconnect”
41

se usa de un bucle para que el dispositivo intente repetidas veces establecer una conexión hasta
lograrlo.
”lectura”: En esta función se realiza la lectura de los valores otorgados por el módulo de ad-
quisición de datos mediante los ADC del dispositivo, también realiza el procesamiento de los
datos para obtener la lectura de las medidas en sus respectivas unidades de acuerdo con las
ecuaciones y finalmente crea la cadena de datos que se va a enviar.

Para la conversión de las medidas del acelerómetro MMA7361 se usa la instrucción ”map"” la
cual se basa en crear una tabla de valores en base a diferentes variables que son: el valor máximo
de entrada, el valor mínimo de entrada, el valor máximo de salida y el valor mínimo de salida.
Para este proyecto se estableció que 3.3 v es el máximo de entrada y corresponde a 500 g que es
el máximo de salida, también se estableció que 0 v corresponde al mínimo de entrada y corres-
ponde a -500 g que es el mínimo de salida. Por otro lado, para la conversión de las unidades de
wind sensor Rev.P se implementa la ecuación. Ambas conversiones se realizan en el código.

Y como última parte de este proceso de captura de los datos se realiza la concatenación de los
datos leídos en una cadena de información para enviarlos en un solo mensaje, esto se realiza
debido a que el tiempo que tarda el software desarrollado en recibir, procesar y graficar los
datos es mayor al tiempo que el tiempo que tarda el dispositivo en leer, procesar y enviar los
datos, con la cadena se almacenan en el dispositivo los datos durante el tiempo que requiere el
software en el procesamiento de los datos evitando así la perdida de información.

5.5.7. Configuración
En esta parte del código de ”set_up”, se declara la configuración de la placa de desarrollo indican-
do la velocidad de transición uart, los módulos que se van a utilizar en este caso el módulo Bluetooth
y Wi-Fi, también si los pines van a ser usados como pines de entrada o salida. Finalmente, el nombre
con el que se va a encontrar el dispositivo cuando se intente establecer una conexión Bluetooth con el
computador.

5.5.8. Loop
Es esta sección del código es donde se realizar el ciclo de repetición infinita dentro del dispositi-
vo, es acá donde se halla el llamado de las funciones de acuerdo con ciertos parámetros que definen
como debe ser el comportamiento del dispositivo. Es decir, si el dispositivo debe estar en modo de
muestreo lento o rápido. También se toma la decisión de acuerdo con estos parámetros si la transfe-
rencia de información debe ser mediante una conexión local (uso del módulo Bluetooth) o mediante
la transferencia de datos a un servidor web (uso del módulo Wi-Fi).

5.6. Desarrollo de software


Para dar cumplimiento al objetivo tres se opta por el desarrollo del software mediante MATLAB,
esto debido a las múltiples herramientas que ofrece para capturar, procesar y graficar los datos, adi-
cionalmente ofrece una herramienta que permite implementar una interfaz gráfica más amigable con
el usuario. Por último, la universidad cuenta con la licencia de Matlab motivo por el cual se puede
usar de forma gratuita para este proyecto. Otro beneficio del uso de Matlab es que cuenta con la herra-
mienta para configurar el módulo Bluetooth del computador, establecer la conexión con el servidor
42

WEB y poder hacer la captura de la información que llega por estos medios. El software desarrollado
en MATLAB tiene la función de capturar, procesar, almacenar y graficar los datos enviados por el
dispositivo inalámbrico de adquisición de datos. Adicional se presenta en este una interfaz gráfica
amigable con el usuario donde puede configurar el dispositivo y visualizar los datos en tiempo real
del comportamiento aerodinámico de la turbina. En la sección de los anexos se encuentra es código
desarrollado para la implementación del software C.

Para el desarrollo del software se inició con la parte de la conexión inalámbrica entre el compu-
tador y el dispositivo, la cual se considera la base fundamental del software, ya que sin esta no tendría
sentido desarrollar el resto de las funciones del software. La configuración básica para establecer la
transferencia de información entre MATLAB mediante el computador y el dispositivo inalámbrico de
adquisición de datos es tomada por la guía ofrecida por MATLAB donde nos ofrece las siguientes
instrucciones [54]:

serialportlist: Se realiza un escaneo para indicar los dispositivos disponibles conectados a un


puerto serial del computador.

serialport: Con esta instrucción se establece la conexión Bluetooth entre el computador y el


dispositivo inalámbrico de adquisición de datos mediante un puerto serial.

configureTerminator: Se establece la terminación de la cadena de datos enviados por el disposi-


tivo inalámbrico de adquisición de datos.

read: Realiza la lectura de un dato transmitido por el dispositivo inalámbrico de adquisición de


datos.

readline: Lee una cadena de datos enviada por el dispositivo inalámbrico de adquisición de
datos.

write: Envía un dato a el dispositivo inalámbrico de adquisición de datos.

writeline: Envía una cadena de datos a el dispositivo inalámbrico de adquisición de datos.

Por otro lado, para el diseño de la aplicación MATLAB cuenta con una herramienta llamada ”APP
Designer” que es un entorno de desarrollo amigable para el desarrollo de aplicaciones. Está aplica-
ción es necesaria para el desarrollo de una interfaz gráfica amigable con el usuario que la use. Se
busca que el dispositivo brinde la mayor comodidad y facilidad, para obtener los datos requeridos
para usar en la caracterización aerodinámica de la turbina eólica, en software de dinámica de fluidos
computacional. La aplicación desarrollada para este proyecto se presenta en la figura 37.
43

F IGURA 37: Pestaña de configuración de la aplicación

La aplicación está compuesta por 4 pestañas, la primera pestaña (Figura 37) es para realizar la
configuración de la conexión entre el computador y el dispositivo inalámbrico de adquisición de
datos, en esta pestaña se realiza el siguiente procedimiento:

1. Dar clic sobre el botón ”Buscar dispositivos” para verificar que se encuentre activo el puerto
establecido para la comunicación por Bluetooth. Luego de dar clic en el botón se puede apreciar
una lista de los puertos activos en el computador en la tabla de la derecha de la aplicación
mostrada en la figura 37).

2. Se debe seleccionar uno de los modos de funcionamiento. Rápido para que el dispositivo ob-
tenga una muestra cada 0.5 ms o lento para que el dispositivo entre en estado de suspensión
durante 10 minutos, tome una muestra y vuelva a entrar en estado de suspensión, esto con el
fin de priorizar la duración de la batería y poder monitorear el comportamiento del objeto de
estudio por días.

3. Una vez identificado el puerto asignado por el computador para el dispositivo se procede a
realizar la conexión con el dispositivo para esto se debe seleccionar el puerto y pulsar el botón
”Conectar con dispositivo Bluetooth”.

4. En el proceso de la conexión con el dispositivo en la ventana inferior derecha se va indicando el


estado de la conexión o si llega a ocurrir un error durante el proceso.

5. Por último, se cuenta con dos leds que indican cuando el dispositivo está conectado cambiando
el color del led nombrado ”Conectado” a verde y el led nombrado ”Desconectado” a blanco, en
caso de que se desconecte el dispositivo el led nombrado ”Conectado” pasa a ser blanco y el led
nombrado ”Desconectado” a rojo.
44

En la segunda y tercera pestaña (figura 38 y figura 39) se ubican las gráficas que están compuesta
por los datos que se obtienen del acelerómetro MMA7361 que son eje y, eje x y eje z en g, adicional en
la tercera pestaña se gráfica el ángulo entre los ejes medidos por el acelerómetro MMA7361. La otra
gráfica nos muestra la velocidad del viento obtenida por el Wind Sensor Rev.P en m/s. Finalmente,
se presenta una grafica donde se muestra la temperatura medida por el Wind Sensor Rev.P enPor
otro lado, se encuentra una barra la cual sirve para indicar la posición del servomotor a la cual se
desea que ubique y un botón ”Enviar posición” para enviarle la posición al dispositivo y que este se
encargue de modificar la posición del servomotor a la posición indicada. Por último, se encuentra un
botón de ”Detener” con el cual se pausa tanto la aplicación como el funcionamiento del dispositivo.

F IGURA 38: Pestaña número 1 de gráficas de la aplicación

F IGURA 39: Pestaña número 2 de gráficas de la aplicación


45

La última pestaña (Figura 40) hay información acerca de cómo establecer la comunicación entre
el computador y el dispositivo inalámbrico de adquisición de datos. También algunas instrucciones
básicas de como operar la aplicación.

F IGURA 40: Pestaña de información de la aplicación

5.6.1. Monitorización en tiempo real


Debido a que el dispositivo cuenta con dos modos o velocidades para capturar los datos, la mo-
nitorización en tiempo real es diferente para cada uno. Para el modo rápido se usa un cronometro en
MATLAB que indica el tiempo que tarda un en recibir cada mensaje, el tiempo es divido en la canti-
dad de muestras que componen el mensaje, finalmente se crea un vector con esos lapsos de tiempo y
se gráfica la unidad medida vs el tiempo que lleva funcionando el dispositivo. Por otro lado para el
modo lento se recibe el mensaje del dispositivo y se toma la fecha y hora del computador mediante
MATLAB, estos datos son llevados a la gráfica obtenido un eje para la magnitud de la variable me-
dida y el tiempo en el que se tomó de acuerdo a la fecha y hora establecidas en el computador, esto
se debe a que las pruebas realizadas con el modo lento van a ser durante varios días por lo cual con
este método se puede evidenciar la fecha y hora en el que ocurren los cambios en el comportamiento
aerodinámico de la turbina.

5.7. Implementación
En la figura 41 se presenta el primer montaje del dispositivo, en este se pude observar en el recua-
dro azul el módulo de adquisición y en el recuadro rojo se observa tanto el módulo de procesamiento
de datos como el módulo de transferencia inalámbrica de datos, debido a que en la ESP32 se imple-
mentan las funciones de ambos módulos. En la figura también se puede observar la conexión directa
entre el módulo de adquisición de datos y el módulo de procesamiento de datos, debido a que la ten-
sión de salida de los sensores que conforman al módulo de adquisición de datos (Wind sensor rev.p
y acelerómetro MMA7361) está en el rango de 0-3,3 V, rango de tensión soportado por el módulo de
46

procesamiento de datos (ESP32), dando la ventaja de poder realizar la conexión directa entre estos sin
tener que recurrir a elementos externos. Por otro lado, como fuente de alimentación del dispositivo
se usó uno de los puertos del computador mediante la conexión por un cable USB, esto debido a que
se requería esta conexión para realizar la programación del dispositivo y al ser una primera versión
se realizan bastantes cambios en el código. Por otro lado, se usó una fuente externa de 12 V, debido a
que está tensión se encuentra entre el rango aceptado para la polarización del el wind sensor Rev.P.

F IGURA 41: Circuito de conexión entre ESP32, el acelerómetro MMA7361 y el wind Sen-
sor rev.P.

Como una segunda versión se optó por eliminar la dependencia del dispositivo al computador,
dejando como única fuente de alimentación la fuente externa de 12 voltios, pero para poder alimentar
los diferentes elementos que componen al dispositivo se implementaron reguladores de tensión, para
así poder suministrar la cantidad adecuada de tensión a cada uno de los elementos.

En la figura 42 se presenta el dispositivo inalámbrico de adquisición de datos para la monitori-


zación del comportamiento aerodinámico de una turbina eólica en tiempo real. De la figura 42 se
pude apreciar en un recuadro azul al módulo de adquisición de datos, en rojo el módulo de procesa-
miento de datos, en verde las fuentes de alimentación, en naranja el módulo de apoyo y en amarillo
los reguladores necesarios para suministrar energía a los elementos del dispositivo para asegurar su
adecuado funcionamiento.
47

F IGURA 42: Dispositivo inalámbrico de adquisición de datos

De la figura 42 se pueden apreciar recuadros de diferentes colores, a continuación, se detalla cada


uno de estos:

Recuadro Azul: En este recuadro se encuentra el módulo de adquisición de datos, compuesto


por el acelerómetro MMA6371 y el sensor de viento Wind Sensor Rev.P.

Recuadro Rojo: Es la placa de desarrollo (ESP32) en la que están montados los módulos de
procesamiento de datos y transferencia inalámbrica de datos.

Recuadro Verde: Están las baterías de litio recargables, estas baterías son colocadas en serie para
poder suplir con la tensión de alimentación de cada uno de los componentes del circuito.

Recuadro Amarillo: Está compuesto por Leds para indicar el comportamiento del dispositivo
durante las pruebas, adiciona se cuenta con 2 reguladores de tensión de referencia L7805, uno
de estos reguladores se ajusta a 3.3 baterías de litio recargable para suministrar la energía la
ESP32 y el otro se ajusta a 5v para alimentar el servomotor.

Recuadro Naranja: Está compuesto por el servomotor implementado para poder modificar el
comportamiento aerodinámico de una turbina, al modificar la posición de generadores de vór-
tice con el movimiento del servomotor.

Como una tercera versión (Figura 42) se cambió la fuente externa por dos baterías de litio, a pesar
de que una sola batería tiene la capacidad de suplir la tensión requerida por el módulo de procesa-
miento de datos se requiere de una segunda para realizar la adecuada alimentación del wind sensor
Rev.P. Por otro lado, como el dispositivo cuenta con reguladores de tensión se usaron las dos baterías
para alimentar también al módulo de procesamiento de datos, esto con el fin de aprovechar por com-
pleto las baterías y aumentar el tiempo que dura activo el dispositivo. Adicionalmente al dispositivo
se le agregaron leds para dar a conocer el comportamiento del dispositivo de la siguiente forma: led
verde para indicar que el dispositivo está en modo de lectura rápido, led amarillo para indicar que
el dispositivo está en modo de lectura lento y un led rojo para indicar que el dispositivo detuvo la
48

adquisición de datos porque así lo indico el usuario desde el software o porque se perdió la conexión
con el computador o el servidor web.

Luego de tener en funcionamiento el dispositivo se procede a realizar el diseño del PCB para redu-
cir el tamaño de este, adicional mejorar la estética del dispositivo. El esquemático donde se muestra
a que va conectado cada uno de los pines de los elementos que componen al dispositivo se presenta
en la figura 43 y en la figura 44 se presenta el esquema de la conexión circuital del dispositivo, donde
los colores de los cables representan los siguiente:

Rojo: Fuente de alimentación (Baterías de litio).

Azul: Señales generadas por los sensores.

Cían: Conexión para colocar las baterías en serie.

Verde: Señal PWM para controlar al servomotor.

Naranja: Señales de control para LEDS.

Amarillo: Señal de alimentación para componentes del dispositivo.

Negro: Tierra.

F IGURA 43: Esquemático de conexión de los componentes.


49

F IGURA 44: Esquemático circuital.

El esquema diseñado para el PCB se muestra en la figura 45. Adicional se realizó el diseño del
esquema del PC en 3D para poder visualizar de mejor manera el diseño final de dispositivo, esto
se puede apreciar en las figuras 46a y 46b. El PCB es necesario para poder acomodar de forma más
eficiente todos los elementos que componen al dispositivo inalámbrico de adquisición de datos.

F IGURA 45: Esquemático diseño de PCB


50

( A ) Cara de frente del ( B ) Cara trasera del PCB


PCB

F IGURA 46: Diseño de PCB para el dispositivo

También se realizó el diseño un ovni de color verde para el empaquetado del dispositivo inalám-
brico, este ovni se realizó mediante el uso de una impresora 3D y el CAD diseñado para poder realizar
la impresión mediante la impresora 3D se presenta en la figura 47. Se presentan dos figuras las cuales
constan del esquema técnico del ovni (Figura 51a) y del modelo esquemático en 3D del ovni (Figura
51b). Este ovni se desarrolla con la idea de no dejar expuesto el dispositivo, para evitar daños del
dispositivo en el transporte. Adicionalmente brinda una mejor estética al proyecto,

( A ) Esque- ( B ) Disposi-
ma técnico tivo dentro
del ovni

F IGURA 47: Modelo esquema 3D


51

Con el diseño del ovni se procede a mostrar el dispositivo completo, es decir el dispositivo dentro
del ovni (Figura 48). En este se nota que sobre sale el wind sensor Rev.P para que nada presente
un obstáculo para el área del hilo caliente y poder capturar los datos de la velocidad del viento. El
dispositivo presentado en la figura es la versión final del este y la versión que se va a utilizar para las
pruebas de funcionamiento.

F IGURA 48: Modelo esquema 3D

Adicional se usó un túnel de viento a escala para poder cumplir con las pruebas de funcionamien-
to del dispositivo, el túnel fue proporcionado por el grupo de investigación GITUD. En la figura 49 se
presenta el esquemático del túnel de viento que se va a utilizar para las pruebas de funcionamiento
del dispositivo.

F IGURA 49: Modelo esquema 3D túnel de viento, suministrado por grupo de investiga-
ción GITUD.
52

6. Resultados
6.1. Pruebas y resultados del dispositivo inalámbrico de adquisición de datos para la
monitorización aerodinámica de una turbina eólica
Para las primeras pruebas del funcionamiento del dispositivo inalámbrico de adquisición de datos
se utiliza el montaje de la figura 50, donde se aprecia que el dispositivo no tiene ninguna conexión
física con el computador. También se puede observar el dispositivo en funcionamiento junto a un
computador donde se tiene instalado el software para la visualización de los datos. En el software se
pueden visualizar la velocidad del viento sobre una gráfica de 2D donde se gráfica la velocidad en
unidades de m/s contra tiempo y las medidas de las vibraciones generadas en el dispositivo a causa
de una perturbación externa, como se capturan los datos de los ejes X, Y y Z, se presentan tres gráficas
en donde se muestran los datos capturados en cada eje contra el tiempo.

F IGURA 50: Dispositivo y aplicación en funcionamiento

Para dar cumplimiento al objetivo cuatro se realiza el montaje presentado en la figura 51, en don-
de se puede apreciar el dispositivo dentro del túnel de viento y estos a su vez se encuentra al lado del
computador donde se tiene instalado del software para visualizar los datos capturados por el dispo-
sitivo. El túnel de viento es necesario para generar una corriente de viento, para así poder evaluar el
funcionamiento de cada uno de los módulos que componen al dispositivo inalámbrico de adquisición
de datos.
53

F IGURA 51: Montaje para pruebas del funcionamiento del dispositivo

Como se puede apreciar en la figura 52, se ubicó una pluma frente al dispositivo, se realizó en
este proyecto para que la corriente de viento tuviera un obstáculo que variase la velocidad de esta,
así poder observar dichas variaciones en el software.

F IGURA 52: Montaje para realizar las pruebas de funcionamiento del dispositivo con
pluma

Los datos adquiridos por el dispositivo inalámbrico de adquisición de datos son presentados de
dos formas distintas dependiendo del modo de muestreo seleccionado. En las figuras 53 y 54, se
puede apreciar las gráficas obtenidas en modo rápido en donde el eje del tiempo inicia en 0 y varía
de acuerdo con el tiempo que esté en funcionamiento el dispositivo.
54

F IGURA 53: Prueba del funcionamiento del dispositivo y la aplicación en el modo rápido.

F IGURA 54: Prueba segunda pestaña del funcionamiento del dispositivo y la aplicación
en el modo rápido.

Por otro lado, al graficar en modo lento (Figuras 55 y 56) se puede apreciar que el eje del tiempo
se encuentra la fecha y hora en la que se toma la muestra.
55

F IGURA 55: Prueba del funcionamiento del dispositivo y la aplicación en el modo lento.

F IGURA 56: Prueba segunda pestaña del funcionamiento del dispositivo y la aplicación
en el modo lento.
56

Gracias al apoyo del grupo de investigación GITUD, de los datos recolectados con el dispositivo
y almacenados por el software se pudo conseguir la simulación del comportamiento aerodinámico
de la pluma, esto se puede observar en la figura 57. La imagen se presenta como evidencia del apoyo
que dan los datos que son obtenidos en conjunto por el dispositivo y el software desarrollados en el
presente proyecto.

F IGURA 57: Ejemplo de simulación mediante CFD de una pluma, suministrada por gru-
po de investigación GITUD.

De las figuras 50, 53 y 55 se puede observar el adecuado funcionamiento de los módulos, ya que
se pude apreciar la visualización de los datos en el software comprobando el buen funcionamiento
del módulo de transferencia inalámbrica de la información, también al haber variación en la señal
se puede verificar el funcionamiento del módulo de adquisición de datos, además de que las señales
no superan los límites indicados por los fabricantes de los sensores. Por último, al estar en funciona-
miento los módulos mencionados se comprueba que está funcionando adecuadamente el módulo de
procesamiento de datos, debido a que es el que se encarga de comunicar a los módulos.

Después de comprobar que se lograr la transferencia inalámbrica de datos entre el computador y


el dispositivo inalámbrico de adquisición de datos, se realiza diferentes pruebas para evaluar su fun-
cionamiento. La primera prueba que se realiza es de la cobertura del dispositivo variando la distancia
entre este y el computador para obtener la distancia a la cual se pierde la conexión, al mismo tiempo
se mide el tiempo de retardo, los resultados de esta prueba se pueden apreciar en la tabla 5.

TABLA 5: Prueba de cobertura del dispositivo inalámbrico de adquisición de datos para


la monitorización del comportamiento aerodinámico de una turbina.

Tiempo asignado/ Tiempo de llegada/ Tiempo de retardo/ Distancia/ Velocidad de transmisión/


Estado de conexión
ms ms ms cm kbps
2 2,2346 0,2346 38 75,181 Estable
2 2,2493 0,2493 90 74,689 Estable
2 2,2652 0,2652 156 74,165 Estable
2 2,2532 0,2532 265 74,560 Estable
2 2,2107 0,2107 410 75,994 Estable
2 2,2299 0,2299 543 75,339 Estable
2 2,2838 0,2838 697 73,561 Estable
2 2,2514 0,2514 851 74,620 Estable
2 2,3855 0,3855 974 70,425 Estable
2 2,2578 0,2578 1087 74,408 Estable
57

De la tabla 5 se puede apreciar que la conexión Bluetooth entre el dispositivo y el computador se


mantienen estables en un rango de 10.87 m.

Luego se realizan pruebas variando la velocidad de transmisión verificando que no haya pérdida
de datos y que la monitorización de los datos en la aplicación se visualice en tiempo real. Los datos
recolectados de esta prueba se pueden observar en la tabla 6.

TABLA 6: Velocidad de transmisión del dispositivo inalámbrico de adquisición de datos


para la monitorización aerodinámica de una turbina eólica.

Tiempo asignado/ Tiempo de llegada/ Velocidad de transmisión/ Tiempo de retardo/ Distancia/


Estado de conexión Estado de Gráficas
ms ms kbps ms cm
5 5,3575 31,357 0,3575 90 Estable Estable
2 2,2493 74,689 0,2493 90 Estable Estable
1 1,2508 134,314 0,2508 90 Estable Estable
0,5 0,8167 205,705 0,3167 90 Pérdida de datos Inestable

Al variar la velocidad de transmisión mediante el tiempo que se asigna para establecer el tiempo
que tarda en enviar datos (Tabla 6), se puede observar que al asignar un tiempo menor a 1 ms la gra-
ficación se vuelve inestable, esto se debe a que MATLAB al tardar tanto adquiriendo los datos entra
en un bucle donde solo realiza la lectura de los datos, pero no realiza el procesamiento ni gráficación.
También al ser tan rápida la transferencia de información se pierden datos debido a que MATLAB no
puede realizar la lectura de todos los mensajes enviados por el dispositivo.

También se cambia la cantidad de datos que se envían por mensaje para probar la sincroniza-
ción de la transferencia de datos entre los dispositivos para asegurar la adecuada conexión evitando
las aglomeraciones de información en el módulo de procesamiento de datos provocando el desbor-
damiento de la pila de memoria y que la placa de desarrollo detenga todas sus funciones hasta ser
reiniciada. Los datos de esta prueba se pueden apreciar en la tabla 7.

TABLA 7: Prueba de estabilidad en la conexión inalámbrica entre el computador y el


dispositivo inalámbrico de adquisición de datos para la monitorización aerodinámica
de una turbina eólica.
Tiempo asignado/ Tiempo de llegada/ Velocidad de transmisión/ Tiempo de retardo/ Distancia/
Cantidad de datos Estado de conexión Estado de Gráficas
ms ms kbps ms cm
2 2,2493 74,689 0,2493 90 5 Estable Estable
1 1,2508 134,314 0,2508 90 20 Estable Estable
1 1,106 151,898 0,106 90 5 Estable Aceptable
0,5 0,8167 205,705 0,3167 90 10 Estable Inestable
0,1 0,7356 228,384 0,6356 90 50 Estable Inestable
0,05 0,7213 232,912 0,6713 90 100 Estable Inestable
0,005 0,7977 210,605 0,7927 90 500 Estable Inestable
0,001 0,7534 222,989 0,7524 90 500 Estable Inestable
0,001 0,727 231,086 0,726 90 100 Pérdida de datos Inestable

De la tabla 7 se puede observar que al aumentar la cantidad de datos se puede mantener estable la
transferencia de información entre el dispositivo y el computador con un periodo de envío menor a 1
ms, aunque la velocidad de transmisión no tiene gran variación debido al tiempo que tarda MATLAB
en realizar la lectura de los datos. Por otro lado, se puede apreciar que, aunque se mantenga una co-
nexión estable entre el dispositivo y el computador las gráficas no se realizan debido al tiempo que
tarda MATLAB en realizar la lectura de los datos.
58

Al enviar una cantidad de datos grande por cada mensaje se aumenta el tiempo que tarda el
dispositivo inalámbrico de adquisición de datos en enviar la información provocando la pérdida de
información cuando MATLAB hace la captura de la información, esto se puede apreciar mejor en la
gráfica de la velocidad del viento debido a que es la variable que tiene una mayor variación se aprecia
cómo pasa de ser una gráfica continua a ser más cuadriculada y con ciertos picos de caída como se
observar en la figura 58

F IGURA 58: Perdida de información en la transferencia inalámbrica de datos.

Las anteriores pruebas fueron realizadas únicamente con el módulo Bluetooth debido a que es el
único que presenta limitación en la distancia. Para el módulo Wi-Fi se realizó una prueba donde se
mide el tiempo de retardo de graficación, esto con el fin de demostrar que se tiene una monitorización
en tiempo real a pesar de que los datos no sean enviados directamente desde el dispositivo al software,
si no que se hace la transferencia por medio de un servidor WEB. La prueba consiste en enviar la
información por medio de una conexión USB y por la conexión inalámbrica mediante el módulo Wi-
Fi, se toma el tiempo medido con un cronómetro que mide desde horas hasta milisegundos. Debido a
que el cambio de la gráfica se realiza en ms, se toma un vídeo de la gráfica para así en un reproductor
de vídeo reducir la velocidad de reproducción, con lo cual se puede tomar los puntos de referencia.
Tomando el tiempo de retardo como el tiempo que tarda el software en mostrar los mismos datos que
se visualizan mediante la conexión directa con cable USB mediante el IDE de Arduino. En la figura 59
se puede apreciar la visualización de los datos en software desarrollado con MATLAB y en el IDE de
Arduino, aparte se puede apreciar el cronómetro que se tiene como referencia para tomar el tiempo
de retardo.
59

F IGURA 59: Prueba del retardo de captura y visualización de datos.

Al realizar la prueba se pudo medir el tiempo que tarda el software en graficar los datos obtenidos
por el dispositivo de adquisición de datos es de 2 segundos, tiempo que para el dispositivo puedes
ser bastante, pero para el ojo humano puede pasar desapercibido. La ventaja de usar como medio de
comunicación un servidor WEB es que en este quedan almacenados los datos enviados por el dispo-
sitivo evitando como en el caso de la comunicación por Bluetooth el dispositivo tenga que almacenar
estos datos. Adicional como los datos quedan almacenados en el servidor WEB el software los puede
tomar de este en cualquier momento evitando la necesidad de una sincronización para la transferen-
cia de los datos entre el dispositivo y el software. Como una gran ventaja de la conexión mediante
Wi-Fi es que no presenta la misma perdida de los datos que con el módulo Bluetooth, esto se debe a
que la información queda almacenada en servidor WEB, por lo que el periodo de envió de los datos
del dispositivo no afecta al periodo de captura de datos por parte del software.

7. Conclusiones
El teorema de Limite de Betz es el más utilizado para realizar la caracterización aerodinámica
de una turbina eólica, donde el parámetro principal a medir por parte del dispositivo es la ve-
locidad del viento, siempre y cuando las pruebas se realicen dentro de un túnel de viento, ya
que se pueden despreciar distintos parámetros como lo son la densidad del aire, considerada
constante, y la ubicación geográfica de la turbina. De acuerdo al teorema del limite de Betz solo
se requiere medir la velocidad del viento. Sin embargo, se tuvo en cuenta la inclinación y vibra-
ción de la turbina eólica, debido a que enriquecen los datos proporcionados a las simulaciones
mediante CFD.

La selección del dispositivo ESP32, dado su reducido tamaño, la disposición del módulo Blue-
tooth y Wi-Fi para la transferencia inalámbrica de datos. y las características técnicas permitie-
ron obtener mejores mediciones, debido a que cuenta con una resolución de 12 bits y una tasa
60

de muestreo de 1000 muestras por segundo, con lo que se obtiene la cantidad de datos adecuada
para ser usados en la simulaciones mediante CFD.

Los protocolos de comunicación implementados para la transferencia inalámbrica de informa-


ción fueron el IEEE 802.15 y el IEEE 802.11. Facilitando su instalación dentro de un túnel de
viento, dada a flexibilidad inalámbrica. Agregando la libertad de conexiones físicas y gracias a
su reducido tamaño, no afectó en la aerodinámica del objeto de estudio, por ende es aceptable
como herramienta de medición para el apoyo de estudios de aerogeneradores.

Para la medición de los parámetros se utilizaron los sensores: acelerómetro (MMA7361) el cual
mide la inclinación y la vibración de la turbina. Y el anemómetro de hilo caliente (wind Sensor
Rev.P) para medir la velocidad del viento. Estos sensores se seleccionaron principalmente a su
tamaño, ya que al tener un dispositivo de reducido tamaño facilita la instalación de este. Cabe
destacar el anemómetro seleccionado, debido a la importancia de medir la velocidad del viento.
El anemómetro de hilo caliente (wind Sensor Rev.P) destaca para el presente proyecto debido
a que cuenta con una resolución de 0.5 m/s, valor adecuado, teniendo en cuenta que para que
una turbina eólica pequeña entre en funcionamiento requiere de una velocidad del viento de 3.5
m/s. Sumado a esto, este sensor cuenta con un rango de medición de 0 a 67 m/s lo que amplia
las áreas de pruebas donde se puede llegar a utilizar el dispositivo.

Para el desarrollo de la interfaz gráfica se utilizo MATLAB, debido a la facilidad que presenta
para obtener los datos capturados por los módulos Bluetooth y Wi-Fi del computador. También
cuenta con una herramienta de nombre .App Desing"la cual permite el desarrollo de una apli-
cación donde se facilita el desarrollo visual, permitiendo que la mayor parte del tiempo que se
dedique programando sea utilizado para el desarrollo de la lógica. Finalmente la mayor ventaja
de esta herramienta es obtener un archivo ejecutable que permite la instalación de la aplicación
en cualquier dispositivo, aun si este no cuenta con MATLAB instalado.

El prototipo tuvo un funcionamiento adecuado para una distancia máxima de 10 metros y con
una tasa de muestro de 200 muestras por segundo, debido a que con esta tasa de muestreo
se presenta una adecuada sincronización entre el dispositivo y el software de visualización.
Registrando así una cantidad elevada de datos para proporcionar un adecuado apoyo a la in-
vestigaciones que realicen simulaciones mediante CFD para la caracterización aerodinámica de
una turbina eólica.

El dispositivo puede proporcionar monitorización de datos en tiempo real, lo que permitió vi-
sualizar el comportamiento aerodinámico del aerogenerador dentro del túnel de viento durante
las pruebas, facilitando así las mediciones necesarias para el estudio. Esto proporciona infor-
mación de calidad para apoyar futuros proyectos enfocados en el diseño de aerogeneradores
aumentando su eficiencia para aprovechar la energía cinética producida por el viento.

El dispositivo no está limitado a monitorizar únicamente el comportamiento aerodinámico de


una turbina, sino que se puede usar para capturar los datos de diferentes objetos en tiempo real,
siempre y cuando las pruebas se realicen dentro de un túnel de viento.
61

8. Bibliografía

[1] ENERLAC, «Mejora, aumento y facilitación del acceso a la educación y capacitación en energía
renovable en América Latina.,» Revista de energía de Latinoamérica y el Caribe., 2020. dirección:
http://enerlac.olade.org/index.php/ENERLAC/article/view/150.
[2] G. Kieffer y Á. L. Peña, «RENEWABLE ENERGY MARKET ANALYSIS LATIN AMERICA.,»
IRENA, 2016. dirección: https://www.irena.org//media/Files/IRENA/Agency/Publication/
2016/IRENA_Market_Analysis_Latin_America_2016.pdf.
[3] M. de Minas y Energıa., «La Transicin Energ´tica de Colombia, Memorias al Congreso.,» [En lí-
nea], dirección: https://www.minenergia.gov.co/documents/10192/24226685/MemoriasCongresoMME-
2020.pdf, (Accedido: 10.04.2022).
[4] CRUDOTRANSPARENTE., «POTENCIAL DE ENERGIAS RENOVABLES EN LA GUAJIRA:
IMPORTANCIA Y DESAFIOS DE LA TRANSICION ENERGETICA.,» [En línea], dirección:
https://crudotransparente.com/2021/04/14/potencial-de-energias-renovables-en-la-
guajira-importancia-y-desafios-de-la-transicion-energetica/, (Accedido: 10.04.2022).
[5] J. C. Avila Herrera, «Análisis y optimizacion aerodinámica del prototipo de turbina eólica tipo
savonius implementado en la facultad tecnológica.,» Proyecto Fin de Carrera/Grado, Dpto.
Ing. Mec, Universidad Distrital Francisco José de Caldas, Bogotá, Colombia, 2018. dirección:
http://hdl.handle.net/11349/7853.
[6] R. S. Calle Bernardo, «Estudio aerodinámico de un aerogenerador de eje vertical mediante el uso
de técnicas CFD.,» Proyecto Fin de Carrera/Grado, Dpto. Ing. Mec., Universidad Politécnica de
Madrid. 2018.
[7] J. A. González, R. C. Pérez, A. C. Santos y M. A. Gil, «CENTRALES DE ENERGÍAS RENO-
VABLES: GENERACIÓN ELÉCTRICA CON ENERGÍAS RENOVABLES.,» PEARSON EDUCA-
CIÓN, S.A, Madrid, España: UNED, Prentice Hall, 2009.
[8] J. M. Amada, «CURSO DE ENERGÍA EÓLICA.,» Departamento de Ingeniería Eléctrica de la Uni-
versidad de Zaragoza, 2009.
[9] IDEAM., «Atlas Interactivo - Vientos - IDEAM.,» 2020, [En línea]. dirección: http :/ /atlas .
ideam.gov.co/visorAtlasVientos.html, (Accedido: 13.04.2021).
[10] R. Lynette, «Investigation of V o Generators for Au of Wind Turbine Performance entation er.,»
1996.
[11] D. Garcia Gonzalez, F. Camacho y R. Martınez, «Caracterización De Un Túnel De Viento De
Bajas Velocidades,» Revista Colombiana de Fısica, vol. 43, n.o 3, pág. 669, 2011. dirección: http:
//fisica.udea.edu.co/ojs/ojs/index.php/rcf/article/view/430325.html.
[12] G. Milich Franco, G. M. Alvarez y Alvarez, L. Chuaire Mauricio, G. Veroli Cesar y R. Wittwer
Adrián, «Diseño y construcción del modelo a escala de un aerogenerador de eje horizontal
para estudios experimentales.,» Ponencia Mendoza, Presentado en la UNNE: Jornadas de Jóvenes
Investigadores AUGM, Mendoza, Argentina. 2018. dirección: https://bdigital.uncu.edu.
ar/fichas.php?idobjeto=12725.
62

[13] U. Mejıa, C. M. Sandra Milena, L. Johanna y col., «Automatización de un túnel de viento para
estudios de comportamiento de vuelo de insectos,» Proyecto Fin de Carrera/Grado, Dpto. Ing.
Elect, Universidad Tecnologica de Pereira, Pereira, Colombia, 2016. dirección: https://hdl.
handle.net/11059/6351.
[14] M. Martınez y M. Ángel, «Caracterización del flujo del túnel de viento de la Universidad de
Quintana Roo.,» Proyecto Fin de Carrera/Grado, Dpto. Ing. Sist. Energía, Universidad de Quin-
tana Roo, Chetumal, Mexico, 2019. dirección: http :/ / risisbi. uqroo . mx/ handle /20 . 500.
12249/2256.
[15] R. Farrarons, «Túneles de viento,» f1aldia., 2010, [En línea]. dirección: https://www.f1aldia.
com/10650/tuneles-de-viento-i/, (Accedido: 13.04.2021).
[16] R. G. Aguilar Quispe, «Mejora de la eficiencia aerodinamica en turbinas eolicas mediante dispo-
sitivos hipersustentadores.,» Tesis de Maestría,Dpto. Ing. Producción y Servicios, Universidad
Nacional de San Agustín de Arequipa, Arequipa, Peru, 2017. dirección: http://repositorio.
unsa.edu.pe/handle/UNSA/4561.
[17] L. BRANZ, «Wind turbine systems,» 2022, [En línea]. dirección: https://www.level.org.nz/
energy/renewable-electricity-generation/wind-turbine-systems/, (Accedido: 25.05.2022).
[18] F. Eraso Checa y E. Escobar Rosero, «Metodología para la determinación de características del
viento y evaluación del potencial de energía eólica en Túquerres-Nariño,» Revista Científica,
vol. 31, n.o 1, págs. 19-31, ene. de 2018. DOI: 10 . 14483 / 23448350 . 12304. dirección: https :
//revistas.udistrital.edu.co/index.php/revcie/article/view/12304.
[19] OMEGA, «Introduccíon a los anemómetros,» [En línea], dirección: https://mx.omega.com/
prodinfo/anemometros.html, (Accedido: 13.04.2021).
[20] S. en Metrología, «Anemómetro de copa portátil, 0.9 a 35.0 m/s, Lutron-ABH4224,» [En línea],
dirección: https://suministrosenmetrologia.com/productos/medidores- de- velocidad-
de- aire/anemometro- de- copa- portatil- 0- 9- a- 35- 0- m- s- lutron- abh4224/, (Accedido:
13.04.2021).
[21] infoAgro.com, «Anemómetros,» [En línea], dirección: https://www.infoagro.com/instrumentos_
medida/doc_anemometro_velocidad_viento.asp?k=80, (Accedido: 13.04.2021).
[22] VAISALA, «Sensor ultrasónico de viento WMT700 WINDCAP,» [En línea], dirección: https:
/ / www . vaisala . com / sites / default / files / documents / WEA - ERG - G - WMT700 - Datasheet -
B210917ES-G-LOW-v2.pdf, (Accedido: 13.04.2021).
[23] M. DEVICE, «Wind Sensor rev P,» [En línea], dirección: https://moderndevice.com/product/
wind-sensor-rev-p/, (Accedido: 15.04.2021).
[24] P. Iberica, «Sensor de dirección del viento PCE-FST-200-202,» [En línea], dirección: https://
www.pce- iberica.es/medidor- detalles- tecnicos/sistemas/sensor- direccion- viento-
pce-fst-200-202.htm, (Accedido: 18.04.2021).
[25] R. Apaza, J. Apaza, L. Dávila, I. Olivares y J. Pariapaza, «El Acelerómetro una Puerta a otros
Avances Tecnológicos y su Aplicación en la Ingenierıa Civil.,» Dpto. Ing. Civil, Universidad Na-
cional de San Agustin, Arequipa, Perú, 2019. dirección: https://www.academia.edu/43597818/
Resumen_Recientemente_el_Monitoreo_de_Fen%7B% 5C%%7DC3%7B%5C%%7DB3menos?auto=
citations&from=cover_page.
[26] T. E. Components, «¿CÓMO FUNCIONA Y QUÉ HACE EL ACELERÓMETRO?,» 2020, [En
línea]. dirección: https://www.tme.com/co/es/news/library-articles/page/22568/Como-
funciona-y-que-hace-el-acelerometro/, (Accedido: 18.04.2021).
63

[27] E. Altamirano-Santillán, G. Vallejo-Vallejo y J. Cruz-Hurtado, «Manipulación de un servomo-


tor con un módulo acelerómetro de 3 ejes MMA 7361 empleando “Arduino” y “Simulink”,»
Dominio de las Ciencias, vol. 3, n.o 2, págs. 1006-1030, 2017, ISSN: 2477-8818. dirección: https:
//www.dominiodelasciencias.com/ojs/index.php/es/article/view/626.
[28] N. E. Daza González, Y. A. Fragozo Liñan y col., «Arreglo de acelerómetros para el estudio bá-
sico de la propagación de ondas mecánicas,» Proyecto Fin de Carrera/Grado, Dpto. Ing. Elect.,
Universidad Pontificia Bolivariana, Bucaramanga, Colombia, 2018. dirección: http : / / hdl .
handle.net/20.500.11912/5408.
[29] S. sensores de media, «Acelerómetro piezoresistivo MEMS amplificado TE 4610,» [En línea],
dirección: https : / / sensores - de - medida . es / catalogo / acelerometro - piezoresistivo -
mems-amplificado-te-4610/, (Accedido: 18.04.2021).
[30] M. D. de Oñate De Toro., «Análisis experimental de la repuesta de un acelerómetro MEMS.,»
Proyecto Fin de Carrera/Grado, Dpto. Ing. Mec, Universidad de Sevilla, Sevilla, España, 2019.
[31] D. A. Pernia-Márquez, «Introducción a la medición de vibración,» Universidad de los Andes. Fa-
cultad de Ingeniería., Mérida, Venezuela, 2004.
[32] KISTLER, «Acelerómetro de uso general K-Shear,» [En línea], dirección: https://www.kistler.
com/en/product/type-8704b/, (Accedido: 18.04.2021).
[33] ARDUINO, «Arduino Uno Rev3,» dirección: https://store.arduino.cc/usa/arduino-uno-
rev3, (Accedido: 19.04.2021).
[34] Cypress, «Arm® Cortex®-M3 PSoC® 5LP de 32 bits,» [En línea], dirección: https : / / www .
cypress.com/products/32-bit-arm-cortex-m3-psoc-5lp, (Accedido: 19.04.2021).
[35] Digilent., «Basys 3 Artix-7 FPGA Trainer Board: Recommended for Introductory Users,» [En
línea], dirección: https : / / store . digilentinc . com / basys - 3 - artix - 7 - fpga - beginner -
board-recommended-for-introductory-users/, (Accedido: 19.04.2021).
[36] P. Bertoleti, «Proyectos com ESP32 y LoRa,» Editora NCB,SAO, BR: Instituto Newton C. Braga,
2019.
[37] Espressif., «ESP32-C3-DevKitC-02,» [En línea], dirección: https : / / docs . espressif . com /
projects / esp - idf / en / latest / esp32c3 / hw - reference / esp32c3 / user - guide - devkitc -
02.html, (Accedido: 19.04.2021).
[38] L. Llamas., «ESP32, EL "HERMANO MAYOR"DEL ESP8266 CON WIFI Y BLUETOOTH,» 2018,
[En línea]. dirección: https://www.luisllamas.es/esp32/, (Accedido: 19.04.2021).
[39] A. Gupta, «The Iot hacker’s handbook: A practical guide to hacking the internet of things.,»
Walnut, CA, USA:Apress, 2019.
[40] U. E. Y. Gómez, Z. J. A. López, R. A. Jimenez, G. V. López y L. J. J. Villalon, «Design and Ma-
nufacturing of Wind Turbine Blades of Low Capacity Using CAD/CAM Techniques and Com-
posite Materials,» Energy Procedia, vol. 57, págs. 682-690, 2014, 2013 ISES Solar World Congress,
ISSN : 1876-6102. DOI : https://doi.org/10.1016/j.egypro.2014.10.223. dirección: https:
//www.sciencedirect.com/science/article/pii/S1876610214015902.
[41] K. M. Khader y O. A. Nada, «Using crank-crank mechanism to reorient flat blades of verti-
cal wind turbine for improving its performance,» Alexandria Engineering Journal, vol. 59, n.o 6,
págs. 4147-4157, 2020, ISSN: 1110-0168. DOI: https://doi.org/10.1016/j.aej.2020.07.020.
dirección: https://www.sciencedirect.com/science/article/pii/S1110016820303458.
64

[42] D. Castañeda Vergara, «Diseño y construcción de un sistema eólico para bombeo basado en un
rotor bioinspirado.,» 2010.
[43] H. Wang, B. Zhang, Q. Qiu y X. Xu, «Flow control on the NREL S809 wind turbine airfoil using
vortex generators,» Energy, vol. 118, págs. 1210-1221, 2017, ISSN: 0360-5442. DOI: https://doi.
org/10.1016/j.energy.2016.11.003. dirección: https://www.sciencedirect.com/science/
article/pii/S0360544216315924.
[44] L. Gao, H. Zhang, Y. Liu y S. Han, «Effects of vortex generators on a blunt trailing-edge airfoil
for wind turbines,» Renewable Energy, vol. 76, págs. 303-311, 2015, ISSN: 0960-1481. DOI: https:
//doi.org/10.1016/j.renene.2014.11.043. dirección: https://www.sciencedirect.com/
science/article/pii/S0960148114007587.
[45] B. Ponitz, A. Schmitz, D. Fischer, H. Bleckmann y C. Brücker, «Diving-Flight Aerodynamics of a
Peregrine Falcon (Falco peregrinus),» PLOS ONE, vol. 9, n.o 2, págs. 1-13, feb. de 2014. DOI: 10.
1371/journal.pone.0086506. dirección: https://doi.org/10.1371/journal.pone.0086506.
[46] T. Sumphaoa, C. Thanachayanontb y T. Seetawana., «Diseño e implementación de un sistema
DAQ de bajo costo para mediciones de propiedades termoeléctricas.,» Procedia Eng., vol. 32,
pp. 614-620, 2012. dirección: https://doi.org/10.1016/j.proeng.2012.01.1317.
[47] A. Z. Zuraida, S. S. Fairuza y M. Risbya., «Diseño conceptual del sistema DAQ inalámbrico
para pruebas de explosión de vehículos .,» Procedia Comput. Sci., vol. 94, pp. 502-509, 2016.
dirección: https://doi.org/10.1016/j.procs.2016.08.078.
[48] P. T. Le, H.-L. Tsai y T. H. Lam., «Un sistema de evaluación y monitoreo de visualización inalám-
brico para módulos fotovoltaicos comerciales únicamente en el entorno MATLAB / Simulink.,»
Sol. Energy, vol. 140, pp. 1-11, Dec, 2016. dirección: https://doi.org/10.1016/j.solener.
2016.10.043.
[49] J. Haro, «MMA7361 Sensor Acelerometro,» Hetpro, 2015, [En línea]. dirección: https://hetpro-
store.com/TUTORIALES/mma7361-sensor-acelerometro/, (Accedido: 20.04.2021).
[50] F. Semiconductor, «±1.5g, ±6g Three Axis Low-g Micromachined Accelerometer.,» MMA7361LC
datasheet, Oct. 2011, dirección: https://www.nxp.com/docs/en/data-sheet/MMA7361LC.pdf,
(Accedido: 20.04.2021).
[51] T. HAREENDRAN, «Medición del Flujo de Aire,» Electro Schematics, 2015, [En línea]. dirección:
https://www.electroschematics.com/measuring-air-flow/, (Accedido: 20.04.2021).
[52] R. Moya y D. Prohasky, «Mini airflow tunnel project,» 2014, [En línea]. dirección: https : / /
miniwindtunnel.wordpress.com/tutorial/, (Accedido: 20.04.2021).
[53] Microcontrollerslab.com., «ESP32 Pinout – How to use GPIO pins?,» [En línea], dirección: https:
//microcontrollerslab.com/esp32-pinout-use-gpio-pins/, (Accedido: 23.04.2021).
[54] MathWorks., «Bluetooth Communication,» [En línea], dirección: https://la.mathworks.com/
help/matlab/bluetooth-communication.html?lang=en, (Accedido: 23.04.2021).
[55] PCE., «PCE ADL 11.,» [En línea], dirección: https://www.pce- instruments.com/colombia/
instrumento - medida / medidor / anemometro - pce - instruments - anem _ metro - pce - adl - 11 -
det_5868722.htm?_list=kat&_listpos=5, (Accedido: 24.04.2021).
[56] ——, «PCE FWS 20N.,» [En línea], dirección: https://www.pce-instruments.com/colombia/
instrumento- medida/medidor/anemometro- pce- instruments- anem_metro- pce- fws- 20n-
det_5876231.htm?_list=kat&_listpos=17, (Accedido: 24.04.2021).
65

[57] ——, «Anemómetro de rueda alada PCE-007.,» [En línea], dirección: https : / / www . pce -
instruments.com/colombia/instrumento-medida/medidor/anemometro-pce-instruments-
anem_metro-de-rueda-alada-pce-007-det_5869354.htm?_list=kat&_listpos=21, (Accedi-
do: 24.04.2021).
[58] ——, «PCE-FWS 20N-1.,» [En línea], dirección: https://www.pce-instruments.com/colombia/
instrumento - medida / medidor / anemometro - pce - instruments - anem _ metro - con - sensor -
externo-pce-fws-20n-1-det_5877412.htm?_list=kat&_listpos=18, (Accedido: 24.04.2021).
[59] Amazon., «BT-100APP.,» [En línea], dirección: https://www.amazon.es/dp/B07V6DJDZ7?tag=
millors0d-21&linkCode=osi&th=1, (Accedido: 24.04.2021).
[60] ——, «AP-007WM.,» [En línea], dirección: https : / / www . amazon . es / dp / B07PHWKYY1 ? tag =
herramientas077-21&linkCode=ogi&th=1&psc=1, (Accedido: 24.04.2021).
[61] BRESSER., «Estación meteorológica 5en1 BRESSER.,» [En línea], dirección: https : / / www .
bresser.de/es/Tiempo/Centro- meteorologico/Estacion- meteorologica- 5en1- BRESSER-
negro.html, (Accedido: 24.04.2021).
[62] testo., «Anemómetro de hilo caliente 405i.,» [En línea], dirección: https://www.testo.com/es-
CO/testo-405-i/p/0560-1405, (Accedido: 24.04.2021).
66

Anexo A

Productos en el mercado

TABLA A.1: Cuadro comparativo de productos en el mercado

Producto Características Precio aproximado Fuente


Rango de velocidad del viento: 1,2 . . . 30 m/s
Resolución: 0,01 m/s
Memoria: 60.000 valores
PCE-ADL 11 Periodo de muestreo mínima: 1 muestra cada 3 s 1.248.667 [55]
Periodo de muestreo máxima: 1 muestra cada 12 h
Dimensiones: 145 x 35 x 30 mm sin copas
Tipo: Alámbrico
Rango de velocidad del viento:0 . . . 50 m/s
Resolución: 0,1 m/s
Rango de temperatura: 0. . . 60 °C
PCE-FWS 20N Periodo de muestreo: 1 muestra cada 48 s 1.082.067 [56]
Dimensiones módulo exterior: 400 x 117 mm
Dimensiones pantalla: 230 x 150 mm
Tipo: Inalámbrico
Rango de velocidad del viento: 0,3 . . . 45 m/s
Resolución: 0,01 m/s
Rango de temperatura: 0. . . 45 °C
Anemómetro de
Memoria: 2.000 valores 2.048.347 [57]
rueda alada PCE-007
Periodo de muestreo: 1 muestra cada 1 s
Dimensiones: 66 x 132 x 29.5 mm
Tipo: Alámbrico
Rango de velocidad del viento:0 . . . 50 m/s
Resolución: 0,1 m/s
Rango de temperatura: 0. . . 60 °C
PCE-FWS 20N-1 Periodo de muestreo: 1 muestra cada 48 s 1.390.277 [58]
Dimensiones módulo exterior: 400 x 117 mm
Dimensiones pantalla: 230 x 150 mm
Tipo: Inalámbrico
Rango de velocidad del viento:0,3 . . . 30 m/s
Resolución: 0,1 m/s Rango de temperatura: -10. . . 45 °C
BT-100APP Periodo de muestreo: 1 muestra cada 1 s 182.639 [59]
Dimensiones: 18.8 x 11.7 x 5.5 cm
Tipo: Inalámbrico
Rango de velocidad del viento:0,3 . . . 30 m/s
Rango de temperatura: -10. . . 45 °C
AP-007WM Periodo de muestreo: 1 muestra cada 1 s 178.185 [60]
Dimensiones: 16.5 x 8.5 x 3.8 cm
Tipo: Inalámbrico
Rango de velocidad del viento:3 . . . 50 m/s
Estación meteorológica Rango de temperatura: -40. . . 80 °C
574.646 [61]
5en1 BRESSER Dimensiones: 136 x 344 x 394 cm
Tipo: Inalámbrico
Rango de velocidad del viento:0 . . . 30 m/s
Resolución: 0,01 m/s
Anemómetro de
Rango de temperatura: -20. . . 60 °C 756.401 [62]
hilo caliente 405i
Dimensiones: 200 x 30 x 41 mm
Tipo: Inalámbrico
67

Anexo B

Código del dispositivo

//**************************************
//*********** BIBLIOTECAS **************
//**************************************
#include <Servo.h>
#define uS_TO_S_FACTOR 1000000 /* Conversion factor for micro seconds to seconds */
#define TIME_TO_SLEEP 600 /* Time ESP32 will go to sleep (in seconds) */
#include "BluetoothSerial.h"
#include <Wi-Fi.h>
#include <PubSubClient.h>

//**************************************
//*********** VARIABLES DE INICIO ******
//**************************************
Servo servo1;
Wi-FiClient espClient;
PubSubClient client(espClient);
BluetoothSerial SerialBT;

//**************************************
//*********** ENTRADAS Y SALIDAS *******
//**************************************
static const int servoPin = 21;
int lecturax=35;
int lecturay=34;
int lecturaz=39;
int lecturav=32;
int lecturat=33;
int al=5;
int dis_in=13;
int dis_ac=14;
int dis_sleep=26;

//**************************************
//*********** VARIABLES GLOBALES *******
68

//**************************************
static const int servoPin = 21;
int x=0,y=0,z=0,v=0,t=0;
int t_espera=2;
int cont=0;
int pwm_in=0,pwm=0;
int muestras=0;
String enable_Modo="";
int Numero_datos=1;
int val_contador,val_x,val_y,val_z,val_t,val_v;
char datos[500]="";
char dhtDataString[64];
int funcion=0;
int modo=0;
int modulo=0;
int ins_dor=0;
int LED=0;
int estado=0;
int muestras=0;

//**************************************
//****** CONFIGURACION BLUETOOTH *******
//**************************************
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run ‘make menuconfig‘ to and enable it
#endif

//**************************************
//*********** MQTT CONFIG **************
//**************************************
const char *mqtt_server = "ioticos.org";
const int mqtt_port = 1883;
const char *mqtt_user = "UYHF2HJvQHJStVu";
const char *mqtt_pass = "CQsPBpOxlaILKlI";
const char *root_topic_subscribe = "XgHFWJmFfdnZ5QU/input";
const char *root_topic_publish = "XgHFWJmFfdnZ5QU/output";

//**************************************
//*********** Wi-FiCONFIG ***************
//**************************************
const char* ssid = "CASTRO CASALLAS";
const char* password = "19971996";

//**************************************
//*********** FUNCIONES ****************
//**************************************
69

void dormir();
void clear_matriz();
void seleccion(String dato_seleccion);
void enviar_ble();
void enviar_Wi-Fi();
void callback(char* topic, byte* payload, unsigned int length);
void reconnect();
void setup_Wi-Fi();
void lectura();
void dormir();
void en_leds();

void callback_b(esp_spp_cb_event_t event, esp_spp_cb_param_t *param){


if(event == ESP_SPP_SRV_OPEN_EVT){
Serial.println("Client Connected");
}

if(event == ESP_SPP_CLOSE_EVT ){
Serial.println("Client disconnected");
}
}

//**************************************
//*********** CONFIGURACION ************
//**************************************
void setup() {
Serial.begin(115200);
setup_Wi-Fi();
client.setServer(mqtt_server, mqtt_port);
client.setCallback(callback);
SerialBT.begin("DIAD");
Serial.println("Dispositivo listo");
SerialBT.register_callback(callback_b);
pinMode(al,OUTPUT);
pinMode(dis_in,OUTPUT);
pinMode(dis_ac,OUTPUT);
pinMode(dis_sleep,OUTPUT);
servo1.attach(servoPin);
pinMode(l_x,INPUT);
pinMode(l_y,INPUT);
pinMode(l_z,INPUT);
pinMode(l_v,INPUT);
pinMode(l_t,INPUT);
digitalWrite(al,HIGH);
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
}
70

//**************************************
//******** BUCLE INFINITO **************
//**************************************
void loop() {
if (SerialBT.available()) {
seleccion(String(SerialBT.read()).toInt());
}
if(funcion==2){
if(modo==3){
lectura();
delay(t_espera);
muestras++;
if(muestras>Numero_datos){
muestras=0;
if(modulo==5){enviar_ble();}
if(modulo==6){enviar_Wi-Fi();}
clear_matriz();
}
}
if(modo==4){
lectura();
delay(1000);
if(modulo==5){enviar_ble();}
if(modulo==6){enviar_Wi-Fi();}
clear_matriz();
if(ins_dor==7){dormir();}
}
}
}

//*****************************
//*** CONEXION Wi-Fi ***
//*****************************
void setup_Wi-Fi(){
delay(10);
// Nos conectamos a nuestra red Wi-Fi
Serial.println();
Serial.print("Conectando a ssid: ");
Serial.println(ssid);

Wi-Fi.begin(ssid, password);

while (Wi-Fi.status() != WL_CONNECTED) {


delay(500);
Serial.print(".");

}
71

Serial.println("");
Serial.println("Conectado a red Wi-Fi!");
Serial.println("Dirección IP: ");
Serial.println(Wi-Fi.localIP());
}

//*****************************
//*** CONEXION MQTT ***
//*****************************

void reconnect() {

while (!client.connected()) {
Serial.print("Intentando conexión Mqtt...");
// Creamos un cliente ID
String clientId = "IOTICOS_H_W_";
clientId += String(random(0xffff), HEX);
// Intentamos conectar
if (client.connect(clientId.c_str(),mqtt_user,mqtt_pass)) {
Serial.println("Conectado!");
// Nos suscribimos
if(client.subscribe(root_topic_subscribe)){
Serial.println("Suscripcion ok");
}else{
Serial.println("fallo Suscripciión");
}
} else {
Serial.print("falló :( con error -> ");
Serial.print(client.state());
Serial.println(" Intentamos de nuevo en 5 segundos");
delay(5000);
}
}
}

//*****************************
//*** CALLBACK ***
//*****************************

void callback(char* topic, byte* payload, unsigned int length){


String incoming = "";
Serial.print("Mensaje recibido desde -> ");
Serial.print(topic);
Serial.println("");
72

for (int i = 0; i < length; i++) {


incoming += (char)payload[i];
}
incoming.trim();
Serial.println("Mensaje -> " + incoming);
seleccion(incoming);
}

//*****************************
//*** MODO DE OPERACION *******
//*****************************
void seleccion(int dato_seleccion){

if(dato_seleccion==200){funcion=1;}
if(dato_seleccion==201){funcion=2;}
if(dato_seleccion==202){modo=3;
Serial.println("Modo rapido");}
if(dato_seleccion==203){modo=4;
Serial.println("Modo lento");}
if(dato_seleccion==204){modulo=5;
Numero_datos=100;
t_espera=5;
}
if(dato_seleccion==205){modulo=6;
Numero_datos=20;
t_espera=15;
}
if(dato_seleccion==206){ins_dor=7;}
Serial.print("funcion:");
Serial.print(funcion);
Serial.print(", modo:");
Serial.print(modo);
Serial.print(", modulo:");
Serial.println(modulo);
pwm_in=String(dato_seleccion).toInt();
if(pwm_in>=0 && pwm_in<=180){
pwm=pwm_in;
Serial.print("Posicion del motor: ");
Serial.println(pwm);
servo1.write(pwm);
}
}

//*****************************
//*** LECTURA DE SENSORES *****
//*****************************
void lectura(){
73

x=analogRead(l_x);
y=analogRead(l_y);
z=analogRead(l_z);
v=analogRead(l_v);
t=analogRead(l_t);

//val_x= map(x, 0, 4095, -500, 500);


cont++;
//Serial.println(cont);
if(cont>9999){
cont=1000;
}
val_x=cont;
val_y= map(y, 0, 4095, -500, 500);
val_z= map(z, 0, 4095, -500, 500);
val_t=((t*3.3/4095)-0.400)/0.0195;
if(((v*3.3/4095)-1.3692)>=0){
val_v=10*(pow(((((v*3.3/4095)-1.3692)/(3.038517*(pow(val_t,0.115157))))/0.087288),3.009364));
}else{
val_v=0;
}

//Serial.print(val_x);
//Serial.println(",");

sprintf(dhtDataString,"%d,%d,%d,%d,%d;",val_x,val_y,val_z,val_v,val_t);
strcat(datos,dhtDataString);
}

//*****************************
//*** ENVIAR DATOS POR BLE ****
//*****************************
void enviar_ble(){
SerialBT.println(datos);
}

//*****************************
//** LIMPIAR MATRIZ A ENVIAR **
//*****************************
void clear_matriz(){
for( int i = 0; i < sizeof(datos); ++i ){
datos[i] = (char)0;
}
}

//*****************************
//*** ENVIAR DATOS POR Wi-Fi ***
74

//*****************************
void enviar_Wi-Fi(){
if (!client.connected()) {
reconnect();
}
if (client.connected()){
client.publish(root_topic_publish,datos);
}
client.loop();
}

//*****************************
//*** PONER A DORMIR ESP32 ****
//*****************************
void dormir(){
Serial.println("Going to sleep now");
digitalWrite(dis_in,HIGH);
digitalWrite(dis_ac,HIGH);
digitalWrite(dis_sleep,HIGH);
delay(1000);
Serial.flush();
digitalWrite(dis_in,LOW);
digitalWrite(dis_ac,LOW);
digitalWrite(dis_sleep,LOW);
Serial.flush();
esp_deep_sleep_start();
Serial.println("This will never be printed");
}

//*****************************
//*** ENCENDER LEDS ***********
//*****************************
void en_leds(){
int n_led=LED;
if(estado==1){
if(n_led==1){
digitalWrite(dis_in,HIGH);
}
if(n_led==2){
digitalWrite(dis_ac,HIGH);
}
if(n_led==3){
digitalWrite(dis_sleep,HIGH);
}
}
if(estado==0){
if(n_led==1){
75

digitalWrite(dis_in,LOW);
}
if(n_led==2){
digitalWrite(dis_ac,LOW);
}
if(n_led==3){
digitalWrite(dis_sleep,LOW);
}
}
estado=1-estado;
//Serial.print(estado);
}

Anexo C

Código del software

classdef Wi-Fi_Bluetooth < matlab.apps.AppBase

% Properties that correspond to app components


properties (Access = public)
NONITORIZACIONAERODINAMICAUIFigure matlab.ui.Figure
TabGroup matlab.ui.container.TabGroup
ConfiguracionTab matlab.ui.container.Tab
Image_2 matlab.ui.control.Image
Image matlab.ui.control.Image
CONFIGURACIONDECONEXIONCONELDISPOSITIVOLabel matlab.ui.control.Label
MODODEMUESTREOLabel matlab.ui.control.Label
ConectarseadispositivoBluetoohtButton matlab.ui.control.Button
BuscardispositivosBluetoothButton matlab.ui.control.Button
TABLE matlab.ui.control.Table
LISTADEDISPOSITIVOSBLUETOOTHLabel matlab.ui.control.Label
ConectadoLabel matlab.ui.control.Label
ConectadoLamp matlab.ui.control.Lamp
DesconectadoLampLabel matlab.ui.control.Label
DesconectadoLamp matlab.ui.control.Lamp
TextArea matlab.ui.control.TextArea
PuertoDropDownLabel matlab.ui.control.Label
PuertoDropDown matlab.ui.control.DropDown
RapidoButton matlab.ui.control.StateButton
76

LentoButton matlab.ui.control.StateButton
ESTADODELDISPOSITIVOLabel matlab.ui.control.Label
GraficasTab matlab.ui.container.Tab
POSICIONDELSERVOMOTORLabel matlab.ui.control.Label
PWM matlab.ui.control.Slider
Image2 matlab.ui.control.Image
Image2_2 matlab.ui.control.Image
ENVIARPOSICION matlab.ui.control.Button
DETENER matlab.ui.control.Button
LampLabel matlab.ui.control.Label
Lamp matlab.ui.control.Lamp
EJE_Z matlab.ui.control.UIAxes
EJE_Y matlab.ui.control.UIAxes
EJE_X matlab.ui.control.UIAxes
VEL matlab.ui.control.UIAxes
Angulo matlab.ui.container.Tab
Image2_3 matlab.ui.control.Image
Image2_4 matlab.ui.control.Image
EJE_Z_2 matlab.ui.control.UIAxes
EJE_Y_2 matlab.ui.control.UIAxes
EJE_X_2 matlab.ui.control.UIAxes
VEL_2 matlab.ui.control.UIAxes
InformacinTab matlab.ui.container.Tab
Label matlab.ui.control.Label
end

properties (Access = public)


% Description
esp32
enable_graficas=0;
prueba
tabla_dispositivos
modulo_selecionado
modo_muestreo="";
enable_dispositivo
end

properties (Access = private)


Property7 % Description
end

methods (Access = public)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% CONEXION %%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
77

function Puerto(app)
app.esp32=nan;
app.TextArea.Value="Estableciendo conexion";
pause(0.2);
if(app.modo_muestreo=="rapido")
app.esp32=serialport(app.PuertoDropDown.Value,230400,"Timeout",5);
app.TextArea.Value="Modo rapido";
write(app.esp32,210,"uint8");
end
if(app.modo_muestreo=="lento")
app.esp32=serialport(app.PuertoDropDown.Value,230400,"Timeout",300);
app.TextArea.Value="Modo lento";
write(app.esp32,220,"uint8");
end
app.TextArea.Value="Conectado";
app.enable_dispositivo=1;
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% TABLA DE DISPOSITIVOS %%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function tabla(app)
clear TABLA;
clear app.TABLE.Data;
app.tabla_dispositivos=serialportlist;
app.TABLE.Data=app.tabla_dispositivos’;
app.PuertoDropDown.Items=app.tabla_dispositivos’;
if(size(app.PuertoDropDown.Items)==0)
app.ConectarseadispositivoBluetoohtButton.Enable="off";
end
if(size(app.PuertoDropDown.Items)>0)
app.ConectarseadispositivoBluetoohtButton.Enable="on";
end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% MODO RAPIDO %%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function modo_rapido(app)
o=0;
t_gra=0;
pos_gra=1;
xant=0;
xfant=0;
yant=0;
yfant=0;
zant=0;
78

zfant=0;
vant=0;
vfant=0;
tant=0;
tfant=0;
app.enable_dispositivo=0;
app.enable_graficas=0;
Xmax=5;
enable_lec=0;
datos=zeros(10);
cla(app.EJE_X);
cla(app.EJE_Y);
cla(app.EJE_Z);
cla(app.VEL);
cla(app.EJE_X_2);
cla(app.EJE_Y_2);
cla(app.EJE_Z_2);
cla(app.VEL_2);
fig1=plot(app.EJE_X, nan, nan);
fig2=plot(app.EJE_Y, nan, nan);
fig3=plot(app.EJE_Z, nan, nan);
fig4=plot(app.VEL, nan, nan);
fig5=plot(app.EJE_X_2, nan, nan);
fig6=plot(app.EJE_Y_2, nan, nan);
fig7=plot(app.EJE_Z_2, nan, nan);
fig8=plot(app.VEL_2, nan, nan);
set(fig1,’Ydata’,nan,’Xdata’,nan);
set(fig2,’Ydata’,nan,’Xdata’,nan);
set(fig3,’Ydata’,nan,’Xdata’,nan);
set(fig4,’Ydata’,nan,’Xdata’,nan);
set(fig5,’Ydata’,nan,’Xdata’,nan);
set(fig6,’Ydata’,nan,’Xdata’,nan);
set(fig7,’Ydata’,nan,’Xdata’,nan);
set(fig8,’Ydata’,nan,’Xdata’,nan);

app.EJE_X.XLim = [0 5];
app.EJE_Y.XLim = [0 5];
app.VEL.XLim = [0 5];
app.EJE_Z.XLim = [0 5];

Puerto(app);
write(app.esp32,190,"uint8");
tIni=tic;

while(app.enable_graficas==0)
%TT=tic;
79

if(app.enable_graficas==0)
datos_in=readline(app.esp32);
end

if(size(datos_in)==0)
enable_lec=0;
app.TextArea.Value="Error, no hay tansferencia de datos, revisar el puerto s
end

if(size(datos_in)>0)
enable_lec=1;
app.TextArea.Value="Transferencia de datos";
datos=datos_in;
end

if(enable_lec==1)
app.Lamp.Color=[0 1 0];
app.ConectadoLamp.Color=[0.00 1.00 0.00];
app.DesconectadoLamp.Color=[1.00 1.00 1.00];

C=strsplit(datos,’;’);
for i=1:1:(length(C)-1)
d=str2double(strsplit(C(i),’,’));
pos_data=o+i;
cuenta(pos_data)=d(1);
d(1)
eje_X(pos_data)=0.006263*xant+0.9937*xfant;
xant=d(1);
xfant=eje_X(pos_data);
eje_Y(pos_data)=0.006263*yant+0.9937*yfant;
yant=d(2);
yfant=eje_Y(pos_data);
eje_Z(pos_data)=0.006263*zant+0.9937*zfant;
zant=d(3);
zfant=eje_Z(pos_data);
Velocidad(pos_data)=0.006263*vant+0.9937*vfant;
vant=d(4)*0.044704;
vfant=Velocidad(pos_data);
temp(pos_data)=0.006263*tant+0.9937*tfant;
tant=d(5);
tfant=temp(pos_data);
an_xz=atan(eje_X(pos_data)/eje_Z(pos_data));
angle_XZ(pos_data)=an_xz*(57.2958);
an_yz=atan(eje_Y(pos_data)/eje_Z(pos_data));
angle_YZ(pos_data)=an_yz*(57.2958);
end
o=pos_data;
80

tEnd=toc(tIni);
tiempo=linspace(t_gra,tEnd,length(eje_X(pos_gra:o)));
% plot(app.EJE_X,tiempo,eje_X(pos_gra:o));
% plot(app.EJE_Y,tiempo,eje_Y(pos_gra:o));
% plot(app.EJE_Z,tiempo,eje_Z(pos_gra:o));
% plot(app.VEL,tiempo,Velocidad(pos_gra:o));
set(fig1,’Ydata’,eje_X(pos_gra:o),’Xdata’,tiempo);
set(fig2,’Ydata’,eje_Y(pos_gra:o),’Xdata’,tiempo);
set(fig3,’Ydata’,eje_Z(pos_gra:o),’Xdata’,tiempo);
set(fig4,’Ydata’,Velocidad(pos_gra:o),’Xdata’,tiempo);
set(fig5,’Ydata’,angle_XZ(pos_gra:o),’Xdata’,tiempo);
set(fig6,’Ydata’,angle_YZ(pos_gra:o),’Xdata’,tiempo);
set(fig7,’Ydata’,temp(pos_gra:o),’Xdata’,tiempo);
set(fig8,’Ydata’,Velocidad(pos_gra:o),’Xdata’,tiempo);

% pause(0.001);

if(tEnd>=Xmax)
pos_gra=o;
t_gra=tEnd;
Xmin=tEnd;
Xmax=tEnd+5;
app.EJE_X.XLim = [Xmin Xmax];
app.EJE_Y.XLim = [Xmin Xmax];
app.VEL.XLim = [Xmin Xmax];
app.EJE_Z.XLim = [Xmin Xmax];
app.EJE_X_2.XLim = [Xmin Xmax];
app.EJE_Y_2.XLim = [Xmin Xmax];
app.VEL_2.XLim = [Xmin Xmax];
app.EJE_Z_2.XLim = [Xmin Xmax];
end
%toc(TT);
end
if(enable_lec==0)
pause(0.1);
end
end
tiempo=linspace(0,tEnd,length(eje_X));
set(fig1,’Ydata’,nan,’Xdata’,nan);
set(fig2,’Ydata’,nan,’Xdata’,nan);
set(fig3,’Ydata’,nan,’Xdata’,nan);
set(fig4,’Ydata’,nan,’Xdata’,nan);
set(fig5,’Ydata’,nan,’Xdata’,nan);
set(fig6,’Ydata’,nan,’Xdata’,nan);
set(fig7,’Ydata’,nan,’Xdata’,nan);
81

set(fig8,’Ydata’,nan,’Xdata’,nan);
pause(0.1);
plot(app.EJE_X,tiempo,eje_X);
plot(app.EJE_Y,tiempo,eje_Y);
plot(app.EJE_Z,tiempo,eje_Z);
plot(app.VEL,tiempo,Velocidad);
plot(app.EJE_X_2,tiempo,angle_XZ);
plot(app.EJE_Y_2,tiempo,angle_YZ);
plot(app.EJE_Z_2,tiempo,temp);
plot(app.VEL_2,tiempo,Velocidad);
filename=’Datos ’+string(datetime(’now’,’TimeZone’,’local’,’Format’,’d-MMM-y HH;mm;s
data(:,1)=eje_X;
data(:,2)=eje_Y;
data(:,3)=eje_Z;
data(:,4)=Velocidad;
data(:,5)=temp;
data(:,6)=tiempo;
data(:,7)=cuenta;

T = array2table(data);
T.Properties.VariableNames(1:7)={’Eje X’,’Eje Y’,’Eje Z’,’Velocidad’,’Temperatura’,’
writetable(T,filename)
app.ConectadoLamp.Color=[1.00 1.00 1.00];
app.DesconectadoLamp.Color=[1.00 0.00 0.00];
app.TextArea.Value="Desconesctado";
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% MODO LENTO %%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function modo_lento(app)
app.ConectadoLamp.Color=[1 1 1];
o=0;
cla(app.EJE_X);
cla(app.EJE_Y);
cla(app.EJE_Z);
cla(app.VEL);
cla(app.EJE_X_2);
cla(app.EJE_Y_2);
cla(app.EJE_Z_2);
cla(app.VEL_2);
app.enable_dispositivo=0;
app.enable_graficas=0;
Puerto(app);
write(app.esp32,190,"uint8");
while(app.enable_graficas==0)
82

datos=readline(app.esp32);
if(size(datos)==0)
app.TextArea.Value="Error, no hay tansferencia de datos, revisar el puerto sele
end

if(size(datos)>0)
app.Lamp.Color=[1 1 0];
app.ConectadoLamp.Color=[0.00 1.00 0.00];
app.DesconectadoLamp.Color=[1.00 1.00 1.00];

C=strsplit(datos,’;’);
for i=1:1:(length(C)-1)
d=str2double(strsplit(C(i),’,’));
pos_data=(o+i);
eje_X(pos_data)=d(1);
eje_Y(pos_data)=d(2);
eje_Z(pos_data)=d(3);
Velocidad(pos_data)=d(4)*0.044704;
temp(pos_data)=d(5);
an_xz=atan(eje_X(pos_data)/eje_Z(pos_data));
angle_XZ(pos_data)=an_xz*(57.2958);
an_yz=atan(eje_Y(pos_data)/eje_Z(pos_data));
angle_YZ(pos_data)=an_yz*(57.2958);
tiempo(pos_data)=datetime(’now’);
an(pos_data)=tiempo.Year(pos_data);
mes(pos_data)=tiempo.Month(pos_data);
dia(pos_data)=tiempo.Day(pos_data);
hora(pos_data)=tiempo.Hour(pos_data);
minuto(pos_data)=tiempo.Minute(pos_data);
segundo(pos_data)=tiempo.Second(pos_data);
end

o=pos_data;

plot(app.EJE_X,tiempo,eje_X);
plot(app.EJE_Y,tiempo,eje_Y);
plot(app.EJE_Z,tiempo,eje_Z);
plot(app.VEL,tiempo,Velocidad);
plot(app.EJE_X_2,tiempo,angle_XZ);
plot(app.EJE_Y_2,tiempo,angle_YZ);
plot(app.EJE_Z_2,tiempo,temp);
plot(app.VEL_2,tiempo,Velocidad);

write(app.esp32,230,"uint8");

app.Lamp.Color=[1 1 1];
app.esp32=nan;
83

app.Lamp.Color=[0.49 0.18 0.56];


cont_pause=0;
while(cont_pause<602 && app.enable_graficas==0)
app.TextArea.Value="En espera";
pause(1);
cont_pause=cont_pause+1;
end
app.Lamp.Color=[1.00 1.00 0.07];
if(app.enable_graficas==0)
app.TextArea.Value="Despertar";
app.modo_muestreo="lento";
Puerto(app);
write(app.esp32,190,"uint8");
end
end
end
filename=’Datos ’+string(datetime(’now’,’TimeZone’,’local’,’Format’,’d-MMM-y HH;mm;s
data(:,1)=eje_X;
data(:,2)=eje_Y;
data(:,3)=eje_Z;
data(:,4)=Velocidad;
data(:,5)=temp;
data(:,6)=an;
data(:,7)=mes;
data(:,8)=dia;
data(:,9)=hora;
data(:,10)=minuto;
data(:,11)=segundo;
T = array2table(data);
T.Properties.VariableNames(1:11)={’Eje X’,’Eje Y’,’Eje Z’,’Velocidad’,’Temperatura’,
writetable(T,filename)
app.ConectadoLamp.Color=[1.00 1.00 1.00];
app.DesconectadoLamp.Color=[1.00 0.00 0.00];
app.TextArea.Value="Desconesctado";
end
end

methods (Access = private)

function serial_error(app)
app.TextArea.Value="Puerto No Reconocido";
end
end

% Callbacks that handle component events


methods (Access = private)
84

% Button pushed function: BuscardispositivosBluetoothButton


function BuscardispositivosBluetoothButtonPushed(app, event)
tabla(app);
end

% Button pushed function:


% ConectarseadispositivoBluetoohtButton
function ConectarseadispositivoBluetoohtButtonPushed(app, event)
while(app.modo_muestreo=="")
app.TextArea.Value="Esperando seleccion de modo";
pause(0.1);
end
if(app.modo_muestreo=="rapido")
modo_rapido(app);
end
if(app.modo_muestreo=="lento")
modo_lento(app);
end
end

% Button pushed function: ENVIARPOSICION


function ENVIARPOSICIONButtonPushed(app, event)
pwm=app.PWM.Value;
if(pwm<=180 && pwm>=0)
valor_pwm=pwm;
write(app.esp32,valor_pwm,"uint8");
end
end

% Button pushed function: DETENER


function DETENERButtonPushed(app, event)
app.TextArea.Value="Desconesctado";
app.enable_graficas=1;
app.TextArea.Value="";
app.enable_dispositivo=0;
app.RapidoButton.Value=0;
app.LentoButton.Value=0;
app.RapidoButton.Enable="on";
app.LentoButton.Enable="on";
if(app.modo_muestreo=="rapido")
write(app.esp32,200,"uint8");
end
app.esp32=nan;
app.modo_muestreo="";
for i=1:1:5
app.ConectadoLamp.Color=[1.00 1.00 1.00];
85

app.DesconectadoLamp.Color=[1.00 0.00 0.00];


app.TextArea.Value="Desconesctado_2";
pause(0.1);
end
end

% Value changed function: RapidoButton


function RapidoButtonValueChanged(app, event)
value = app.RapidoButton.Value;
mensaje="rapido";
app.modo_muestreo=mensaje;
if(value==1)
app.LentoButton.Value=0;
app.LentoButton.Enable="off";
end
if(value==0)
app.LentoButton.Enable="on";
end
if(value==0 && app.LentoButton.Value==0)
app.modo_muestreo="";
end
end

% Value changed function: LentoButton


function LentoButtonValueChanged(app, event)
value = app.LentoButton.Value;
mensaje="lento";
app.modo_muestreo=mensaje;
if(value==1)
app.RapidoButton.Value=0;
app.RapidoButton.Enable="off";
end
if(value==0)
app.RapidoButton.Enable="on";
end
if(value==0 && app.RapidoButton.Value==0)
app.modo_muestreo="";
end
end
end

% Component initialization
methods (Access = private)

% Create UIFigure and components


function createComponents(app)
86

% Create NONITORIZACIONAERODINAMICAUIFigure and hide until all components are created


app.NONITORIZACIONAERODINAMICAUIFigure = uifigure(’Visible’, ’off’);
app.NONITORIZACIONAERODINAMICAUIFigure.Color = [0.9412 0.9412 0.9412];
app.NONITORIZACIONAERODINAMICAUIFigure.Colormap = [0.2431 0.149 0.6588;0.2431 0.1529 0.
app.NONITORIZACIONAERODINAMICAUIFigure.Position = [100 100 1218 613];
app.NONITORIZACIONAERODINAMICAUIFigure.Name = ’NONITORIZACION AERODINAMICA’;
app.NONITORIZACIONAERODINAMICAUIFigure.WindowStyle = ’modal’;

% Create TabGroup
app.TabGroup = uitabgroup(app.NONITORIZACIONAERODINAMICAUIFigure);
app.TabGroup.Position = [1 1 1216 613];

% Create ConfiguracionTab
app.ConfiguracionTab = uitab(app.TabGroup);
app.ConfiguracionTab.Title = ’Configuracion’;

% Create Image_2
app.Image_2 = uiimage(app.ConfiguracionTab);
app.Image_2.Position = [352 28 221 121];
app.Image_2.ImageSource = ’LOGO_UMNG.png’;

% Create Image
app.Image = uiimage(app.ConfiguracionTab);
app.Image.Position = [73 28 212 121];
app.Image.ImageSource = ’1200px-Escudo_UD.svg.png’;

% Create CONFIGURACIONDECONEXIONCONELDISPOSITIVOLabel
app.CONFIGURACIONDECONEXIONCONELDISPOSITIVOLabel = uilabel(app.ConfiguracionTab);
app.CONFIGURACIONDECONEXIONCONELDISPOSITIVOLabel.HorizontalAlignment = ’center’;
app.CONFIGURACIONDECONEXIONCONELDISPOSITIVOLabel.Position = [156 547 328 22];
app.CONFIGURACIONDECONEXIONCONELDISPOSITIVOLabel.Text = ’CONFIGURACION DE CONEXION CON

% Create MODODEMUESTREOLabel
app.MODODEMUESTREOLabel = uilabel(app.ConfiguracionTab);
app.MODODEMUESTREOLabel.HorizontalAlignment = ’center’;
app.MODODEMUESTREOLabel.Position = [169 405 264 46];
app.MODODEMUESTREOLabel.Text = ’MODO DE MUESTREO’;

% Create ConectarseadispositivoBluetoohtButton
app.ConectarseadispositivoBluetoohtButton = uibutton(app.ConfiguracionTab, ’push’);
app.ConectarseadispositivoBluetoohtButton.ButtonPushedFcn = createCallbackFcn(app, @Con
app.ConectarseadispositivoBluetoohtButton.Enable = ’off’;
app.ConectarseadispositivoBluetoohtButton.Position = [332 205 176 59];
app.ConectarseadispositivoBluetoohtButton.Text = {’Conectarse a dispositivo’; ’Bluetooh

% Create BuscardispositivosBluetoothButton
app.BuscardispositivosBluetoothButton = uibutton(app.ConfiguracionTab, ’push’);
87

app.BuscardispositivosBluetoothButton.ButtonPushedFcn = createCallbackFcn(app, @Busc


app.BuscardispositivosBluetoothButton.Position = [213 467 176 59];
app.BuscardispositivosBluetoothButton.Text = ’Buscar dispositivos Bluetooth’;

% Create TABLE
app.TABLE = uitable(app.ConfiguracionTab);
app.TABLE.ColumnName = {’Puertos disponibles’};
app.TABLE.RowName = {};
app.TABLE.Position = [659 255 500 238];

% Create LISTADEDISPOSITIVOSBLUETOOTHLabel
app.LISTADEDISPOSITIVOSBLUETOOTHLabel = uilabel(app.ConfiguracionTab);
app.LISTADEDISPOSITIVOSBLUETOOTHLabel.Position = [797 500 224 22];
app.LISTADEDISPOSITIVOSBLUETOOTHLabel.Text = ’LISTA DE DISPOSITIVOS BLUETOOTH’;

% Create ConectadoLabel
app.ConectadoLabel = uilabel(app.ConfiguracionTab);
app.ConectadoLabel.HorizontalAlignment = ’right’;
app.ConectadoLabel.Position = [659 163 84 22];
app.ConectadoLabel.Text = ’Conectado ’;

% Create ConectadoLamp
app.ConectadoLamp = uilamp(app.ConfiguracionTab);
app.ConectadoLamp.Position = [758 163 20 20];
app.ConectadoLamp.Color = [1 1 1];

% Create DesconectadoLampLabel
app.DesconectadoLampLabel = uilabel(app.ConfiguracionTab);
app.DesconectadoLampLabel.HorizontalAlignment = ’right’;
app.DesconectadoLampLabel.Position = [837 163 82 22];
app.DesconectadoLampLabel.Text = ’Desconectado’;

% Create DesconectadoLamp
app.DesconectadoLamp = uilamp(app.ConfiguracionTab);
app.DesconectadoLamp.Position = [934 163 20 20];
app.DesconectadoLamp.Color = [1 0 0];

% Create TextArea
app.TextArea = uitextarea(app.ConfiguracionTab);
app.TextArea.Position = [659 28 500 121];

% Create PuertoDropDownLabel
app.PuertoDropDownLabel = uilabel(app.ConfiguracionTab);
app.PuertoDropDownLabel.HorizontalAlignment = ’right’;
app.PuertoDropDownLabel.Position = [58 242 41 22];
app.PuertoDropDownLabel.Text = ’Puerto’;
88

% Create PuertoDropDown
app.PuertoDropDown = uidropdown(app.ConfiguracionTab);
app.PuertoDropDown.Items = {’’};
app.PuertoDropDown.Position = [114 242 100 22];
app.PuertoDropDown.Value = ’’;

% Create RapidoButton
app.RapidoButton = uibutton(app.ConfiguracionTab, ’state’);
app.RapidoButton.ValueChangedFcn = createCallbackFcn(app, @RapidoButtonValueChanged, tr
app.RapidoButton.Text = ’Rapido’;
app.RapidoButton.Position = [60 321 155 65];

% Create LentoButton
app.LentoButton = uibutton(app.ConfiguracionTab, ’state’);
app.LentoButton.ValueChangedFcn = createCallbackFcn(app, @LentoButtonValueChanged, true
app.LentoButton.Text = ’Lento’;
app.LentoButton.Position = [353 321 155 65];

% Create ESTADODELDISPOSITIVOLabel
app.ESTADODELDISPOSITIVOLabel = uilabel(app.ConfiguracionTab);
app.ESTADODELDISPOSITIVOLabel.HorizontalAlignment = ’center’;
app.ESTADODELDISPOSITIVOLabel.Position = [828 213 161 22];
app.ESTADODELDISPOSITIVOLabel.Text = ’ESTADO DEL DISPOSITIVO’;

% Create GraficasTab
app.GraficasTab = uitab(app.TabGroup);
app.GraficasTab.Title = ’Graficas’;

% Create POSICIONDELSERVOMOTORLabel
app.POSICIONDELSERVOMOTORLabel = uilabel(app.GraficasTab);
app.POSICIONDELSERVOMOTORLabel.HorizontalAlignment = ’center’;
app.POSICIONDELSERVOMOTORLabel.Position = [92 500 178 77];
app.POSICIONDELSERVOMOTORLabel.Text = {’POSICION ’; ’DEL ’; ’SERVOMOTOR’};

% Create PWM
app.PWM = uislider(app.GraficasTab);
app.PWM.Limits = [0 180];
app.PWM.FontSize = 16;
app.PWM.Position = [252 564 793 3];

% Create Image2
app.Image2 = uiimage(app.GraficasTab);
app.Image2.Position = [1054 148 115 108];
app.Image2.ImageSource = ’1200px-Escudo_UD.svg.png’;

% Create Image2_2
app.Image2_2 = uiimage(app.GraficasTab);
89

app.Image2_2.Position = [1054 11 115 110];


app.Image2_2.ImageSource = ’LOGO_UMNG.png’;

% Create ENVIARPOSICION
app.ENVIARPOSICION = uibutton(app.GraficasTab, ’push’);
app.ENVIARPOSICION.ButtonPushedFcn = createCallbackFcn(app, @ENVIARPOSICIONButtonPus
app.ENVIARPOSICION.Position = [1086 525 95 52];
app.ENVIARPOSICION.Text = {’ENVIAR’; ’POSICION’};

% Create DETENER
app.DETENER = uibutton(app.GraficasTab, ’push’);
app.DETENER.ButtonPushedFcn = createCallbackFcn(app, @DETENERButtonPushed, true);
app.DETENER.Position = [16 522 89 55];
app.DETENER.Text = ’DETENER’;

% Create LampLabel
app.LampLabel = uilabel(app.GraficasTab);
app.LampLabel.HorizontalAlignment = ’right’;
app.LampLabel.Position = [25 494 36 22];
app.LampLabel.Text = ’Lamp’;

% Create Lamp
app.Lamp = uilamp(app.GraficasTab);
app.Lamp.Position = [76 494 20 20];
app.Lamp.Color = [1 1 1];

% Create EJE_Z
app.EJE_Z = uiaxes(app.GraficasTab);
title(app.EJE_Z, ’EJE Z’)
xlabel(app.EJE_Z, ’TIEMPO (S)’)
ylabel(app.EJE_Z, ’ACELERACION (g)’)
zlabel(app.EJE_Z, ’Z’)
app.EJE_Z.PlotBoxAspectRatio = [2.17880794701987 1 1];
app.EJE_Z.FontName = ’Calibri’;
app.EJE_Z.FontWeight = ’bold’;
app.EJE_Z.YLim = [-500 500];
app.EJE_Z.Colormap = [0.2431 0.149 0.6588;0.2431 0.1529 0.6745;0.2471 0.1569 0.6863;
app.EJE_Z.XGrid = ’on’;
app.EJE_Z.YGrid = ’on’;
app.EJE_Z.ColorOrder = [0 0 1;0 0 1;0 0 1];
app.EJE_Z.FontSize = 16;
app.EJE_Z.NextPlot = ’add’;
app.EJE_Z.Position = [797 281 372 214];

% Create EJE_Y
app.EJE_Y = uiaxes(app.GraficasTab);
title(app.EJE_Y, ’EJE Y’)
90

xlabel(app.EJE_Y, ’TIEMPO (S)’)


ylabel(app.EJE_Y, ’ACELERACION (g)’)
zlabel(app.EJE_Y, ’Z’)
app.EJE_Y.PlotBoxAspectRatio = [2.17880794701987 1 1];
app.EJE_Y.FontName = ’Calibri’;
app.EJE_Y.FontWeight = ’bold’;
app.EJE_Y.YLim = [-500 500];
app.EJE_Y.Colormap = [0.2431 0.149 0.6588;0.2431 0.1529 0.6745;0.2471 0.1569 0.6863;0.2
app.EJE_Y.XGrid = ’on’;
app.EJE_Y.YGrid = ’on’;
app.EJE_Y.ColorOrder = [0 0 1;0 0 1;0 0 1];
app.EJE_Y.FontSize = 16;
app.EJE_Y.NextPlot = ’add’;
app.EJE_Y.Position = [408 281 372 214];

% Create EJE_X
app.EJE_X = uiaxes(app.GraficasTab);
title(app.EJE_X, ’EJE X’)
xlabel(app.EJE_X, ’TIEMPO (S)’)
ylabel(app.EJE_X, ’ACELERACION (g)’)
zlabel(app.EJE_X, ’Z’)
app.EJE_X.PlotBoxAspectRatio = [2.17880794701987 1 1];
app.EJE_X.FontName = ’Calibri’;
app.EJE_X.FontWeight = ’bold’;
app.EJE_X.YLim = [-500 500];
app.EJE_X.Colormap = [0.2431 0.149 0.6588;0.2431 0.1529 0.6745;0.2471 0.1569 0.6863;0.2
app.EJE_X.XGrid = ’on’;
app.EJE_X.YGrid = ’on’;
app.EJE_X.ColorOrder = [0 0 1;0 0 1;0 0 1];
app.EJE_X.FontSize = 16;
app.EJE_X.NextPlot = ’add’;
app.EJE_X.Position = [16 281 372 214];

% Create VEL
app.VEL = uiaxes(app.GraficasTab);
title(app.VEL, ’VELOCIDAD DEL VIENTO’)
xlabel(app.VEL, ’TIEMPO (S)’)
ylabel(app.VEL, ’VELOCIDAD (m/s)’)
zlabel(app.VEL, ’Z’)
app.VEL.PlotBoxAspectRatio = [5.11111111111111 1 1];
app.VEL.FontName = ’Calibri’;
app.VEL.FontWeight = ’bold’;
app.VEL.YLim = [0 70];
app.VEL.Colormap = [0.2431 0.149 0.6588;0.2431 0.1529 0.6745;0.2471 0.1569 0.6863;0.247
app.VEL.XGrid = ’on’;
app.VEL.YGrid = ’on’;
app.VEL.FontSize = 16;
91

app.VEL.Position = [16 28 987 246];

% Create Angulo
app.Angulo = uitab(app.TabGroup);
app.Angulo.Title = ’Angulo’;

% Create Image2_3
app.Image2_3 = uiimage(app.Angulo);
app.Image2_3.Position = [1054 148 115 108];
app.Image2_3.ImageSource = ’1200px-Escudo_UD.svg.png’;

% Create Image2_4
app.Image2_4 = uiimage(app.Angulo);
app.Image2_4.Position = [1054 11 115 110];
app.Image2_4.ImageSource = ’LOGO_UMNG.png’;

% Create EJE_Z_2
app.EJE_Z_2 = uiaxes(app.Angulo);
title(app.EJE_Z_2, ’TEMPERATURA’)
xlabel(app.EJE_Z_2, ’TIEMPO (S)’)
ylabel(app.EJE_Z_2, ’ANGULO (°)’)
zlabel(app.EJE_Z_2, ’Z’)
app.EJE_Z_2.PlotBoxAspectRatio = [2.17880794701987 1 1];
app.EJE_Z_2.FontName = ’Calibri’;
app.EJE_Z_2.FontWeight = ’bold’;
app.EJE_Z_2.YLim = [-10 35];
app.EJE_Z_2.Colormap = [0.2431 0.149 0.6588;0.2431 0.1529 0.6745;0.2471 0.1569 0.686
app.EJE_Z_2.XGrid = ’on’;
app.EJE_Z_2.YGrid = ’on’;
app.EJE_Z_2.ColorOrder = [0 0 1;0 0 1;0 0 1];
app.EJE_Z_2.FontSize = 16;
app.EJE_Z_2.NextPlot = ’add’;
app.EJE_Z_2.Position = [797 303 372 245];

% Create EJE_Y_2
app.EJE_Y_2 = uiaxes(app.Angulo);
title(app.EJE_Y_2, ’ANGULO YZ’)
xlabel(app.EJE_Y_2, ’TIEMPO (S)’)
ylabel(app.EJE_Y_2, ’ANGULO (°)’)
zlabel(app.EJE_Y_2, ’Z’)
app.EJE_Y_2.PlotBoxAspectRatio = [2.17880794701987 1 1];
app.EJE_Y_2.FontName = ’Calibri’;
app.EJE_Y_2.FontWeight = ’bold’;
app.EJE_Y_2.YLim = [-90 90];
app.EJE_Y_2.Colormap = [0.2431 0.149 0.6588;0.2431 0.1529 0.6745;0.2471 0.1569 0.686
app.EJE_Y_2.XGrid = ’on’;
app.EJE_Y_2.YGrid = ’on’;
92

app.EJE_Y_2.ColorOrder = [0 0 1;0 0 1;0 0 1];


app.EJE_Y_2.FontSize = 16;
app.EJE_Y_2.NextPlot = ’add’;
app.EJE_Y_2.Position = [408 303 372 245];

% Create EJE_X_2
app.EJE_X_2 = uiaxes(app.Angulo);
title(app.EJE_X_2, ’ANGULO XZ’)
xlabel(app.EJE_X_2, ’TIEMPO (S)’)
ylabel(app.EJE_X_2, ’ANGULO (°)’)
zlabel(app.EJE_X_2, ’Z’)
app.EJE_X_2.PlotBoxAspectRatio = [2.17880794701987 1 1];
app.EJE_X_2.FontName = ’Calibri’;
app.EJE_X_2.FontWeight = ’bold’;
app.EJE_X_2.YLim = [-90 90];
app.EJE_X_2.Colormap = [0.2431 0.149 0.6588;0.2431 0.1529 0.6745;0.2471 0.1569 0.6863;0
app.EJE_X_2.XGrid = ’on’;
app.EJE_X_2.YGrid = ’on’;
app.EJE_X_2.ColorOrder = [0 0 1;0 0 1;0 0 1];
app.EJE_X_2.FontSize = 16;
app.EJE_X_2.NextPlot = ’add’;
app.EJE_X_2.Position = [17 303 372 245];

% Create VEL_2
app.VEL_2 = uiaxes(app.Angulo);
title(app.VEL_2, ’VELOCIDAD DEL VIENTO’)
xlabel(app.VEL_2, ’TIEMPO (S)’)
ylabel(app.VEL_2, ’VELOCIDAD (m/s)’)
zlabel(app.VEL_2, ’Z’)
app.VEL_2.PlotBoxAspectRatio = [5.11111111111111 1 1];
app.VEL_2.FontName = ’Calibri’;
app.VEL_2.FontWeight = ’bold’;
app.VEL_2.YLim = [0 1.5];
app.VEL_2.Colormap = [0.2431 0.149 0.6588;0.2431 0.1529 0.6745;0.2471 0.1569 0.6863;0.2
app.VEL_2.XGrid = ’on’;
app.VEL_2.YGrid = ’on’;
app.VEL_2.FontSize = 16;
app.VEL_2.Position = [16 28 987 246];

% Create InformacinTab
app.InformacinTab = uitab(app.TabGroup);
app.InformacinTab.Title = ’Información’;

% Create Label
app.Label = uilabel(app.InformacinTab);
app.Label.Position = [16 56 1186 513];
app.Label.Text = {’Bluetooth’; ’’; ’Para relizar la conexion mediante Bluetooth con el
93

% Show the figure after all components are created


app.NONITORIZACIONAERODINAMICAUIFigure.Visible = ’on’;
end
end

% App creation and deletion


methods (Access = public)

% Construct app
function app = Wi-Fi_Bluetooth

% Create UIFigure and components


createComponents(app)

% Register the app with App Designer


registerApp(app, app.NONITORIZACIONAERODINAMICAUIFigure)

if nargout == 0
clear app
end
end

% Code that executes before app deletion


function delete(app)

% Delete UIFigure when app is deleted


delete(app.NONITORIZACIONAERODINAMICAUIFigure)
end
end
end

También podría gustarte