ESP8266 + Stellaris Launchpad = IoT

Dado que para una de mis asignaturas del master realicé una presentación sobre el Hardware que se utiliza en el prototipado de dispositivos para el Internet de las Cosas (IoT), decidí hacer una demostración con hardware real, y mostrar una aplicación práctica con hardware real; así que nada mejor que un ejemplo de hardware, que controlar un led multicolor y leer un sensor de temperatura, desde un navegador web.

Debido a que estoy algo lejos de mi casa, y no tengo todo el equipo necesario para cualquier trabajo electrónico, tuve que limitar un poco la aplicación práctica, así que buscando el hardware que tenía a la mano, obtuve lo siguiente:

  • ESP8266 para la conectividad WiFi
  • Stellaris Launchpad para usar su LED multicolor y su sensor de temperatura

Nunca había usado el módulo ESP8266 (tenía un par guardado desde hace algunos meses acá) y ‘esta era la oportunidad perfecta para probarlo, además, hace pocas semanas se hizo el anuncio de que la versión 1.6.2 del IDE de Arduino podía compilar y grabar código en el ESP8266 así que era la oportunidad perfecta para probarlo!

El módulo ESP8266 puede ser programado usando un convertidor USB-RS232 que funcione a 3.3v, y aquí es donde surgió el primer problema: comprar un convertidor de ese tipo demoraría cerca de 1 mes, así que no era una opción viable. Resulta que probé haciendo un puente serial usando un arduino, pero funcionaba a medias. Tenía conexión de comandos AT con el ESP8266, pero no lo podía flashear….. había que buscar otra opción.

En ese momento recordé un detalle. El Stellaris Launchpad, en realidad tiene 2 chips. El uno funciona como debugger/interfaz serial, y el otro es el microcontrolador programable, que puede ser desconectado mediante un jumper en la tarjeta; además, tiene los pines Rx y Tx del convertidor desconectados, así que si conectaba ahí el ESP8266 podía ser flasheado. En resumen, se puede usar un launchpad como interfaz serial para programar el ESP8266!

Solventado el problema de la programación del chip, a echarle mano al código! Dentro del IDE de Arduino, existen algunos ejemplos de uso del ESP8266, que según se comenta en los foros, se programa igual que el Shield WiFi oficial de Arduino. Dadas las limitaciones de la red WiFi de la Universidad, y para el ejemplo, el módulo será configurado de la siguiente manera:

• Access Point WiFi
• Red abierta (sin contrasena WEP o WPA)
• Conexión RS232 con el Stellaris Launchpad
• Configurado como servidor web
• 5 comandos disponibles via URL (/led/rojo[verde, azul, off], /status)

Cada vez que el ESP8266 reciba una petición del navegador, analizará la url, y enviará un comando via puerto serie al Launchpad, para ejecutar a accion seleccionada.

En el Launchpad, el código es mucho mas simple. Se va a utilizar uno de los puertos UART para recibir comandos desde el ESP8266, y encender el led seleccionado, o apagarlos todos. Además, al recibir el comando equivalente a /status desde el ESP8266, enviará el dato de la temperatura del Launchpad, obtenida desde su sensor interno de temperatura. Cabe recalcar que el Launchpad, fué programado usando el IDE Energía, así que la compatibilidad de código con una tarjeta Arduino está garantizada.

El resultado? Un led wifi, con sensor de temperatura integrado. Basta con encender el circuito (mediante una batería de móvil, o un cargador de pared), conectarse a la red ESP8266 (que la genera el módulo WiFi), y abrir la url http://192.168.4.1/status para verificar la conecitividad con el módulo.

Una vez que hemos comprobado la conectividad basta con probar con los comandos para ver como responde. por ejm, si abrimos la url http://192.168.4.1/led/azul, se encenderá el led azul del Stellaris

Realmente el ESP8266 tiene mucho futuro en proyectos donde se requiera conexión WiFi a cualquier dispositivo electrónico. Además su bajo precio (menos de $5 si se lo compra en ebay) lo convierte en una muy buena opción para este tipo de proyectos.

El código fuente para el Stellaris, y el ESP8266, puede ser descargado en mi repositorio de GitHub: https://github.com/patolin/esp8266-stellaris-launchpad

2 comentarios en “ESP8266 + Stellaris Launchpad = IoT

  1. Hola, para configurar el modulo esp8266 obligatoriamente debo usar una tarjeta arduino? no se puede desde la stalleris?

  2. Puedes usar cualquier tarjeta que te permita convertir una conexión USB en RS232 a 3.3v que maneja el ESP8266. Con la stellaris funciona sin problema, incluso con el IDE de arduino

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *