1
“UNIVERSIDAD NACIONAL DE PIURA”
FACULTAD DE CIENCIAS
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES
TESIS
“DESARROLLO DE APLICACIONES PARA IOT CON MÓDULOS EMBEBIDOS ESP-12E INTEGRANDO LAS PLATAFORMAS
THINGSPEAK Y GOOGLE SITES ” PRESENTADO POR:
JHORDAN SLIVER GARCIA QUINDE
PARA OPTAR EL TÍTULO PROFESIONAL DE INGENIERO ELECTRÓNICO Y TELECOMUNICACIONES
LÍNEA DE INVESTIGACIÓN: INFORMÁTICA, ELECTRÓNICA Y TELECOMUNICACIONES SUB LÍNEA DE INVESTIGACIÓN: SISTEMAS DIGITALES
PIURA – PERÚ
2021
2
UNIVERSIDAD NACIONAL DE PIURA FACULTAD DE CIENCIAS
ESCUELA DE INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES
“DESARROLLO DE APLICACIONES PARA IOT CON MÓDULOS EMBEBIDOS ESP-12E INTEGRANDO LAS PLATAFORMAS THINGSPEAK Y GOOGLE SITES”
LÍNEA DE INVESTIGACIÓN: INFORMÁTICA, ELECTRÓNICA Y TELECOMUNICACIONES SUB LÍNEA DE INVESTIGACIÓN: SISTEMAS DIGITALES
________________________________________________
Bach. JHORDAN SLIVER GARCIA QUINDE EJECUTOR DE TESIS
_________________________________________
MSc. FRANKLIN BARRA ZAPATA ASESOR
3
UNIVERSIDAD NACIONAL DE PIURA FACULTAD DE CIENCIAS
ESCUELA DE INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES
“DESARROLLO DE APLICACIONES PARA IOT CON MODULOS EMBEBIDOS ESP-12E INTEGRANDO LAS PLATAFORMAS THINGSPEAK Y GOOGLE SITES”
LÍNEA DE INVESTIGACIÓN: INFORMÁTICA, ELECTRÓNICA Y TELECOMUNICACIONES SUB LÍNEA DE INVESTIGACIÓN: SISTEMAS DIGITALES
JURADO EVALUADOR:
PRESIDENTE:
_________________________________________
DR. ANTENOR SEGUNDO ALIAGA ZEGARRA
SECRETARIO:
___________________________________________
ING. EDWIN ARNALDO OCAS INFANTE
VOCAL:
____________________________________________
ING. EDUARDO OMAR AVILA REGALADO
UNIVERSIDAD NACIONAL DE PIURA FACULTAD DE CIENCIAS
Campus Universitario - Urb.Miraflores S/N. Castilla PIURA – PERU
“AÑO DEL BICENTENARIO DEL PERÚ: 200 AÑOS DE INDEPENDENCIA”
ACTA DE SUSTENTACIÓN 015-2021-UI-FC-UNP
Los Miembros del Jurado Calificador que suscriben, reunidos para evaluar la Tesis denominada
“DESARROLLO DE APLICACIONES PARA IOT CON MÓDULOS EMBEBIDOS ESP-12E INTEGRANDO LAS PLATAFORMAS THINGSPEAK Y GOOGLE SITES”; presentado por el Señor Bachiller JHORDAN SLIVER GARCIA QUINDE, con el asesoramiento del Ing. Franklin Barra Zapata, M.Sc.; oídas las observaciones y respuestas a las preguntas formuladas, y de conformidad al Reglamento de Tesis para obtener el Título Profesional en la Facultad de Ciencias, lo declaran:
APROBADO ( ) DESAPROBADO ( )
Con la mención de:
………...
( ) En consecuencia, queda en condición de ser ratificado por el Consejo de Facultad de Ciencias de la Universidad Nacional de Piura, y recibir el TITULO PROFESIONAL DE INGENIERO ELECTRÓNICO Y TELECOMUNICACIONES.
( ) En consecuencia, queda en condición de ser ratificado por el Consejo Universitario de la Universidad Nacional de Piura, y recibir el TITULO PROFESIONAL DE INGENIERO ELECTRÓNICO Y TELECOMUNICACIONES; después que el sustentante incorpore la sugerencia del Jurado Calificador.
Piura, 16 de julio del 2021.
Dr. ANTENOR SEGUNDO ALIAGA ZEGARRA Ing. EDUARDO OMAR ÁVILA REGALADO PRESIDENTE DE JURADO DE TESIS SECRETARIO DE JURADO DE TESIS
Ing. EDWIN ARNALDO OCAS INFANTE VOCAL DE JURADO DE TESIS
4
DECLARACIÓN JURADA DE AUTENTICIDAD DE TESIS
Yo, JHORDAN SLIVER GARCIA QUINDE, identificado con DNI N° 48214740, bachiller de la Escuela Profesional de Ingeniería Electrónica y Telecomunicaciones de la Facultad de Ciencias de la Universidad Nacional de Piura con Domicilio en Almirante Miguel Grau II Etapa A 19, con celular número 935132857, correo Electrónico [email protected] ante usted con el debido respeto me presento y expongo:
DECLARO BAJO JURAMENTO:
Que la tesis que presento es auténtica no siendo copia parcial y total de una tesis desarrollada y/o realizada en el Perú o el extranjero en caso contrario de encontrar falsa la información que proporciono me sujeto a los alcances de lo establecido en el art.
N°411 del código penal concordante con el art. N° 27444, y ley del procedimiento administrativo general y las normas legales de protección a los derechos de autor.
En la Fe de lo cual firmo la presente
Piura 24 de febrero del 2021
______________________________________________
JHORDAN SLIVER GARCIA QUINDE DNI: 48214740
5
DEDICATORIA
Dedico este trabajo al creador de todas las cosas, por haberme dado la vida, dado fortaleza para superar obstáculos y dificultades y permitirme el haber llegado hasta este momento tan importante de mi formación profesional.
A mi madre Sentola, mis tías Maydi, Tany a quienes quiero como a una madre, a mis abuelos, a mis tíos, a mis hermanas: por compartir momentos significativos conmigo, por ser los pilares más importantes y por demostrarme siempre su cariño y apoyo incondicional, que han sabido formarme con buenos sentimientos, hábitos y valores, lo cual me han ayudado a salir adelante en los momentos más difíciles; que me han acompañado durante todo mi trayecto estudiantil y de vida para convertirme en un profesional; que con sus demostraciones me han enseñado a no desfallecer ni rendirme ante nada y siempre perseverar a través de sus sabios consejos.
A mi padre y a mi familia en general, porque me han brindado su apoyo incondicional y por compartir conmigo buenos y malos momentos.
A mis compañeros y maestros, gracias por su tiempo, por su apoyo, así como por la sabiduría que me transmitieron en el desarrollo de mi formación profesional.
Para ellos es esta dedicatoria de tesis, pues es a ellos a quienes se las debo por su apoyo incondicional.
JHORDAN SLIVER GARCIA QUINDE
6
AGRADECIMIENTO
Esta tesis es el resultado de la constancia y sacrificio, del apoyo reunido de aquellas personas que decidieron aportar en éste logro con su experiencia, tiempo y conocimientos, ya que han desarrollado un papel importante en este material, empezando por mi asesor de tesis el Ing. Franklin Barra Zapata a quién agradezco por su apoyo incondicional, por el tiempo que dispuso para guiarme en mi proyecto
“DESARROLLO DE APLICACIONES PARA IOT CON MÓDULOS EMBEBIDOS ESP- 12E INTEGRANDO LAS PLATAFORMAS THINGSPEAK Y GOOGLE SITES” A la comisión de evaluación por sus críticas y comentarios constructivos y acertados durante la elaboración de éste proyecto, por la intervención oportuna para un mejor resultado del presente trabajo.
A cada persona que decidió apoyarme y que hizo posible en esta parte de mi vida, ayudarme a cumplir un objetivo más, a todos ellos muchas gracias.
JHORDAN SLIVER GARCIA QUINDE
7
CONTENIDO
RESUMEN 18
ABSTRACT 19
CAPÍTULO 1 20
PLANTEAMIENTO METODOLÓGICO 20
1.1.INTRODUCCIÓN ... 20
1.2.DESCRIPCIÓN DE LA REALIDAD PROBLEMÁTICA ... 20
1.3.FORMULACIÓN DEL PROBLEMA ... 20
1.3.1. PROBLEMA GENERAL. 20 1.3.2. PROBLEMAS ESPECÍFICOS. 21 1.4. OBJETIVOS DE LA INVESTIGACIÓN ... 21
1.4.1. OBJETIVO GENERAL 21 1.4.2 OBJETIVOS ESPECÍFICOS 21 1.5.HIPÓTESIS GENERAL ... 21
1.6. JUSTIFICACIÓN DE LA INVESTIGACIÓN ... 22
1.7.IMPORTANCIA DE LA INVESTIGACIÓN ... 22
CAPÍTULO 2 23 MARCO TEÓRICO 23 2.1 ANTECEDENTES DE LA INVESTIGACIÓN ... 23
2.2. INTERNET DE LA COSAS (IOT). ... 25
2.3. GOOGLE SITES. ... 26
2.4. NODEMCU EL KIT DE DESARROLLO PARA EL IOT ... 26
2.4.1. MCU O MICROCONTROLADOR DE NODEMCU 28
2.4.2. SOC ESP8266 29
2.4.3. MÓDULO ESP-12 DE NODEMCU 30
2.4.4. KIT O PLACA DE DESARROLLO NODEMCU 32
2.4.5. VERSIONES DE NODEMCU 33
2.4.6. COMPARANDO LAS DIFERENTES VERSIONES DE NODEMCU 35
2.4.6.1. 1ª GENERACIÓN / V0.9 / V1 35
2.4.6.2. 2ª GENERACIÓN / V1.0 / V2 36
2.4.6.3. 2ª GENERACIÓN / V1.0 / V3 37
2.4.7. ACCESO A LOS PINES DE NODEMCU V2 37
2.4.8. PINES DE NODEMCU 39
8
2.4.8.1. PINES DIGITALES DE NODEMCU 40
2.4.8.2. PINES DIGITALES ÚTILES DE NODEMCU 40
2.4.8.3. PIN ANALÓGICO DE NODEMCU 41
2.4.8.5. LEDS Y PULSADORES DE NODEMCU 43
2.4.8.6. LEDS INTEGRADOS DENTRO DE LA PLACA 43
2.4.8.7. PULSADORES INTEGRADOS DENTRO DE LA PLACA 44
2.5. PLATAFORMA EN LA NUBE – THINGSPEAK ... 51
2.5.1. CARACTERÍSTICAS PRINCIPALES. 51 2.5.2. ÁMBITOS DE APLICACIÓN. 54 2.6.ACTUADORES TIPO RELE ... 54
2.7.SENSOR DE HUMEDAD Y TEMPERATURA DHT11 ... 55
2.8.SENSOR DE ULTRASONIDO HCSR04 ... 57
2.9. SERVOMOTORES ... 59
2.9.1. USOS DE UN SERVOMOTOR 60 2.9.2. PARTES DE UN SERVOMOTOR 60 2.9.3. GENERACIÓN DE LOS PULSOS DE ENTRADA PARA CONTROL DEL SERVOMOTOR 61 2.9.4. CÓMO FUNCIONA UN SERVOMOTOR 63 2.9.5. CONEXIÓN DE UN SERVOMOTOR 64 2.9.6. TIPOS DE SERVOMOTORES 64 CAPÍTULO 3 65 MARCO METODOLÓGICO 65 3.1.ENFOQUE. Y DISEÑO ... 65
3.2.SUJETOS DE LA INVESTIGACIÓN. ... 65
3.3.MÉTODOS Y PROCEDIMIENTOS. ... 65
3.4.TÉCNICAS E INSTRUMENTOS. ... 65
3.5.ASPECTOS ÉTICOS ... 66
CAPÍTULO 4 67 RESULTADOS Y DISCUCIÓN 67 4.1. DESCRIPCIÓN GENERAL DE APLICACIONES PARA IOT CON MÓDULOS EMBEBIDOS ESP-12E INTEGRANDO LAS PLATAFORMAS THINGSPEAK Y GOOGLE SITES ... 67
4.2. DISEÑO DE TARJETAS ELECTRÓNICAS DE MÓDULOS ... 68
9 4.2.1. MÓDULO 1 CONTROL DE SALIDAS TIPO RELES Y MONITOREO DE ENTRADAS
DIGITALES. 68
4.2.2. MÓDULO 2 MONITOREO DE HUMEDAD, TEMPERATURA NIVEL Y VOLTAJE. 69
4.2.3. MÓDULO 3 CONTROL DE DOS SERVOMOTORES. 69
4.2.4. FUENTE DE ALIMENTACIÓN 12VDC - 5VDC 70
4.3. CÓDIGOS DE PROGRAMAS PARA MÓDULOS ... 70
4.3.1 CÓDIGO DE PROGRAMA PARA MÓDULO 1 ... 70
4.3.2. CÓDIGO DE PROGRAMA PARA MÓDULO 2 ... 73
4.3.3. CÓDIGO DE PROGRAMA PARA MÓDULO 3 ... 75
4.4. PLATAFORMA THINGSPEAK PARA EL PROYECTO. ... 77
4.5. DISEÑO DE PAGINA WEB USANDO LA PLATAFORMA GOOGLE SITES 83 CONCLUSIONES 87 REFERENCIAS BIBLIOGRAFÍCAS 88 ANEXOS 89 ANEXO 1. DATOS TÉCNICOS DE NODEMCU ESP-12E ... 89
ANEXO 2. SENSOR DE DISTANCIA O NIVEL HCSR04 96
ANEXO 3. SENSOR DE HUMEDAD DTH11 98
ANEXO 4. DATOS TÉCNICOS DEL SERVOMOTOR MG995 102
ANEXO 5. MÓDULO DE RELÉS 104
ANEXO 6. CÓDIGO DE PROGRAMA DEL MÓDULO 1 105
ANEXO 7. CÓDIGO DE PROGRAMA DEL MÓDULO 2 108
ANEXO 8. CÓDIGO DE PROGRAMA DEL MÓDULO 3 110
10
FIGURAS
FIGURA 1. INICIO DEL IOT ENTRE EL 2008 Y EL 2009 (EVANS, 2011) ... 25 FIGURA 2. LOGO DE GOOGLE SITES. ... 26 FIGURA 3. ESQUEMA GENERAL DEL KIT NODEMCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 27 FIGURA 4. KIT ARDUINO UNO, NODEMCU, ARDUINO MKR1000
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 27 FIGURA 5. DIGRAMA DE BLOQUES DEL ESP8266EX- SEÑALANDO EL
MICROCONTROLADOR
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 28 FIGURA 6. SOC ESP8266EX
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 29 FIGURA 7. DIAGRAMA DE BLOQUES ESP8266EX
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 30 FIGURA 8. MODULO ESP-12E
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 30 FIGURA 9. PINES DEL MODULO ESP-12
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 31 FIGURA 10. PINES DEL MODULO ESP-12E
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 31 FIGURA 11. MODULOS BASADOS EN EL SOC ESP8266
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 32
11
FIGURA 12. KIT NODEMCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 33 FIGURA 13. VERSIONES DEL NODEMCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 34 FIGURA 14. MODULO ESP12E
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 35 FIGURA 15. NODEMCU V0.9/ V1
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 35 FIGURA 16. NODEMCU V1.0/V2.0
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 36 FIGURA 17. NODEMCU V1.0/V2.0 INSERTADO EN PROTOBOARD
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 36 FIGURA 18. NODEMCU V1.0/V3.0
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 37 FIGURA 19. PINES DEL NODE MCU V2.0
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 38 FIGURA 20. PINES DEL NODE MCU V2.0
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 38 FIGURA 21. REFERENCIA DEL DIAGRAMA DEL NODE MCU V2.0
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 38 FIGURA 22. CONECION DEL NODE MCU CON PROTOBOARD
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 39
12
FIGURA 23. PINES DIGITALES DEL NODEMCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 40 FIGURA 24. NOMENCLATURA DE LOS PINES DIGITALES DEL MCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 40 FIGURA 25. PINES UTILES DEL NODE MCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 41 FIGURA 26. PIN ANALOGICO DEL NODEMCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 42 FIGURA 27. PINES DE ALIMENTACION DEL NODEMCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 43 FIGURA 28. LED Y PULSADORES DEL NODEMCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 43 FIGURA 29. LED INTEGRADOS EN EL NODEMCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 44 FIGURA 30. LED DEL PIN TX/RX DEL NODEMCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 44 FIGURA 31. PULSADORES INTEGRADOS EN LA PLACA NODEMCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 45 FIGURA 32. NODEMCU CONECTADO CON LA PC
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 46 FIGURA 33. ARDUINO IDE
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 47
13
FIGURA 34. ARDUINO IDE MENU PREFERENCIAS
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 48 FIGURA 35. ARDUINO IDE MENU HERRAMIENTAS
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 49 FIGURA 36. BOARD MANAGER
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 49 FIGURA 37. SELECCIÓN DE PLACA NODEMCU PARA PROGRAMACION
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL- PASO-A-PASO/, 2018) ... 50 FIGURA 38. TRABAJAR CON THINGSPEAK (GARRIDO, 2016) ... 51 FIGURA 39. EJEMPLO DE APLICAION USANDO THINGSPEAK (GARRIDO,
2016)... 53 FIGURA 40. PARTES DE UN RELE
(HTTPS://WWW.AREATECNOLOGIA.COM/ELECTRICIDAD/RELE.HTML) ... 55 FIGURA 41. EJEMPLO DE CONEXIÓN DEL ARDUINO UNO CON UN RELE
PARA CONTROL DE MOTOR DC (PROPIO) ... 55 FIGURA 42. FIGURA 36. SENSOR DE HUMEDAD Y TEMPERATURA DHT11
(HTTPS://WWW.GEEKFACTORY.MX/TUTORIALES/TUTORIALES-
ARDUINO/DHT11-CON-ARDUINO/, 2019) ... 55 FIGURA 43.SENSOR DE ULTRASONIDO HCSR04 (RODRIGUEZ, 2017) .... 57 FIGURA 44. DIAGRAMA DE TIEMPOS DEL SENSOR HC-SR04.
(RODRIGUEZ, 2017) ... 58 FIGURA 45. GIRO DE SERVOMOTOR (AREATECNOLOGIA.COM, S.F.) ... 59 FIGURA 46. SERVOMOTOR (AREATECNOLOGIA.COM, S.F.) ... 59 FIGURA 47. PULSOS ENVIADOS A UN SERVOMOTOR
(AREATECNOLOGIA.COM, S.F.) ... 61 FIGURA 48. TARJETA CONTROLADORA DE SERVOMOTORES
(AREATECNOLOGIA.COM, S.F.) ... 62 FIGURA 49. POSICION DE SERVOMOTORES (AREATECNOLOGIA.COM,
S.F.) ... 63
14
FIGURA 50. POSICION DE SERVOMOTORES (AREATECNOLOGIA.COM, S.F.) ... 63 FIGURA 51. CONEXION DE SERVOMOTORES (AREATECNOLOGIA.COM,
S.F.) ... 64 FIGURA 52. DIAGRAMA GENERAL DE APLICACIONES IOT CON MODULOS
BASADOS EN EL NODEMCU ESP12E E INTEGRANDO LAS
PLATAFORMAS THINSPEAK Y GOOGLE SITES (PROPIO) ... 67 FIGURA 53. TARJETA ELECTRONICA CONTROL DE SALIDAS TIPO RELES
Y MONITOREO DE ENTRADAS DIGITALES. ... 68 FIGURA 54. MONITOREO DE HUMEDAD, TEMPERATURA NIVEL Y
VOLTAJE. (PROPIO)... 69 FIGURA 55. CONTROL DE DOS SERVOMOTORES. (PROPIO) ... 69 FIGURA 56. FUENTE DE ALIMENTACION PARA COMPONENTES DE
TARJETA ELECTRONICA DE CADA MODULO. (PROPIO) ... 70 FIGURA 57. CODIGO DE PROGRAMA DE DECLARACIONES Y DATOS DE
RED LOCAL Y PLATAFORMA THINGSPEAK DEL MODULO 1(PROPIO) ... 70 FIGURA 58. CODIGO DE PROGRAMA DE CONFIGURACIONES INICIALES
PARA EL MODULO 1. (PROPIO) ... 71 FIGURA 59. LECTURA DE ESTADOS DE LAS ENTRADAS Y SALIDAS
DIGITALES (PROPIO) ... 71 FIGURA 60. ENVIO DE LOS ESTADOS LOGICOS DE LAS ENTRADAS Y
SALIDAS DIGITALES HACIA PLATAFORMA THINGSPEAK. (PROPIO) . 72 FIGURA 61.OBTENCION DEL COMANDO TALKBACK PARA RELES Y SU
EJECUCION (PROPIO) ... 72 FIGURA 62.CODIGO DE PROGRAMA DE DECLARACIONES Y DATOS DE
RED LOCAL Y PLATAFORMA THINGSPEAK DEL MODULO 2(PROPIO) ... 73 FIGURA 63. CODIGO DE PROGRAMA DE CONFIGURACIONES INICIALES
PARA EL MODULO 2. (PROPIO) ... 73 FIGURA 64. CODIGO PARA OBTENER LOS DATOS DE HUMEDAD Y
TEMPERATURA DEL SENSOR DHT 11 (PROPIO) ... 74 FIGURA 65. CODIGO PARA LEER DATOS DEL SENSOR HSCR04 Y
POTENCIOMETRO. (PROPIO) ... 74
15
FIGURA 66. ENVIO DE DATOS AL ARDUINO ID Y A LA PLATAFORMA
THINGSPEAK (PROPIO) ... 75 FIGURA 67. CODIGO DE PROGRAMA DE DECLARACIONES Y DATOS DE
RED LOCAL Y PLATAFORMA THINGSPEAK DEL MODULO 3. (PROPIO) ... 75 FIGURA 68. CODIGO DE PROGRAMA DE CONFIGURACIONES INICIALES
PARA EL MODULO 3. (PROPIO) ... 76 FIGURA 69. ENVIO DE ANGULOS DE LOS SERVOMOTORES HACIA LA
PLATAFORMA THINGSPEAK (PROPIO) ... 76 FIGURA 70.OBTENCION DEL COMANDO TALKBACK PARA
SERVOMOTORES Y SU EJECUCION (PROPIO) ... 77 FIGURA 71. PANTALLA DE CREACIÓN DE CANALES EN LA PLATAFORMA
THINGSPEAK (PROPIO) ... 77 FIGURA 72. HABILITACIÓN DE LOS CAMPOS A UTILIZAR EN EL CANAL
“IOT_GOOGLESITES” (PROPIO) ... 78 FIGURA 73. HABILITACIÓN DE LOS CAMPOS A UTILIZAR EN EL CANAL
“SALIDAS_ENTRADAS” (PROPIO)... 78 FIGURA 74. ID Y APIKEY DEL CANAL “IOT_GOOGLESITES” ... 79 FIGURA 75. ID Y APIKEY DEL CANAL “SALIDAS_ENTRADAS”(PROPIO) ... 79 FIGURA 76. . ID Y APIKEY DE LA APLICACIÓN TALKBACK (PROPIO) ... 80 FIGURA 77. GRAFICAS DE SENSORE DE TEMPERATURA, HUMEDAD,
NIVEL Y VOLTAJE EN POTENCIOMETRO. (PROPIO) ... 80 FIGURA 78. GRAFICOS DE LOS ANGULOS EN LO QUE ESTUVIERON
POSICIONADOS LOS SERVOMOTORES (PROPIO) ... 81 FIGURA 79. VISUALIZACION DE LO VALORES DE LOS SENSORES
UTILIZANDO WIDGET TIPO MANOMETROS. (PROPIO) ... 81 FIGURA 80. VALOR NUMERICO DE LOS ANGULOS EN LOS QUE ESTA
POSICIONADO LOS SERVOMOTORES (PROPIO) ... 82 FIGURA 81. GRAFICAS DE LOS ESTADOS LOGICOS DE LOS RELÉS
(PROPIO) ... 82 FIGURA 82. GRAFICA DE LOS ESTADOS LOGICOS DE LAS ENTRADAS
DIGITALES (PROPIO) ... 83 FIGURA 83. PANTALLA DE INICIO DE PAGINA WEB USANDO
GOOGLESITES (PROPIO) ... 83
16
FIGURA 84. VISUALIZACION EN PAGINA WEB DE LA TEMPERATURA (PROPIO) ... 84 FIGURA 85.VISUALIZACION EN PAGINA WEB DE LA HUMEDAD Y NIVEL
(PROPIO) ... 84 FIGURA 86.VISUALIZACION EN PAGINA WEB DE LA HUMEDAD Y
VOLTAJE. (PROPIO)... 84 FIGURA 87.VISUALIZACION EN PAGINA WEB DEL ANGULO DE
POSICIONAMIENTO DEL SERVOMOTOR 1. (PROPIO) ... 85 FIGURA 88. VISUALIZACION EN PAGINA WEB DEL ANGULO DE
POSICIONAMIENTO DEL SERVOMOTOR 2 (PROPIO) ... 85 FIGURA 89. VISUALIZACION EN PAGINA WEB DEL ESTADO LOGICO DE
RELÉS. (PROPIO) ... 86 FIGURA 90.VISUALIZACION EN PAGINA WEB DEL ESTADO LOGICO DE
LAS ENTRADAS DIGITALES . (PROPIO) ... 86
17
TABLAS
TABLA 1. VERSIONES DEL NODEMCU
(HTTPS://PROGRAMARFACIL.COM/PODCAST/NODEMCU-TUTORIAL-
PASO-A-PASO/, 2018) 34
18
RESUMEN
En esta tesis se pretende desarrollar una red WIFI basada en los módulos ESP- 12E y e implementar aplicaciones para IOT integrando las plataformas THINGSPEAK y GOOGLE SITES.
En el primer capítulo se describe la problemática y se establece el objetivo general y los objetivos específicos de la tesis, así como la justificación, los alcances y los límites de la misma. El segundo capítulo hace referencia al marco teórico y las definiciones que nos permiten entender desde la base la aplicación desarrollada. En el tercer capítulo se muestra el Marco Metodológico, en el cuarto capítulo se desarrolla aplicaciones IOT basadas en el NODEMCU ESP12E dividido en tres módulos, el Módulo 1 se encarga de activar 4 relés y leer cuatro entradas digitales, el Módulo 2 se encarga del monitoreo de 4 sensores que son: El DHT11 para medir humedad y temperatura, el HSCR04 para la medición de nivel, y un potenciómetro para simular un sensor analógico.
El Módulo 3 se encarga del control de 2 servomotores en cinco ángulos 0°, 25°, 50°, 75° y 100°. los datos de los sensores, estado de relés y entradas digitales se envían a la plataforma THINGSPEAK, y luego se desarrolla una página usando el GOOGLE SITES y finalmente se muestra las conclusiones.
PALABRAS CLAVE: NODEMCU, THINGSPEAK, GOOGLE SITES, IOT.
19
ABSTRACT
This thesis aims to develop a WIFI network based on the ESP-12E modules and to implement applications for IOT integrating the THINGSPEAK and GOOGLE SITES platforms.
In the first chapter, the problem is described and the general objective and specific objectives of the thesis are established, as well as the justification, scope and limits of the thesis. The second chapter refers to the theoretical framework and definitions that allow us to understand the developed application from the base. The third chapter shows the Methodological Framework, the fourth chapter develops IOT applications based on the NODEMCU ESP12E divided into three modules, Module 1 is in charge of activating 4 relays and reading four digital inputs, Module 2 is in charge of monitoring of 4 sensors that are: DHT11 to measure humidity and temperature, HSCR04 for level measurement, and a potentiometer to simulate an analog sensor. Module 3 is in charge of the control of 2 servomotors in five angles 0 °, 25 °, 50 °, 75 ° and 100 °. the data from the sensors, relay status and digital inputs are sent to the THINGSPEAK platform, and then a page is developed using GOOGLE SITES and finally the conclusions are displayed.
KEYWORDS: NODEMCU, THINGSPEAK, GOOGLE SITES, IOT.
20
CAPÍTULO 1
PLANTEAMIENTO METODOLÓGICO
1.1. INTRODUCCIÓN
La red de unidades inalámbricas está formada por numerosos dispositivos distribuidos espacialmente, que utilizan sensores para controlar diversas condiciones en distintos puntos, entre ellas la temperatura, el sonido, la vibración, la presión y movimiento o los contaminantes.
Los dispositivos son unidades autónomas que constan de un microcontrolador, una fuente de Energía (casi siempre una batería), un radio-transceptor (RF) y un elemento sensor.
El módulo embebido ESP12E es un microcontrolador que integra tecnologías WiFi que le proporcionan conectividad con internet u otros dispositivos. Se describirán sus principales características y funcionalidades, así como también los diferentes entornos de desarrollo y lenguajes de programación que permiten programar el dispositivo.
En esta tesis se pretende desarrollar una red WIFI basada en los módulos ESP- 12E e implementar aplicaciones para IOT integrando las plataformas THINGSPEAK y GOOGLE SITES que sea económicamente accesible para el mercado peruano y Latino Americano.
1.2. DESCRIPCIÓN DE LA REALIDAD PROBLEMÁTICA
El presente proyecto tiene como objetivo desarrollar una red WIFI basada en los módulos ESP-12E e implementar aplicaciones para IOT integrando las plataformas THINGSPEAK y GOOGLE SITES.
1.3. FORMULACIÓN DEL PROBLEMA 1.3.1. PROBLEMA GENERAL.
¿Es posible desarrollar una red WIFI basada en los módulos ESP-12E e implementar aplicaciones para IOT integrando las plataformas THINGSPEAK y GOOGLE SITES?
21
1.3.2. PROBLEMAS ESPECÍFICOS.
• ¿Se podrá implementar una red WIFI con módulos embebidos ESP-12E para aplicaciones IOT?
• ¿Se podrá usar la plataforma THINGSPEAK para comunicación con el módulo ESP12E?
• ¿Se podrá usar la plataforma de GOOGLE SITES para integrar la plataforma THINSPEAK y módulos ESP12E mediante el desarrollo de una página WEB?
• ¿Se podrá realizar pruebas de funcionamiento de la red WIFI diseñada?
1.4. OBJETIVOS DE LA INVESTIGACIÓN 1.4.1. OBJETIVO GENERAL
Desarrollar una red WIFI basada en los módulos ESP-12E e implementar aplicaciones para IOT integrando las plataformas THINGSPEAK y GOOGLE SITES.
1.4.2 OBJETIVOS ESPECÍFICOS
• Implementar una red WIFI con módulos embebidos ESP-12E para aplicaciones IOT
• Usar la plataforma THINGSPEAK para comunicación con el módulo ESP12E
• Usar la plataforma de GOOGLE SITES para integrar la plataforma THINSPEAK y módulos ESP12E mediante el desarrollo de una página WEB
• Realizar pruebas de funcionamiento de la red WIFI diseñada
1.5. HIPÓTESIS GENERAL
Usando las tecnologías existentes, si es posible desarrollar una red WIFI basada en los módulos ESP-12E y e implementar aplicaciones para IOT integrando las plataformas THINGSPEAK y GOOGLE SITES.
22
1.6. JUSTIFICACIÓN DE LA INVESTIGACIÓN
Con la implementación de una red WIFI con módulos embebidos ESP-12E, para aplicaciones IOT, e integrarlos a las plataformas THINSPEAK y GOOGLE SITES se cubrirá la necesidad de tener dispositivos WIFI para aplicación diversas áreas de la Ingeniería Electrónica sin costo elevado.
Durante el desarrollo de esta tesis se aplicarán todos los conocimientos que hemos adquiridos en las materias electrónica como, microcontroladores, potencia redes de datos, donde se podrá comprobar todos los principios que se estudiaron en las mismas.
Al implementar esta red de dispositivos será de gran ayuda para que todos los estudiantes que conforman la Escuela Profesional de Ingeniería Electrónica y Telecomunicaciones de la Universidad Nacional de Piura tengan otro enfoque de lo que es la ingeniería electrónica en este caso particular, aplicada a la implementación de redes inalámbricas con módulos ESP-12E integradas con la plataforma THINGSPEAK y GOOGLE SITES.
1.7. IMPORTANCIA DE LA INVESTIGACIÓN
Esta investigación es muy importante ya que no hay antecedentes del diseño de aplicaciones para IOT con módulos embebidos ESP-12E integradas con la plataforma THINGSPEAK y GOOGLE SITES.
23
CAPÍTULO 2
MARCO TEÓRICO
2.1 ANTECEDENTES DE LA INVESTIGACIÓN
A. DESARROLLO DE APLICACIONES PARA IOT CON EL MÓDULO ESP32 El presente TFG tiene como objetivo documentar información técnica sobre el módulo ESP32, y explicar el desarrollo de una sencilla aplicación orientada a Internet de las Cosas (IoT) en el que se utilice el dispositivo.
Se trata de un microcontrolador que integra tecnologías WiFi y Bluetooth, que le proporcionan conectividad con internet u otros dispositivos. Se describirán sus principales características y funcionalidades, así como también los diferentes entornos de desarrollo y lenguajes de programación que permiten programar el dispositivo.
Respecto a la parte de desarrollo de la aplicación, se medirán datos ambientales como la temperatura y la humedad, que podrán ser visualizados a través de diferentes plataformas como un servidor Web, ThingSpeak, Adafruit.io y Twitter.
Además, como actuador se tiene un array de relés que podrá ser controlado desde el servidor Web, desde Adafruit.io y mediante comandos de voz de Google Assistant con el servicio IFTTT. Estos dos últimos se llevan a cabo mediante MQTT, que se trata de un protocolo orientado a Internet de las Cosas. (Herranz, 2019)
B. DISEÑO E IMPLEMENTACIÓN DE UN SENSOR IOT LOW-COST PARA COMUNICACIONES INFRARROJAS EN UN ENTORNO DOMÓTICO
Continuamente estamos invadidos por una gran variedad de aparatos electrónicos en el ámbito doméstico como televisores, aires acondicionados, sistemas de calefacción, cadenas de música o reproductores DVD. Todas ellas acompañadas por supuesto de su sistema de comunicaciones infrarrojas, es por ello que se aprecia un aumento de controles remoto en el hogar que permiten dicha comunicación.
Por otro lado, es destacable la normalización de la disponibilidad y uso de smartphones ofreciendo actualmente modelos con una gran potencia de cálculo que sigue creciendo exponencialmente con el tiempo. Tal es el caso que en las soluciones domóticas se busca la integración de dichos aparatos de manera que
24
permitan el control y gestión de los dispares equipos que forman parte de la
“vivienda inteligente”. La ejecución de los comandos que administran el funcionamiento de los dispositivos del hogar se realizara por medio de aplicaciones previamente instaladas.
Es por ello que este proyecto se focaliza en el desarrollo de una solución low- cost capacitada para la gestión de aquellos sistemas que permiten una comunicación por infrarrojos, como por mandos a distancia, dirigida desde un terminal móvil por aplicación que permita el envío de las instrucciones a llevar a cabo inclusive fuera del lugar de ejecución.
Se adentra pues, a un exhaustivo estudio de los diferentes protocolos de infrarrojos empleados en el mercado que facilitará el entendimiento de los mismos, descubrimiento de las bases de datos existentes que almacenan todo tipo de información relativa al funcionamiento de cada uno de los protocolos dependiendo de la estructura y una indagación sobre el chip ESP8266, del cual se aprovechará la versión ESP-12-E con varias versiones de módulos con capacidades suficientes para cumplir las necesidades IoT que se abordarán a un coste muy competente.
Por último se desea mostrar un diseño e implementación del circuito compuesto tanto de transmisor y receptor de señales IR que posibilitará las acciones anteriores de manera que se interactúe entre el smartphone y loS dispositivos domésticos IR. Será imprescindible el papel del servidor privado con protocolo MQTT, protocolo lightweight que facilitará la comunicación con paradigma Publicador - Suscriptor con el cual se trabajará dando a conocer su utilidad.
(Gualda, 2017)
C. DISEÑO E IMPLEMENTACIÓN DE UN DISPOSITIVO IOT DE BAJO COSTE PARA ENTORNOS AGRÍCOLAS (JESUS CASTILLO IZQUIERDO)
El documento presente se centra en la inclusión de soluciones Internet of Things dentro de entornos agrícolas. Tras el estudio del mercado actual se ha detectado la carencia de un dispositivo de bajo coste plenamente adaptable a las necesidades del usuario. Por tanto, el objetivo principal es diseñar e implementar un dispositivo de bajo coste que registre la fluctuación de los factores ambientales. Asimismo, el instrumento desarrollado debe generar alertas cuando se presenten condiciones perjudiciales para el cultivo. Se utiliza el microcontrolador ESP8266 como sustento del resto de módulos que componen
25
el dispositivo. El desarrollo del código controlador se realiza haciendo uso del entorno de programación Arduino. Los registros obtenidos podrán ser consultados a través de la plataforma web ThingSpeak. Tras la realización de las pruebas correspondientes, se ha confirmado el funcionamiento adecuado de la solución implementada. También se han reflejado con claridad las limitaciones que introducen algunos elementos en la autonomía del dispositivo. Para finalizar se presentan posibles líneas futuras de evolución. BASES TEÓRICAS.
(Izquierdo, 2017)
2.2. INTERNET DE LA COSAS (IOT).
IOT es el punto temporal en el cual habrá más “objetos o cosas” que personas conectadas a internet. (Evans, 2011)
Esta tendencia crea la necesidad de recolectar, analizar y distribuir grandes cantidades de datos, que pueden ser convertidos en información y conocimiento.
(Evans, 2011)
FIGURA 1. INICIO DEL IOT ENTRE EL 2008 Y EL 2009 (Evans, 2011)
En los últimos años, internet ha mantenido un estado de desarrollo estable y constante pero no significativo. En este contexto, IOT se vuelve inmensamente importante porque es la primera evolución real del internet, al constituirse como una nueva etapa que conducirá el desarrollo de aplicaciones revolucionarias con el potencial de mejorar la manera en que las personas viven, estudian, trabajan y se entretienen. (Evans, 2011)
Actualmente todos los sensores y dispositivos producen datos individuales que no son procesados en conjunto, pero si estos volúmenes de información son analizados es posible identificar patrones y generar resultados potenciales. IOT incrementa dramáticamente la cantidad de datos disponibles para procesar, y esto, sumado a la habilidad del internet para comunicar la información, permitirá
26
acelerar el desarrollo y el avance de la tecnología. Dado que los humanos avanzan y evolucionan convirtiendo datos en información, conocimiento y desarrollo, IOT tiene el potencial de cambiar el mundo que conocemos, de una manera positiva. (Evans, 2011)
2.3. GOOGLE SITES.
Google Sites es una aplicación online gratuita ofrecida por la empresa estadounidense Google. Esta aplicación permite crear un sitio web o una intranet de una forma tan sencilla como editar un documento. Con Google Sites los usuarios pueden reunir en un único lugar y de una forma rápida información variada, incluidos vídeos, calendarios, presentaciones, archivos adjuntos y texto.
Además, permite compartir información con facilidad para verla y editarla por un grupo reducido de colaboradores o con toda su organización, o con todo el mundo.
FIGURA 2. LOGO DE GOOGLE SITES.
Características principales de Google Sites:
• Fácil creación de páginas
• Plantillas de diseño disponibles
• Fácil manejo de archivos
• Personalización de la interfaz del sitio
• Fácil creación de contenido multimedia (vídeos, documentos, hojas de cálculo y presentaciones...)
• Designación de propietarios, lectores y colaboradores
• Búsqueda con la tecnología Google en el contenido de Google Sites
• Creación de intranets, páginas de empleados, proyectos, etc.
2.4. NODEMCU EL KIT DE DESARROLLO PARA EL IOT
NodeMCU es una placa de desarrollo totalmente abierta, a nivel de software y de hardware. Al igual que ocurre con Arduino, en NodeMCU todo está dispuesto para facilitar la programación de un microcontrolador o MCU (del inglés Microcontroller Unit).
No hay que confundir microcontrolador con placa de desarrollo. NodeMCU no es un microcontrolador al igual que Arduino MKR1000 tampoco lo es. Son placas o
27
kits de desarrollo que llevan incorporados un chip que se suele llamar SoC (Sytem on a Chip) que dentro tiene un microcontrolador o MCU.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
FIGURA 3. ESQUEMA GENERAL DEL KIT NODEMCU
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
El objetivo es programar la MCU o microcontrolador a través del kit o placa de desarrollo. Todo lo demás nos sirve de apoyo para que crear nuestros propios proyectos sea lo más sencillo posible.
Esto no solo sucede con NodeMCU, las placas como Arduino UNO o Arduino MKR1000 utilizan la misma arquitectura eso sí, cada una con sus características particulares. (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a- paso/, 2018)
FIGURA 4. KIT ARDUINO UNO, NODEMCU, ARDUINO MKR1000 (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
28
La mayor ventaja que tienen placas como Arduino MKR1000 y NodeMCU es que incorporan un módulo WiFi que nos permite crear proyectos del IoT o sistemas inalámbricos.
¿Para qué es necesario este tipo de dispositivos? ¿Qué podemos hacer con una placa con conexión WiFi? Son el primer paso hacia el Internet de las Cosas o el IoT. Pueden enviar datos, recibir datos e incluso controlar los pines de entrada y salida de forma remota e inalámbrica.
La mayor ventaja es la comunicación con las plataformas del IoT como aREST Framework o ThingSpeak. (https://programarfacil.com/podcast/nodemcu- tutorial-paso-a-paso/, 2018)
2.4.1. MCU O MICROCONTROLADOR DE NODEMCU
Vamos a partir de la unidad más básica la MCU o microcontrolador. En el NodeMCU este chip se integra dentro del SoC. Como veremos a continuación, a todo este conjunto (SoC) se le conoce como ESP8266.
Por lo tanto, en términos estrictos el ESP8266 no es un microcontrolador. Dentro si que lleva uno y se llama Tensilica L106 de 32-bit. La MCU se va a encargar de gestionar todas las entradas, salidas y cálculos necesarios para hacer
funcionar el programa que hayamos cargado.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
FIGURA 5. DIAGRAMA DE BLOQUES DEL ESP8266EX- SEÑALANDO EL MICROCONTROLADOR (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-
paso/, 2018)
Funciona con 32-bit lo que viene a decir que puede realizar operaciones con números de ese tamaño (de 0 a 4.294.967.295 o de -2.147.483.648 a
29
2.147.483.647). Sin embargo, las MCU más comunes son de 8-bit como la que lleva el Arduino UNO el ATmega328P.
Estos microcontroladores pueden hacer operaciones con números de 8-bit (de 0 a 255 o de -128 a 127). Para hacer operaciones con números mayores de debe dividir la operación en diferentes partes para trabajar con números de ese tamaño.
Trabaja a una velocidad de 80 MHz, aunque puede llegar a los 160MHZ. Para que te hagas una idea, mi primer PC tenía una velocidad de 160MHz. Esto nos indica la frecuencia con la que la MCU ejecuta las instrucciones.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018) 2.4.2. SOC ESP8266
Una vez que tenemos claro qué es una MCU o microcontrolador, ahora veremos que es en realidad el ESP8266. El nombre técnico es ESP8266EX.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
FIGURA 6. SOC ESP8266EX (https://programarfacil.com/podcast/nodemcu-tutorial-paso- a-paso/, 2018)
Se trata de un SoC o Sistema en Chip. Básicamente consiste en un chip que tiene todo integrado (o casi todo) para que pueda funcionar de forma autónoma como si fuera un ordenador. En el caso del ESP8266 lo único que no tiene es una memoria para almacenar los programas.
Esto supone un inconveniente ya que parte de los pines de entrada y salida, tendrán que ser utilizados para conectarse a una memoria Flash externa.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
30 FIGURA 7. DIAGRAMA DE BLOQUES ESP8266EX
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
Las características principales del ESP8266 son las siguientes:
• Incorpora una MCU de 32-bit de bajo consumo (Tensilica L106)
• Módulo WiFi de 2.4 GHz
• RAM de unos 50 kB
• 1 entrada analógica de 10-bit (ADC)
• 17 pines de entrada y salida GPIO (de propósito general) 2.4.3. MÓDULO ESP-12 DE NODEMCU
Dentro de los diferentes módulos del ESP8266, encontramos el ESP-12. Este es el módulo que utiliza NodeMCU para procesar la información.
En el siguiente nivel ya nos encontramos el módulo ESP-12 y el ESP-12E.
Dependerá la versión de NodeMCU utilizará uno u otro. Las diferencias entre ellos son mínimas como veremos en el siguiente tema.
Básicamente este módulo incorpora la memoria Flash para almacenar los programas o sketchs y la antena. Pero ya no solo eso, aquí comienza la tarea de facilitar el acceso a los pines y demás conectores del SoC y del microcontrolador.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
FIGURA 8. MÓDULO ESP-12E (https://programarfacil.com/podcast/nodemcu-tutorial- paso-a-paso/, 2018)
31
Internamente los pines del ESP8266 están cableados hasta los pines del módulo
ESP-12 siendo así más fácil su acceso.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
FIGURA 9. PINES DEL MÓDULO ESP-12 (https://programarfacil.com/podcast/nodemcu- tutorial-paso-a-paso/, 2018)
FIGURA 10. PINES DEL MÓDULO ESP-12E
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
32
Existe una amplia gama de módulos basados en el SoC ESP8266.
FIGURA 11. MÓDULOS BASADOS EN EL SOC ESP8266
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
La diferencia entre ellos es el acceso a los pines. Dependerá de cada módulo tendrás acceso a unos u otros pines.
2.4.4. KIT O PLACA DE DESARROLLO NODEMCU
Este tipo de kit incorpora componentes que nos ayudan a programar y conectar el módulo y la MCU a nuestros circuitos.
Existen diferentes modelos de varias marcas con características y funcionalidades diferentes dependiendo del SoC o microcontrolador que utilizan.
Pero todos tienen el mismo objetivo, facilitarnos el prototipado y desarrollo de proyectos con microcontroladores.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018) NodeMCU con ESP12E es uno de ellos y sus características principales son:
• Procesador ESP8266, de 32 bits a 80MHz o incluso 160MHz.
• 35K de IRAM.
• 80K de DRAM.
• Memoria Flash de 32 Megabits (4 MegaBytes).
• Tensión de trabajo 3.3V.
• Intensidad de consumo 50mA aproximadamente, aunque tiene picos de más de 300mA.
33
• Protocolo 802.11 b/g/n.
• Wifi Direct (P2P) Soft-AP.
• Stack TCP/IP.
• Interfaz WIFI a 2.4 Ghz.
• Pulsador para Flash.
• Pulsador para Reset.
• Conector micro usb.
• Pins GPIO (input-Output) y PWM de 0-12.
• Chip CH340G dedicado a USB-UART.
• El pin que utiliza para encender el led interno es el GPIO16 o D0, y debe estar en estado LOW para encenderse.
FIGURA 12. KIT NODEMCU (https://programarfacil.com/podcast/nodemcu-tutorial-paso- a-paso/, 2018)
En este nivel, ya no nos preocupamos de cómo cargar el programa o cómo conectar los pines. Ahora solo necesitamos un ordenador, un cable USB y un entorno de desarrollo para programar la MCU o microcontrolador.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018) 2.4.5. VERSIONES DE NODEMCU
Existe una gran confusión con respecto a las diferentes versiones que hay de NodeMCU. Todo esto es debido a que se trata de una placa de hardware abierto y cualquier fabricante puede crear su propia distribución.
Lo que te tiene que quedar claro es que todos los NodeMCU se basan en los mismos módulos el ESP-12 y ESP-12E que se a su vez se basan en el SoC ESP8266.
Partiendo de esta premisa, las diferencias que vamos a encontrar son básicamente el número de pines a los que tenemos acceso y el tamaño de cada
34
placa. A lo largo de este tema veremos tres versiones.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
FIGURA 13. VERSIONES DEL NODEMCU (https://programarfacil.com/podcast/nodemcu- tutorial-paso-a-paso/, 2018)
Actualmente hay varias versiones en el mercado en concreto 3. Existe cierta confusión al respecto y es debido a que se han nombrado de diferentes maneras.
Podemos encontrar el nombre dependiendo de la generación a la que pertenecen, la versión o el nombre común que se les ha dado.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
TABLA 1. VERSIONES DEL NODEMCU (https://programarfacil.com/podcast/nodemcu- tutorial-paso-a-paso/, 2018)
La última columna es el nombre que encontrarás en diferentes tiendas online como Amazon, Baggood o AliExpress. Lo lógico es que te guíes por este nombre a la hora de comprar. (https://programarfacil.com/podcast/nodemcu-tutorial- paso-a-paso/, 2018)
La placa V3 es básicamente la V2 con algunas mejoras y pertenece a la 2ª generación de NodeMCU aunque no es una nueva especificación oficial.
Principalmente vamos a encontrar 3 fabricantes:
35
• Amica es el distribuidor oficial
• DOIT
• Lolin / Wemos
2.4.6. COMPARANDO LAS DIFERENTES VERSIONES DE NODEMCU
Cuando adquieres un NodeMCU es importante reconocer la versión a la que pertenece según la tabla que hemos visto antes. Es fundamental a la hora de programar y a la hora de sacar todo el potencial.
Las placas de 1ª y 2ª generación son fáciles de distinguir debido a su tamaño.
Ambas utilizan el módulo ESP-12 con 4 MB de Flash, pero la 2ª generación utiliza
la más nueva y mejorada ESP-12E.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
FIGURA 14. MÓDULO ESP12E (https://programarfacil.com/podcast/nodemcu-tutorial- paso-a-paso/, 2018)
Vamos a ver en detalle cada una de las versiones de NodeMCU.
2.4.6.1. 1ª GENERACIÓN / V0.9 / V1
FIGURA 15. NODEMCU V0.9/ V1 (https://programarfacil.com/podcast/nodemcu-tutorial- paso-a-paso/, 2018)
Quizás el mayor inconveniente que encontramos con esta placa es su tamaño.
Es muy incómodo cuando la conectamos a nuestra protoboard ya que ocupa todo el espacio y no deja hueco para conectar los pines.
36
El módulo que utiliza es el ESP-12 basado en el ESP8266 con una memoria Flash de 4 MB. (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a- paso/, 2018).
2.4.6.2. 2ª GENERACIÓN / V1.0 / V2
FIGURA 16. NODEMCU V1.0/V2.0 (https://programarfacil.com/podcast/nodemcu-tutorial- paso-a-paso/, 2018)
La gran diferencia, como ya te he dicho, es el tamaño. Esta 2ª generación sí que encaja perfectamente en la protoboard y nos permite conectar cables a los pines de una forma sencilla. (https://programarfacil.com/podcast/nodemcu-tutorial- paso-a-paso/, 2018)
FIGURA 17. NODEMCU V1.0/V2.0 INSERTADO EN PROTOBOARD (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
Otra diferencia es que el chip fue actualizado del ESP-12 al ESP-12E y esto nos permite tener algunos pines extra.
Con esta nueva generación de NodeMCU se produjo un salto sustancial de calidad y facilidad en la programación y prototipado (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
37
2.4.6.3. 2ª GENERACIÓN / V1.0 / V3
FIGURA 18. NODEMCU V1.0/V3.0 (https://programarfacil.com/podcast/nodemcu-tutorial- paso-a-paso/, 2018)
Lo primero que hay que decir de esta nueva versión es que no es una especificación oficial por parte de NodeMCU.
Se trata de una versión creada por Lolin que aporta ciertas mejoras como que el puerto USB parece ser más robusto y dos de los pines que no se utilizan en la versión V2 se han utilizado como salida de 5V directa del USB y un GND adicional.
Otra diferencia mínima es el tamaño ya que la V3 es un poco más ancha que la V2. Esto puede acarrear algún problema si queremos integrarlo dentro de alguna placa como un control de motores donde, la V3, no encaja, queda grande.
Aun así, es recomendable ceñirse a las especificaciones de NodeMCU V2 ya que es la última versión oficial. (https://programarfacil.com/podcast/nodemcu- tutorial-paso-a-paso/, 2018)
2.4.7. ACCESO A LOS PINES DE NODEMCU V2
Una vez que hemos visto qué es el NodeMCU y las versiones que existen, vamos a empezar describiendo las características más importantes que nos aporta esta placa a nivel de hardware, los pines digitales, analógicos y de alimentación.
En las siguientes imágenes se puede ver una visión general de todos los pines de NodeMCU V2. (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a- paso/, 2018)
38 FIGURA 19. PINES DEL NODEMCU V2.0 (https://programarfacil.com/podcast/nodemcu-
tutorial-paso-a-paso/, 2018)
FIGURA 20. PINES DEL NODEMCU V2.0 (https://programarfacil.com/podcast/nodemcu- tutorial-paso-a-paso/, 2018)
Como norma, siempre que haga referencia a este diagrama de pines de NodeMCU, equivaldrá a si ponemos la placa con el puerto USB hacia abajo como se muestra en la siguiente imagen.
FIGURA 21. REFERENCIA DEL DIAGRAMA DEL NODE MCU V2.0 (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
39
Así sabrás en todo momento la correspondencia con los pines de la placa de desarrollo o prototipado.
2.4.8. PINES DE NODEMCU
Gracias a la placa de desarrollo NodeMCU podemos acceder a los pines de una forma sencilla. Lo más práctico es pinchar la placa en una protoboard y desde aquí, sacar cables para conectarlos a los diferentes sensores y componentes.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
FIGURA 22. CONECIÓN DEL NODEMCU CON PROTOBOARD (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
Aunque tenemos acceso a más pines que los digitales, el pin analógico y los pines de alimentación, en un principio vamos a trabajar solo con estos.
• 13 pines digitales numerados del D0 al D12
• 1 pin analógico numerado A0
• 3 pines de 3,3V
• 1 pin de 5V (versión V3 2 pines 5V)
• 4 pines de tierra GND (versión V3 5 pines GND)
Con la versión NodeMCU V3 tendríamos un pin más de 5V y de GND que
ocuparían los pines nombrados como RSV.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
40
2.4.8.1. PINES DIGITALES DE NODEMCU
Los pines digitales de NodeMCU van numerados del D0 al D12.
FIGURA 23. PINES DIGITALES DEL NODEMCU
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
Encontrarás dos nomenclaturas para nombrar los pines, los que aparecen en la placa escritos y en ocasiones verás el nombre asociado a cada Dx con GPIOx.
FIGURA 24. NOMENCLATURA DE LOS PINES DIGITALES DEL MCU (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
El GPIOx indica a qué pin del propio ESP8266 está conectado esa patilla. Ya veremos más adelante que tendremos dos formas de acceder a ellos a través del código, esto puede generar cierta confusión.
2.4.8.2. PINES DIGITALES ÚTILES DE NODEMCU
Cómo ya hemos visto antes, el ESP8266 no tiene memoria flash y por lo tanto necesita de una memoria externa en la que almacenar los programas y datos.
Para conectarse a ella, necesita utilizar pines del propio ESP8266.
Debido a esto, alguno de los pines de NodeMCU no pueden ser utilizados.
Dependerá de la versión y el fabricante con el que estemos trabajando, pero lo
41
recomendable es no utilizar los pines GPIO6, GPIO7, GPIO8, GPIO9 (D11), GPIO10 (D12) y GPIO11.
Recuerda cuando decimos GPIO nos referimos a la nomenclatura de los pines del ESP8266 y no a los de NodeMCU.
Solo dos de ellos son accesibles a través de la placa NodeMCU, el pin GPIO9 (D11) y el pin GPIO10 (D12). En tu placa aparecerá probablemente como SD2 y SD3. Evita, en la medida de lo posible, utilizar estos pines para conectar sensores y componentes.
De los pines restantes es aconsejable no utilizar tampoco los pines D9 y D10 correspondientes al Rx (recibir) y Tx (transmitir).
Estos pines se utilizan para transmitir un programa o sketch o para la comunicación entre el NodeMCU y el PC a través del puerto serie.
Si se utilizan pueden ocasionar interferencias a la hora de cargar un programa.
Por lo tanto, nos quedarían los pines del D0 al D8, 9 pines digitales de entrada y salida. (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
FIGURA 25. PINES UTILES DEL NODE MCU
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
2.4.8.3. PIN ANALÓGICO DE NODEMCU
Si antes hablábamos de que en los pines digitales solo tenemos dos estados LOW y HIGH, en el pin analógico vamos a poder tener un rango de valores. Este rango vendrá determinado por la resolución del conversor ADC (del inglés Analog Digital Converter) Conversor Analógico Digital.
42
El NodeMCU tiene solo un pin analógico que admite un rango de valores de 0 a
3,3V con una resolución de 10-bit.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
FIGURA 26. PIN ANALÓGICO DEL NODEMCU
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
Esto implica que dentro del código tendremos un valor entre 0 y 1023 que se mapea con el voltaje entre 0 y 3,3V. Cuando llegue el momento veremos un ejemplo de cómo funciona este pin y cómo podemos convertirlo a una magnitud que entendamos. (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a- paso/, 2018)
2.4.8.4. PINES DE ALIMENTACIÓN DE NODEMCU Los pines de alimentación tienen 2 funciones:
Alimentar sensores y componentes (salida).
Alimentar la propia placa (entrada).
El voltaje de operación de NodeMCU es de 3,3V y por lo tanto, en principio no podríamos alimentar ningún componente que necesitara 5V.
Sin embargo, cuando se alimenta a través del puerto USB con 5V, internamente tiene un regulador de voltaje que saca 3,3V y 5V. Los 3,3V se utilizan para alimentar el NodeMCU (electrónica) y para sacarlo por los 3 pines marcados con ese valor.
Los 5V se utilizan para alimentar otros componentes dentro de la placa y para sacarlos por el pin de 5V.
Además, por cualquiera de estos pines podemos suministrar el mismo voltaje permitiendo así alimentar a la placa además del puerto USB. Eso sí, si alimentamos con 3,3V por alguno de los pines marcados con ese valor, la salida de 5V ya no nos suministrará esos 5V.
43
Esto hay que tenerlo en cuenta si en nuestro proyecto hay sensores que se alimentan con 5V. (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a- paso/, 2018)
FIGURA 27. PINES DE ALIMENTACIÓN DEL NODEMCU
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
2.4.8.5. LEDS Y PULSADORES DE NODEMCU
Ya conocemos los pines de entrada y salida digitales, el pin analógico y los pines de alimentación de NodeMCU. Además de todo esto, esta placa nos ofrece unos componentes extra para controlar su funcionamiento.
Dentro de la propia placa de desarrollo vamos a encontrar 2 LEDs integrados y 2 pulsadores.
FIGURA 28. LED Y PULSADORES DEL NODEMCU
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
Estos componentes los podremos manejar desde el código pero antes, sepamos qué es lo que hacen y cómo están conectados.
2.4.8.6. LEDS INTEGRADOS DENTRO DE LA PLACA
El NodeMCU V2 tiene dos LEDs integrados. Cada uno de ellos están asociados a los pines D0 (GPIO16) y D4 (GPIO2). Esto quiere decir que desde el código podremos encender y apagar cada uno de ellos.
44 FIGURA 29. LED INTEGRADOS EN EL NODEMCU
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
El LED conectado al D4, pertenece al módulo ESP12-E y el LED conectado al D0 es de la propia placa. Algo a tener en cuenta (lo veremos más adelante con un ejemplo de código), es que estos LEDs tienen la polaridad invertida.
Para encenderlos tenemos que poner un estado LOW (0V) y para apagar los LEDs tenemos que poner un estado HIGH (3,3V).
Además de poderlos encender y apagar a través del código, el LED conectado al D4 nos sirve para saber si se está cargando un programa. Cada vez que damos al botón de subir, mientras dura la transmisión del programa el LED parpadea.
FIGURA 30. LED DEL PIN TX/RX DEL NODEMCU
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
2.4.8.7. PULSADORES INTEGRADOS DENTRO DE LA PLACA
Además de los LEDs la placa tiene dos pulsadores. El típico botón de RESET (RST) que si lo pulsamos se reinicia la placa y comienza la ejecución de cero y otro botón que pone FLASH.
45 FIGURA 31. PULSADORES INTEGRADOS EN LA PLACA NODEMCU
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
El botón de RESET hace eso, reiniciar. Esto no quiere decir que elimine el código, lo único que hace es comenzar la ejecución desde el principio pasando por la función setup().
El botón de FLASH nos permite cargar un programa o firmware. Esto no es algo específico de NodeMCU o del ESP8266, todos los microcontroladores tienen como mínimo dos estados.
El estado de ejecución es cuando el microcontrolador ejecuta el programa que hemos cargado. El estado carga de programa o de firmware nos permite subir un programa al microcontrolador.
2.4.8.7.1. FUNCIÓN DEL BOTÓN FLASH
Al igual que Arduino, esta placa ya lo hace automáticamente cuando pulsamos en el botón del IDE de Arduino subir programa. Básicamente consiste en poner uno de sus pines o varios, en unos estados conocidos.
Con el módulo ESP01 (es el primero que se empezó a comercializar con el microcontrolador ESP8266) esto se hace de forma manual. Pero en el NodeMCU es automático, aunque no quita que si dejamos pulsado el botón cuando arrancamos la placa, se comportará de forma extraña y no ejecutará el código que haya cargado.
El botón de FLASH está conectado al pin GPIO0 que corresponde con el D3 de la NodeMCU. Además, tiene una resistencia pull-up lo que hace que en estado de reposo está a estado HIGH (3,3V). Lo veremos más adelante con un ejemplo.
Si cargas un programa básico, solo con la función setup() y loop(), y conectas un LED al pin D3, verás como el LED se ilumina.
Un firmware es programa a bajo nivel que nos permite controlar el hardware (NodeMCU). Al contrario de lo que parece, un sketch o un programa de Arduino
46
es un firmware ya que lo estamos cargando en un microcontrolador y controlamos un circuito electrónico. Por defecto el NodeMCU viene cargado con un firmware que nos permite programar en un lenguaje que se llama LUA.
Cuando cargamos el primer programa sobrescribimos este firmware y cargamos uno nuevo. (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
2.4.9. CONECTAR EL NODEMCU AL PC
Para poder cargar un programa al NodeMCU, necesitamos un conversor USB a serie. Esta placa ya tiene uno integrado al contrario de lo que ocurre con el módulo ESP-01 por ejemplo. Así que en principio solo necesitamos conectar la placa al ordenador y listo.
En algunos casos esto no es suficiente y lo deberemos configurar de forma manual. No hay que olvidar que esta placa es Open Hardware y, por lo tanto, cualquier persona puede fabricar y comercializar sin ninguna restricción.
Aquí es donde reside el problema, los componentes que se utilizan son diferentes y en ocasiones la compatibilidad con nuestro ordenador depende de ello.
FIGURA 32. NODEMCU CONECTADO CON LA PC
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
2.4.10. DRIVERS PARA EL NODEMCU
Los drivers nos van a permitir configurar la gestión del conversor USB a serie. Si has comprado el NodeMCU en alguna tienda de confianza tu placa llevará uno de estos conversores USB a serie:
• CP1202 (es el más utilizado en la versión v0.9/V1)
• CH340 (el más común en la versión v1.0/V2)
• FT232RL (es el más raro de ver, pero hay algunas placas que lo llevan)
47
Lo normal es que el sistema operativo (Windows) lo detecte e instale automáticamente los drivers. De no ser así debes buscar en Internet los drivers para el conversor USB a serie que utiliza tu placa.
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018) 2.4.11. ENTORNO DE PROGRAMACIÓN PARA NODEMCU CON "ARDUINO IDE".
FIGURA 33. ARDUINO IDE (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a- paso/, 2018)
Un entorno de programación para realizar nuestros proyectos con la nodemcu es el arduino ide.
Una vez tienes instalado el entorno de programación debes configurarlo para poder empezar a trabajar con nodemcu, para configurarlo debes clickear en
"Archivo", luego "preferencias"
48 FIGURA 34. ARDUINO IDE MENU PREFERENCIAS
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
En la casilla "Additional Boards Manager URLs" debes escribir la siguiente dirección: http://arduino.esp8266.com/stable/package_esp8266com_index.json Después de clickear "Ok" deberás instalar el plugin de nodemcu.
El siguiente paso para instalar el plugin será acceder a "Herramientas", luego seleccionar "Placa:" y después clickear en "Boards Manager"
49 FIGURA 35. ARDUINO IDE MENU HERRAMIENTAS
(https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
Una vez accedes a "Boards Manager" deberás buscar esp8266,
FIGURA 36. BOARD MANAGER (https://programarfacil.com/podcast/nodemcu-tutorial- paso-a-paso/, 2018)
50
Y una vez instalado, ya podrás acceder a la configuración de la placa nodemcu para programar tu tarjeta.
FIGURA 37. SELECCIÓN DE PLACA NODEMCU PARA PROGRAMACIÓN (https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, 2018)
51
2.5. PLATAFORMA EN LA NUBE – THINGSPEAK
THINGSPEAK es una plataforma abierta de aplicaciones con análisis de MATLAB, diseñada para permitir conectar personas con objetos. Se caracteriza por ser una plataforma Open Source con una API para almacenar y recuperar datos de los objetos usando el protocolo HTTP sobre Internet o vía LAN (Local Area Network). (Garrido, 2016)
Se trata de una plataforma basada en Ruby on Rails 3.0 (RoR), este es un framework de aplicaciones web de código abierto basado en Ruby, cuya arquitectura está basada en el Modelo Vista Controlador (MVC). Se caracteriza por su simplicidad a la hora de programar aplicaciones del mundo real, escribiendo menos código y con una configuración mucho más sencilla que otros frameworks. Otra de las características que hacen de RoR un framework perfecto para el desarrollo de aplicaciones es que permite el uso de meta programación, haciendo que su sintaxis sea más legible y llegue a un gran número de usuarios.
La aplicación incluye todo lo necesario para poder empezar a trabajar, desde una aplicación web en la que podremos gestionar usuarios, gestionar claves de API, gestión de canales y cartografía. (Garrido, 2016)
FIGURA 38. TRABAJAR CON THINGSPEAK (Garrido, 2016)
2.5.1. CARACTERÍSTICAS PRINCIPALES.
Destacaremos algunos puntos importantes en toda plataforma tales como su API, App (si las tiene), integración, hardware: