Domina el IoT: Controla un LED con ESP-01 y Arduino IDE a través de una Página Web Interactiva

Introducción

¡Hola a todos! Hoy aprenderemos a utilizar el módulo ESP-01 con su programador serial específico y el IDE de Arduino. Crearemos una sencilla página web que nos permitirá encender y apagar un LED conectado al GPIO2 del ESP-01. Además, haremos uso de un programa de monitor serial para ver mensajes desde el ESP-01 que nos informen sobre la dirección IP del dispositivo y el estado del LED. ¡Empecemos!

¿Que es el ESP-01?

El ESP-01 es un módulo WiFi basado en el chip ESP8266 de la compañía Espressif. Este módulo se ha vuelto muy popular en el mundo del IoT (Internet de las Cosas) debido a su bajo costo, tamaño compacto y capacidades WiFi.

Características principales del ESP-01:

  1. Chipset ESP8266: Este chip potente y altamente integrado soporta TCP/IP y tiene capacidades WiFi incorporadas.

  2. Memoria: El ESP-01 viene con memoria flash de 1MB.

  3. Conectividad WiFi: Soporta estándares de WiFi 802.11 b/g/n.

  4. Pines de E/S: Tiene 2 pines GPIO (General Purpose Input/Output) que puedes usar para la lectura de sensores, control de LEDs, etc.

¿Por qué es una buena opción para tus proyectos?

  • Costo: El ESP-01 es muy económico, lo que hace que sea una excelente opción para proyectos de bajo costo.

  • Tamaño: Su tamaño compacto permite utilizarlo en proyectos donde el espacio es una consideración importante.

  • Capacidades de red: El chip ESP8266 proporciona capacidades de red robustas y flexibilidad para conectar tus proyectos a internet.

  • Versatilidad: Los pines GPIO del ESP-01 pueden ser utilizados para interactuar con otros dispositivos y sensores, lo que lo hace versátil para una amplia gama de aplicaciones.

Materiales requeridos

  • Módulo ESP-01 (Hoja de datos)
  • Programador Serial para ESP-01
  • Un LED
  • Una resistencia de 330 Ohm
  • Cables de conexión
  • Fuente Para Protoboard Mb102 3.3v / 5v (o cualquiera que pueda proporcionar 3.3V y mas de 200mA.
  • Un interruptor o botón 

Preparación del entorno

Para poder programar el módulo ESP-01, se requiere ponerlo en modo de programación (también conocido como modo de carga o bootloader). Para hacerlo, debes conectar el pin GPIO0 al GND, lo que significa que debes hacer un puente entre los dos pines, puedes usar un interruptor o botón y soldarlo como marca el siguiente diagrama, Incluso puedes usar un cable delgado sobrepuesto para evitar soldar, solo procurando que pueda entrar el esp-01 y no haga contacto con ningún otro pin.

La razón de esto es que el chip ESP8266, que es el corazón del módulo ESP-01, verifica el estado del pin GPIO0 cuando se enciende o se reinicia. Si GPIO0 está conectado a GND (nivel lógico bajo), entra en modo de programación. Si GPIO0 está suelto o conectado a VCC (nivel lógico alto), arranca desde la memoria flash, ejecutando el programa que ya se ha cargado.

Una vez que el ESP-01 está en modo de programación, puedes cargar tu script o código en el módulo utilizando un programador serial y el entorno de desarrollo de tu elección, como el IDE de Arduino.

Es importante recordar desconectar el puente entre GPIO0 y GND una vez que hayas terminado de cargar tu código, de lo contrario el ESP-01 seguirá en modo de programación y no ejecutará tu código.

Preparación del IDE Arduino

Para agregar la placa ESP-01 (que utiliza el chip ESP8266) al IDE de Arduino, debes seguir estos pasos:

  1. Abrir el IDE de Arduino: Inicia el IDE de Arduino en tu computadora.

  2. Abrir las Preferencias: Dirígete a la barra de herramientas superior, haz clic en Archivo y luego en Preferencias.

  3. Agregar URL de la Junta: Busca el campo Gestor de URLs Adicionales de Tarjetas en la ventana de Preferencias. Aquí, debes agregar la siguiente URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json y luego haz clic en Aceptar.                                                                                       

  4. Abrir el Gestor de Placas: Ve a la barra de herramientas superior, selecciona Herramientas, luego Placa, y luego selecciona Gestor de placas.

  5. Instalar el paquete ESP8266: En el Gestor de Tarjetas, escribe "ESP8266" en el campo de búsqueda. Cuando encuentres el paquete "esp8266" de "ESP8266 Community", haz clic en el botón Instalar.

  6. Seleccionar la Placa: Una vez que el paquete esté instalado, ve a Herramientas > Placa, luego desplázate hacia abajo hasta que veas "Generic ESP8266 Module". Haz clic en él para seleccionarlo.

 

Necesitaremos algún programa que permita establecer una comunicación serial, en este caso usamos Serial Port Utility, que puedes descargar haciendo clic aquí, su instalación es muy sencilla solo hace falta seguir los pasos del asistente. También puedes usar cualquier otro configurado de la forma que detallaremos a continuación.

 

Para configurar el monitor serial conecta tu programador y verifica el puerto COM que le corresponde , el baud rate es 115200 y la configuración por defecto de la comunicación serial en estos módulos es trama de datos de 8 bits, paridad ninguna, 1 bit de stop, control de datos ninguno.

Preparación de la fuente 

Cambia los jumpers de tu fuente para que pueda entregarte 3.3V y ensamblala en la protoboard.

Programación

Ahora usa tu programador serial con el ESP-01 conectado y el puente entre GND y GPIO0 a tu computadora (en caso de que utilices un botón presionalo antes de conectar y mantenlo presionado 5 segundos después de conectarlo al PC).

Carga el ejemplo blink que hacer parpardear el LED interno de la placa, para esto ve a  Archivo > Ejemplos > ESP8266 > Blink.

Después a Herramientas > Builint Led y selecciona 1.

Sube el sketch asegurandote de que el puerto y la placa son correctos y espera a que termine de flashear.

 Desconecta el convertidor USB, retira el puente o abre el interruptor y conecta de nuevo, debes poder observar el Led azul parpadeando.

Aunque el convertidor serial puede alimentar al ESP-01 no es lo recomendable ya que el módulo puede llegar a consumir corrientes mas elevadas de lo que el convertidor puede soportar causando que el módulo deje de funcionar, por eso usaremos la fuente.

Después de verificar que puedes programar tu ESP-01 con el ejemplo blink, sube de la misma manera el siguiente código que te permitirá conectarte a una red WiFi y configurar el ESP-01 como un servidor web que controla un LED conectado al pin GPIO2.

Cambia "Tecneu_pruebas" por el ssid de tu red local, y "12345678" por tu contraseña.

Código:

 

Aquí está una explicación paso a paso de cómo funciona:

  1. Importación de bibliotecas y definición de variables: Importa las bibliotecas necesarias y define los datos de la red WiFi (SSID y contraseña). También se crea una instancia del servidor en el puerto 80.

  2. Setup: En la función setup(), se inicializa el monitor serial y el pin GPIO2 como salida y se establece en bajo. Luego se conecta a la red WiFi y una vez que se ha establecido la conexión, imprime la dirección IP local en el monitor serial. También configura dos URLs ("/ledon" y "/ledoff") que, cuando se acceden, encienden y apagan el LED respectivamente y envían una respuesta al cliente indicando el estado del LED.

  3. Loop: En la función loop(), simplemente mantiene el servidor en funcionamiento para que pueda responder a las solicitudes entrantes.

Entonces, cuando se accede a "http://[dirección IP local del ESP-01]/ledon" en un navegador web, el LED se encenderá y se mostrará el mensaje "LED encendido". De la misma manera, cuando se accede a "http://[dirección IP local del ESP-01]/ledoff", el LED se apagará y se mostrará el mensaje "LED apagado". En ambos casos, también se imprimirá un mensaje en el monitor serial cada vez que se cambie el estado del LED.

 Con el sketch subido, conecta tu ESP-01 como muestra el siguiente diagrama, esto sin el puente entre GND y GPIO0 ó con el interruptor abierto.

Antes de proceder a conectar el convertidor a tu computadora, asegúrate de tener abierto el monitor serial, tal y como se indicó en los pasos previos. Una vez que conectes el convertidor, inicia la comunicación serial y después enciende la fuente de alimentación y el módulo ESP-01 automáticamente al encender se enlazará a la red Wi-Fi cuyos datos de acceso estableciste previamente. Tras establecer la conexión, el módulo enviará la dirección IP local del ESP-01 a través del monitor serial. Es importante que tomes nota de esta dirección IP, ya que será necesaria en etapas posteriores del proceso.

Esa misma dirección IP también se podrá visualizar en tu router. En este caso particular, hemos configurado una zona de Wi-Fi utilizando un dispositivo móvil como punto de acceso.

La computadora o dispostivo desde el cual accedas a la pagina web que crearás también debe estar conectado a esta misma red.

El siguiente paso es crear una pagina web que mande la información para prender y apagar el led, abre el siguiente enlace: https://webmaker.app/app/ y copia en el recuadro de HTML el siguiente código, cambiando "192.168.43.235" con la dirección IP de tu ESP-01.

Haz clic en el botón de descargar y abre el archivo.

Ahora puedes ver los botones en tu página.

Prueba a presionar cada botón y el LED se debe apagar y prender en cada caso.

En el monitor serial llegarán los mensajes que indican cuando el LED se enciende y se apaga.

Conclusiones

 ¡Eso es todo! Ahora puedes controlar un LED a través de una página web con tu ESP-01. Este es solo un ejemplo simple, pero espero que te haya ayudado a entender cómo puedes utilizar el ESP-01 para proyectos de IoT. ¡Diviértete experimentando!

Productos Relacionados

Ver artículo

Esp32

Deja un comentario