IOT: Parte IV
Figura 1. Aplicación de control de una lámpara LED vía Wi-Fi con el ESP8266.
Aplicación IOT con el ESP826-01: Control Wi-Fi de una lámpra led.
Software programado en el ESP8266-01:
Esta es la continuación del tema IOT que hemos venido desarrollando hasta ahora.
En esta ocasión se ha querido elaborar un proyecto práctico y útil con el ESP8266-01. Se trata de una lámpara LED con encendido/apagado y control de intensidad vía Wi-Fi, utilizando una dirección IP de Internet y una aplicación Android hecha con APP Inventor.
El programa elaborado en C para el Arduino IDE se puede descargar aquí.
El programa anterior puede ser utilizado y/o modificado sin restricción alguna.
Recuerde seguir los pasos para subir el programa del Sketch de Arduino al ESP8266 (IOT: parte III).
Hardware Diseñado:
En este proyecto se ha elaborado:
- Placa de desarrollo para el ESP8266 (propia). En esta placa se monta el ESP8266-01 y permite conectar sus salidas a la interface UART y los puertos GPIO.
- Placa de fuente de poder +3.3V @ 300 mA. (propia). Sirve como regulador de 5V a 3.3 V, proporciona corriente y estabilidad.
- Placa DC-DC tipo boost converter: 5/12 V @ 300 mA. (propia). Esta placa sirve como módulo de control y potencia para encender la lámpara led de 3W (300 lumens) , que funciona con una tensión de trabajo de entre 9-12 V.
Figura 2. Tarjeta de desarrollo elaborada para experimentar con el ESP8266-01.
La tarjeta desarrollada (figura 2) cuenta con las resistencias de protección para la conexión serial, selectores tipo jumper para elegir los modos de trabajo (flash o boot) y de reset, salidas directas de los puertos GPIO 00 y 02, salidas a colector abierto o open colector para manejar cargas de hasta 200 mA de forma directa, dos indicadores luminosos tipo led para indicar el estado de los puertos GPIO (lógica negativa) y conectores tipo pin macho que permiten las conexiones del cable serial y los puertos GPIO al exterior.
El esquema electrónico de esta tarjeta se presenta en la figura 3:
Figura 3. Esquemático de la tarjeta de desarrollo para el ESP8266-01
Esta placa o tarjeta debe ser alimentada por una fuente de 3.3 V que suministre al menos unos 300 mA.
Usando esta tarjeta y un computador personal con OS Windows 8.1 y Arduino IDE (ver 1.8) se ha cargado en el ESP8266-01 el programa ya indicado anteriormente.
El programa mencionado configura el ESP8266-01 en modo servidor + punto de acceso (STA+AP), permitiendo así que se conecte a una red de Internet a través de un router, la conexión se hace utilizando un login y password ya conocidos, y que se usan cada vez que se inicia el módulo para conectarse a la red local predeterminada con acceso a Internet.
Una vez conectado el módulo ESP8266-01 este activa el puerto 80 como servidor (STA) y envía por consola serial su IP. Esta IP es la utilizada posteriormente para enviar y/o recibir las peticiones desde y hacia el módulo.
Para control desde Internet se debe acceder primero al router y direccionar (port forwarding) el puerto 80 a la dirección IP del server (ESP8266-01). De esta manera se redirecciona los comandos a enviar y/o recibir a través de una IP de Internet.
A partir de este punto el programa estra en un lazo o loop infinito escuchando el puerto 80. Si hay mensajes por HTML, se reciben y se decodifican, si corresponde con algún comando esperado se ejecuta la acción en los puertos GPIO y se envía una notificación de vuelta al cliente en formato HTML.
El algoritmo anterior se repite sucesivamente durante el tiempo que el ESP8266-01 este conectado a la red.
App de Control (Andorid) cliente:
Un programa adicional elaborado utilizando App Invertor MIT (del cual ya se ha hablado en este blog), permite diseñar una app en Android que ejecuta los comandos via Wi-Fi, entre el teléfono o Tablet y el módulo ESP8266-01. El programa permite que se pueda usar una IP local o la IP de Internet para acceder remotamente al control de la lámpara.
El control de la lámpara consiste en poder apagar/encender y ajustar tres niveles de potencia: 25, 50, 75 por ciento del máximo.
Para lograr los niveles de 25, 50 y 75% se utiliza la técnica de modulación por ancho de pulso, conocida como PWM (pulse width modulation). La frecuencia base es de 1kHz.
La app diseñada se puede descargar en formato apk para instalar aquí.
En formato aia de proyecto aquí.
La siguiente figura muestra una imagen de como luce la pantalla principal de esta aplicación.
Figura 4. Pantalla principal de la app para el control Wi-Fi de la lámpara led.
Para demostrar el funcionamiento de esta app y del control por Wi-Fi se muestra el siguiente vídeo:
Vídeo 1. Control Wi-Fi de una lámpara led.
De este modo concluimos por ahora el tema del IOT con una aplicación muy versátil y fácil de replicar.
Referencias:
EPS8266 SDK Getting Started
Guide.
On-line: http://espressif.com/en/support/download/documents?keys=&field_type_tid%5B%5D=14. Visitado: 2018.
ESP8266 AT Instruction Set.
On-line: http://www.espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf. Visitado: 2018.
Coding is easy.
TUNIOT Documentación.
App Inventor.
Learn C.
Arduino.
No hay comentarios