118
TRABAJO FIN DE GRADO INGENIER ´ IA EN TECNOLOG ´ IAS DE LA TELECOMUNICACI ´ ON Dise˜ no e implementaci´on de un dispositivo IoT de bajo coste para entornos acu´ aticos Autor Jes´ us G´ omez Molino Directores Jorge Navarro Ortiz Sandra Sendra Compte Escuela T´ ecnica Superior de Ingenier´ ıas Inform´ atica y de Telecomunicaci´ on Granada, junio de 2017

Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

TRABAJO FIN DE GRADO

INGENIERIA EN TECNOLOGIAS DE LATELECOMUNICACION

Diseno e implementacion deun dispositivo IoT de bajo

coste para entornos acuaticos

AutorJesus Gomez Molino

DirectoresJorge Navarro Ortiz

Sandra Sendra Compte

Escuela Tecnica Superior de Ingenierıas Informatica y deTelecomunicacion

—Granada, junio de 2017

Page 2: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 3: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

3

Page 4: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 5: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Diseno e implementacion deun dispositivo IoT de bajo

coste para entornos acuaticos

AutorJesus Gomez Molino

DirectoresJorge Navarro Ortiz

Sandra Sendra Compte

Departamento de Teorıa de la Senal, Telematica yComunicaciones

—Granada, junio de 2017

Page 6: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 7: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Diseno e implementacion de un dispositivo IoT de bajo costepara entornos acuaticos

Jesus Gomez Molino

Palabras clave: Wemos D1 Mini, ESP8266, Arduino, ThingSpeak, WiFi,sensor, ultrasonidos, temperatura, MPU-6050, inclinacion, buzzer, disposi-tivo, deep-sleep, alarma.

Resumen

En la sociedad actual existe una situacion a la que apenas se le prestaatencion y que tiene una mayor repercusion de la que pensamos. Esta situa-cion es el ahogamiento y se suele dar en su mayor parte en ninos pequenosen muchas ocasiones debido a despistes, pudiendo ser prevenido con medi-das simples pero eficaces. Nuestro proposito es disenar e implementar undispositivo cuyo objetivo principal es obtener informacion acerca del oleajedel entorno acuatico en el que se instala. De esta forma, permite detectarsituaciones de peligro en el entorno y alertar de ellas. Por otra parte, tam-bien se obtiene la temperatura del agua y el nivel del agua en ese entorno.Para obtener toda esta informacion se emplean sensores.

El dispositivo desarrollado incorpora caracterısticas atractivas. Se em-plea una placa (Wemos D1 Mini) que incluye un microprocesador (ESP8266),el cual permite realizar conexiones WiFi. Ademas, este dispositivo permi-te anadir componentes que puedan resultar interesantes para mejorarlo y/oampliarlo.

La informacion recopilada por los sensores es enviada a la plataformaThingSpeak a traves de una conexion WiFi proporcionada por la placa em-pleada. En ThingSpeak se puede visualizar y analizar en tiempo real lainformacion recibida.

Una caracterıstica muy importante que ofrece la placa es la activacionde un modo de bajo consumo de energıa, el cual permite ahorrar energıacuando no es necesario recopilar informacion y aumentar la duracion de lafuente de alimentacion empleada.

En resumen, se ha disenado e implementado un dispositivo que tienecomo funcion principal alertar de una situacion de peligro en un entornoacuatico y como objetivos secundarios obtener informacion acerca de eseentorno. Esta informacion es enviada a ThingSpeak donde se puede realizarun seguimiento a tiempo real de lo que ocurre en el entorno acuatico.

Page 8: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 9: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Design and implementation of a low cost IoT device foraquatic environments

Jesus Gomez Molino

Keywords: Wemos D1 Mini, ESP8266, Arduino, ThingSpeak, WiFi, sensor,ultrasound, temperature, MPU-6050, inclination, buzzer, device, deep-sleep,alarm.

Abstract

In today’s society there is a situation that hardly pays attention and ithas a greater impact than we think. This situation is drowning and usuallyoccurs with children on many occasions due to disparage, that can be pre-vented with simple but effective measures. Our purpose is to design andimplement a device whose primary purpose is getting information aboutthe waves of the aquatic environment in which it is installed. In this way,it allows to detect dangerous situations in the environment and to alert ofthem. On the other hand, it also allows getting the water temperature andthe water level in that environment. To get all this information sensors areused.

The developed device incorporates attractive features. It is used a board(Wemos D1 Mini) that includes a microprocessor (ESP8266), that allows tomake WiFI connections. In addition, this device allows to add componentsthat may be interesting to improve and/or expand it.

The information collected by the sensors is sent to the ThingSpeak plat-form through a WiFi connection provided by the used board. In ThingSpeakyou can view and analyze in real time the information received.

A very important feature offered by the board is the activation of a lowpower mode, which allows to save energy when it is not necessary to collectinformation and increase the duration of the power source used.

In summary, it has been designed and implemented a device whose mainfunction is to alert a dangerous situation in an aquatic environment andas secondary objectives to get information about that environment. Thisinformation is sent to ThingSpeak where you can monitor in real time whathappens in the aquatic environment.

Page 10: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 11: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Yo, Jesus Gomez Molino, alumno de la titulacion de Grado en In-genierıa de Tecnologıas de la Telecomunicacion de la Escuela TecnicaSuperior de Ingenierıas Informatica y de Telecomunicacion de laUniversidad de Granada, con DNI 20078113-X, autorizo la ubicacion dela siguiente copia de mi Trabajo Fin de Grado en la biblioteca del centropara que pueda ser consultada por las personas que lo deseen.

Fdo: Jesus Gomez Molino

Granada a 21 de junio de 2017.

Page 12: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 13: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

D. Jorge Navarro Ortiz, Profesor del Area de Telecomunicaciones delDepartamento de Teorıa de la Senal, Telematica y Comunicaciones de laUniversidad de Granada.

D. Sandra Sendra Compte, Profesora del Area de Telecomunicacionesdel Departamento de Teorıa de la Senal, Telematica y Comunicaciones dela Universidad de Granada.

Informan:

Que el presente trabajo, titulado Diseno e implementacion de undispositivo IoT de bajo coste para entornos acuaticos, ha sido rea-lizado bajo su supervision por Jesus Gomez Molino, y autorizamos ladefensa de dicho trabajo ante el tribunal que corresponda.

Y para que conste, expiden y firman el presente informe en Granada a21 de junio de 2017.

Los directores:

Jorge Navarro Ortiz Sandra Sendra Compte

Page 14: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 15: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Agradecimientos

Todo comienzo tiene un final y ha sido un largo camino para llegar a estemomento. Quiero aprovechar estas lıneas para agradecer a las personas demi entorno que me han acompanado durante mi etapa universitaria y cuyodesenlace llega con este Trabajo Fin de Grado.

En primer lugar, quiero agradecer a Jorge por toda la dedicacion, esfuer-zo y consejos que me ha ofrecido para realizar el proyecto con la maximacalidad posible. Tambien quiero destacar el magnıfico trato personal que hatenido conmigo en todo momento.

A mi familia por acompanarme durante este trayecto. Quiero agradecersu apoyo, consejos y preocupacion, ası como los valores inculcados desdepequeno. Lo aprendido de ellos ha sido muy importante para poder llegar aeste punto.

Tambien quisiera agradecer a mis companeros de clase durante esta eta-pa, quienes se han convertido en grandes amigos. Con ellos he tenido elplacer de compartir muchas experiencias a lo largo de esta etapa y me hanproporcionado una gran ayuda. Sin ellos estos anos no tendrıan el mismosignificado.

Por ultimo, me gustarıa agradecer especialmente a mis abuelos el carinoque siempre me dieron y el trabajo realizado por ellos para que yo puedaestar hoy en esta situacion. Estoy seguro de que se sentiran muy orgullososy felices de mı.

Gracias a todos.

Page 16: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 17: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Indice general

1. Introduccion 21

1.1. Contexto y motivacion . . . . . . . . . . . . . . . . . . . . . . 21

1.1.1. Estadısticas de ahogamientos en la actualidad . . . . . 21

1.1.2. OMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.1.3. Abrisud . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.1.4. EL MUNDO . . . . . . . . . . . . . . . . . . . . . . . 23

1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1.3. Estructura de la memoria . . . . . . . . . . . . . . . . . . . . 26

2. Estado del arte 29

2.1. Sistemas de alarma acuatica . . . . . . . . . . . . . . . . . . . 29

2.1.1. Sistemas de alarma personal . . . . . . . . . . . . . . . 30

2.1.2. Sistemas de alarma perimetral . . . . . . . . . . . . . 31

2.1.3. Sistemas de alarma de inmersion . . . . . . . . . . . . 32

2.2. Diferencias de nuestro prototipo . . . . . . . . . . . . . . . . 34

3. Planificacion 35

3.1. Planificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.2. Recursos utilizados . . . . . . . . . . . . . . . . . . . . . . . . 39

3.2.1. Recursos humanos . . . . . . . . . . . . . . . . . . . . 39

3.2.2. Recursos hardware . . . . . . . . . . . . . . . . . . . . 39

3.2.3. Recursos software . . . . . . . . . . . . . . . . . . . . 40

3.3. Estimacion de costes . . . . . . . . . . . . . . . . . . . . . . . 40

3.3.1. Recursos humanos . . . . . . . . . . . . . . . . . . . . 41

3.3.2. Recursos hardware . . . . . . . . . . . . . . . . . . . . 41

3.3.3. Presupuesto final . . . . . . . . . . . . . . . . . . . . . 43

3.4. Valoracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4. Especificaciones de requisitos 45

4.1. Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.1.1. Requisitos funcionales . . . . . . . . . . . . . . . . . . 46

4.1.2. Requisitos no funcionales . . . . . . . . . . . . . . . . 46

4.2. Metodologıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

13

Page 18: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

14 INDICE GENERAL

5. Dispositivos y tecnologıas empleadas 49

5.1. Wemos D1 Mini . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5.2. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.2.1. Sensor de ultrasonidos . . . . . . . . . . . . . . . . . . 56

5.2.2. Sensor de inclinacion . . . . . . . . . . . . . . . . . . . 57

5.2.3. Sensor acelerometro y giroscopio . . . . . . . . . . . . 58

5.2.4. Sensor de temperatura . . . . . . . . . . . . . . . . . . 59

5.3. Actuadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.3.1. Buzzer . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.4. Protoboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.5. Otros dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.5.1. Conector hermetico . . . . . . . . . . . . . . . . . . . 63

5.5.2. Baterıa de litio 18650 . . . . . . . . . . . . . . . . . . 63

5.5.3. Caja IP 68 . . . . . . . . . . . . . . . . . . . . . . . . 64

5.6. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.6.1. IDE de Arduino . . . . . . . . . . . . . . . . . . . . . 65

5.6.2. ThingSpeak . . . . . . . . . . . . . . . . . . . . . . . . 67

6. Diseno e implementacion 69

6.1. Arquitectura general . . . . . . . . . . . . . . . . . . . . . . . 69

6.2. Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 70

6.3. Elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

6.3.1. Protoboard . . . . . . . . . . . . . . . . . . . . . . . . 72

6.3.2. Wemos D1 Mini . . . . . . . . . . . . . . . . . . . . . 73

6.3.3. Sensor de ultrasonidos HC-SR04 . . . . . . . . . . . . 75

6.3.4. Sensor de temperatura DS18B20 . . . . . . . . . . . . 78

6.3.5. Sensor MPU-6050 . . . . . . . . . . . . . . . . . . . . 80

6.3.6. Sensor de inclinacion SW-200D y buzzer . . . . . . . . 82

6.3.7. Baterıa de litio 18650 . . . . . . . . . . . . . . . . . . 86

6.3.8. Caja IP 68 y conector hermetico . . . . . . . . . . . . 86

7. Fase de pruebas 87

7.1. Calibracion de sensores . . . . . . . . . . . . . . . . . . . . . . 87

7.2. Consumo del dispositivo desarrollado . . . . . . . . . . . . . . 91

7.3. Pruebas realizadas . . . . . . . . . . . . . . . . . . . . . . . . 92

8. Conclusiones y lıneas futuras 97

8.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

8.2. Problemas encontrados . . . . . . . . . . . . . . . . . . . . . . 99

8.3. Lıneas futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

8.4. Valoracion personal . . . . . . . . . . . . . . . . . . . . . . . . 100

A. Manual de instalacion 101

Page 19: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

INDICE GENERAL 15

B. Manual de usuario 105

C. Codigo de programacion del sensor MPU-6050 107

Bibliografıa 114

Page 20: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 21: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Indice de figuras

1.1. Estudio de personas fallecidas en Espana en verano de 2014. . 24

1.2. Fallecimientos por ahogamiento en Espana en los anos 2002-2012. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.1. Diagrama de Gantt. . . . . . . . . . . . . . . . . . . . . . . . 38

5.1. Entorno de desarrollo de Arduino. . . . . . . . . . . . . . . . 65

6.1. Esquema conceptual de la arquitectura del dispositivo. . . . . 70

6.2. Diagrama de funcionamiento del dispositivo. . . . . . . . . . . 72

6.3. Codigo de programacion del modo deep-sleep. . . . . . . . . . 74

6.4. Codigo de programacion para establecer una conexion WiFi. . 75

6.5. Codigo de programacion del sensor HC-SR04. . . . . . . . . . 77

6.6. Esquema de conexion del sensor HC-SR04 con Wemos D1 Mini. 77

6.7. Codigo de programacion del sensor DS18B20. . . . . . . . . . 79

6.8. Esquema de conexion del sensor DS18B20 con Wemos D1 Mini. 79

6.9. Esquema de conexion del sensor MPU-6050 con Wemos D1Mini. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

6.10. Codigo de programacion del sensor SW-200D. . . . . . . . . . 84

6.11. Codigo de programacion de la interrupcion. . . . . . . . . . . 84

6.12. Esquema de conexion del sensor SW-200D y buzzer con We-mos D1 Mini. . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

7.1. Grafica para realizar la calibracion del sensor de ultrasonidos. 88

7.2. Grafica para realizar la calibracion del sensor de temperatura. 89

7.3. Calibracion del sensor MPU-6050. . . . . . . . . . . . . . . . 90

7.4. Calibracion del sensor de inclinacion. . . . . . . . . . . . . . . 90

7.5. Grafica ThingSpeak del sensor de ultrasonidos. . . . . . . . . 93

7.6. Grafica ThingSpeak del sensor de temperatura. . . . . . . . . 94

7.7. Grafica ThingSpeak de la coordenada Yaw del sensor MPU-6050. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

7.8. Grafica ThingSpeak de la coordenada Pitch del sensor MPU-6050. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

17

Page 22: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

18 INDICE DE FIGURAS

7.9. Grafica ThingSpeak de la coordenada Roll del sensor MPU-6050. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

C.1. Codigo de calibracion del sensor MPU-6050. . . . . . . . . . . 109C.2. Codigo de programacion del sensor MPU-6050. . . . . . . . . 111

Page 23: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Indice de tablas

3.1. Analisis temporal de las tareas. . . . . . . . . . . . . . . . . . 383.2. Analisis de coste de las tareas. . . . . . . . . . . . . . . . . . 413.3. Analisis de coste de los elementos hardware. . . . . . . . . . . 433.4. Coste total. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.1. Diferencias entre modos de bajo consumo. . . . . . . . . . . . 525.2. Diferencias segun resolucion de bits. . . . . . . . . . . . . . . 60

6.1. Conexionado de sensor de ultrasonidos y Wemos D1 Mini. . . 776.2. Conexionado de sensor de temperatura y Wemos D1 Mini. . . 806.3. Conexionado de sensor MPU-6050 y Wemos D1 Mini. . . . . 826.4. Conexionado de sensor de inclinacion y Wemos D1 Mini. . . . 856.5. Conexionado de buzzer y Wemos D1 Mini. . . . . . . . . . . . 85

7.1. Consumo de energıa de cada sensor. . . . . . . . . . . . . . . 917.2. Consumo de energıa del dispositivo desarrollado. . . . . . . . 91

19

Page 24: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 25: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Capıtulo 1

Introduccion

En este capıtulo se introducen los aspectos relevantes en el proyecto. Enprimer lugar, se especifican las motivaciones principales para la realizacionde este trabajo y se muestran estadısticas reales de estudios realizados enel contexto en el que se encuentra nuestro trabajo. Despues, se presentanlos objetivos a alcanzar con la realizacion de este proyecto. Finalmente, sepresenta una estructura en la cual se ha dividido esta memoria.

1.1. Contexto y motivacion

En esta seccion justificamos la eleccion de este proyecto. Para ello, setienen en cuenta artıculos, estudios y estadısticas reales recopilados por im-portantes medios de comunicacion, grandes empresas del sector y organiza-ciones relacionadas con la salud.

1.1.1. Estadısticas de ahogamientos en la actualidad

En la sociedad actual existe una situacion muy importante a la que no sele presta demasiada atencion y que influye en un numero mayor de personasde las que nos imaginamos. Esta situacion es el ahogamiento. Estos casos seproducen en muchas ocasiones debido a despistes que pueden ser prevenidoscon medidas simples pero eficaces.

Cuando una persona comienza a ahogarse, el resultado suele ser fatal.A diferencia de otros traumatismos, la supervivencia esta determinada casiexclusivamente en el lugar del incidente y depende de dos factores muyvariables: la rapidez con la que se saque del agua a la persona y la rapidez

Page 26: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

22 1.1. Contexto y motivacion

con la que se le practique una reanimiacion apropiada. La consciencia sepierde a los 2 minutos y el dano cerebral es irreversible a los 4 o 6 minutos.Esto desemboca en el hecho de que la prevencion es vital.

Se ha comprobado que el ahogamiento es la segunda causa de defuncionpor traumatismos no intencionales a nivel mundial. Tambien se ha obtenidoque la mayorıa de estos casos lo sufren los ninos y los jovenes en casi todaslas regiones del mundo, que los ninos menores de 5 anos corren un granriesgo y que los hombres tienen el doble de probabilidad de ahogamientoque las mujeres. Ademas, mas de la mitad de las vıctimas son menores de25 anos.

1.1.2. OMS

La OMS es un organismo correspondiente a la ONU especializado engestionar polıticas de prevencion, promocion e intervencion en salud a nivelmundial.

En un estudio realizado por este organismo se destaca que los ahogamien-tos son la tercera causa de fallecimiento por traumatismo no intencional enel mundo. Suponen un 7 % de todas las muertes relacionadas con trauma-tismos. En el planeta fallecen cada ano por ahogamiento aproximadamente372.000 personas.

A escala mundial, los ındices de ahogamiento mas elevados correspondena ninos con un rango de edad de 1 a 4 anos, seguidos del rango de edad de 5a 9 anos. Esto refleja que los ninos pequenos corren un mayor riesgo debido,sobre todo, a los hechos de no saber nadar y de no ser muy conscientes delpeligro que puede suponer el agua.

Un dato muy relevante del estudio realizado por la OMS en la regiondel Pacıfico Occidental indica que los ninos de entre 5 y 14 anos de edadfallecen mas frecuentemente por ahogamiento que por cualquier otra causa.

Otros datos de interes extraıdos de este estudio son:

En Australia, el ahogamiento es la primera causa de fallecimiento portraumatismo no intencional en los ninos de 1 a 3 anos de edad.

En Bangladesh, el ahogamiento es causa del 43 % de todas las defun-ciones de ninos de 1 a 4 anos de edad.

En China, el ahogamiento es la primera causa de fallecimiento portraumatismo en ninos de 1 a 14 anos de edad.

Page 27: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Introduccion 23

En Estados Unidos, el ahogamiento es la segunda causa de defuncionpor traumatismo no intencional en ninos de 1 a 14 anos de edad.

En estas estadısticas no se tienen en cuenta el ahogamiento intencional(como el suicidio o el homicidio) ni las defunciones por ahogamiento debidasa inundaciones e incidentes de transporte por agua. Tampoco se muestrandatos sobre ahogamientos no mortales, los cuales podrıan revelar informa-cion acerca de las lesiones graves y discapacidad permanente que puedenocasionar.

1.1.3. Abrisud

Abrisud es una empresa importante a nivel europeo especializada encubierta de piscinas que realiza informes relacionados con la seguridad enespacios acuaticos. Abrisud destaca que los ahogamientos suponen la terceracausa de muerte infantil en el mundo, con una especial incidencia en ninosde 1 a 4 anos de edad.

En un informe proporcionado por Abrisud, se indica que en verano de2015 fallecieron en Espana 38 menores de 17 anos en espacios acuaticos. Un56 % de estos fallecimientos ocurrieron en piscinas privadas y un 10 % deellos en piscinas municipales.

Actualmente, en Espana existe una normativa especıfica para la segu-ridad en piscinas publicas, la cual obliga al vallado en dichas piscinas. Sinembargo, en Espana no existe ninguna norma relativa a la seguridad en pis-cinas privadas, algo que sı ocurre en paıses como Italia, Noruega o Francia(paıs referente en lo que a seguridad de piscinas se refiere).

1.1.4. EL MUNDO

En un estudio realizado por el periodico nacional EL MUNDO se mostroque solamente en los meses de Julio y Agosto de 2014 en Espana perdieronla vida 126 personas ahogadas en playas, piscinas, rıos y pantanos. Indicaque son fallecimientos vinculados en muchos casos a un despiste o a un malcalculo que podrıa haberse prevenido con medidas simples pero eficaces.

Este estudio tambien extrae que el 80 % de los menores de 14 anos quese han ahogado han perdido la vida en piscinas y en ellos suele haber unmismo perfil: ninos que no sabıan nadar, no llevaban flotador y no estabanvigilados.

A diferencia de los ninos, un 63 % de los adultos han perdido la vida en el

Page 28: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

24 1.1. Contexto y motivacion

mar frente al 18 % que han fallecido ahogados en piscinas. Estos casos suelencorresponderse con un perfil de hombre con creencia de dominio acuatico,exceso de confianza, falta de atencion o debido a que cometio imprudencias.

Tal y como comentan en este estudio, ”la gente no se da cuenta deque dejas a los ninos jugando en casa al lado de la piscina, entras en casaporque suena el telefono y cuando vuelves, que ha pasado minuto y medio,el nino lleva un minuto debajo del agua. Y si no te das cuenta porque vieneshablando por el movil y hablas otro minuto, ya lleva dos minutos. Y en dosminutos, a lo mejor, ese nino ya no sale o le queda alguna secuela”. Comopodemos deducir, un simple momento al que no se le da importancia puedeacabar en una tragedia.

Figura 1.1: Estudio de personas fallecidas en Espana en verano de 2014.

En esta imagen proporcionada por el estudio, podemos ver la cantidadde personas que fallecieron en los meses de Julio y Agosto en 2014 distri-buidas por rango de edades, medio acuatico en el que se produjeron y lascomunidades autonomas donde ocurrieron. Lo primero que detectamos esque el mayor numero de personas que fallecieron eran adultos, hombres yse produjeron en su mayor parte en el mar. Estos datos corroboran un datoexpuesto anteriormente, y es que existe un gran numero de personas que fa-llecen ahogadas y cumplen con un perfil de hombre con creencia de dominioacuatico o exceso de confianza. Tambien observamos que la mayorıa de es-tos sucesos han ocurrido en comunidades autonomas del mar Mediterraneo,lugares muy transitados en verano.

Page 29: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Introduccion 25

Por otra parte, si seleccionamos el rango de edad de 0 a 14 anos compro-bamos que la mayor parte de estos sucesos suceden en piscinas. Las piscinasson lugares que atraen mucho a los ninos pequenos y en los que los padrespueden creer que estan bastante mas seguros con respecto al mar, pero enel caso de que no vayan acompanados por alguien mayor o se produzca unmomento de despiste puede desembocar en una situacion letal.

Tambien proporciona unas estadısticas en las cuales podemos ver loscasos de fallecimientos por ahogamiento en Espana desde el ano 2002 hastael ano 2012. Estos datos estan divididos segun el entorno acuatico en el quehayan ocurrido: piscinas privadas, piscinas publicas o en aguas naturales(playas, rıos, pantanos). Estos datos muestran que, aunque no se le prestamucha atencion, existe la situacion de fallecimientos por ahogamiento ennuestro paıs y son numeros que se deben reducir y en la medida de lo posibleeliminar.

Figura 1.2: Fallecimientos por ahogamiento en Espana en los anos 2002-2012.

Page 30: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

26 1.2. Objetivos

1.2. Objetivos

En esta seccion se presenta el objetivo principal del desarrollo del pro-yecto. Establece el proposito principal de lo que queremos conseguir duranteeste tiempo.

Este proyecto se centra en el diseno y la implementacion de un disposi-tivo que tome informacion de un entorno acuatico. Su objetivo principal esmedir el oleaje presente en el agua de forma que, incluyendole una alarmaacustica, permita informar sobre la entrada o la caıda accidental de una per-sona (ninos pequenos) o de un animal (perro, gato) en un entorno acuatico.Tambien utilizamos un sensor para obtener la temperatura del agua y otropara detectar el nivel del agua. Para transmitir la informacion se utilizacomunicaciones WiFi.

Como subobjetivos se incluyen un estudio teorico que facilita la compren-sion de este trabajo y ofrece estadısticas que apoyan su eleccion, un estadodel arte en donde se muestran dispositivos similares existentes y mejorasque nosotros ofrecemos, ası como un analisis de los dispositivos utilizadospara ello y la metodologıa seguida para su realizacion. Tambien se aportanpruebas realizadas con el dispositivo desarrollado que permiten valorar sucalidad y eficacia.

1.3. Estructura de la memoria

A continuacion se presentan los distintos capıtulos en los que se ha divi-dido la memoria, realizando una breve descripcion de ellos. Se ha hecho unadivision en ocho capıtulos:

Capıtulo 1. Introduccion. En este capıtulo se introducen los aspectosrelevantes del proyecto indicando las motivaciones o circunstancias por lascuales hemos decidido realizar este trabajo.

Capıtulo 2. Estado del arte. En este capıtulo se obtiene una vision globalsobre implementaciones existentes que realicen una funcion similar a nuestrodispositivo.

Capıtulo 3. Planificacion. Aquı se proporciona una planificacion a seguiren el desarrollo del proyecto, junto con una estimacion de los costes previstosen su diseno.

Capıtulo 4. Especificaciones de requisitos. En este capıtulo se analizanlos requisitos funcionales y no funcionales que se deben cumplir para uncorrecto desarrollo del proyecto.

Page 31: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Introduccion 27

Capıtulo 5. Dispositivos y tecnologıas empleadas. En este apartado seanalizan las caracterısticas de los distintos elementos y herramientas em-pleadas.

Capıtulo 6. Diseno e implementacion. En este capıtulo se presenta unaarquitectura general del dispositivo desarrollado y se explica el procedimien-to seguido con cada elemento para llegar al dispositivo final.

Capıtulo 7. Fase de pruebas. Aquı presentamos la calibracion realizadaa los sensores, datos acerca del consumo de energıa del dispositivo y losresultados de las pruebas realizadas con el sistema desarrollado.

Capıtulo 8. Conclusiones y lıneas futuras. En este ultimo capıtulo semuestran las conclusiones obtenidas tras la realizacion del proyecto, ası comoposibles mejoras o ampliaciones futuras.

Page 32: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 33: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Capıtulo 2

Estado del arte

En este capıtulo se obtiene una vision global acerca de dispositivos exis-tentes que realicen una funcion similar a lo que nosotros pretendemos crear.Esto permite la posibilidad de comparar distintas caracterısticas de nues-tro prototipo desarrollado con dispositivos ya existentes y presentes en elmercado.

2.1. Sistemas de alarma acuatica

Los sistemas de alarma acuatica estan formados por unos sensores quedetectan cualquier tipo de movimiento que se produce en su entorno. Unavez que estos sensores detectan una circunstancia que consideran peligrosa,envıan una senal de alarma al sistema base al cual estan conectados. Cuandola base recibe la alerta hace que comience a sonar una sirena de alarma. Estossistemas son una buena manera de prevenir accidentes, principalmente conninos.

Los sistemas de alarma acuatica los podemos clasificar en tres tipos:

Alarma personal: Es un dispositivo resistente al agua que se colocaalrededor de la muneca de una persona como si se tratara de unapulsera. En caso de que la pulsera entre en contacto con el agua seenvıa una senal a la estacion receptora, la cual origina una alarmapara alertar a las personas de su alrededor.

Alarma perimetral: Es un sistema compuesto por un conjunto de sen-sores colocados alrededor del entorno acuatico. De esta manera, sialguien traspasa el perımetro de seguridad se emite una alarma.

Page 34: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

30 2.1. Sistemas de alarma acuatica

Alarma de inmersion: Se trata de un sistema formado por un dispo-sitivo flotante que se coloca en el bordillo o en el interior del entornoacuatico midiendo el oleaje del agua, de forma que si detecta un mo-vimiento brusco producido por la entrada de alguna persona o animalactiva una alarma.

2.1.1. Sistemas de alarma personal

A continuacion se exponen algunos sistemas de alarma personal emplea-dos actualmente:

Safety Turtle: Se trata de un sistema compuesto por una pulsera concierre de seguridad para ninos que, al contactar con el agua, transmiteuna senal acustica a la estacion receptora. La alarma acustica suenainmediatamente cuando la pulsera entra en contacto con el agua y nopara hasta que se restablezca el sistema. La pulsera esta disenada paradetectar falsas alarmas como pueden ser las ocasionadas por la lluviao por salpicaduras.

Se pueden anadir a una misma base tantas pulseras como ninos senecesiten controlar. Ademas, dispone de un modo alerta llamado ”FA-LLA”para poder avisar a las personas que estan vigilando si existecualquier problema con alguno de sus componentes. Es adaptable yse cierra con una llave de seguridad para evitar que un nino puedadesprenderse de ella intencionadamente o por un descuido. La senalde transmision puede ser de hasta 60 metros dependiendo de las inter-ferencias de radio. La baterıa de la pulsera tiene una autonomıa entre3 y 4 anos. Su precio es de 219 euros.

Blue Fox ST1: Se basa en un sistema compuesto por una pulsera colo-cada en la muneca en la que se determinan unos parametros de refe-rencia y avisa cuando el banista se encuentra en dificultad. A la horade la programacion se puede elegir entre 5 perfiles predeterminadoso determinar el tiempo y la profundidad de modo individual en basea las caracterısticas de cada persona. Al analizar la profundidad a laque se encuentra la persona y el tiempo sumergido, una vez superadoslos parametros establecidos, la pulsera lanza a la superficie un globocon una potente alarma sonora que tiene como funcion avisar a todoaquel que se encuentre cerca de que esa persona se encuentra en peli-gro; ademas, una potente luz LED incluida en la pulsera del banistasenalara su posicion exacta. Esta pulsera es apta tanto para espaciosnaturales (mar, lago, pantano) como para espacios artificiales (pisci-nas, parques acuaticos), ası como para clases de natacion. Su precio esde 105 euros.

Page 35: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Estado del arte 31

Pack Serenidad: Es un sistema que emplea una pulsera colocada auna persona de manera fija en su muneca. Cuando la persona entraen contacto con el agua, la pulsera lo detecta y envıa una senal auna centralita, la cual activa una sirena que contiene integrada. Unamisma centralita puede sincronizar un numero ilimitado de personasque emplean esta pulsera. Su precio es de 355 euros.

Blue Protect: Es un sistema que emplea una pulsera colocada a unapersona de manera fija en su muneca. Si la persona cae al agua, lapulsera detecta el contacto con el agua y envıa un mensaje por ondas deradio a la centralita, la cual hace saltar una alarma sonora que permitealertar inmediatamente de su caıda. Incorpora un mando para detenerla alarma sonora, aunque tambien puede detenerse directamente sobrela central. Su precio es de 488 euros.

2.1.2. Sistemas de alarma perimetral

A continuacion se exponen algunos sistemas de alarma perimetral em-pleados actualmente:

Alarma perimetral Pooleye: Se trata de un sistema de alarma preven-tiva que avisa antes de la entrada del nino a la piscina. Esta compuestopor 4 balizas instaladas en forma de cuadro o de rectangulo con unadistancia maxima entre cada uno de ellos de 20 metros, sobre un suelofirme y estable. Tiene dos zonas de deteccion: una a 20 cm y otra a 45cm del suelo respectivamente. Cada baliza se conecta por cable a lacentral con una distancia maxima de 35 metros. La central funcionacon un transformador de 12 V, conectado a la corriente y dispone debaterıas recargables con una autonomıa de 6 horas en caso de inte-rrupcion de corriente.

Posee una potente sirena de alarma de 100 dB, ası como un softwareque reduce las falsas alarmas como las que pueden provocar el vientoo la lluvia. Ademas, la central dispone de un codigo personal prepro-gramable que permite su desactivacion y rearmar el sistema automati-camente en los intervalos establecidos. Su precio es de 686 euros.

Alarma perimetral Saturn: Es un sistema compuesto por 2, 3 o 4 postesunidos entre ellos por un cable electrico, el cual define una proteccioninvisible alrededor de la piscina empleando para ello rayos infrarrojos.Todo el sistema esta conectado a una sirena de alarma. El control serealiza a traves de un cuadro de mando o de una unidad de controlremoto.

Page 36: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

32 2.1. Sistemas de alarma acuatica

Los postes pueden estar separados hasta un maximo de 20 metros.Entre cada 2 postes hay 4 haces de rayos: un rayo doble a 20 cmdel suelo y otro rayo doble a 45 cm del suelo. La alarma se poneen marcha si uno de los dos rayos dobles es atravesado. Ademas, sila alarma es desconectada, se reactiva automaticamente 30 minutosdespues (aunque existe un modo de prolongacion de la desconexion dela alarma). Su precio es de 626 euros.

Alarma perimetral Primaprotect: Esta basado en un sistema compues-to por celulas infrarrojas que permite un funcionamiento sin necesidadde utilizar cables. Puede estar compuesto de 2 a 6 postes con una dis-tancia maxima entre ellos de 20 metros y alimentados mediante pilas.Estos postes definen una proteccion invisible por rayos infrarrojos al-rededor de la piscina. El sistema de postes esta conectado a una sirenade alarma que avisara en caso de que se atraviese algun rayo que unelos postes. Solamente detecta el paso de grandes volumenes, de formaque la alarma no se active debido al paso de insectos, pajaros, hojas uotros elementos arrastrados por el viento.

Ademas, este sistema incorpora una llave de activacion y desactiva-cion para controlar de forma manual los rayos de la alarma. Tambiencontiene un sistema digicodigo y un mando a distancia multifuncionpara controlar la puesta en marcha o para detener el sistema tempo-ralmente (la funcion de desactivacion de la alarma esta protegida paraque solo un adulto sea capaz de desactivar la alarma).

Por otro lado, tambien puede incorporar un brazalete de seguridad que,en el caso de caıda de una persona al agua, transmite la informacionpor ondas de radio activando la alarma sonora. Para asegurarse deque es capaz de oır las senales de alerta, de seguridad o de fallos delsistema se puede colocar la sirena dentro de casa. Su precio es de 717euros.

2.1.3. Sistemas de alarma de inmersion

A continuacion se exponen algunos sistemas de alarma de inmersionempleados actualmente:

Precisio: Se trata de un sistema colocado en un entorno acuatico yse encarga de analizar las ondas constantes que se puedan generar ydetectar la inmersion de cualquier cuerpo en el entorno acuatico. Almismo tiempo, su capacidad de medicion y analisis le permite no hacersaltar la alarma innecesariamente cuando se trata de ondas normalesgeneradas por los banistas. Esta alarma posee una capacidad sonora

Page 37: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Estado del arte 33

muy elevada, por lo que resulta muy difıcil no detectarla cuando seactiva.

Swim-Alert: Este sistema esta equipado de una potente sirena integra-da y una alarma remota para ser instalada en la vivienda. La caıdao entrada de cualquier nino, adulto o mascota superior a los 8 kilosdesencadena el salto de las sirenas de la piscina y del interior de lavivienda. Las alarmas se disparan en cuestion de segundos para que larespuesta pueda ser inmediata.

La unidad de control inalambrica ofrece una alarma secundaria en laque se puede controlar el estado del sistema. Ademas, incluye unatecnologıa que es capaz de diferenciar entre la inmersion de un cuerpoy otras perturbaciones como el viento, la lluvia o las creadas por losequipos de la piscina.

Pool Patrol: Se trata de un sistema que contiene un dispositivo flotan-do dentro del entorno acuatico como si se tratara de una boya. Estedispositivo incorpora un sensor que detecta la caıda de un cuerpo alagua y emite una senal a un receptor, el cual activa una alarma. Elsensor de alarma se conecta de forma inalambrica con el sensor delentorno acuatico y puede estar a una distancia maxima de 60 metros.

Aqualarm V2: Es un sistema formado por un dispositivo colocado enun entorno acuatico con una parte encargado de analizar sus ondas ydetectar las perturbaciones producidas en el agua debido a la caıdade un cuerpo. Si las alteraciones en el entorno acuatico se producendebido a efectos medioambientales o al funcionamiento de los sistemasde filtracion del entorno acuatico, la alarma no se activa.

Tambien incluye un dispositivo antirrobo, el cual emite una poten-te sirena en caso de que se intente manipular sin haber introducidocorrectamente el PIN de seguridad. Su precio es de 425 euros.

Dolphin: Este sistema esta formado por tres componentes: un transmi-sor, un receptor y una unidad de alarma remota. Se coloca una boya(receptor) en el interior del entorno acuatico y a la persona se le incor-pora con una banda (transmisor) en la cintura o en la muneca, la cualcontiene un transmisor ultrasonico. En caso de que la persona entre ocaiga en el entorno acuatico, el transmisor comienza a emitir una senalultrasonica, la cual es detectada inmediatamente por el receptor. Estehace sonar una alarma local y otra alarma remota alertando sobre lasituacion. A diferencia de otros sistemas, solo se activa la alarma si elreceptor y el transmisor se encuentran en el mismo entorno acuatico.

Page 38: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

34 2.2. Diferencias de nuestro prototipo

2.2. Diferencias de nuestro prototipo

Nosotros pretendemos ofrecer un sistema de alarma de inmersion y quetambien obtenga informacion acerca del entorno acuatico. La principal di-ferencia que queremos ofrecer es un dispositivo con precision mucho masbarato de los que actualmente se ofertan en el mercado, ası como ofrecer unaconexion WiFi para enviar informacion a donde se desee. Ademas, nuestroprototipo permite anadir en el futuro mas componentes que puedan resultarinteresantes para mejorarlo y/o ampliarlo.

Para ello, empleamos un microcontrolador (Wemos D1 Mini) que tienela gran virtud de incorporar un ESP8266, el cual se encarga de las tareas deprocesamiento y del control de WiFi. Este microcontrolador es muy baratoy realiza operaciones muy atractivas para lo que estamos buscando. Los dis-tintos sensores y actuadores que incorpora nuestro proyecto son controladosde manera muy eficiente por este microcontrolador.

Page 39: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Capıtulo 3

Planificacion

En este capıtulo se presentan todos los aspectos relacionados con la pla-nificacion de la realizacion del proyecto y una estimacion de los costes pre-vistos.

En primer lugar, se trata la division del proyecto en diferentes tareascon el objetivo de poder establecer una planificacion estructurada para sudesarrollo. Tambien se realiza una valoracion del tiempo dedicado a cadatarea en funcion de su dificultad y los problemas que se podrıan encontrar,reflejando estos resultados en un diagrama de Gantt para obtener una visiongrafica mas intuitiva para comprender.

Una vez decidida la planificacion a realizar junto con la temporizacion delas tareas, se identifican los recursos necesarios para el desarrollo satisfactoriodel proyecto.

Finalmente, se estiman los costes previstos en funcion de los recursoshumanos y materiales usados para la realizacion del proyecto.

3.1. Planificacion

En esta seccion se planifican las distintas tareas que se llevaran a cabopara desarrollar el proyecto. De esta forma, se pueden establecer el inicio yla finalizacion de cada tarea en la planificacion temporal para su desarrollo.Para ello, se ha realizado un analisis de las distintas etapas con la intencionde ajustarse lo maximo posible a los tiempos en la realidad.

A continuacion, se muestra cada una de las etapas en las que se hadividido el proyecto:

Page 40: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

36 3.1. Planificacion

Etapa 1: Estudio teorico

En esta primera etapa, nos centramos en el estudio y en el analisis de lainformacion relacionada con el proyecto que se quiere realizar, en lo que serefiere a los distintos sensores y actuadores que se puedan utilizar y la placaa emplear, ası como poder enviar informacion con redes WiFi disponibles.Se pretende obtener una buena bibliografıa para el correcto desarrollo delproyecto.

Etapa 2: Analisis de dispositivos

En la segunda tarea, se realiza un analisis de las caracterısticas de distin-tas placas que podemos utilizar para la implementacion de nuestro proyecto.Una vez hecho esto, concluimos que la placa Wemos D1 Mini reune las me-jores caracterısticas para nuestros intereses: contiene un microcontroladorESP8266 que se encarga de las tareas de procesamiento y del control deWiFI en un unico chip; ademas su precio no es elevado.

Tambien se hace un analisis de los tipos de sensores y actuadores quenecesitamos utilizar para la implementacion del proyecto. Una vez decididoslos tipos de sensores y actuador que vamos a utilizar, se observan las carac-terısticas que proporcionan los modelos de cada tipo de sensor para escogerlos que mas nos interesan.

Posteriormente, se estudian otros dispositivos que seran necesarios em-plear para complementar las caracterısticas de los principales y su correctofuncionamiento. Entre estos dispositivos incluimos fuente de alimentacion,caja impermeable y conector hermetico.

Etapa 3: Familiarizacion con IDE de Arduino

En este proceso nos familiarizamos con el entorno de desarrollo de Ar-duino para posteriormente programar los sensores y actuadores a utilizar ennuestra placa, ası como la conexion WiFi para poder enviar la informacionrecopilada por ellos. Para ello, estudiamos el lenguaje Arduino y analizamosdistintos ejemplos ya programados con el objetivo de su comprension.

Etapa 4: Programacion y calibracion de sensores y buzzer

Una vez familiarizados con el entorno de desarrollo de Arudino, se proce-de a la programacion de los sensores. Programamos cada sensor por separado

Page 41: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Planificacion 37

y comprobamos que realiza su funcion correctamente. Posteriormente, ca-libramos cada uno de los sensores para afinar las medidas proporcionadas.Finalmente, se junta en un unico sketch el codigo de cada sensor, de formaque se tiene todo el codigo de programacion necesario para el correcto funcio-namiento de todos los sensores. En el entorno de Arduino es muy importantetener en cuenta el tipo de placa empleada.

Etapa 5: Estudio de modos de bajo consumo

A continuacion, se procede al estudio de los distintos modos de bajoconsumo que se pueden emplear con Wemos D1 Mini. Este estudio englobalas caracterısticas que ofrece cada uno de los modos teniendo en cuenta elconsumo de la fuente de alimentacion durante el funcionamiento del dispo-sitivo, tanto en modo de bajo consumo como en modo activo. A partir deahı, escogemos el modo de bajo consumo que mas ventajas nos proporcionapara la realizacion de nuestro proyecto (modo deep-sleep).

Etapa 6: Estudio de la plataforma ThingSpeak y WiFi

En esta etapa se realiza un estudio de la plataforma ThingSpeak, lacual nos permite recopilar informacion del estado de los sensores que esenviada a traves de Wemos D1 Mini, empleando para ello la opcion de WiFique incorpora. ThingSpeak permite almacenar, analizar, visualizar y actuarsobre la informacion recibida.

Tambien se aprende a utilizar la conexion WiFi ofrecida por Wemos D1Mini para poder enviar la informacion a la plataforma ThingSpeak.

Etapa 7: Pruebas

Tras realizar la programacion y calibracion de los sensores, el disenodel prototipo y su implementacion, se procede a la realizacion de pruebasdel prototipo con el objetivo de verificar que funciona correctamente o dedetectar algun fallo que debamos corregir.

Etapa 8: Redaccion de memoria tecnica

La ultima tarea de este proceso consiste en la elaboracion de una memo-ria tecnica que contenga todos los conocimientos teoricos y practicos desarro-llados en la implementacion de este proyecto. Se muestra el proceso seguido

Page 42: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

38 3.1. Planificacion

para el diseno y el desarrollo del proyecto.

Una vez establecidas las distintas tareas de las que se compone el pro-yecto, se establece una planificacion para intentar cumplir diferentes plazostemporales en su desarrollo, con el objetivo de realizar de forma ordenadael proyecto. En la figura 3.1 se puede observar un diagrama de Gantt quemuestra graficamente la planificacion que se desea seguir:

Figura 3.1: Diagrama de Gantt.

En el diagrama de Gantt podemos observar que se han establecido unosperiodos temporales para la realizacion de las tareas. En la tabla 3.1 sepueden ver todas las estimaciones temporales a cumplir en cada una de lasetapas establecidas inicialmente en la planificacion.

Planificacion temporal de etapas

Etapas Descripcion Tiempo estimado

Etapa 1 Estudio teorico 80 horas

Etapa 2 Analisis de dispositivos 40 horas

Etapa 3 Familiarizacion con IDE Arduino 30 horas

Etapa 4 Programacion y calibracion 80 horas

Etapa 5 Estudio modos bajo consumo 30 horas

Etapa 6 Estudio ThingSpeak y WiFi 30 horas

Etapa 7 Pruebas 80 horas

Etapa 8 Redaccion de memoria tecnica 150 horas

Tabla 3.1: Analisis temporal de las tareas.

Esto sirve para planificar el desarrollo del proyecto de forma orientativa.Sin embargo, es posible que en alguna tarea nos encontremos alguna dificul-tad adicional y sea necesario modificar el periodo temporal de esa tarea, locual puede repercutir en alguna tarea mas.

Page 43: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Planificacion 39

3.2. Recursos utilizados

En esta seccion se realiza un desglose de todos los recursos utilizadosen el desarrollo del proyecto. Estos recursos los podemos clasificar en trescategorıas: humanos, hardware y software. Para realizar la estimacion de loscostes necesarios emplearemos esta clasificacion.

3.2.1. Recursos humanos

D. Jorge Navarro Ortiz y D. Sandra Sendra Compte, profesores delDepartamento de Teorıa de la Senal, Telematica y Comunicaciones dela Universidad de Granada, en calidad de tutores del proyecto.

Jesus Gomez Molino, alumno del Grado de Ingenierıa de Teconologıasde Telecomunicacion y autor del presente proyecto.

3.2.2. Recursos hardware

Ordenador portatil Toshiba Satellite L855, con procesador Intel Corei5-2450M a 2.5GHz, memoria RAM de 4GB y disco duro de 595GBde capacidad. Usaremos el ordenador para programar los sensores,actuador y establecer conexion WiFi en el IDE de Arduino instaladoen este.

Wemos D1 Mini, placa basada en el microcontroladaor ESP2866 quese encarga de las tareas de procesamiento y del control de WiFi.

Sensor de ultrasonidos HC-SR04, elemento capaz de detectar objetosy medir la distancia a la que se encuentran.

Sensor de inclinacion SW-200D, elemento que proporciona una senalen caso de que su inclinacion supere un umbral.

Sensor acelerometro y giroscopio MPU-6050, elemento que permite co-nocer la informacion para determinar la orientacion y las aceleracionesa las que esta sometido el sensor.

Sensor de temperatura DS18B20, elemento que mide la temperaturadel entorno en el que se emplea.

Buzzer, elemento que emite un sonido para alertar de una situacionde peligro.

Resistencias de 330Ω y 4.7KΩ.

Page 44: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

40 3.3. Estimacion de costes

Conector hermetico IP68, valvula que permite al sensor medir la tem-peratura del agua y evita que entre agua en el interior de una caja.

Caja IP68, deposito impermeable que cumple una legislacion de evitarla entrada de agua en su interior.

Baterıa de litio 18650, empleada para proporcionar alimentacion a loselementos que lo necesitan.

Holder 18650, pequeno deposito para colocar la baterıa de litio 18650.

Medidor de corriente/potencia, elemento USB que se utiliza para medirel consumo de energıa de un dispositivo.

Protoboard, placa empleada para insertar en ella componentes electroni-cos y cables.

Cables jumper, cables con un conector en cada punta empleados paratransferir senales electricas de la protoboard a los pines de entrada/-salida de la placa.

3.2.3. Recursos software

Sistema operativo Windows 10 (64 bits) instalado en el ordenadorportatil en el que se utiliza IDE de Arduino.

IDE de Arduino, entorno de desarrollo de Arduino para poder proga-mar los sensores, el buzzer y la conexion WiFi que posteriormente secargan en la placa Wemos D1 Mini.

ThingSpeak, plataforma empleada para recopilar, almacenar, analizar,visualizar y actuar sobre la informacion recogida por los sensores denuestro dispositivo.

Overleaf, servicio de LateX para la elaboracion de la memoria tecnicadel proyecto.

3.3. Estimacion de costes

En este apartado, se presenta el desarrollo de una estimacion de los costesque acarrea la realizacion del proyecto de una forma orientativa, mostrandoel coste asociado a cada etapa en la que hemos dividido el proyecto.

Page 45: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Planificacion 41

3.3.1. Recursos humanos

A continuacion, se calculan los costes relativos a los recursos humanos enfuncion del tiempo invertido en las tareas predefinidas anteriormente. Paraello, tomamos los datos de la tabla 1.

Para obtener el coste relativo a los recursos humanos tenemos en cuentalos siguientes requisitos:

El sueldo de un ingeniero junior se valora en 20 euros/hora.

El sueldo de un Doctor de la Universidad de Granada se valora en 50euros/hora.

El tiempo invertido en tutorıas y reuniones para el planteamiento, desa-rrollo, supervision y revision con los tutores ha sido de 30 horas aproxima-damente.

A partir de los requisitos considerados se realiza el calculo del costeasociado a las horas invertidas. Lo mostramos en la siguiente tabla:

Coste estimado de etapas

Etapas Descripcion Coste estimado

Etapa 1 Estudio teorico 1600 euros

Etapa 2 Analisis de dispositivos 800 euros

Etapa 3 Familiarizacion con IDE Arduino 600 euros

Etapa 4 Programacion y calibracion 1600 euros

Etapa 5 Estudio modos bajo consumo 600 euros

Etapa 6 Estudio ThingSpeak y WiFi 600 euros

Etapa 7 Pruebas 1600 euros

Etapa 8 Redaccion de memoria tecnica 3000 euros

Coste Profesor 1500 euros

TOTAL: 11900 euros

Tabla 3.2: Analisis de coste de las tareas.

3.3.2. Recursos hardware

En este apartado se calculan los costes relativos a los recursos hardware.Estos costes los podemos dividir segun los distintos componentes empleados:

Ordenador portatil: 100 euros

Page 46: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

42 3.3. Estimacion de costes

Wemos D1 Mini: 2,77 euros

Protoboard: 1,64 euros

Sensor de inclinacion SW-200D: 0,09 euros

Sensor de ultrasonidos HC-SR04: 1,50 euros

Sensor acelerometro y giroscopio MPU-6050: 1,27 euros

Sensor de temperatura DS18B20: 1,17 euros

Buzzer: 0,88 euros

Resistencias de 330Ω y 4.7KΩ: 0.66 euros

Cables jumper: 1,45 euros

Caja IP68: 4,50 euros

Conector hermetico IP68: 0,19 euros

Baterıa de litio 18650: 2,53 euros

Holder 18650: 0,55 euros

Medidor de corriente/potencia: 3,07 euros

A continuacion se muestra una tabla con el coste asociado a cada ele-mento hardware que compone el proyecto:

Page 47: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Planificacion 43

Coste estimado de elementos hardware

Elemento Coste estimado

Ordenador portatil 100 euros

Wemos D1 Mini 2,77 euros

Protoboard 1,64 euros

Sensor de inclinacion SW-200D 0,09 euros

Sensor de ultrasonidos HC-SR04 1,50 euros

Sensor MPU-6050 1,27 euros

Sensor de temperatura DS18B20 1,17 euros

Buzzer 0,88 euros

Resistencias 0,66 euros

Cables jumper 1,45 euros

Caja IP68 4,50 euros

Conector hermetico 0,19 euros

Baterıa de litio 18650 2,53 euros

Holder 18650 0,55 euros

Medidor de corriente/potencia 3,07 euros

TOTAL: 122,27 euros

Tabla 3.3: Analisis de coste de los elementos hardware.

3.3.3. Presupuesto final

Tras realizar un analisis del coste asociado a cada uno de los recursosprincipales utilizados en el proyecto, se calcula el coste total para su desarro-llo. En consecuencia, se puede observar en la tabla 3.4 el presupuesto finalobtenido sumando los costes asociados a cada tipo de recurso:

Coste total estimado

Recursos humanos 11900 euros

Recursos hardware 122,27 euros

COSTE TOTAL: 12022,27 euros

Tabla 3.4: Coste total.

3.4. Valoracion

Tras el desarrollo del proyecto, podemos afirmar que generalmente lastareas han seguido el orden previsto de la planificacion establecida. En algun

Page 48: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

44 3.4. Valoracion

momento la estimacion temporal no ha sido totalmente exacta debido aque la tarea no respondıa correctamente y se ha necesitado mas tiempo,como ha sido el caso de la implementacion del modo de bajo consumo yla manera de volver a modo activo debido a una situacion de peligro. Aunası, el desarrollo del proyecto ha seguido de forma general la planificacionestablecida previamente.

Page 49: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Capıtulo 4

Especificaciones de requisitos

En este capıtulo se presentan distintas cuestiones necesarias para la rea-lizacion de este proyecto.

En primer lugar, se analizan los requisitos funcionales y no funciona-les que se deben cumplir para el correcto funcionamiento del dispositivo.Estos requisitos se obtienen teniendo en cuenta los objetivos establecidosanteriormente.

Tras esto, se presenta la metodologıa seguida en el transcurso del pro-yecto, explicando la forma en la que se ha llevado a cabo cada una de lasetapas.

4.1. Requisitos

En esta seccion se identifican los distintos requisitos necesarios para eldesarrollo satisfactorio del proyecto con el objetivo de simplificar conceptospara su implementacion.

Gracias al estudio previo de los requisitos necesarios se puede abordarcon mayor facilidad la etapa de planificacion del proyecto; ademas, esto per-mitira diferenciar y aislar por etapas los distintos problemas que se planteendurante el desarrollo del proyecto.

Los requisitos los podemos dividir en dos tipos: funcionales y no funcio-nales.

Page 50: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

46 4.1. Requisitos

4.1.1. Requisitos funcionales

Los requisitos funcionales corresponden a aquellos que son imprescindi-bles cumplir para el correcto desarrollo del proyecto. Podemos encontrar lossiguientes:

Determinar el nivel del agua. Este requisito implica detectar la pro-fundidad del entorno en el que se encuentra.

Medir la inclinacion. Este requisito consiste en apreciar la inclinaciondel dispositivo y actuar si supera un umbral establecido.

Detectar el estado del oleaje. Este requisito determina el oleaje que elentorno acuatico somete al sensor. Permite saber si la situacion estacontrolada.

Medir la temperatura. Este requisito radica en medir la temperaturadel entorno acuatico en el que se instala el dispositivo.

Alertar de una emergencia. Este requisito se basa en alertar sobre unasituacion de peligro generada por alguna circunstancia.

Deposito impermeable. Es necesario emplear un deposito en dondealmacenar el dispositivo desarrollado y no se dane cuando se instaleen un entorno acuatico.

Conector ajustable. Es primordial utilizar un conector que impida lapenetracion del agua en el interior del deposito en donde se almacenael dispositivo desarrollado.

Alimentacion. Hay que emplear una fuente de alimentacion que per-mita ofrecer autonomıa al dispositivo desarrollado.

4.1.2. Requisitos no funcionales

Los requisitos no funcionales corresponden a aquellos que se han de utili-zar pero se trata de una posibilidad entre las existentes. Es decir, son aquellosrequisitos que escogemos debido a que sus caracterısticas nos interesan paralo que nosotros pretendemos obtener. Podemos encontrar los siguientes:

ESP8266: Se trata de un microcontrolador que integra WiFi ofreciendoun uso eficiente de energıa, un diseno compacto y un rendimiento fiableen la industria del Internet de las Cosas (IoT).

Page 51: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Especificaciones de requisitos 47

IDE Arduino: Es un entorno de desarrollo empleado para programarlos sensores, el actuador y configurar la conexion WiFi. Posteriormentese carga ese codigo en la placa con el objetivo de que interactue conellos y poder obtener la informacion que nos ofrece. Esto lo instalamosen el sistema operativo Windows 10.

4.2. Metodologıa

A continuacion, se presenta el desarrollo seguido para la realizacion deeste proyecto.

En primer lugar, se hizo un estudio a nivel general del proyecto a reali-zar con el objetivo de comprender las distintas partes que se necesitanimplementar para su realizacion. Tambien se hizo un estudio de so-luciones ya existentes, de forma que podamos ofrecer caracterısticasdiferentes que sean atractivas.

En segundo lugar, se analizo las caracterısticas de los distintos tipos deelementos que necesitamos para seleccionar aquellos que nos ofrecenlas caracterısticas que nos interesan para llevar a cabo lo que estamosbuscando.

El siguiente paso consistio en el aprendizaje del entorno de desarrollo(IDE) de Arduino para programar los sensores que necesitamos.

Tras esto, programamos los sensores, realizamos las conexiones corres-pondientes con el microcontrolador y comprobamos que cada sensorrealizaba correctamente su funcion.

Posteriormente, calibramos cada uno de los sensores con el objetivo deestablecer un patron de referencia adecuado y afinar las medidas querealizan.

Despues, se procedio al aprendizaje de producir interrupciones duranteel funcionamiento normal del dispositivo para advertir de una situacionespecial.

El siguiente paso consistio en el estudio de los modos de bajo consumode energıa existentes para proporcionar una mayor duracion a la fuentede alimientacion del dispositivo desarrollado.

Tras esto, se unifico el codigo de todos los sensores en un unico sketchy se comprobo el correcto funcionamiento del dispositivo.

Page 52: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

48 4.2. Metodologıa

Posteriormente, se paso a la comprension de la plataforma ThingS-peak con el objetivo de recopilar la informacion proporcionada por lossensores y se implemento el codigo necesario para que se produjera eseenvıo de informacion a traves de una conexion WiFi.

Por ultimo, realizamos pruebas y evaluamos que el prototipo desarro-llado realiza su funcion satisfactoriamente, tal y como planificamos alinicio de realizar el proyecto.

Page 53: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Capıtulo 5

Dispositivos y tecnologıasempleadas

En este capıtulo se realiza un analisis de las caracterısticas de los elemen-tos y del software que necesitamos emplear para el desarrollo del proyecto.A traves de este analisis pretendemos ofrecer las razones por las que he-mos decidido utilizar estos elementos y software para la realizacion de estetrabajo.

5.1. Wemos D1 Mini

Al ser Arduino una plataforma de hardware libre, tanto su diseno comosu distribucion puede utilizarse libremente para el desarrollo de cualquiertipo de proyecto sin haber adquirido ninguna licencia. Por eso existen variostipos de placas oficiales (creadas por la comunidad Arduino) y no oficiales(creadas por terceros) pero con caracterısticas similares. En esta placa esdonde se conectan los sensores, los actuadores y otros elementos necesariospara comunicarse con el sistema.

Para el desarrollo de nuestro proyecto hemos empleado una placa creadapor un tercero denominada Wemos D1 Mini. Esta placa esta gobernadapor un chip altamante integrado, el ESP8266, que se encarga de las tareasde procesamiento y del control de WiFi en un unico chip. Esta disenadaespecialmente para trabajar en una protoboard o soldada sobre una placa.Posee un regulador de voltaje que le permite alimentarse directamente delpuerto USB. El chip CH340G se encarga de la comunicacion USB-Serial.Los pines de entrada/salida trabajan a 3.3V o a 5V.

Esta placa permite cubrir un requisito no funcional, ya que incorpora el

Page 54: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

50 5.1. Wemos D1 Mini

microcontrolador ESP8266. Se ha optado por esta opcion porque en una pla-ca de reducido tamano se tienen 11 pines digitales (suficientes para nuestroproyecto) e incluye control WiFi en la misma.

Las especificaciones tecnicas de Wemos D1 Mini son:

Dimensiones: 34.2mm x 25.6mm

Peso: 10g

Microcontrolador: ESP8266 (Modulo ESP-12)

Voltaje de alimentacion: 5V DC

Voltaje entradas/salidas: 3.3V DC

CPU: Tensilica Xtensa LX3 (32 bits)

Frecuencia de reloj: 80MHz/160MHz

Instruction RAM: 32kB

Data RAM: 96kB

Memoria Flash externa: 4MB

Pines digitales GPIO: 11 (pueden configurarse como PWM a 3.3V)

Pines analogicos ADC: 1 (0-1 V)

UART: 1

USB: CH340G

Corriente en standby: 40µA

Corriente de pico: 400mA

Promedio de corriente consumida: 70mA

Consumo de potencia en standby: < 1mW

A continuacion describimos brevemente la funcion de los elementos quecomponen la placa Wemos D1 Mini:

Pin de 5V: Este pin permite suministrar alimentacion de un valor de5V a los elementos.

Pin de 3.3V: Este pin permite suministrar alimentacion de un valor de3.3V a los elementos.

Page 55: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Dispositivos y tecnologıas empleadas 51

Pin de tierra (G): Este pin es la tension de referencia de 0V, empleadocomo masa del circuito para otros pines.

Pin de reset (RST). Este pin permite activar un modo de bajo consumoen el microcontrolador, reiniciarlo y volver a modo activo.

Boton de reset: Este boton permite reiniciar el microcontrolador.

Pines digitales: En estos pines se conectan las patillas de datos de lossensores y de los actuadores. Desde ellos se puede leer la informaciondel sensor o activar el actuador. Estos pines pueden utilizarse comoentrada o como salida con las funciones pinMode(), digitalWrite() ydigitalRead(). Esta placa posee 11 pines digitales.

Pines TX y RX: Son pines digitales empleados para transmitir (TX)y recibir (RX) datos serie. Estan directamente conectados a los pinesserie del microcontrolador. Estos pines permiten conectarse con otrasplacas.

Pin analogico: Este pin se caracteriza por la posibilidad de que unamagnitud pueda tomar cualquier valor dentro de un intervalo. Loselementos conectados a este pin suelen tener mayor precision que losconectados al pin digital, pero su uso requiere de una logica mas com-pleja. El maximo voltaje de entrada para este pin es de 3.3V.

Microcontrolador ESP8266: ESP8266 es un chip altamente integradodisenado para las necesidades de un mundo cada vez mas interconecta-do. Ofrece una solucion de red WiFi completa y autonoma, permitien-do alojar aplicaciones o descargar todas las funciones de red WiFi des-de otro procesador de aplicaciones. Cuenta con una potente capacidadde procesamiento y almacenamiento que le permiten ser utilizados consensores y otros dispositivos especıficos a traves de sus pines genericosde entrada/salida. El dispositivo completo esta disenado para ocuparun area mınima de PCB (Printed Circuit Board).

Conector USB: El conector USB que utiliza es del tipo CH340G. Estetipo de conector es un adaptador de bus USB que proporciona interfa-ces serie o paralelo sobre el bus USB. Este elemento permite cargar elcodigo programado en el IDE de Arduino a la placa Wemos D1 Mini.

Ademas, Wemos D1 Mini al incorporar el microcontrolador ESP8266ofrece la posibilidad de emplear 3 modos de bajo consumo de energıa:modem-sleep, light-sleep y deep-sleep. Estos modos permiten aumentar laduracion de la fuente de alimentacion ahorrando energıa cuando sea posible.

Es importante resaltar que en la mayorıa de los proyectos en los cuales seemplea este tipo de procesador existen muchos periodos de inactividad, por

Page 56: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

52 5.1. Wemos D1 Mini

lo que es interesante poder reducir lo maximo posible el consumo de energıa.Si ademas se tiene en cuenta que la fuente de alimentacion utilizada es unabaterıa de litio 18650 (como ocurre en nuestro caso) es mas que interesantela oportunidad que presenta de poder utilizar un modo de bajo consumopara maximizar la duracion de la baterıa antes de su completa descarga.

A continuacion se presenta una tabla con las principales diferencias exis-tentes entre estos modos:

Item Modem-sleep Light-sleep Deep-sleep

WiFi OFF OFF OFF

System Clock ON OFF OFF

RTC ON ON ON

CPU ON Pending OFF

Consumo de energıa 15mA 0.4mA 20µA

Tabla 5.1: Diferencias entre modos de bajo consumo.

En las proximas lıneas se presentan los 3 modos de bajo consumo deenergıa mostrando sus principales caracterısticas.

Modem-sleep

El modo modem-sleep se encuentra habilitado solamente cuando WemosD1 Mini se conecta a un punto de acceso con una conexion WiFi de tipoStation. La conexion WiFi de tipo Station se caracteriza por el control deldispositivo desarrollado por parte de otros dispositivos clientes que se conec-ten al mismo punto de acceso, como pueden ser ordenadores, smartphoneso tablets. Wemos D1 Mini permanece conectado al punto de acceso a travesdel mecanismo DTIM beacon.

En este modo de bajo consumo de energıa, Wemos D1 Mini desacti-va la conexion WiFi entre dos intervalos Beacon DTIM con el objetivo deahorrar energıa. Wemos D1 Mini se despierta automaticamente antes de lallegada del proximo Beacon DTIM. El tiempo de sleep viene determinadopor el intervalo de tiempo de Beacon DTIM del router. Durante el modomodem-sleep, Wemos D1 Mini puede permanecer conectado al WiFi y reci-bir informacion interactiva desde un telefono movil o servidor.

Modem-sleep permite desactivar la conexion WiFi de tipo Station esta-blecida con un punto de acceso (como un router) cuando no sea necesariosu uso y volver a activarla cuando se requiera. El consumo de energıa tıpicodurante este modo es de 15mA.

Page 57: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Dispositivos y tecnologıas empleadas 53

Modem-sleep se utiliza generalmente en aplicaciones que necesitan man-tener la CPU activa.

Light-sleep

El modo light-sleep es similar al modo modem-sleep. La unica diferenciaes que durante el modo light-sleep, Wemos D1 Mini desactiva tanto el cir-cuito del reloj como el de WiFi y ademas suspende la CPU interna, lo cualresulta en un consumo aun menor que en el modo modem-sleep.

Light-sleep permite mantener la conexion WiFi de tipo Station, peroreduce el consumo de energıa en los momentos en los que no hay envıo deinformacion. El consumo tıpico durante este modo es de 0.4mA.

Durante el modo light-sleep, la CPU se encuentra suspendida y no res-ponde a las senales y a las interrupciones procedentes de las interfaces pe-rifericas hardware. Por lo tanto, Wemos D1 Mini necesita ser despertadomediante un GPIO (Pin de Entrada o Salida Generico) externo. El procesode activacion requiere menos de 3ms. La funcion de activacion del GPIOsolo puede habilitarse mediante disparadores de nivel.

Light-sleep se puede utilizar en los casos donde ciertas aplicaciones nece-sitan permanecer conectadas al router, de modo que puedan responder a lainformacion enviada por el router en tiempo real. La CPU puede encontrarseinactiva antes de recibir cualquier comando.

Deep-sleep

El modo deep-sleep se caracteriza por desactivar la conexion WiFi, elreloj de sistema (System Clock) y la CPU, de forma que solamente el RTC(Real Time Clock) permanece funcionando y es el responsable de despertara Wemos D1 Mini periodicamente.

Deep-sleep es el modo de bajo consumo que genera mayor ahorro a costade dejar la placa en suspenso. La unica parte de la placa que funciona duranteese modo es el RTC para poder reiniciarla cuando haya finalizado el tiempode reposo. El consumo tıpico durante este modo es de 20µA.

Cuando Wemos D1 Mini se encuentra en este modo, puede ser despertadode dos formas diferentes: periodicamente o externamente:

En la forma periodica, se configura el tiempo que Wemos D1 Minidebe permanecer en modo deep-sleep y cuando llega el momento se

Page 58: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

54 5.1. Wemos D1 Mini

despierta. Para ello, el pin D0 se conecta al pin RST; cuando llega elmomento, la placa es despertada e iniciada mediante un pulso de bajonivel generado en el pin RST a traves del pin D0.

En la forma externa no se configura ningun tiempo tras el cual WemosD1 Mini deba despertarse, sino que es asıncrono. Aquı la placa esdespertada e iniciada mediante un pulso de bajo nivel generado en elpin RST a traves de un pin GPIO.

La funcion ESP.deepSleep() es la que se emplea para despertar a WemosD1 Mini de forma periodica. Esta funcion esta compuesta por dos variables:tiempo en µs y modo reinicio:

tiempo en µs: Es el tiempo, indicado en microsegundos, que debe es-tar el microprocesador en modo deep-sleep. El tiempo maximo que sepuede mantener a Wemos D1 Mini en suspenso es de aproximadamen-te 71 minutos y 30 segundos. Esto se debe a que los microprocesadoresESP8266 (Wemos D1 Mini integra este microprocesador) trabajan con32 bits.

modo reinicio: Indica la manera en la que proceder con la calibracionde la senal de radio para WiFi cuando se reinicia el microprocesador.Existen 4 posibilidades:

• WAKE RF DEFAULT: Cuando se reinicia el microprocesador,unicamente se calibra la senal de radio si el chequeo da error.

• SLEEP TIME, WAKE RFCAL: Cuando se reinicia el micropro-cesador siempre se calibra la senal de radio. Esto incrementa elconsumo.

• SLEEP TIME, WAKE NO RFCAL: Cuando se reinicia el micro-procesador no se calibra la senal de radio. Esto reduce el consumo.

• WAKE RF DISABLED: Cuando se reinicia el microprocesadorse deshabilita la senal de radio (como en el modo modem-sleep).Esta es la posibilidad con menor consumo, pero no permite enviarni recibir datos vıa WiFi.

Deep-sleep se puede utilizar en aplicaciones de sensores de bajo consumoo en casos donde no es necesaria la transmision de informacion durante lamayor parte del tiempo. Wemos D1 Mini se despierta de este modo en inter-valos de tiempo especificados para medir y enviar informacion o se despiertadebido a un pulso recibido para actuar de la manera precisa y al finalizarvuelve de nuevo al modo deep-sleep. Wemos D1 Mini puede almacenar tam-bien informacion en la memoria RTC y enviarlos despues al mismo tiempo.

Page 59: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Dispositivos y tecnologıas empleadas 55

Para el desarrollo de nuestro dispositivo se ha empleado este modo por-que es el que nos ofrece las mejores caracterısticas para lo que pretendıamosdesplegar. Nos ofrece la posibilidad de despertar a Wemos D1 Mini periodi-camente para recopilar y enviar informacion acerca de la trayectoria llevadapor nuestro dispositivo, ası como despertar a Wemos D1 Mini mediante unpulso si ocurre una situacion de alerta. Tambien nos permite mantener laplaca en suspense cuando no es necesario recopilar ni enviar informacion,permitiendo ahorrar consumo de energıa.

5.2. Sensores

Un sensor es un dispositivo capaz de detectar magnitudes fısicas o quımi-cas, llamadas variables de instrumentacion, y transformarlas en variableselectricas. Las variables de instrumentacion pueden ser, por ejemplo, la tem-peratura, la distancia, la aceleracion, la inclinacion, la presion, la humedad oel movimiento. Las magnitudes electricas pueden ser una resistencia electrica(como en un detector de temperatura resistivo), una capacidad electrica (co-mo en un sensor de humedad), una tension electrica (como en un termopar)o una corriente electrica (como en un fototransistor).

Los sensores siempren que esten activados estaran tomando continua-mente informacion sobre la situacion que les rodea y un servidor o una placa(como Wemos D1 Mini en nuestro caso) se encarga de leer la informacion ydecidir como actuar. Los sensores pueden ser analogicos o digitales.

Se han empleado sensores para satisfacer algunos requisitos funcionalesde este proyecto:

Determinar la distancia de objetos: Sensor de ultrasonidos HC-SR04.Entre las opciones disponibles se ha optado por este sensor porque essencillo de usar, tiene un bajo consumo, es barato y calcula la distanciade un objeto detectado en un rango adecuado al de los entornos en losque se pretende utilizar.

Medir la inclinacion: Sensor de inclinacion SW-200D. Se ha escogidoeste tipo de sensor debido a que su funcionamiento es muy simple yeficaz. Este sensor detecta si se ha superado un umbral de inclinacion.Para lo que nosotros buscamos, ese umbral es adecuado (15o).

Detectar el estado del oleaje: Sensor MPU-6050. Entre las opcionesdisponibles se ha empleado este sensor porque se trata de un dispo-sitivo muy pequeno que es capaz de obtener una gran cantidad deinformacion. Este sensor se encarga de obtener las aceleraciones y la

Page 60: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

56 5.2. Sensores

orientacion del prototipo desarrollado en el entorno en el cual se en-cuentra.

Medir la temperatura: Sensor de temperatura DS18B20. La princi-pal razon de utilizar este modelo del sensor de temperatura radicaen que se trata de una sonda, con el sensor situado en un extremo,que permite sacarlo del dispositivo en donde se almacena el dispositi-vo desarrollado y ası medir la temperatura real existente en el entornoacuatico. Ademas, posee un amplio rango de medicion que cubre todaslas temperaturas que se pueden dar en los entornos a instalar.

5.2.1. Sensor de ultrasonidos

El sensor HC-SR04 es un dispositivo capaz de detectar objetos y medirla distancia a la que se encuentran. Su funcionamiento se basa en el envıode un pulso de alta frecuencia, no audible por el ser humano. Este pulsorebota en los objetos cercanos y es reflejado hacia el sensor, el cual disponede un receptor adecuado para esa frecuencia. Este sensor consta de 4 pines:alimentacion (VCC), masa (GND), disparador (TRIG) y receptor (ECHO).

Las especificaciones tecnicas de este sensor son:

Alimentacion: 5V DC

Frecuencia de trabajo: 40kHz

Corriente de trabajo: < 2mA

Corriente de reposo: 15mA

Angulo efectivo: < 15o

Distancia: 2cm - 450cm

Resolucion: 0.3cm

Tiempo mınimo de espera entre medidas: 20ms

El procedimiento que sigue el sensor es el siguiente:

Para iniciarlo, se envıa un pulso corto de disparo de una duracion apro-ximada de 10ms al sensor. Esto constituye una senal de activacion para elsensor.

En respuesta a ese pulso de inicio, el sensor emitira una corta rafagaultrasonica a una frecuencia de 40kHz. Esa rafaga ultrasonica sale por el

Page 61: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Dispositivos y tecnologıas empleadas 57

emisor del sensor y cuando choca con un objeto retorna y es captada por elreceptor ultrasonico en el sensor.

En el momento en el que la rafaga ultrasonica es emitida por el sensor,este provee un pulso de salida que se inicia justamente cuando la rafaga esenviada y finaliza cuando la rafaga es detectada por el receptor. Por tanto,la longitud de ese pulso de salida es proporcional al doble de la distanciamedida al objeto, ya que corresponde con el tiempo que tarda la rafagaultrasonica en ir y volver desde el objeto detectado. En consecuencia, paraobtener la distancia efectiva es necesario tomar la mitad de ese pulso porquesolo nos interesa la mitad de la distancia que recorre la rafaga.

Como resumen, podemos dividir este proceso en tres partes:

En primer lugar, se realiza un disparo.

En segundo lugar, se capta un pulso de salida retornado por el sensor.

En tercer lugar, se utiliza esa informacion para calcular la distanciaefectiva que existe hasta el objeto.

5.2.2. Sensor de inclinacion

El sensor de inclinacion SW-200D es un dispositivo que proporciona unasenal digital en caso de que su inclinacion supere un umbral (15o). El sensorconsta de dos bolas en su interior y de dos terminales. La bola de abajohace contacto con los terminales y la bola de arriba se encarga de presionara esta para que haga contacto. Cuando se inclina el sensor (a partir de 15o)la bola de abajo deja de hacer contacto con los terminales.

Este sensor actua como un interruptor: cuando esta vertical las bolashacen contacto con los terminales cerrando el circuito; en cambio, cuando seinclina y supera un lımite (15o) la bola deja de hacer contacto con los termi-nales abriendo el circuito. Este sensor no permite saber el grado inclinaciondel dispositivo, solamente se cierra o se abre el circuito segun el grado deinclinacion.

Anteriormente, estos sensores se constituıan ubicando una gota de mer-curio en el interior de una ampolla de vidrio, en cuyo interior se alojabandos conductores. A partir de cierta inclinacion, la gota de mercurio se des-plazaba cerrando el contacto entre ambos conductores. En la actualidad,por motivos medioambientales, casi todos los sensores de mercurio han sidodesplazados por sensores tilt (nuestro caso).

Las especificaciones tecnicas de este sensor son:

Page 62: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

58 5.2. Sensores

Voltaje: < 12V

Corriente: < 20mA

Resistencia de circuito cerrado: < 10Ω

Resistencia de circuito abierto: > 10MΩ

Rango de temperatura: -40oC a 80oC

Vida util: 100.000 ciclos

5.2.3. Sensor acelerometro y giroscopio

El sensor MPU-6050 es un dispositivo que integra un acelerometro detres ejes y un giroscopio de tres ejes que permite conocer la informacionnecesaria para determinar la orientacion y las aceleraciones a las que estasometido el sensor. Este sensor utiliza el protocolo de comunicacion I2C.

El acelerometro detecta las fuerzas de inercia que empujan al sensorinterno y las descompone en las tres direcciones principales de referencia(x,y,z). Cuando un acelerometro es sometido a una fuerza lateral en unadireccion, el sensor interno tiende a retrasarse en la direccion contraria a lafuerza que actua y al detectar las paredes en las que choca y la intensidadcon lo que lo hace, se puede calcular la direccion de la fuerza aplicada.Determina la aceleracion lateral que una fuerza externa provoca en el sensory mezclando la informacion de los tres ejes determina mediante calculo ladireccion de la fuerza que se le aplica.

El giroscopio detecta la rotacion del sensor y la descompone en las tresdirecciones principales de referencia (x,y,z). Un giroscopio detecta las fuerzascentrıfugas y las convierte en velocidad de giro alrededor de los tres ejesprincipales; por calculo obtiene los angulos de inclinacion con respecto a losejes de referencia.

Como resumen, el acelerometro mide las fuerzas laterales instantaneasa las que se somete el sensor en las tres direcciones de referencia, mientrasque el giroscopio mide la velocidad angular a la que esta girando en cadamomento el sensor.

Hay que comentar que tanto para el acelerometro como para el giroscopiono se tienen en un principio medidas precisas. Esto se debe a que las lecturasdel acelerometro son ruidosas y tienen un cierto margen de error; por otraparte, aunque el giroscopio da las medidas con mucha precision, al realizarlos calculos es inevitable que se produzca un pequeno error que con el tiempova acumulandose (se conoce como drift).

Page 63: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Dispositivos y tecnologıas empleadas 59

Para solucionar ese problema se utiliza un filtro. El filtro elimina el ruido,el drift y consigue que el acelerometro no cambie de angulo al detectar otrafuerza que no sea la de gravedad. El filtro que se utliza recibe el nombrede Filtro Complementario. Es una union de dos filtros diferentes: un filtropaso alta para el giroscopio (deja pasar solamente valores por encima de uncierto lımite) y un filtro paso baja para el acelerometro (deja pasar solamentevalores por debajo de un cierto lımite).

Otra solucion consiste en emplear el DMP (Digital Motion Processor)que contiene integrado el sensor MPU-6050. El DMP realiza la combinacionde la medicion del acelerometro y del giroscopio proporcionando resultadosmas precisos que si se emplea el filtro complementario.

Las especificaciones tecnicas del sensor MPU-6050 son:

Salida digital de 6 ejes

Acelerometro con sensibilidad de ±2g, ±4g, ±8g, ±16g

Giroscopio de sensibilidad de ±250o/s, ±500o/s, ±1000o/s, ±2000o/s

Algoritmos incluidos para calibracion

Interrupciones programables

Rango de voltaje de alimentacion: 2.37V a 3.46V

Tolerancia de aceleracion maxima: 10000g

5.2.4. Sensor de temperatura

El DS18B20 es un sensor digital que se emplea para medir la temperaturadel agua. Este sensor utiliza el protocolo OneWire para comunicarse, el cualnecesita un solo pin para enviar y recibir datos a diferencia de la mayorıade los protocolos que requieren dos pines. Tambien permite conectar mas deun sensor al mismo bus. Cuenta con tres terminales: dos de alimentacion yuno de datos (bidireccional).

Con este sensor se pueden medir temperaturas desde los -55oC hasta los125oC con una resolucion programable desde 9 bits hasta 12 bits con lassiguientes diferencias:

Page 64: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

60 5.2. Sensores

Resolucion configurada Precision obtenida Tiempo de lectura

9 bits 0,5000oC 93,75ms

10 bits 0,2500oC 187,50ms

11 bits 0,1250oC 375,00ms

12 bits 0,0625oC 750,00ms

Tabla 5.2: Diferencias segun resolucion de bits.

En el rango comprendido entre -10oC y 85oC tiene una alta precision (de0.5oC).

Cada sensor tiene una direccion unica de 64 bits establecida de fabrica.Esta direccion sirve para identificar al dispositivo con el que se esta comu-nicando, puesto que en un bus OneWire pueden existir varios dispositivos.

Las especificaciones tecnicas de este sensor son:

Rango de temperatura: -55oC a 125oC

Resolucion programable: 9 a 12 bits

Identificacion unica de 64 bits

Precision de 0.5oC para el rango de temperatura de -10oC a 85oC

Tiempo de consulta: < 750ms

Rango de voltaje: 3V a 5V

Varios sensores pueden conectarse a un mismo pin

Longitud de cable: 91cm

Diametro de cable: 4mm

Longitud de tubo de acero inoxidable: 30mm

Diametro de tubo de acero inoxidable: 4mm

El sensor tiene dos metodos de alimentacion:

Alimentacion usando una fuente externa: En este metodo el sensor sealimenta a traves del pin VCC con una fuente externa. De esta forma,el voltaje es estable e independiente del trafico del bus OneWire. Estaforma de alimentacion es la que se suele emplear cuando se utiliza estesensor de temperatura.

Page 65: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Dispositivos y tecnologıas empleadas 61

Alimentacion a traves del pin de datos: En este metodo el sensor in-ternamente obtiene energıa del pin de datos cuando este se encuentraen un estado alto y almacena carga en un condensador para cuando lalınea de datos este en un estado bajo. A esta forma de obtener energıase le llama Parasite Power y se usa cuando el sensor debe conectarsea grandes distancias o en donde el espacio es limitado, puesto que deesta forma no se necesita la lınea de VCC. Para activar el modo Para-site Power es indispensable que los pines GND y VCC del sensor estenambos conectados a GND de la placa.

Para realizar las conexiones del sensor DS18B20 con la placa Wemos D1Mini es necesario utilizar una resistencia pull-up de 4.7KΩ entre el terminalde datos del sensor, el pin digital de la placa al que se unira el terminal dedatos del sensor y el pin VCC.

En el caso en el que se quieran conectar varios sensores de temperaturase puede realizar de dos formas:

En la primera opcion, cada pin de datos del sensor se conecta a unpin digital diferente de la placa. En esta opcion cada sensor necesitasu propia resistencia pull-up de 4.7KΩ.

En la segunda opcion, se utiliza el mismo pin digital para todos lossensores, es decir, todos los sensores se conectan al mismo bus OneWirecon una identificacion unica para cada sensor. En el caso del sensorDS18B20 su direccion es unica y viene establecida de fabrica.

5.3. Actuadores

Un actuador es un dispositivo capaz de transformar energıa electrica enla activacion de un proceso con la finalidad de generar un efecto sobre unelemento externo. Este recibe la orden de un regulador, controlador o ennuestro caso de Wemos D1 Mini y en funcion de ello genera la orden paraactivar a un elemento final de control. Un actuador va conectado a la salidade Wemos D1 Mini.

En nuestro caso, un actuador se encarga de cumplir un requisito funcionalindispensable para la realizacion de nuestro proyecto. Como actuador seemplea un buzzer y es el encargado de alertar de una situacion de peligro.Se ha optado por su uso debido a que su funcionamiento es muy sencilloy eficaz. Cuando recibe una senal de activacion genera una alarma a unafrecuencia programable audible por el ser humano. Ademas, su consumo esbajo.

Page 66: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

62 5.4. Protoboard

5.3.1. Buzzer

Un buzzer es un actuador que permite convertir una senal electrica enuna onda de sonido. Este dispositivo no dispone de electronica interna, porlo que es necesario proporcionar una senal electrica para conseguir el sonidodeseado. Tiene la ventaja de que se puede variar el tono emitido modificandola senal aplicada al buzzer.

El buzzer es un transductor electroacustico, es decir, es un dispositivo queconvierte senales electricas en sonido. Tambien se le puede definir como untransductor piezoelectrico. Los materiales piezoelectricos tienen la propiedadde variar su volumen al ser atravesados por corrientes electricas. Un buzzeraprovecha este fenomeno para hacer vibrar una membrana al atravesar elmaterial piezoelectrico con una senal electrica.

Si se conecta un material piezoelectrico con una senal digital, vibra auna frecuencia que sigue fielmente la variacion electrica con que los excita.Si ademas vibra a una frecuencia audible, se percibe el sonido que produce.

Un buzzer es un dispositivo pequeno y compacto, con alta durabilidad yde bajo consumo electrico.

5.4. Protoboard

La protoboard es una placa que posee unos orificios conectados electrica-mente entre sı siguiendo un patron horizontal o vertical. Es empleada pararealizar pruebas de circuitos electronicos, insertando en ella componenteselectronicos y cables. Se puede considerar como un boceto de un circuitoelectronico donde se realizan las pruebas de funcionamiento necesarias antesde trasladarlo sobre un circuito impreso.

Por lo general, en este tipo de placas podemos diferenciar tres partes:

Zona de alimentacion

Zona de conexiones superior

Zona de conexiones inferior

La zona de alimentacion esta compuesta por orificios horizontales co-nectados entre sı electricamente a lo largo de toda la placa. Son dos lıneasindependientes: una para alimentacion y otra para masa. Normalmente lasprotoboards tienen dos zonas de alimentacion situadas en lados opuestospara distribuir diferente alimentacion.

Page 67: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Dispositivos y tecnologıas empleadas 63

La zona de conexiones superior esta compuesta por columnas de orificiosconectados electricamente entre sı. Cada columna es independiente electri-camente con las demas, es decir, los orificios solo estan conectados de formavertical.

La zona de conexiones inferior es igual a la zona de conexiones supe-rior. Ambas zonas estan separadas electricamente. Estas dos zonas son muynecesarias para la insercion de circuitos integrados con dos filas de pines.

Las protoboards tienen un codigo de localizacion de orificio, el cual con-siste en numerar verticalmente y horizontalmente la matriz de orificios conlas letras del abecedario para las filas y numeros enteros para las columnas.Esto es muy util cuando el circuito a realizar es complejo y requiere mu-chos componentes y cables. La conexion de un componente electronico enla placa debe hacerse de tal forma que sus patillas se inserten en columnasdiferentes (si sus patillas se insertan en la misma columna de la misma zonade conexiones estarıan en cortocircuito).

5.5. Otros dispositivos

5.5.1. Conector hermetico

El conector hermetico cumple con un requisito funcional simple peromuy importante. Su objetivo es evitar que penetre agua en el interior deldeposito en donde se almacena el dispositivo desarrollado.

El conector hermetico es un dispositivo que se coloca en la caja parapermitir que el sensor de temperatura pueda realizar su funcion y evita queentre agua en el interior de la caja donde tenemos todo el sistema. Esteconector es de tipo IP68, lo que garantiza su impermeabilidad.

5.5.2. Baterıa de litio 18650

La baterıa de litio 18650 se emplea como fuente de alimentacion de nues-tro dispositivo desarrollado. Permite que los elementos reciban la alimenta-cion correspondiente actuando en un entorno de forma independiente.

La baterıa de litio proporciona una alta capacidad de carga y posee unacaracterıstica atractiva para un proyecto como el nuestro: es recargable.

La baterıa de litio cumple con un requisito funcional que consiste enproporcionar alimentacion a los elementos necesarios para el correcto fun-cionamiento del dispositivo desarrollado.

Page 68: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

64 5.6. Software

5.5.3. Caja IP 68

La caja IP 68 es un pequeno deposito en el cual se almacena el dispo-sitivo desarrollado para evitar que entre en contacto con el agua cuandoeste instalado en el entorno acuatico y se dane. Es indispensable que estedeposito sea impermeable y no permita la entrada de agua.

Para ello, se emplea un deposito que se caracteriza por ser del tipo IP68. Esto refleja el grado de proteccion IP que hace referencia a la normainternacional CEI 60529 Degrees of Protection, lo cual se emplea con muchafrecuencia en los datos tecnicos de equipamiento electrico o electronico. Es-pecifica un sistema efectivo para clasificar los diferentes grados de proteccionaportados por los depositos que almacenan los componentes que constituyenun equipo.

Mediante la asignacion de diferentes codigos numericos, el grado de pro-teccion del equipamiento puede ser identificado de manera rapida y confacilidad:

Las letras IP identifican al estandar Ingress Protection.

El primer dıgito numerico describe el nivel de proteccion ante polvo.Tiene un rango de 0-6.

El segundo dıgito numerico describe el nivel de proteccion frente alıquidos. Tiene un rango de 0-9K.

Como regla general se puede establecer que cuanto mayor es el grado deproteccion IP, mas protegido esta el equipamiento.

Nuestra caja tiene un grado de proteccion IP 68. Esto indica que secaracteriza por ofrecer una proteccion fuerte contra el polvo (no debe entrarbajo ninguna circunstancia), ası como soportar una inmersion completa ycontinua a una cierta profundidad especificada sin filtracion alguna.

Por tanto, nuestra caja cumple con el requisito funcional de emplear undeposito impermeable.

5.6. Software

A continuacion se presenta el software empleado en la realizacion de esteproyecto. El mas importante es el entorno de desarrollo de Arduino en el cualse programan los sensores, el actuador y se configura una conexion WiFi. Elempleo de este software cumple con un requisito no funcional.

Page 69: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Dispositivos y tecnologıas empleadas 65

Por otra parte, se utiliza ThingSpeak para almacenar la informacionrecopilada por los sensores y enviada a traves de la conexion WiFi.

5.6.1. IDE de Arduino

La plataforma Arduino tiene un lenguaje propio que esta basado enC/C++, por lo que soporta las funciones del estandar C y algunas de C++.Tambien es posible utilizar otros lenguajes de programacion y aplicacionespopulares en Arduino como Java, Processing, Python, Mathematica, Perlo Visual Basic entre otros. Esto es posible debido a que Arduino se comu-nica mediante la transmision de datos en formato serie que es algo que lamayorıa de los lenguajes anteriormente citados soportan. Para los lenguajesque no soportan el formato serie de forma nativa es posible utilizar softwareintermediario que traduzca los mensajes enviados por ambas partes parapermitir una comunicacion fluida.

El entorno de desarrollo de Arduino es sencillo e intuitivo y ademas puededescargarse gratuitamente desde su pagina oficial para distintos sistemasoperativos. Ha sido implementado con Processing que es un lenguaje similara Java. Para la realizacion de este proyecto se ha utilizado la version 1.8.1.Estas caracterısticas han resultado importantes para emplear este entornode desarrollo y cumplir con un requisito no funcional.

Este entorno esta formado por una serie de menus, una barra de he-rramientas con botones para las funciones comunes, un editor de texto paraescribir el codigo, un area de mensajes y una consola de texto. En la siguienteimagen podemos ver la presentacion de este entorno:

Figura 5.1: Entorno de desarrollo de Arduino.

A continuacion comentamos cada area mencionada anteriormente centrando-

Page 70: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

66 5.6. Software

nos en sus caracterısticas mas relevantes:

Menu: Esta compuesto por las pestanas Archivo, Editar, Programa,Herramientas y Ayuda. La parte mas importante se encuentra en lapestana Herramientas. Desde ahı se puede configurar el programa paraque pueda comunicarse con la placa (Wemos D1 Mini en nuestro caso).En un apartado de esta pestana llamado Placa aparece una lista conlos tipos de placas que comprende el programa. Aquı seleccionamosWemos D1 R2 & mini, que incluye la placa que utilizamos nosotrospara el desarrollo del proyecto. En el apartado llamado Puerto selec-cionamos el que corresponde a nuestra placa que conectamos medianteUSB. El puerto tiene asignado un nombre de la forma COMx, siendox el numero.

Botones comunes: Estos botones son accesos rapidos a ciertas accionesmuy recurrentes. Estas acciones tambien estan disponibles en el menu.Los botones proporcionados son los siguientes:

• Verificar: Comprueba y compila el codigo.

• Subir: Compila el codigo y lo carga en el microcontrolador.

• Nuevo: Crea un nuevo sketch para escribir el codigo de un pro-grama.

• Abrir: Permite abrir un sketch previamente guardado.

• Salvar: Almacena los cambios realizados en el sketch.

• Monitor serie: Abre una ventana en la cual se muestra informacionenviada o proprocionada por el microcontrolador.

Editor de texto: En esta zona se escribe el codigo del programa (de-nominado sketch) que se desea conseguir y posteriormente se cargaraen el microcontrolador para que realice sus respectivas funciones. Elsketch lo podemos diferenciar en cuatro partes:

• En la primera parte se incluyen las librerıas y se declaran lasconstantes y las variables globales que se podran utilizar en elsketch.

• La segunda parte corresponde al metodo setup() que es el encar-gado de iniciar los dispositivos conectados al microcontrolador.Solamente se ejecuta al iniciar el sistema.

• La tercera parte corresponde al metodo loop() que es el lugardonde se programa la funcion a realizar por el dispositivo. Ejecutael codigo continuamente como si se tratara de un bucle.

Page 71: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Dispositivos y tecnologıas empleadas 67

• Tambien se permite crear otros metodos para facilitar la progra-macion del dispositivo.

Area de mensajes: Presenta la accion que se ejecuta al presionar unode los botones comunes.

Consola de texto: Presenta con mayor detalle los eventos del area demensajes.

5.6.2. ThingSpeak

ThingSpeak es una plataforma de servicio de analisis IoT que permiterecopilar, visualizar y analizar flujos de datos en tiempo real en la nube.Proporciona visualizaciones instantaneas de los datos enviados por los dis-positivos a ThingSpeak. Ademas, incorpora la capacidad de ejecutar codigoMATLAB, con la cual se puede realizar un analisis y procesamiento de losdatos en tiempo real a medida que se reciben. Algunas de las caracterısticasmas importantes que ofrece ThingSpeak son:

Una configuracion sencilla de los dispositivos para enviar informaciona ThingSpeak empleando protocolos populares de IoT.

Visualizar los datos recopilados por un sensor en tiempo real.

Emplear MATLAB para darle sentido a la informacion IoT recibida.

Ejecutar automaticamente analisis de IoT basados en horarios o even-tos.

Desarrollar prototipos o sistemas IoT sin necesidad de configurar ser-vidores o desarrollar software web.

Actuar automaticamente sobre la informacion recibida y comunicarseempleando servicios de terceras partes como Twitter o Twilio.

Hoy en dıa hay sensores en casi todos los entornos que nos rodean comoen los hogares, smartphones, automoviles o infraestructuras. Los sensoresdetectan y recogen informacion de multitud de entornos como pueden serla temperatura, humedad o presion y comunican esos datos como un valornumerico o una senal electrica. ThingSpeak permite a los sensores enviarinformacion a la nube, donde se almacena en un canal privado o publico.De forma predeterminada, los datos se almacenan en canales privados; loscanales publicos permiten compartir datos con otros usuarios. Una vez quela informacion se encuentra almacenada en un canal, se puede visualizar

Page 72: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

68 5.6. Software

y analizar, obtener nueva informacion o interactuar con las redes sociales,servicios web y con otros dispositivos.

El almacenamiento de la informacion en la nube proporciona un accesosencillo a ella. Empleando herramientas analıticas online, como MATLAB, sepuede visualizar y explorar la informacion. Se pueden hallar relaciones, pa-trones y tendencias en la informacion, ası como obtener nueva informacion.Tambien se puede visualizar en graficos. ThingSpeak proporciona acceso aMATLAB para ayudar a dar sentido a los datos recibidos. Utilizando estaherramienta analıtica se puede:

Convertir, combinar y calcular nuevos datos.

Ejecutar acciones en determinados horarios identificados.

Comprender visualmente las relaciones entre los datos mediante lasfunciones de dibujo integradas.

Combinar datos de varios canales para crear un analisis mas sofistica-do.

ThingSpeak tambien permite desencadenar una actuacion tras analizarla informacion recibida. Un ejemplo de ello serıa recibir un tweet cuandola temperatura de un entorno que se esta midiendo supera los 30o C. Otroejemplo mas complejo serıa encender un motor cuando el nivel de agua deun tanque cae por debajo de un lımite especificado. Ademas, utilizando laaplicacion TalkBack se pueden controlar dispositivos de forma remota.

Page 73: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Capıtulo 6

Diseno e implementacion

En este capıtulo se expone el diseno y la implementacion del dispositivodesarrollado pretendiendo mostrar paso a paso y la relacion existente en-tre todos los elementos empleados, ası como su forma de proceder para sucorrecto desarrollo.

En primer lugar, se presenta una forma general de la arquitectura deldispositivo que se ha desarrollado. Posteriormente, se muestra una explica-cion acerca de la manera en la que trabaja el dispositivo. Finalmente, seexplica la funcion y las formas de relacionar cada elemento con los demaspara formar el dispositivo final.

6.1. Arquitectura general

En este apartado se presenta de forma general el diseno que se ha utili-zado para crear el dispositivo.

En primer lugar, se utiliza una placa protoboard que servira para colo-car Wemos D1 Mini, los sensores, el actuador y resistencias, ası como pararealizar las conexiones correspondientes entre estos elementos de forma quelos relacionemos. Para realizar las conexiones entre los distintos elementosse emplean cables jumper. Por otra parte, programando codigo en el IDE deArduino se establece su correcto funcionamiento.

Por otro lado, se encuentra la baterıa de litio 18650 que se emplea comofuente de alimentacion del dispositivo. Esta baterıa se encuentra colocada enun pequeno deposito que incorpora dos cables: uno positivo y otro negativo.Estos cables se insertan adecuadamente en la placa protoboard de formaque se proporciona alimentacion a los elementos que lo necesitan (Wemos

Page 74: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

70 6.2. Funcionamiento

D1 Mini, sensores y actuador).

Todo lo anterior se almacena en el interior de un deposito que cumplecon unos requisitos de forma que garantiza que no habra filtracion de aguaen su interior. Esto permite colocar el dispositivo en un entorno acuatico ga-rantizando su integridad. Ademas, en el deposito se necesita hacer un orificiopara permitir la salida del sensor de temperatura y que realice su trabajoestando en contacto con el agua. Para evitar que penetre agua en el interiordel deposito por el orificio originado, se emplea un conector hermetico ajus-table que tambien cumpla con los requisitos de impermeabilidad y se ajustala medida precisa que permita la salida del sensor de temperatura e impidala entrada de agua en el interior del deposito.

En el siguiente esquema se presenta esta arquitectura:

Figura 6.1: Esquema conceptual de la arquitectura del dispositivo.

6.2. Funcionamiento

En este apartado se muestra una explicacion sobre los pasos que siguenuestro dispositivo para ofrecer un correcto funcionamiento.

En primer lugar, indicar que para el desarrollo de nuestro dispositivose ha empleado el modo deep-sleep porque es el que nos ofrece las mejorescaracterısticas para lo que pretendıamos desplegar. Nos ofrece la posibilidadde despertar a Wemos D1 Mini periodicamente para recopilar y enviar in-formacion acerca de la trayectoria llevada por nuestro dispositivo, ası comodespertar a Wemos D1 Mini mediante un pulso si ocurre una situacion dealerta. Tambien nos permite mantener la placa en suspense cuando no esnecesario recopilar ni enviar informacion, permitiendo ahorrar consumo deenergıa.

Page 75: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Diseno e implementacion 71

Inicialmente, cuando Wemos D1 Mini se encuentra en modo activo, serealiza una conexion WiFi con una red para tener acceso a Internet y poderenviar y/o recibir informacion. Posteriormente, a traves de los sensores serecopila la informacion del entorno acuatico: con el sensor de temperaturade obtiene la temperatura del agua, con el sensor de ultrasonidos se detectael nivel del agua y con el sensor MPU-6050 se obtienen los parametros deaceleracion y orientacion en los 3 ejes del movimiento del agua. Una vezobtenida esta informacion se envıa a la plataforma ThingSpeak empleandopara ello la conexion WiFi establecida anteriormente. Tras este envıo deinformacion, Wemos D1 Mini pasa a modo deep-sleep un tiempo predeter-minado con el objetivo de que el dispositivo consuma menos y ası haya unamayor duracion de la fuente de alimentacion.

Para que Wemos D1 Mini vuelva a modo activo se pueden dar dos si-tuaciones:

Una vez transcurrido el tiempo predeterminado del modo deep-sleep,Wemos D1 Mini vuelve a modo activo y realiza los mismos pasos queantes, recopilando nueva informacion del entorno acuatico a traves delos sensores y enviandola de nuevo a la plataforma ThingSpeak.

Una situacion de alerta detectada por el sensor de inclinacion. Si eldispositivo se inclina 15o o mas se envıa una senal para que Wemos D1Mini vuelva a modo activo y genere una alarma a traves del buzzer.

Por otra parte, si se esta recopilando informacion a traves de los sensoresy el sensor de inclinacion detecta una situacion peligrosa, se activa el buzzersenalizando dicha situacion.

En la plataforma ThingSpeak se recibe la informacion recopilada porlos sensores y la muestra graficamente permitiendo seguir su evolucion. Hayuna grafica independiente para la informacion recopilada por cada sensor.ThingSpeak permite seguir una evolucion de los datos recogidos por los sen-sores con el objetivo de tener un mayor control del entorno acuatico. Tambienpermite utilizar la herramienta analıtica MATLAB para visualizar, explorar,comparar y obtener nueva informacion. Tras analizar la informacion recibi-da, ThingSpeak tambien ofrece la posibilidad de realizar una actuacion siprocede.

A continuacion se presenta un diagrama de flujo en el cual se preten-de reflejar de una forma visual el comportamiento que sigue el dispositivodesarrollado segun las circunstancias con las que se encuentre:

Page 76: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

72 6.3. Elementos

Figura 6.2: Diagrama de funcionamiento del dispositivo.

6.3. Elementos

En esta seccion se expone la funcion que realiza cada elemento y laforma de relacionarlo con los demas para obtener finalmente el dispositivodesarrollado.

Tambien se muestra el codigo de programacion empleado en los sensoresy en el actuador para el correcto funcionamiento del dispositivo. Ademas,se incluye un esquema de conexion para cada sensor en el cual se muestravisualmente el conexionado con la placa Wemos D1 Mini y se anade unatabla con el conexionado entre los pines de los sensores y Wemos D1 Mini.

6.3.1. Protoboard

La placa protoboard posee unos orificios conectados electricamente entresı y es empleada para insertar en ella componentes electronicos y cables.Ademas, incluye zona de alimentacion positiva y masa que es muy util a lahora de montar el circuito.

La placa protoboard tiene como objetivo relacionar Wemos D1 Mini conlos sensores y el actuador, ası como permitir la alimentacion proporcionadapor la fuente de alimentacion.

Page 77: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Diseno e implementacion 73

6.3.2. Wemos D1 Mini

El elemento principal del proyecto es Wemos D1 Mini. Es el elemento endonde se carga el codigo programado en el IDE de Arduino y se encarga deejecutar sus pasos. Una vez compilado y subido el sketch a Wemos D1 Mini,este se encarga de establecer una conexion WiFi con alguna red, ejecuta elcodigo correspondiente para que los sensores realicen su funcion, envıa lainformacion recopilada a la plataforma ThingSpeak a traves de la conexionWiFi establecida anteriormente y posteriormente pasa al modo deep-sleephasta que es despertado.

Wemos D1 Mini puede ser despertado de dos formas y segun la situacionque lo despierte actua de una forma o de otra:

Si es despertado transcurrido un tiempo predeterminado, realiza elmismo proceso que anteriormente y despues pasa de nuevo al mododeep-sleep.

Si es despertado debido a que ha recibido una senal del sensor deinclinacion, activa una alarma haciendo sonar el buzzer.

Cabe destacar un aspecto importante que realiza Wemos D1 Mini al in-corporar el microcontrolador ESP8266. Este aspecto es la conexion WiFique establece sin necesidad de incorporar ningun elemento mas en el circui-to. Como se quiere enviar informacion a un lugar concreto, hay que indicarla URL del servidor al que hay que conectarse para enviar la informacionrecopilada. Ademas, en este caso es necesario incluir una clave privada pro-porcionada por ThingSpeak para enviar la informacion a un canal privadoidentificado por esa clave. Para establecer la conexion WiFi es necesario de-clarar un administrador WiFi que sera el encargado de proporcionarla. Porultimo, se declara un cliente WiFi que sera utilizado en la funcion loop.

Una vez declaradas las lıneas necesarias para realizar una conexion WiFise pasa a la funcion setup(). En esta funcion se inicia la conexion de We-mos D1 Mini con la red WiFi, verificando su estado hasta que se conecta.Para realizar la conexion con la red WiFi se emplea el administrador WiFideclarado anteriormente, el cual tiene como funcion ofrecer una conexioncon la red a la que se encuentra conectada un dispositivo movil con el quese relaciona mediante un nombre y una clave. Esto se realiza cada vez quearranca Wemos D1 Mini, es decir, cada vez que pasa del modo deep-sleep almodo activo realiza esta accion.

Tras esto, se pasa a la funcion loop(). Una vez recopilados los datos porlos sensores, el cliente WiFi declarado anteriormente comprueba si se puede

Page 78: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

74 6.3. Elementos

conectar al servidor declarado al principio y, si es posible, envıa la infor-macion recopilada por los sensores al canal privado creado en ese servidor.Cuando finaliza, se desactiva el cliente hasta que necesite volver a enviarinformacion a ThingSpeak.

Cuando se finaliza el tiempo de envıo de informacion a ThingSpeak, seactiva el modo deep-sleep en el Wemos D1 Mini para que ahorre consumode energıa. A continuacion se presenta el codigo empleado para activar estemodo:

Figura 6.3: Codigo de programacion del modo deep-sleep.

Para que sea posible la conexion WiFi es necesario usar las librerıas“ESP8266WiFi.h” y ”WiFiManager.h”. La librerıa ”ESP8266WiFi.h” in-corpora las lıneas de codigo que son necesarias emplear para establecer unaconexion WiFi y para que se puedan enviar los datos a un servidor. Lalibrerıa ”WiFiManager.h”permite relacionar Wemos D1 Mini con un dispo-sitivo movil con el objetivo de establecer una conexion con la red a la que seencuentra este dispositivo conectado. A continuacion se presenta el codigoempleado para establecer una conexion WiFi:

Page 79: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Diseno e implementacion 75

Figura 6.4: Codigo de programacion para establecer una conexion WiFi.

Wemos D1 Mini se relaciona con los sensores y el actuador a traves delos pines que incorpora. Para ello, emplea 9 pines digitales de los 11 pinesdigitales que contiene:

8 pines digitales (D1-D8) son empleados para relacionarse con los sen-sores y el buzzer. Aplica el codigo que tienen que realizar los elementosconexionados a esos pines y recibe la informacion que los elementos co-nectados a esos pines le envıan.

1 pin digital (D0) conectado al pin reset (RST) que tiene como objetivoactivar el modo deep-sleep en Wemos D1 Mini y volver al modo activocuando sea indicado.

6.3.3. Sensor de ultrasonidos HC-SR04

La funcion del sensor de ultrasonidos HC-SR04 es detectar el nivel delagua del entorno acuatico. Su funcionamiento se basa en el envıo de un pulsode alta frecuencia, no audible por el ser humano. Este pulso rebota en losobjetos cercanos y es reflejado hacia el sensor, el cual dispone de un receptoradecuado para esa frecuencia. Este sensor consta de 4 pines: alimentacion(VCC), masa (GND), disparador (TRIG) y receptor (ECHO).

El sensor se inserta en la placa protoboard y utilizando cables jumperse procede a su conexionado. El pin VCC se conecta a la zona positivade alimentacion de la placa protoboard, el pin GND se conecta a la zonanegativa de alimentacion de la placa protoboard, el pin TRIG se conecta alpin digital D7 de Wemos D1 Mini y el pin ECHO se conecta al pin digitalD8 de Wemos D1 Mini. De esta forma, se tiene el sensor de ultrasonidos

Page 80: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

76 6.3. Elementos

relacionado con la alimentacion que necesita para funcionar y con WemosD1 Mini para poder ejecutar su funcion y enviarle la informacion recopilada.

En lo referente al codigo programado, se empieza definiendo los pinesdigitales D7 y D8 de Wemos D1 Mini para los pines TRIG y ECHO delsensor respectivamente. El pin TRIG se define para el enviar el pulso dealta frecuencia. El pin ECHO se define para recibir el pulso rebotado enalgun objeto en la misma frecuencia.

Tras esto, se pasa a la funcion setup(), donde se configura el pin digitalD7 (TRIG) como salida y el pin digital D8 (ECHO) como entrada.

Despues se pasa a la funcion loop(). Se comienza realizando un disparo,que es un pulso de activacion para que el sensor empiece a realizar la medida.Para ello, primero hay que asegurarse de que el pin TRIG esta desactivado.Tras ello, se se activa el pin TRIG durante 10us, activando el envıo delpulso de alta frecuencia y se vuelve a desactivar el pin TRIG. Despues sedeclara una variable en la que se almacena el tiempo del pulso de retornorecibido en el pin ECHO. Para obtener la distancia real existente entre elsensor y el objeto se aplica una formula en la que se incluye la velocidad delsonido, se divide entre 2 debido a que la variable anterior recibıa el tiempode ida y vuelta desde el sensor hasta el objeto y se anade una calibracionpara obtener una medida mas exacta, almacenando todo ello en una nuevavariable. Por ultimo, a traves de un bucle se indica si el sensor ha detectadoalgun objeto y, en caso de que lo detecte, indica la distancia en cm a la quese encuentra.

A continuacion se muestra un sketch correspondiente con la programa-cion del sensor de ultrasonidos HC-SR04:

Page 81: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Diseno e implementacion 77

Figura 6.5: Codigo de programacion del sensor HC-SR04.

En la siguiente imagen se ofrece un esquema de conexion de este sensorcon Wemos D1 Mini:

Figura 6.6: Esquema de conexion del sensor HC-SR04 con Wemos D1 Mini.

Por ultimo, se muestra una tabla con el conexionado realizado de estesensor con Wemos D1 Mini en nuestro dispositivo:

Pin sensor ultrasonidos Pin Wemos D1 Mini

VCC 5V

GND G

TRIG D7

ECHO D8

Tabla 6.1: Conexionado de sensor de ultrasonidos y Wemos D1 Mini.

Page 82: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

78 6.3. Elementos

6.3.4. Sensor de temperatura DS18B20

El sensor de temperatura DS18B20 se emplea para medir la temperaturadel agua del entorno en el que se instala. Para ello, cuenta en un extremocon 3 terminales que se emplean para alimentacion y envıo de datos; el otroextremo contiene el sensor y se inserta en el interior del agua para obtener sutemperatura. De esta forma, se tiene el sensor de temperatura relacionadocon la alimentacion que necesita para funcionar y con Wemos D1 Mini parapoder ejecutar su funcion y enviarle la informacion recopilada.

El sensor se inserta en la placa protoboard y utilizando cables jumper seprocede a su conexionado. El terminal VCC se conecta a la zona positiva dealimentacion de la placa protoboard, el terminal GND se conecta a la zonanegativa de alimentacion de la placa protoboard y el terminal de datos seconecta al pin digital D6 de Wemos D1 Mini. Ademas, es necesario utilizaruna resistencia pull-up de 4.7KΩ entre el terminal de datos del sensor, elpin digital D6 de la placa y la zona positiva de alimentacion.

Para que el sensor de temperatura DS18B20 funcione correctamente esnecesario emplear dos librerıas en el codigo de programacion: “OneWire.h”y “DallasTemperature.h”. La primera librerıa es un protocolo que se empleapara comunicarse, el cual necesita un solo pin o terminal para enviar yrecibir datos. La segunda librerıa contiene instrucciones necesarias para quese puedan interpretar correctamente los datos enviados y recibidos con estesensor.

En lo que respecta al codigo de programacion, se comienza importandolas librerıas “OneWire.h” y “DallasTemperature.h”. Despues, se pasa a de-finir el pin digital D6 como bus de datos para enviar y recibir la informacionque necesita o ha sido recogida por el sensor de temperatura. Tras definirel pin digital, se le indica al sensor de temperatura el pin a traves del cualse debe comunicar con Wemos D1 Mini y se instancia la librerıa Dallas-Temperature para que interprete los datos enviados y recibidos a traves delbus.

En la funcion setup() simplemente se activa el sensor de temperaturapara que despues pueda realizar su trabajo.

En la funcion loop() se prepara el sensor de temperatura para proceder amedir y despues se almacena la medida de temperatura realizada (en gradoscentıgrados) en una variable. Tras esto, se anade una variable en la cual sealmacena el valor de temperatura calibrado, lo cual proporciona una medidamas exacta que la recogida inicialmente por el sensor de temperatura. Porultimo, se muestra la temperatura medida en grados centıgrados.

A continuacion se muestra un sketch correspondiente con la programa-

Page 83: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Diseno e implementacion 79

cion del sensor de temperatura DS18B20:

Figura 6.7: Codigo de programacion del sensor DS18B20.

En la siguiente imagen se ofrece un esquema de conexion de este sensorcon Wemos D1 Mini:

Figura 6.8: Esquema de conexion del sensor DS18B20 con Wemos D1 Mini.

Comentar que el sensor de temperatura representado en este esquema noes el mismo que el utilizado en la realidad (no venıa incorporado en el pro-grama). La unica diferencia existente es que el utilizado en nuestro proyectoes una sonda. El conexionado es igual al representado en este esquema.

Page 84: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

80 6.3. Elementos

Por ultimo, se muestra una tabla con el conexionado realizado de estesensor con Wemos D1 Mini en nuestro dispositivo:

Pin sensor temperatura Pin Wemos D1 Mini

VCC 5V

GND G

DATOS D6

Tabla 6.2: Conexionado de sensor de temperatura y Wemos D1 Mini.

6.3.5. Sensor MPU-6050

La funcion del sensor MPU-6050 es determinar la orientacion y las acele-raciones a las que esta sometido el sensor en el entorno en el que se encuentra.Este sensor incorpora un giroscopio de tres ejes y un acelerometro de tresejes. El giroscopio detecta la rotacion del sensor y la descompone en lastres direcciones principales de referencia (x,y,z). El acelerometro detecta lasfuerzas de inercia que empujan al sensor interno y las descompone en lastres direcciones principales de referencia (x,y,z). La comunicacion se realizautilizando un bus I2C.

Este sensor emplea el DMP (Procesador de Movimiento Digital) quecontiene integrado. El DMP realiza la combinacion de la medicion del ace-lerometro y del giroscopio, lo que proporciona mejores resultados que si seemplea un filtro complementario y ademas libera a Wemos D1 Mini delproceso de calculo.

El sensor MPU-6050 esta compuesto por 8 pines: alimentacion (VCC),masa (GND), comunicacion I2C (SCL) y (SDA), (XDA), (XCL), (AD0) einterrupcion (INT).

El sensor se inserta en la placa protoboard y utilizando cables jumperse procede a su conexionado. El pin VCC se conecta a la zona positivade alimentacion de la placa protoboard, el pin GND se conecta a la zonanegativa de alimentacion de la placa protoboard, el pin SCL se conecta alpin digital D1 de Wemos D1 Mini, el pin SDA se conecta al pin digital D2de Wemos D1 Mini y el pin INT se conecta al pin digital D5 de WemosD1 Mini. De esta forma, se tiene el sensor MPU-6050 relacionado con laalimentacion que necesita para funcionar y con Wemos D1 Mini para poderejecutar su funcion y enviarle la informacion recopilada.

Para que el sensor MPU-6050 funcione correctamente es necesario em-plear dos librerıas en el codigo de programacion: I2Cdev.h 2”MPU6050 6Axis MotionApps20.h”.

Page 85: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Diseno e implementacion 81

La primera librerıa es necesaria para que la comunicacion del sensor con We-mos D1 Mini sea satisfactoria. La segunda librerıa incluye lıneas de codigoque abarca contenidos relacionados con la aceleracion y con la orientacion.

