El microcontrolador ESP8266 es una opción económica y con un gran soporte de la comunidad Open Hardware. Su uso es amplio en diversos proyectos de IOT (Internet de las cosas, Internet of Things).
Este pequeño dispositivo cuenta con una memoria flash interna que permite gestionar un pequeño servidor web, además de servir como punto de acceso WiFi si es requerido. A continuación se verán algunas de las características técnicas y como implementar desarrollos en él.
Características técnicas
· Soporta 802.11 b/g/n.
· Es capaz de generar Wi-Fi Direct (P2P), soft-AP.
· TCP/IP.
· Posee integrado TR switch, balun, LNA, amplificador de potencia y circuito de matching.
· +19.5dBm de potencia de salida en modo 802.11b.
· 1MB de memoria flash.
· Procesador integrado de 32-bit CPU.
· SDIO 1.1 / 2.0, SPI, UART.
· Potencia de consumo en standby < 1.0mW.
Tarjetas disponibles en el mercado nacional
Este microcontrolador se encuentra en muchas presentaciones, pero en el mercado nacional se disponen de dos principales:
· ESP-01: Es la versión más común y económica del ESP8266. Viene con sólo dos pines de entrada y salida de uso general. Funciona con lógica de 3.3V
Figura 1 Tarjeta de desarrollo ESP-01.
En la Figura 2 se puede observar el pinout de la tarjeta ESP-01. Cabe destacar que la comunicación para su programación debe ser realizada a través de un cable FTDI o conversor USB a serial.
Figura 2 Pinout de tarjeta ESP-01.
La tarjeta debe colocarse en modo programación para utilizar el módulo de serial como interface de programación y no comunicación.
Figura 3 Circuito para programar la tarjeta ESP-01.
Al conectar la tarjeta como en la Figura 3, el dispositivo acepta los comandos programación y configuración, llamados AT. Estos permiten configurar todos los parámetros y funcionalidades del dispositivo. Estos están disponibles ampliamente en la web y deben corresponder a la versión de firmware que viene precargado en la tarjeta adquirida.
· ESP-12 (NodeMCU): Es una tarjeta de desarrollo con el encapsulado ESP8266 y circuitería de alimentación y programación por puerto serial. Esta presentación permite simplificar el proceso de desarrollo del firmware por el conversor USB a serial incluido. En la parte superior en montaje superficial incluye una versión modificada con 16 MB de flash.
Figura 4 Tarjeta de desarrollo con ESP-12 (NodeMCU).
Esta presentación busca ser compatible con los pines de salido estándar de la plataforma Arduino (ver Figura 5).
Figura 5 Pinout de tarjeta de desarrollo ESP-12 (NodeMCU).
Modo de implementación
Hay muchísimas formas de implementar el uso de este microcontrolador como utilizar su lenguaje nativo de instrucciones o LUA por ejemplo. Estos métodos son muy engorrosos y conllevan a un tiempo de desarrollo bastante amplio comparado con otras opciones.
La comunidad Open Source y Open Hardware han desarrollado compatibilidad con la plataforma Arduino. Esto ha permitido el uso de cientos de librerías de toda índole, además del soporte de miles de usuarios que utilizan día a día Arduino para el desarrollo de sistemas embebidos.
Para poder utilizar alguno de éstos módulos, debe seguir los siguientes pasos:
· Descargar de la página oficial de Arduino el IDE: https://www.arduino.cc/en/Main/Software .
· Instalar el IDE y abrir la ventana de preferencias.
· Introducir http://arduino.esp8266.com/stable/package_esp8266com_index.json en el Additional Board Manager.
· Abrir el administrador de tarjetas en el menú de herramientas (Board) e instalar esp8266 platform.
· Seleccionar la tarjeta de desarrollo a utilizar en herramientas, tarjetas.
· Buscar en la carpeta tools de Arduino (crearla de no existir) y descomprimir.
· Reiniciar Arduino IDE.
· Abrir un sketch e ir al directorio donde está guardado.
· Crear carpeta llamada data.
· Seleccionar la tarjeta de desarrollo que se vaya a utilizar, el puerto serial y baudios.
· Ir a menú herramientas, ESP8266 Sketch Data Upload. Esto empieza el proceso de copia de archivos a la memoria flash.
Implementación de prueba con dos relés para manejo de cargas
Para la implementación de las cargas, se realizó el montaje de circuitos manejadores de relés que permitieron la conversión de los 3.3V de señal de baja potencia a una señal de mayor potencia para conmutar el suiche electro-mecánico interno del relé.
Se implementó el circuito que se puede observar en la Figura 6 para el manejo de los relés a través de GPIO0 y GPIO2 (en ESP8266 Node MCU D3 y D4 respectivamente):
Figura 6 Circuito manejado de relés (referencial).
Utilizando las librerías disponibles en el IDE de Arduino, se implementó un código que está mantenido en un repositorio público de GitHub: https://github.com/ddtdanilo/ESP8266-Relay-Control. Este repositorio fue creado por el autor de este reporte para el mantenimiento, actualización y referencia de códigos de prueba del ESP8266 para manejar dos relés.
El código genera una red WiFi llamada “ControlRelays”. La clave configurada es “123456789”. El IP del dispositivo es 192.168.1.1.
El dispositivo previamente es cargado con un archivo index.html que contiene llamadas a websocket por el puerto 81. Este comunica un dígito que corresponde a una cierta acción (ver Figura 7).
Figura 7 Diagrama de flujo del MCU.
Recomendaciones
Ante la experiencia antes descrita, se recomienda lo siguiente para mejorar la plataforma:
· Instalar servidor DNS para Captive Portal, esto es, redirigir toda petición del cliente al IP del ESP8266, así se evita conocer el mismo.
· Si el ESP8266 en vez de generar su propia red, accede a una que tenga internet, se recomienda utilizar Bootstrap como framework de diseño de la interfaz web.
Referencias







Comentarios
Publicar un comentario