Post on 04-Aug-2020
DOMÓTICA Especialidad en
Eficiencia Energética y Domótica
1 Domótica:04/Octubre/2018
Asistencia
ESP8266
2
CLASE 6: ESP8266
Domótica:04/Octubre/2018
ESP8266
El ESP8266 es un chip altamente integrado diseñado para las necesidades de un nuevo
mundo conectado. Ofrece una solución completa y autónoma de redes Wi-Fi, lo que le
permite alojar la aplicación o servir como puente entre Internet y un microcontrolador.
El ESP8266 tiene potentes capacidades de procesamiento y almacenamiento que le
permiten integrarse con sensores y dispositivos específicos de aplicación a través de sus
GPIO’s con un desarrollo mínimo y carga mínima durante el tiempo de ejecución.
3
CLASE 6: ESP8266
Domótica:04/Octubre/2018
ESP8266
Existe una línea opensource de placas de
desarrolladores llamada NodeMCU. En el
mercado podemos encontrar diferentes
modelos de estas nuevas placas basadas en
el ESP8266. Estos varían en su memoria
interna y en la cantidad de pines de
entrada/salida disponibles.
4
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Fuente: ESP8266 <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family/>
ESP8266
El NodeMCU V1.0 contiene el módulo ESP8266 (ESP-12E), el cual dispone de acceso
a WI-Fi, incluye un microcontrolador de 32 bits Tensilca L106 Diamond series a 80
MHz, con 50 kB SRAM y una memoria flash de 4 MB, para manejar el protocolo
TCP/IP y el software necesario para la conexión 802.11, dispone de entradas/salidas
digitales y una entrada analógica al igual que otros microcontroladores.
5
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Fuente: ESP8266 <http://espressif.com/products/hardware/esp8266ex/overview/>
ESP8266: Especificaciones técnicas de NodeMCU
• Voltaje de entrada (USB): 5V
• Voltaje de salida en los pines: 3.3V
• Voltaje de referencia en el ADC: 3.3V
• Corriente nominal por pin: 12mA
• Frecuencia de procesador: 80MHz (160MHz max.)
• Consumo de corriente en stand-by @80MHz: 80mA
• Consumo de corriente al recibir una petición (librería WebServer en modo de punto de acceso) @ 80MHz: 90mA
• Consumo de corriente al utilizar HTTPClient.get() @ 80 MHz: 100-110mA
• Consumo de corriente en stand-by @160MHz: 90mA
• Consumo de corriente al recibir una petición (librería WebServer en modo de punto de acceso) @ 160MHz: 90-100mA
• Consumo de corriente al utilizar HTTPClient.get() @ 160 MHz: 100-110mA
6
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Fuente: NodeMCU <https://nodemcu.readthedocs.io/en/dev//>
ESP8266: Característica de los pines
7
CLASE 6: ESP8266
Domótica:04/Octubre/2018
ESP8266: Característica de los pines
• El módulo contiene un total de 17 puertos de entrada-salida de propósito general.
• Todos ellos disponen de un circuito de seguridad para picos de voltaje por encima
de 6 V y descargas de electrostática y también están protegidos en caso de inversión
de polaridad.
• La corriente máxima de salida permitida en cada pin es de 12 mA.
8
CLASE 6: ESP8266
Domótica:04/Octubre/2018
ESP8266: Característica de los pines
• Todos los puertos pueden ser configurados como entradas o salidas y los GPIO0-
GPIO15 disponen de una resistencia de pullup configurable por software y soporte
para PWM (Pulse Width Modulation), mientras que el GPIO16 tiene una
resistencia de pulldown también configurable y no dispone de PWM.
• Los puertos GPIO6-GPIO11 son usados por la memoria flash y, por lo tanto, no
están disponibles.
• Es posible asignar interrupciones a todos los puertos de entrada-salida exceptuando
el GPIO16. Las interrupciones pueden asignarse a flanco positivo, flanco negativo o
cambio de nivel.
9
CLASE 6: ESP8266
Domótica:04/Octubre/2018
ESP8266: Lenguaje de Programación
El chip ESP8266 puede ser programado de varias maneras y en varios lenguajes:
• Modulo sin Firmware: Mediante comandos AT: instrucciones directas que entiende
el chip. Este es el lenguaje de más bajo nivel para programar el ESP8266.
• Programación Lua: Lua es un lenguaje interpretado y tiene gran portabilidad en
diferentes plataformas y sistemas operativos que van desde Windows hasta el PSP o
Wii.
• Programación con Micro Phyton.
• Programación con IDE de Arduino en C++: Compatibilidad con librerías de
Arduino, entorno conocido por la mayoría de usuarios.
10
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Fuente: NodeMCU <https://nodemcu.readthedocs.io/en/dev/>
ESP8266: Instalación del controlador (Driver) del NodeMCU
• El módulo NodeMCU utiliza un chip CP210x de la empresa Silabs para
comunicación serial a una computadora mediante puerto USB. Para poder
habilitarlo es necesario la instalación del controlador en el sistema operativo de la
computadora para que pueda reconocer el módulo al ser conectado.
• En el caso de Windows si el sistema operativo es de 32 bits se tiene que ejecutar el
archivo: CP210xVCPInstaller_Win32. En el caso de un sistema operativo de 64 bits
se tiene que ejecutar el archivo: CP210xVCPInstaller_Win64.
• El controlador (Driver) del NodeMCU para el uso del USB pude descargarse en la
siguiente url: http://www.robotica-up.org/domotica/
11
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Fuente: Maker Center <http://www.makercenter.mx/iot/>
ESP8266: Instalación IDE (Arduino) del NodeMCU
Para añadir soporte al IDE para ESP8266 se siguen los pasos siguientes:
• Lo primero es abrir el IDE de Arduino, seleccionar el menú archivo, preferencias.
• En Archivo>Preferencias, “Gestor de URLs Adicionales de Tarjetas” introducir la
siguiente url:
http://arduino.esp8266.com/stable/package_esp8266com_index.json, y ok para
cerrar.
• Abrir el menú herramientas, y dentro de la opción Placa: “Arduino/Genuino Uno”,
abrir Gestor de tarjetas.
• Dentro de Gestor de tarjetas, se visualiza una lista de soporte para placas que se
pueden instalar y borrar, hasta el final, se encuentra la opción esp8266, se hace clic
sobre ella y aparece la opción para instalar.
12
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Fuente: ESP8266 <http://esp8266.github.io/Arduino/versions/2.3.0/doc/installing.html/>
ESP8266: Instalación IDE (Arduino) del NodeMCU
13
CLASE 6: ESP8266
Domótica:04/Octubre/2018
ESP8266: Instalación IDE (Arduino) del NodeMCU
14
CLASE 6: ESP8266
Domótica:04/Octubre/2018
ESP8266: Instalación Librerías
Para instalar las librerías que se utilizaran en nuestro desarrollos, seleccionamos en el
IDE de Arduino Programa > Incluir Librería > Gestionar Librerías. En el cuadro de
búsqueda buscaremos e instalaremos las siguientes librerías:
a) aREST
b) PubSubClient
c) MQTT (Adafruit)
15
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Node-RED: Comunicación Serial
Para instalar la librería de comunicación serial en e Node-RED debemos ejecutar el
siguiente comando: npm i node-red-node-serialport
16
CLASE 6: ESP8266
Domótica:04/Octubre/2018
input
output
ESP8266: Programación IDE (Arduino)
La estructura básica de programación de Arduino es bastante simple y divide la
ejecución en dos partes: setup y loop.
• setup() constituye la preparación del programa y
• loop() es la ejecución.
En la función setup() se incluye la declaración de variables y se trata de la primera
función que se ejecuta en el programa. Esta función se ejecuta una única vez y es
empleada para configurar el pinMode (p. ej. si un determinado pin digital es de entrada
o salida) e inicializar la comunicación serie.
La función loop() incluye el código a ser ejecutado continuamente (leyendo las
entradas de la placa, salidas, etc.)
17
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Fuente: Maker Center <http://www.makercenter.mx/iot/> y <https://playground.arduino.cc/ArduinoNotebookTraduccion/Structure/>
ESP8266: Programación IDE (Arduino)
18
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Fuente: sparkfun <https://www.sparkfun.com/>
Los elementos de las pantallas
del IDE (Arduino) son:
ESP8266: Programación IDE (Arduino)
19
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Fuente: sparkfun <https://www.sparkfun.com/>
1. Verificar: compila y aprueba su código.
Detectará los errores de sintaxis (por ejemplo
si faltan paréntesis o punto y comas).
2. Cargar: envía su código a la placa
NodeMCU.
3. Nuevo: este botón abre una nueva pestaña
de la ventana de código.
4. Abrir: este botón le permitirá abrir un
boceto existente.
5. Guardar: guarda el boceto activo
actualmente.
ESP8266: Programación IDE (Arduino)
20
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Fuente: sparkfun <https://www.sparkfun.com/>
6. Monitor serie: abrirá una ventana que
muestra cualquier información de serie que la
placa NodeMCU esté transmitiendo. Es muy
útil para la depuración.
7. Nombre del boceto: muestra el nombre del
boceto en el que está trabajando actualmente.
8. Área de código: esta es la zona donde
compone el código de su boceto.
9. Área de mensajes: aquí el IDE le indica si
existen errores en el código.
ESP8266: Programación IDE (Arduino)
21
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Fuente: sparkfun <https://www.sparkfun.com/>
10. Consola de texto: la consola de texto
muestra mensajes de error completos. La
consola de texto es muy útil a la hora de
depurar.
11. Placa y puerto serie: le muestra la
selección de placa y puerto serie.
Práctica de Laboratorio #1
Ejemplo 1: Conexión ESP8266 con Node-Red
Se realizará la comunicación de la placa ESP8266 mediante una conexión Serial al
programa Node-Red, utilizando el IDE (Arduino) para enviar un mensaje cada 15
segundos.
22
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Práctica de Laboratorio #1
Ejemplo 2: Conexión ESP8266 con Node-RED
Teniendo la conexión Serial entre Node-RED y el ESP8266; al activar un botón
externo, se deberá encender un LED y ver su registro en el Debug.
23
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Práctica de Laboratorio #1
Ejemplo 3: Conexión ESP8266 con IDE (Arduino)
Se realizará la conexión de la placa ESP8266 con el IDE (Arduino) realizando un
programa para encender un LED de manera intermitente.
24
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Práctica de Laboratorio #1
Ejemplo 4: Conexión ESP8266 con HTPP
Se realizará la conexión de la placa ESP8266 con a red local de la Universidad
“AlumnosUP” y se realizará un programa para encender un LED desde el navegador
web.
25
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Proyecto #1 , Documentación y Presentación
• Realizar un Prototipo Domótico empleando el sistema embebido ESP8266 con
algún actuador/sensor para su funcionamiento.
• El control/monitoreo deberá ser mediante la red local de la Universidad.
• El demo presentado deberá contar con su propia maqueta funcionando
correctamente.
• Para la documentación del trabajo, cada equipo enviará por correo electrónico al
Profesor un trabajo en Word en formato Manuscrito en idioma inglés.
• El trabajo deberá presentar cada uno de los siguientes puntos:
26
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Proyecto #1 , Documentación y Presentación
• En este trabajo, deberán completarse los siguientes puntos:
a. Título del Proyecto, Integrantes
b. Resumen del Proyecto (Mínimo 150 palabras), Palabras Clave (3 palabras en orden
alfabético)
c. Introducción (Estado del Arte): Información de por lo menos 2 artículos científicos en
inglés sobre el proyecto.
d. Desarrollo: Pasos para llegar al resultado, evitar poner líneas de código completas,
incamente colocar el código más importante y comentarlo.
e. Resultados: Deberán de venir acompañada de imágenes y con su justificación
f. Conclusiones: Deberá ser una conclusión relacionada con el proyecto, mínimo 200
palabras
g. Referencias: Por lo menos 2 referencias de artículos científicos en inglés.
27
CLASE 6: ESP8266
Domótica:04/Octubre/2018
Proyecto #1 , Documentación y Presentación
• Presentación del Proyecto por Equipo será el día 01 de noviembre en la hora clase.
• Fecha de entrega de documentación 01 de noviembre antes de las 23:59 hrs. Después de la fecha no se acepta el documento.
• Entregar documento con el nombre: PROYECTO#1_EQUIPO#_.doc
• Correo electrónico: jsgutierrez@up.edu.mx
– Objetivo: Encender/Apagar un foco (led o incandescente) utilizando la red local de la Universidad (ReteAlumnis) y una página Web (HTTP). El sistema deberá utilizar un relevador.
– Usar: ESP8266 (ESP-12E), HTTP.
*Punto Extra al Mejor Proyecto Presentado
28
CLASE 6: ESP8266
Domótica:04/Octubre/2018