En lo que concierne al codigo de programacion, se comienza importan-do las librerıas I2Cdev.h y ”MPU6050 6Axis MotionApps20.h”. Despues, sedefine el pin digital D5 como pin de interrupcion para este sensor. Tambiense define una variable con la que se trabaja durante el desarrollo del codigo,la cual contiene las caracterısticas de MPU-6050. Tras esto, se definen varia-bles de control y de estado, ası como las variables y vectores de orientaciony aceleracion. Por ultimo, se declara una variable de interrupcion que indicasi el pin de interrupcion de MPU-6050 ha sido activado.

En la funcion setup() se comienza iniciando el sensor empleando la va-riable definida anteriormente y configurando el pin digital D5 (INT) comoentrada. Se continua iniciando el DMP y anadiendo los valores de calibra-cion obtenidos al ejecutar el sketch de calibracion. Tras esto, se asegura queel sensor iniciado trabaja correctamente; en caso contrario lo indica.

En la funcion loop() se comienza con un bucle que hace esperar hasta queno exista una interrupcion y el contador del tamano de paquetes sea mayorque el tamano del paquete; es una accion de control. Tras esto, se resetea elvalor de la variable de interrupcion y se almacenan en dos variables el valordel estado de interrupcion y el valor del contador del tamano de paquetes.Utilizando estas variables se comprueba si hay desbordamiento; si existe seresetea para poder continuar, si no existe se espera a que el tamano del pa-quete sea adecuado. Cuando el tamano del paquete sea adecuado, se procedea leer ese paquete. Finalmente, se obtienen las coordenadas angulares yaw,pitch y roll.

Las coordenadas angulares yaw, pitch y roll son un tipo de angulos deEuler usados para describir la orientacion de un objeto en tres dimensiones.

Antes de ejecutar este sketch es necesario ejecutar un sketch para obtenerlos valores de calibracion del sensor MPU-6050 en el entorno en el que seva a utilizar. Tras ejecutar el sketch de calibracion, se obtienen unos valoresque se emplean posteriormente en el sketch del sensor MPU-6050.

En la siguiente imagen se ofrece un esquema de conexion de este sensorcon Wemos D1 Mini:

Page 86: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

82 6.3. Elementos

Figura 6.9: Esquema de conexion del sensor MPU-6050 con Wemos D1 Mini.

Tambien se muestra una tabla con el conexionado realizado de este sensorcon Wemos D1 Mini en nuestro dispositivo:

Pin sensor MPU-6050 Pin Wemos D1 Mini

VCC 5V

GND G

SCL D1

SDA D2

INT D5

Tabla 6.3: Conexionado de sensor MPU-6050 y Wemos D1 Mini.

En el anexo se anade el codigo de programacion correspondiente tantoal sketch de calibracion como al sketch que utiliza posteriormente el sensorMPU-6050. No se inserta aquı debido a su larga extension.

6.3.6. Sensor de inclinacion SW-200D y buzzer

La funcion del sensor de inclinacion SW-200D es proporcionar una senaldigital en caso de que su inclinacion supere un umbral.

La funcion del buzzer es advertir de una situacion de peligro. Para ello,convierte una senal electrica en una onda de sonido con una frecuencia au-dible por el ser humano. Esta compuesto por 3 pines: alimentacion (VCC),

Page 87: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Diseno e implementacion 83

masa (GND) y datos (I/O).

El sensor de inclinacion y el buzzer se encuentran relacionados directa-mente en este proyecto. Cuando el sensor de inclinacion supera el umbral deinclinacion, se activa el buzzer informando de una situacion de alerta.

El sensor de inclinacion se inserta en la placa protoboard y utilizandocables jumper se procede a su conexionado. Una patilla del sensor se une conla zona de alimentacion negativa de la placa protoboard y la otra patilla delsensor se une al pin digital D3 de Wemos D1 Mini; ademas, se coloca unaresistencia de valor 330Ω entre esta patilla y la zona de alimentacion positivade la placa protoboard. De esta forma, se tiene el sensor de inclinacionrelacionado con la alimentacion que necesita para funcionar y con WemosD1 Mini para poder ejecutar su funcion y enviarle la informacion recopilada.

El buzzer se inserta en la placa protoboard y utilizando cables jumperse procede a su conexionado. El pin VCC se conecta a la zona positivade alimentacion de la placa protoboard, el pin GND se conecta a la zonanegativa de alimentacion de la placa protoboard y el pin I/O se conecta al pindigital D4 de Wemos D1 Mini. De esta forma, se tiene el buzzer relacionadocon la alimentacion que necesita para funcionar y con Wemos D1 Mini parapoder ejecutar su funcion y enviarle la informacion recopilada.

En el codigo de programacion se comienza definiendo el pin digital D3para el sensor de inclinacion y el pin digital D4 para el buzzer, ası como unavariable que determinara si se da la condicion para activar el buzzer.

En la funcion setup() se configura el pin digital D3 (sensor de inclina-cion) como entrada y el pin digital D4 (buzzer) como salida. Despues, selee el estado del sensor de inclinacion y se almacena en la variable definidaanteriormente. Si el pin digital del sensor de inclinacion indica una situacionde peligro, se procede a activar el buzzer. Esto se realiza en la funcion se-tup() para alertar de una situacion de peligro antes de comenzar a realizarcualquier otra cosa que demorarıa tiempo y retrasarıa el aviso, como podrıaser la conexion con la red WiFi. De esta forma, tambien se diferencia siWemos D1 Mini ha vuelto a modo activo debido a una situacion de peligroo debido al tiempo preestablecido.

En la funcion loop() simplemente se comprueba que el sensor de inclina-cion no indica ninguna situacion de peligro y permite proceder a la recopi-lacion de informacion por parte de los sensores y a su envıo a la plataformaThingSpeak.

Por otra parte, se define una funcion llamada interrupcion que se activaen caso de que Wemos D1 Mini se encuentre en estado activo con los sensoresrecopilando informacion y se produzca una situacion de alerta. Lo que hace

Page 88: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

84 6.3. Elementos

esta funcion hacer que los sensores dejen de recopilar informacion y activarel buzzer.

A continuacion se muestra un sketch correspondiente con la programa-cion del sensor de inclinacion SW-200D junto con el buzzer:

Figura 6.10: Codigo de programacion del sensor SW-200D.

Tambien se puede observar en el siguiente sketch la funcion de interrup-cion:

Figura 6.11: Codigo de programacion de la interrupcion.

En la siguiente imagen se ofrece un esquema de conexion de este sensory del buzzer con Wemos D1 Mini:

Page 89: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Diseno e implementacion 85

Figura 6.12: Esquema de conexion del sensor SW-200D y buzzer con WemosD1 Mini.

Comentar que el buzzer representado en este esquema no es el mismo queel utilizado en la realidad (no venıa incorporado en el programa). La unicadiferencia existente serıa anadir un pin de VCC en el buzzer del esquema yconectarlo a la zona de alimentacion de la placa protoboard.

Por ultimo, se muestran dos tablas con el conexionado realizado de estesensor con Wemos D1 Mini y del buzzer con Wemos D1 Mini en nuestrodispositivo:

Pin sensor inclinacion Pin Wemos D1 Mini

PATILLA 1 5V

PATILLA 1 D3

PATILLA 2 G

Tabla 6.4: Conexionado de sensor de inclinacion y Wemos D1 Mini.

Pin buzzer Pin Wemos D1 Mini

VCC 5V

GND G

I/O D4

Tabla 6.5: Conexionado de buzzer y Wemos D1 Mini.

Page 90: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

86 6.3. Elementos

6.3.7. Baterıa de litio 18650

La funcion de la baterıa de litio 18650 es proporcionar alimentacion alos elementos del dispositivo desarrollado que la necesitan para que puedanrealizar su funcion.

La baterıa de litio se coloca en el interior del holder 18650, el cual po-see dos cables de alimentacion: positiva y negativa. Estos cables se insertanadecuadamente en la placa protoboard proporcionando la alimentacion re-querida.

6.3.8. Caja IP 68 y conector hermetico

La funcion de la caja IP 68 es almacenar la placa protoboard con We-mos D1 Mini, los sensores y el actuador insertados, ası como la fuente dealimentacion asegurando que no estaran en contacto con el agua cuando seinstale en el entorno acuatico.

Ademas, es necesario hacer un orificio en la caja para permitir que elsensor de temperatura entre en contacto con el agua y pueda realizar sufuncion. Para evitar que entre agua en el interior de la caja por este orificio,se emplea un conector hermetico ajustable que permite la salida del sensorde temperatura y se ajusta a su dimension evitando la penetracion del aguaen el interior de la caja.

Page 91: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Capıtulo 7

Fase de pruebas

Este capıtulo describe el proceso que se ha llevado a cabo para realizarla fase de pruebas del proyecto. Esta fase de pruebas tiene como objetivocomprobar el comportamiento del sistema completo y solucionar posibleserrores.

A lo largo de la implementacion del proyecto se han ido realizando distin-tas pruebas con el fin de comprobar que, lo desarrollado hasta ese momento,realizaba su funcion correctamente.

Tambien se incluye un apartado en el que se refleja la calibracion desensores realizada para el correcto funcionamiento del dispositivo.

Ademas, se muestra el consumo de energıa de nuestro dispositivo tantoen modo de bajo consumo como en modo activo, lo cual permite hacer unaestimacion de la duracion que tendra la fuente de alimentacion empleadaantes de su descarga.

7.1. Calibracion de sensores

La calibracion es el proceso de comparar el valor obtenido por un instru-mento de medicion con la medida correspondiente de un patron de referencia.Para calibrar un instrumento se necesita disponer de uno de mayor precisiondenominado patron que proporcione el valor convencionalmente verificable,el cual se utiliza para compararlo con la medida mostrada por el instrumentoque esta siendo sometido al proceso de calibracion. El objetivo de la cali-bracion es mantener y verificar el buen funcionamiento de los instrumentos,responder los requisitos establecidos en las normas de calidad y garantizarla fiabilidad y la trazabilidad de las medidas.

Page 92: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

88 7.1. Calibracion de sensores

Por tanto, nuestra actuacion ha consistido en afinar las medidas inicial-mente presentadas por los sensores con el objetivo de obtener unos resul-tados mas precisos. Para ello, se han comparado las medidas inicialmenterecopiladas por los sensores con patrones de referencia considerados queproporcionan valores fiables.

Para la calibracion del sensor de ultrasonidos HC-SR04 se ha empleadouna cinta metrica como patron de referencia. Para ello, se ha colocado unobjeto a una cierta distancia del sensor de ultrasonidos de forma que pudieradetectarlo y ofrecer una medida de la distancia a la cual lo percibıa. Poste-riormente, se tomo la cinta metrica y se midio la distancia existente entre elsensor de ultrasonidos y el objeto colocado. Una vez obtenida la distanciaexistente entre el sensor de ultrasonidos y el objeto, se aplico una relacionadecuada en el codigo de programacion para obtener unos resultados fiablesde la distancia ofrecida por el sensor. Despues, se comprobo que la relacionaplicada era correcta colocando objetos a distintas distancias y obteniendosu medida comparandola con la conseguida empleando la cinta metrica.

En la siguiente grafica se muestran datos tomados tanto con el sensor deultrasonidos como con la cinta metrica. A partir de estos datos se estableceuna relacion para realizar la calibracion del sensor.

Figura 7.1: Grafica para realizar la calibracion del sensor de ultrasonidos.

Para la calibracion del sensor de temperatura DS18B20 se ha empleadoun termometro como patron de referencia. Para obtener la temperatura delentorno en el que se encuentra el sensor de temperatura, se ha programado

Page 93: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Fase de pruebas 89

el codigo necesario en el IDE de Arduino y se ha medido la temperatura conel sensor. Posteriormente, se ha comparado el resultado obtenido con la tem-peratura indicada por el termometro situado en ese entorno. Tras compararambas medidas, se aplico una correspondiente relacion a la obtencion de latemperatura en el codigo de programacion para obtener unos resultados fia-bles de la temperatura presentada. Estos resultados se verificaron en variosentornos contrastando siempre con la medida mostrada por el termometro.

En la siguiente grafica se muestran datos tomados tanto con el sensor detemperatura como con el termometro. A partir de estos datos se estableceuna relacion para realizar la calibracion del sensor.

Figura 7.2: Grafica para realizar la calibracion del sensor de temperatura.

Para la calibracion del sensor MPU-6050 se ha utilizado un sketch decodigo de programacion a traves del cual se obtienen unos valores de ace-leracion y de orientacion que posteriormente se insertan en el sketch delcodigo de programacion del sensor MPU-6050. Para obtener estos valoressimplemente se coloca el sensor MPU-6050 en horizontal y en reposo conla orientacion en la que posteriormente permanecera. De esta forma, eje-cutando el sketch se obtienen unos valores de aceleracion y de orientacioniniciales que se anadiran en el sketch de ejecucion del sensor MPU-6050. Enla siguiente imagen se muestra esta calibracion:

Page 94: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

90 7.1. Calibracion de sensores

Figura 7.3: Calibracion del sensor MPU-6050.

El sensor de inclinacion SW-200D no necesita ser calibrado, ya que sufuncion consiste en detectar si se ha superado un umbral de inclinacion. Sinembargo, sı se ha comprobado que este umbral sea preciso en la medida delo posible empleando para ello un transportador. En la siguiente imagen sepuede observar:

Figura 7.4: Calibracion del sensor de inclinacion.

Por otro lado, el buzzer (actuador) no necesita ser calibrado. Para que

Page 95: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Fase de pruebas 91

realice su funcion correctamente solamente hay que programar que actue auna frecuencia audible para el ser humano.

7.2. Consumo del dispositivo desarrollado

En esta seccion se presentan resultados empıricos acerca del consumodel dispositivo desarrollado. Para mostrar estos resultados, se comienza ob-teniendo el consumo de energıa en modo activo de cada sensor empleadoindividualmente; posteriormente, se muestran los resultados del dispositivodesarrollado incluyendo todos los sensores, ası como en modo activo y enmodo deep-sleep.

Para medir el consumo de energıa se emplea el medidor de corriente/po-tencia. Se coloca entre Wemos D1 Mini y el ordenador portatil. Se carga elsketch correspondiente en la placa y cuando comienza a realizar su funcionse activa el medidor de corriente/potencia.

Se comienza obteniendo el consumo de energıa en modo activo de cadasensor individualmente. Para ello, se ejecuta el sketch correspondiente y semide el tiempo transcurrido en consumir 2mAh. En la siguiente tabla sepresentan los resultados obtenidos:

Sensor Tiempo medido (min) mAh (1min) mAh (1h)

HC-SR04 2:21 0.852 51.12

DS18B20 2:23 0.841 50.46

MPU-6050 2:19 0.856 51.36

SW-200D 2:25 0.833 49.98

Tabla 7.1: Consumo de energıa de cada sensor.

Tras esto, se obtiene el consumo de energıa del dispositivo completo. Paraello, se emplean todos los sensores y se ejecuta el sketch correspondiente,el cual tambien incorpora conexion a una red WiFi y el envıo de datos aThingSpeak. Este sketch combina tanto el modo activo como el modo deep-sleep. Se mide el tiempo transcurrido en consumir 2mAh. En la siguiente sepueden observar los resultados obtenidos:

Tiempo medido (min) mAh (1min) mAh (1h)

1:04 1.875 117.78

Tabla 7.2: Consumo de energıa del dispositivo desarrollado.

Page 96: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

92 7.3. Pruebas realizadas

Estos datos de consumo de energıa del dispositivo son muy utiles paradeterminar el tipo de alimentacion a utilizar, ası como su duracion.

7.3. Pruebas realizadas

Este apartado describe el proceso llevado a cabo para realizar la fase depruebas correspondiente al proyecto. Esta fase de pruebas tiene como obje-tivo comprobar el comportamiento del dispositivo desarrollado y solucionarposibles errores.

A lo largo de la implementacion del proyecto se han ido realizando dis-tintas pruebas con el fin de comprobar que lo realizado hasta ese momentorespondıa correctamente y sin fallos.

Para conseguir llegar al dispositivo final se han ido realizando distin-tas partes independientes y se ha comprobado su correcto funcionamiento.Estas partes abarcan la programacion de cada sensor independiente y la co-nexion WiFi a ThingSpeak para el envıo de informacion. Al programar cadasensor se ha comprobado su correcto funcionamiento y posteriormente seha calibrado para obtener unas medidas mas precisas. Tras esto, se trabajocon las interrupciones para alertar de una situacion peligrosa, aspecto muyimportante en este proyecto.

Una vez convencidos de que cada parte realizaba su funcion correctamen-te de forma independiente, se unifico todo con el fin de obtener un dispositivoque incorporara todas esas funciones. Tras comprobar que todo funcionabacorrectamente y el envıo de informacion a ThingSpeak correspondıa a losdatos recopilados por los sensores, se paso a la fase de pruebas.

Para ello, una vez desarrollado el dispositivo completo y protegido enuna caja IP68, se introdujo en un entorno acuatico y se realizaron las co-rrespondientes pruebas. El objetivo consistıa en recopilar informacion acercadel nivel del agua, la temperatura del agua y el oleaje del agua. Tras reco-pilar la informacion, se enviaba a la plataforma ThingSpeak que presentabaestos datos en graficas. Al finalizar el envıo de esta informacion, el disposi-tivo pasaba a modo deep-sleep durante 45 minutos y, una vez transurridoeste tiempo, volvıa a realizar las mismas funciones. En el caso que duranteel modo deep-sleep ocurriera una situacion de peligro, activarıa una alarmamediante el buzzer. Posteriormente, se volvıa a cargar el programa en laplaca para que el dispositivo regresara nuevamente a su funcionamiento.

Page 97: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Fase de pruebas 93

Sensor de ultrasonidos

El sensor de ultrasonidos ha sido colocado en la placa protoboard yalmacenado en el interior de la caja IP68. Como esta caja es opaca, el sensorde ultrasonidos solamente detectaba la distancia existente hacia el lateral dela caja. Por ello, se obtienen unos valores contantes a lo largo de la realizacionde las pruebas.

En la siguiente grafica se muestran estos valores:

Figura 7.5: Grafica ThingSpeak del sensor de ultrasonidos.

Sensor de temperatura

El sensor de temperatura tiene como objetivo medir la temperatura delentorno acuatico. Para ello, se ha realizado un orificio en la caja de forma quepermite el paso de este sensor para estar en contacto el agua. Este orificio secierra con un conector hermetico para evitar que el agua entre en el interiorde la caja y dane el circuito.

En la siguiente grafica se muestra la informacion recogida con este sensor:

Page 98: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

94 7.3. Pruebas realizadas

Figura 7.6: Grafica ThingSpeak del sensor de temperatura.

Sensor MPU-6050

El sensor MPU-6050 tiene como objetivo medir el oleaje del agua, ofre-ciendo informacion acerca del control del entorno. Este sensor ofrece infor-macion dividida en 3 coordenadas: yaw, pitch y roll.

En las siguientes graficas se muestra la informacion recogida con estesensor:

Page 99: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Fase de pruebas 95

Figura 7.7: Grafica ThingSpeak de la coordenada Yaw del sensor MPU-6050.

Figura 7.8: Grafica ThingSpeak de la coordenada Pitch del sensor MPU-6050.

Page 100: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

96 7.3. Pruebas realizadas

Figura 7.9: Grafica ThingSpeak de la coordenada Roll del sensor MPU-6050.

En estas graficas se pueden observar una sucesion de datos constantesjunto con algunos picos. La sucesion de datos constantes indican que el aguase encuentra calmada y el dispositivo no ha sido desplazado. Por otra parte,los picos reflejan momentos en los que el oleaje es mayor y el dispositivopuede ser girado o desplazado, lo cual se muestra en la variacion de losdatos de las coordenadas.

Con estos datos, en caso de que no se active la alarma, se podrıa advertirde una situacion anormal empleando otros medios como puede ser enviar unmensaje a un telefono movil usando Twitter.

Sensor de inclinacion

El sensor de inclinacion tiene como objetivo detectar una inclinacionbrusca del dispositivo debido al movimiento del agua generado. Si se sobre-pasa un lımite, el sensor de inclinacion hace que se active el buzzer alertandode una situacion de peligro.

Durante la fase de pruebas se ha movido el dispositivo de forma quesobrepasara el lımite determinado y se detectara una situacion de peligro.

Page 101: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Capıtulo 8

Conclusiones y lıneas futuras

En este ultimo capıtulo se recogen las reflexiones finales obtenidas trasla realizacion del proyecto.

En primer lugar, se presentan unas conclusiones globales donde se mues-tran los objetivos alcanzados junto con los problemas encontrados durantesu desarrollo.

Seguidamente, se proponen posibles lıneas futuras a desarrollar tras laelaboracion del TFG a partir del conocimiento adquirido durante su elabo-racion. En este apartado se comentan algunas de las posibles mejoras quese podrıan incluir en un futuro a nuestro dispositivo.

Para finalizar, se incluye una breve valoracion personal con el objetivode mostrar la importancia que ha presentado la realizacion de este proyecto.

8.1. Conclusiones

En este TFG se ha desarrollado un dispositivo que permite detectar unaentrada o caıda accidental en un entorno acuatico de una persona o animaly alertar de esa situacion. Ademas, tambien informa periodicamente de laevolucion en ese entorno como la temperatura, el movimiento del agua yel nivel del agua. Todos estos parametros son recopilados, almacenados yanalizados en la plataforma ThingSpeak.

De esta forma, se ha podido estudiar el funcionamiento de Arduino y delos sensores empleados, ası como la posibilidad que ofrece de enviar infor-macion a traves de una conexion WiFi para analizar su evolucion.

Tambien, se ha realizado una evaluacion del dispositivo desarrollado con

Page 102: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

98 8.1. Conclusiones

el fin de obtener informacion que permita comprobar su efectividad y ver sinos hemos acercado a lo que pretendıamos obtener en un primer momento.

Las principales contribuciones de este proyecto son:

Realizar un estudio y una recopilacion de informacion relativa a lossistemas de alarma existentes con el objetivo de examinar sus ca-racterısticas y establecer las ventajas que nosotros podemos ofrecer.Tambien se ha realizado una revision del arte para poder definir losaspectos en los que podemos incidir.

A nivel de software, aprender a manejar el IDE de Arduino y poner enescena conocimientos adquiridos durante estos anos para la programa-cion de sensores y actuadores. Ademas, podemos incluir un conceptoimportante como ha sido el producir interrupciones de forma asıncronapara advertir de una situacion de peligro.

Por otro lado, se ha realizado un analisis de los sensores empleadosen este TFG y se ha adquirido un conocimiento acerca de sus carac-terısticas, comportamiento y el procedimiento que siguen para realizarsus funciones. Ha sido importante conocer las condiciones en las cualestrabajan para emplear un modelo frente a otros, teniendo siempre encuenta la situacion a la que pretendıamos llegar.

Estudio de los modos de ahorro de energıa ofrecidos por Wemos D1Mini. Hemos realizado un analisis de las caracterısticas que ofrece cadamodo de ahorro de esta placa y hemos escogido el modo mas conve-niente para nuestro dispositivo (modo deep-sleep). Los modos de aho-rro permiten dormir la placa durante un tiempo establecido o hastaque ocurra una situacion anormal de forma que no es necesario que laplaca se encuentre todo el tiempo funcionando a rendimiento normal.Al utilizar como alimentacion baterıas de litio, este modo permite ungran ahorro de energıa y, como consecuencia, su duracion sera muchomayor antes de su descarga.

Comprension del funcionamiento de la plataforma ThingSpeak, la cualpermite recopilar, almacenar, analizar, visualizar y actuar sobre lainformacion recogida por los sensores. En este lugar realizamos unseguimiento del comportamiento y del estado de nuestro dispositivo,permitiendonos comprobar su evolucion.

Page 103: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Conclusiones y lıneas futuras 99

8.2. Problemas encontrados

Durante el transcurso del TFG han surgido algunos problemas que handesembocado en la dedicacion de mas tiempo del previsto en esas etapas. Acontinuacion exponemos los principales:

El mayor problema encontrado ha sido poder desactivar el modo debajo consumo y hacer que suene el buzzer en el dispositivo final. Estoera debido a que no se puede ofrecer la potencia necesaria para man-tener todos los elementos en funcionamiento. Si se prescindıa de algunelemento sı era posible la activacion del buzzer.

Para almacenar el dispostivo desarrollado se ha empleado una cajaIP68. El problema que tiene es que no es transparente, por lo queel sensor de ultrasonidos no podrıa detectar el nivel del agua en elentorno acuatico, ya que siempre detectarıa la distancia a la que seencuentra separado de la caja IP68.

8.3. Lıneas futuras

Tras la realizacion del TFG se ha podido comprobar que se han consegui-do cumplir los objetivos propuestos al inicio del mismo. Podemos comentarque durante y tras la realizacion del proyecto han surgido posibles vıas fu-turas para la mejora o continuacion del dispositivo desarrollado.

En los siguientes puntos se establecen estas lıneas futuras:

Se ha desarrollado un dispositivo compuesto por varios sensores yun actuador que recogen informacion de su entorno para su poste-rior analisis, seguimiento y actuacion. Una lınea futura consiste encambiar algun sensor o actuador por otro modelo que nos mejore suscaracterısticas o anadir algun otro sensor o actuador que pueda parecerinteresante para algun objetivo que se quiera alcanzar.

Emplear una caja IP68 transparente para que el sensor de ultrasonidospueda detectar el nivel del agua en el entorno acuatico.

Anadir un GPS para obtener informacion relevante en entornos acuati-cos marıtimos.

Emplear un sensor de salinidad para determinar si el entorno acuaticoen el que ha sido instalado el dispositivo es de agua dulce o salada.

Page 104: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

100 8.4. Valoracion personal

8.4. Valoracion personal

Para finalizar con la elaboracion de la memoria se exponen una serie dereflexiones y valoraciones personales tras la finalizacion del presente proyec-to.

En primer lugar, destacar la importancia y el significado de este trabajo.Este TFG es el punto final de un camino que desemboca en la obtencion delGrado en Ingenierıa de Tecnologıas de Telecomunicacion. Este proyecto tienecomo grandes objetivos poner de manifiesto los conocimientos y las aptitudesadquiridas a lo largo de este periodo, intentando reflejar el nivel adquiridoen esta etapa. En lo referente a este aspecto, ha sido necesario proceder concapacidad analıtica, una de las principales aptitudes que deben caracterizara un ingeniero. Tambien se han puesto en escena una gran cantidad deconceptos y conocimientos aprendidos durante este periodo.

Por otra parte, se han logrado los objetivos propuestos al inicio de la rea-lizacion del TFG, resolviendo cualquier problema surgido durante su desa-rrollo. Para ello, han sido de gran importancia una serie de requisitos: es-fuerzo, constancia y serenidad. Tambien ha resultado esencial realizar unabuena planificacion dividiendo el proyecto en etapas diferenciadas y a la vezayudadas por lo realizado en las anteriores.

Por ultimo, destacar la satisfaccion personal al haber sido capaz de abor-dar con exito el proyecto en su totalidad. A traves del esfuerzo constantefinalmente se han alcanzado todos los objetivos propuestos inicialmente.

Page 105: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Apendice A

Manual de instalacion

En este apendice se indica todo el proceso necesario para la correctainstalacion de las herramientas software empleadas en el desarrollo del pro-yecto. El objetivo principal de este apendice es ofrecer los pasos que sedeben seguir previamente para poder emplear mas tarde estas herramientascorrectamente.

A continuacion se muestran dos apartados en los que se aborda el pro-cedimiento a seguir en la instalacion de las herramientas necesarias.

IDE Arduino

La herramienta principal a instalar es IDE de Arduino. Se trata del en-torno de desarrollo en el cual posteriormente se programa el codigo necesariopara implementar en nuestra placa y ofrecer un funcionamiento correcto deldispositivo.

Se comienza entrando en la pagina web https://www.arduino.cc y seselecciona el apartado de Software. Una vez se esta en ese apartado, se puedaencontrar facilmente la ultima version de Arduino (1.8.1 en nuestro caso)con los distintos tipos de sistemas operativos con sus distintas versiones enlos que se puede instalar. Se elige la opcion que se desee (en nuestro casoWindows) y se procede a descargar el Software.

Cuando finaliza la descarga, se procede a instalar el IDE de Arduinocomo administrador. Se acepta el acuerdo de licencia, se escogen las opcionesde instalacion (en nuestro caso, las opciones por defecto), se ubica la rutadonde se desea tener y se pasa a la instalacion de los archivos.

Page 106: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

102

Una vez finalizada la instalacion, se puede utilizar el IDE de Arduinopara realizar la programacion del codigo.

ThingSpeak

ThingSpeak es una plataforma en la cual un usuario se registra y creaun canal para poder visualizar la informacion recibida en el.

En primer lugar, se ingresa a la pagina web https://thingspeak.com/ yse selecciona Sign Up para registrarse. Como la plataforma ThingSpeak esmanejada por MathWorks, es necesario crear previamente una cuenta enMathWorks. Se ingresa una direccion de correo electronico, un nombre deusuario, una contrasena y un paıs. Se aceptan los terminos y condicionespara crear la cuenta.

Tras esto, ya se puede ingresar en ThingSpeak. Para ello, se seleccionaLog In y se accede con la direccion de correo electronico y la contrasenadefinidas anteriormente.

Para crear un canal en el que recibir los datos, se entra en la seccionChannels y se selecciona New Channel. Para crear el canal se pueden confi-gurar distintos campos:

Name: Se introduce un nombre unico para el canal.

Se puede introducir una descripcion acerca del canal.

Field: Se habilita y se ingresa un nombre para el campo. Este campo seemplea para identificar las graficas con los datos que muestra ThingS-peak. Cada canal de ThingSpeak puede estar compuesto de hasta 8campos.

Metadata: Se introduce informacion sobre los datos del canal.

Tags: Se introducen palabras clave para identificar el canal. Estas pa-labras deben ir separadas por comas.

Make Public: Seleccionar esta casilla si se desea que el canal sea publi-co, de forma que otros usuarios puedan visualizarlo tambien.

URL: Se puede especificar la URL de una pagina web que contengainformacion sobre el canal.

Elevation: Especifica la posicion en metros del sensor o elemento querecopila informacion.

Page 107: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Manual de instalacion 103

Show Location: Seleccionar esta casilla si se desea mostrar la localiza-cion de latitud y longitud en la que se encuentra el dispositivo.

Latitude: Especifica la posicion en grados decimales del sensor o ele-mento que recopila informacion.

Longitude: Especifica la posicion en grados decimales del sensor o ele-mento que recopila informacion.

Video ID: Se puede especificar la URL de video que muestra informa-cion acerca del canal en lugares como YouTube o Vimeo.

Finalmente, se selecciona Save Channel para almacenar ese canal.

Una vez se tiene el canal creado, se selecciona la pestana API Keys enla que se genera una clave aleatoria que identifica a ese canal y posterior-mente se anade en el codigo de programacion para que envıe la informacionrecopilada a ese canal.

En nuestro caso, se han configurado los siguientes campos:

Name: PRUEBA

Field 1: Distancia (cm)

Field 2: Temperatura (o)

Field 3: Yaw

Field 4: Pitch

Field 5: Roll

Page 108: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 109: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Apendice B

Manual de usuario

En este apendice se indica el proceso necesario que un usuario tieneque seguir para poder ejecutar correctamente el codigo programado, hacertrabajar el dispositivo desarrollado y visualizar los resultados obtenidos.El objetivo principal de este apendice es ofrecer la posibilidad de realizarpruebas para uso personal en el ambito en el cual se desarrolla este TFG.

A continuacion se muestran dos apartados en los que se aborda el pro-cedimiento a seguir.

IDE Arduino

Para compilar y cargar en Wemos D1 Mini el codigo programado, sedebe conectar la placa al ordenador mediante un cable USB, acceder a laaplicacion de IDE de Arduino y abrir el sketch en el que se tiene el codigoprogramado. Es necesario tener las librerıas a utilizar descargadas; si hubieraque incluir alguna librerıa que no viene por defecto, hay que descargarlasen la pestana Programa → Incluir Librerıa → Gestionar Librerıas. Ahı seencuentran todas las librerıas disponibles a utilizar en IDE de Arduino.

Por otra parte, se debe indicar que la placa que se esta utilizando es deltipo Wemos D1 Mini. Para ello, se selecciona en la pestana Herramientas→Placa el tipo WeMos D1 R2 & Mini.

Si se quiere mostrar a traves del Monitor Serial informacion se debe selec-cionar la velocidad correcta en la pestana Herramientas → Upload Speed.En nuestro caso, utilizamos una velocidad de 115200, por lo que hay queseleccionar esa velocidad en la pestana.

Page 110: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

106

Por ultimo, es necesario seleccionar el puerto a traves del cual se comu-nica el programa con Wemos D1 Mini. Para ello, se selecciona en la pestanaHerramientas →s Puerto aquel que corresponda a la comunicacion del pro-grama con Wemos D1 Mini. Este puerto tiene la forma COMx, siendo x unnumero.

Una vez hecho esto, se pasa a compilar y cargar en nuestra placa el codigoprogramado. Para hacer esto, se pulsa en el segundo boton empezando porla izquierda el cual indica subir. Al pulsar este boton, se verifica el codigopor si hubiera algun error; en caso de que lo haya lo indica en la consola detexto, en caso de que no haya pasa a compilar y subir el codigo a la placa.Indicar que para subir el codigo a la placa es necesario tener desconectadoslos cables de los pines D0 y RST de Wemos D1 Mini y posteriormente seconectan.

Para visualizar la situacion en la que se encuentra Wemos D1 Mini sepuede ver en el Monitor Serial. Una vez subido el codigo a la placa, se pulsaen el boton de la derecha que indica Monitor Serie o en la pestana Herra-mientas → Monitor Serie. Esto abre una ventana que muestra los mensajesy la informacion que se ha indicado en el codigo. En nuestro caso muestrala conexion a una red WiFi, la activacion de una alarma, los datos recogidospor los sensores, el envıo a estos datos a la plataforma ThingSpeak y el modoen el que se encuentra la placa.

ThingSpeak

Para visualizar la informacion recogida por los sensores se ingresa en laplataforma ThingSpeak. Para identificarse, se pulsa en el apartado Log Iny se ingresan los datos de identificacion definidos anteriormente:

Email Address.

Password.

Una vez dentro, se ingresa en el canal privado al cual se envıan los datos.Se pueden ver las graficas independientes correspondientes a la informacionrecopilada por los sensores.

Tambien se puede observar que existen unos apartados en los cuales sepuede emplear la herramienta analıtica MATLAB para analizar los datosrecibidos o para obtener nueva informacion a partir de los datos que setienen.

Page 111: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Apendice C

Codigo de programacion delsensor MPU-6050

En este apendice se incluye el codigo de programacion del sensor MPU-6050. Lo incorporamos en este apendice con la intencion de proporcionarmas facilidad de legibilidad de la memoria. El codigo proporcionado aquıcorresponde al apartado 6.3.5.

Se incluye el codigo correspondiente a dos sketchs del sensor MPU-6050:uno corresponde al sketch de calibracion y el otro al sketch de ejecucion delsensor MPU-6050.

Sketch de calibracion

Page 112: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

108

Page 113: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Codigo de programacion del sensor MPU-6050 109

Figura C.1: Codigo de calibracion del sensor MPU-6050.

Page 114: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

110

Sketch de ejecucion

Page 115: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Codigo de programacion del sensor MPU-6050 111

Figura C.2: Codigo de programacion del sensor MPU-6050.

Page 116: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos
Page 117: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

Bibliografıa

[1] Ahogamientos en piscinas, ABC, May 13, 2016. Disponibleen http://www.abc.es/sociedad/abci-ahogamientos-piscinas-tercera-causa-muerte-infantil-mundo-201605132258 noticia/ (Ultima visita:20/06/2017).

[2] Ignacio Calle, El tragico precio de un despis-te, El Mundo, September 06, 2014. Disponible enhttp://www.elmundo.es/grafico/espana/2014/09/06/54059a89e2704e09118b4579/(Ultima visita: 20/06/2017).

[3] AEP - Asociacion Espanola de Pediatrıa. Disponible enhttp://www.aeped.es/ (Ultima visita: 20/06/2017).

[4] European Child Safety Alliance. Disponible enhttp://www.childsafetyeurope.org/ (Ultima visita: 20/06/2017).

[5] OMS - Organizacion Mundial de la Salud. Disponible enhttp://www.who.int/ (Ultima visita: 20/06/2017).

[6] Segurbaby. Seguridad infantil. Disponible enhttps://www.segurbaby.com/ (Ultima visita: 20/06/2017).

[7] Seguridad de piscinas. Disponible enhttp://www.seguridaddepiscinas.es/ (Ultima visita: 20/06/2017).

[8] Arduino Create. Disponible en https://create.arduino.cc/ (Ultima vi-sita: 20/06/2017).

[9] Arduino Home. Disponible en https://www.arduino.cc/ (Ultima visita:20/06/2017).

[10] D1 mini [WEMOS Electronics], disponible enhttps://wiki.wemos.cc/products:d1:d1 mini (Ultima visita:20/06/2017).

[11] Datasheet. Disponible en http://www.datasheetcatalog.com/ (Ulti-ma visita: 20/06/2017).

113

Page 118: Diseno~ e implementaci on de un dispositivo IoT de bajo coste …wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_JesusGomez... · 2017-10-29 · Jesus G omez Molino Palabras clave: Wemos

114 BIBLIOGRAFIA

[12] EscapeQuotes. Disponible en http://escapequotes.net/ (Ultima visi-ta: 20/06/2017).

[13] Espressif Systems - Wi-Fi and Bluetooth chipsets and solu-tions. Disponible en https://espressif.com/ (Ultima visita: 20/06/2017).

[14] Tutoriales Arduino - Ejemplos, documentacion y piezas. Dis-ponible en https://www.prometec.net/ (Ultima visita: 20/06/2017).

[15] ThingSpeak: IoT Analytics, disponible enhttps://thingspeak.com/ (Ultima visita: 20/06/2017).

[16] YouTube, disponible en https://www.youtube.com/ (Ultima visita:20/06/2017).

[17] Outlet Piscinas, disponible en https://www.outlet-piscinas.com/(Ultima visita: 20/06/2017).

[18] Zona Maker, disponible en https://www.zonamaker.com/ (Ultima vi-sita: 20/06/2017).

[19] Fritzing - Electronics made easy, disponible en Ultima visita:20/06/2017 (accedida el 20 de junio de 2017).

[20] GoConqr, disponible en https://www.goconqr.com/ (Ultima visita:20/06/2017).

[21] Todd Henderson, Top 6 ESP8266 Modules for IoT Projects,Losant | Losant Enterprise IoT Platform, April 19, 2016. Disponibleen https://www.losant.com/blog/top-6-esp8266-modules (Ultima visita:20/06/2017).

[22] Web de Luis Llamas - Ingenierıa, informatica y diseno (Zara-goza), Luis Llamas. Disponible en https://www.luisllamas.es/ (Ultimavisita: 20/06/2017).

[23] Oscar Torrente Artero, ARDUINO Curso practico de formacion,Primera edicion. 2013.

[24] Charalampos Doukas, Building Internet of Things with the Ar-duino, Volumen 1. 2012.