Proyectos con el módulo esp8266

esp8266

Actualmente existen los módulos ESP que puedes conseguir en ebay por un precio desde 4 dolares de los cuales se encuentran los modelos ESP01 al ESP09 el mas popular es el ESP01 del que existe mucha documentación en Internet y también porque su precio es muy bajo, común mente es llamado esp8266 por el modelo de procesador que posee, la función principal de este modulo es realizar una conexión a Internet por medio de tecnología wifi, para realizar las configuraciones se utilizan comando AT que es muy fácil de utilizar y en un par de minutos se puede programar siempre que se tenga la documentación correcta, siendo así una gran opción para el Internet de las cosas.

El modulo con sus configuraciones de fabrica nos da la posibilidad de realizar una conexión TCP/IP así como enviar variables de tipo get y post con el protocolo HTTP según sea el caso y hasta podemos realizar un pequeño servidor web y leer las variables de tipo get y así realizar un program mas complejo, pero nuestras opciones son muy limitadas, a simple vista parece un modulo simple de bajo costo y una alternativa a Arduino shield wifi  y Arduino shield ethernet, pero nada mas lejos de la realidad lo increíble de este modulo es que el chip 8266 que trate integrado tiene una potencia de 32 bits, según el modelo que tengamos puede tener una memoria de 512k hasta 4mb de memoria flash, aparte de que soporta el protocolo wifi 802.11 b/g/n, como puedes notar es incluso mas poderoso que un Arduino ATMEGA 2560, hasta hace poco se libero el SDK del chip lo que trajo consigo una comunidad de programadores que han realizado una grandiosa documentación y herramientas de software para programarlo.

Métodos de programación

Como mencione anteriormente el modulo de fabrica se programa utilizando comandos AT pero desde que se libero el sdk se ha creado soporte para otro tipo de lenguajes, así como también la utilización de Ides para ser programado, actualmente se puede programar de 4 cuatro formas, algunos lenguajes son mas potentes que otros, los cuales son:

  1. Comandos AT.
  2. Scripts lua.
  3. Arduino ide.
  4. lenguaje c++.

La primera opción de hecho no es un lenguaje de programación mas bien es un protocolo de configuración y no se necesita realizar ninguna modificación al firmware del modulo, simplemente se conecta y esta listo, no entrare en detalle en esta opción ya que existen mucha documentación en español que realmente explica de manera detalla como realizar diferentes configuraciones, en el caso de querer utilizar un lenguaje especifico tienes que bajar las herramientas necesarias para compilar y cargar el programa y en algunos casos solo necesitas bajar un firmwire e instalarlo una sola vez como es el caso de Lua.

Scripts Lua.

Lua es un lenguaje de script potente y ligeros escrito en c, la versión que soporta el modulo esp8266 es la 5.1 de la cual puedes consultar su sintaxis en esta pagina lua.org, existe una versión mas reciente pero el firmware aun no lo soporta, para poder utilizar este lenguaje se necesita instalar un firmware nodemcu, solo se instala una vez y luego con un cargador que parece un ide se realiza la programación, en su pagina de github explica paso a paso como realizar el flasheo, en los próximos artículos tratare de explicar paso a paso como realizar este proceso y con algunos ejemplos.

Este lenguaje permite realizar programas mucho mas potentes con una sintaxis muy simple aunque su nombre nodemcu haga pensar en nodejs y javascript se parece mas a python, cabe mencionar que es un lenguaje interpretado que es menos eficiente y también es de un solo hilo, lo que dificulta un poco su utilización, pero en caso de requerir mas eficiencia se puede optar por programar en c que prácticamente es lo mas cercano a lenguaje ensamblador.

Arduino ide

El ide de Arduino es personalizable y al ser open source se puede recurrir a su código fuente en cualquier momento y modificarse ya que su licencia lo permite, en la comunidad de esp8266 crearon una versión con las herramientas para programar este modulo como si fuera un Arduino, de hecho se utiliza la sintaxis de processing para programarlo que es el lenguaje que utiliza Arduino. Muchas de las librerías de Arduino son soportadas, aunque pueden existir errores pero la mayoría se pueden solucionar buscando en google.

Al utilizar la sintaxis de Arduino, es muy fácil de programar y se puede implementar mucho del código que existe en Internet, ademas de que la comunidad de Arduino es muy grande lo que lo hace muy practico, pero aun existen ciertos errores en librerías mas especificas como el caso de mqtt para el Internet de las cosas, en mi caso la conexión al servidor se perdía después de cierto tiempo y ya no se volvía a conectar de ninguna forma, entre otros errores, lo bueno es que la comunidad sigue depurando muchos de esos errores y lo mas probable es que el futuro pueda funcionar sin problema, por lo que no deja de ser una buena opción para desarrollar en este modulo.

Lenguaje c++

El lenguaje c es el favorito por excelencia para microcontroladores es lo mas cercano a programar en ensamblador y lo genial es que soporta c++ que es la forma de programar orientado a objetos en c, esta es la forma mas difícil de programar el modulo ya que se deben instalar muchas herramientas para compilar los archivos, ademas de que se debe leer la documentación del sdk y su curva de aprendizaje es mas alta, pero el beneficio es que se pueden utilizar muchas de las librerías de c++ y así crear programas muy potentes, y al ser compilado se puede explotar toda la capacidad del chip.

En la pagina de la comunidad esp8266.com se puede encontrar los pasos para instalar las herramientas de compilación y también explican como cargar los archivos binarios, el proceso es para usuarios mas avanzados, la mayoría de la documentación es para linux, por lo que debemos conocer este sistema operativo, existe muy poca documentación al respeto, pero si sabes c++ esto no seria un problema, ya que solo debes estudiar las librerías del sdk, aunque existen mas desventajas al principio esta siempre sera la mejor forma de programar ya que se puede aprovechar todas la ventajas de c++ y el poder de procesamiento de la placa.

Como puedes notar este modulo es muy poderoso por su capacidad de programación y personalización, por lo que es una opción de bajo costo para proyectos de iot que es de lo que quiero escribir en los próximos artículos, mi intensión es poder utilizar el protocolo mqtt para poder conectar diferentes dispositivos con un consumo mínimo de ancho de banda.

A %d blogueros les gusta esto: