Sie sind auf Seite 1von 11

6 proyectos con ESP8266 orientados a la

tecnología del IoT


Comentarios(22)
Germán Martín

Una de las tendencias más relevantes del movimiento Maker es el IoT. Y dentro de esta
tecnología cabe destacar un componente que está haciendo furor entre los amantes de los
objetos conectados. El ESP8266 es el microcontrolador más utilizado para conectar cosas.
En este artículo te voy a mostrar proyectos con ESP8266 que puedes encontrar en el
mercado.

No es algo nuevo dentro de este blog. Ya hemos dedicado varios capítulos del podcast al
IoT. También al ESP8266 y tenemos una guía del módulo ESP01 donde puedes ver cómo
lo puedes configurar y utilizar para crear tus proyectos con ESP8266.

Cada vez se habla más de los objetos conectados y dentro de poco será una realidad en
nuestros hogares, ciudades y pueblos. En este artículo veremos cuales son las tendencias
actuales en cuanto a proyectos con ESP8266.

Indice de contenidos

 1 Características principales del ESP8266


 2 Qué tipo de proyectos con ESP8266 se pueden constuir
 3 Listado de proyectos con ESP8266
 4 Proyectos con ESP8266, conclusión

Características principales del ESP8266


Ya te he hablado en diferentes artículos y capítulos del podcast de este microcontrolador.
Sin entrar en demasiados detalles, este dispositivo es un microcontrolador con WiFi con las
siguientes características:

 Microcontrolador Cadence Tensilica Xtensa LX106 a 80 ó 160 MHz


 Hasta 4 MB de memoria flash externa al microcontrolador
 80 kB de memoria RAM
 10 puertos de entrada salida digital
 Compatibilidad con diferentes protocolos de comunicación (I2C, SPI, I2S, 1-Wire,
UART)
 Interfaz de red WiFi B, G y N con encriptación WEP ó WPA/WPA2 y protocolos
TCP/IPv4

Puedes consultar todas las funciones en la hoja de características.

La capacidad de conectarse a una red, su pequeño tamaño y su precio tan asequible, han
hecho que este dispositivo sea muy conocido en el mundo Maker. La posibilidad de
conectar el mundo físico de los sensores con el mundo de Internet y de “la nube” abre un
gran abanico de posibilidades a la hora de crear proyectos con ESP8266 para el IoT.

El ESP8266EX se suele utilizar en una placa que incluye casi todo lo necesario. Las placas
más básicas ESP-01, ESP-03, ESP12, etc necesitan de un adaptador de USB a interfaz serie
TTL. Pero las nuevas placas NodeMCU, Adafruit Huzzah, Witty Cloud, SparkFun
ESP8266 Thing ó las WeMos D1 Mini y Pro sí incluyen todo lo necesario para comenzar a
desarrollar sobre ellas.
A pesar de que éstas últimas pueden ser algo más costosas es muy recomendable utilizarlas
para la realización de prototipos.

Qué tipo de proyectos con ESP8266 se pueden constuir


Antes de escribir sobre temas más técnicos quiero presentar algunos ejemplos de proyectos
con ESP8266 que me han sorprendido por una u otra razón. Es interesante entender el
objetivo que podemos conseguir con este microcontrolador.

Las aplicaciones de un microcontrolador como éste, con conectividad a Internet, son


infinitas. Haciendo una rápida investigación en un buscador podemos encontrar multitud de
proyectos.

Control de relés

Cualquier aparato eléctrico es susceptible de ser controlado remotamente. La forma más


básica de control es un simple encendido y apagado del mismo mediante un interruptor en
forma de relé.
Aunque no puede conectarse directamente a los puertos de salida del ESP8266, la corriente
que pueden generar estos puertos es de 12mA como máximo. Se puede utilizar un transistor
para controlar el paso de alimentación a un circuito.

Un proyecto muy sencillo, basado en este concepto, es el control remoto de una lámpara a
través de una red WiFi, conectada o no a Internet.

Uso de sensores

La idea de poner los datos de sensores disponibles de forma remota en Internet o utilizarlos
para controlar sistemas es la base del Internet de las Cosas (IoT). Existen sensores de todo
típo que se pueden conectar a placas ESP8266. Tenemos sensores de temperatura, presión
atmosférica, humedad, luz, concentración de gases, etc.

Los datos que generan dichos sensores pueden utilizarse en sistemas lógicos para tomar
decisiones automáticas. El ESP8266 tiene un puerto de entrada analógico, aunque éste tiene
ciertas restricciones de las que hablaré en otro capítulo. Lo más sencillo es utilizar sensores
con interfaz I2C ó 1-Wire.

Envío de datos a Internet

Lo que nos viene a la mente nada más conocer este tipo de dispositivos es la posibilidad de
enviar cualquier dato que estos tengan disponible a Internet, ya sea a una web o a un
servicio en la nube que registre dichos datos, como por ejemplo ThingSpeak, aunque hay
otros muchos con características parecidas.
Las plataformas del IoT están en auge en la actualidad y, prácticamente, todos los meses
sale alguna nueva. También se pueden conseguir integraciones muy interesantes en
servicios de redes sociales como Twitter, Gmail, Telegram, o enviar notificaciones a
teléfonos inteligentes o tabletas.

Recepción de información desde Internet

Si hay alguna cosa en Internet, eso es información. Hoy en día pueden encontrarse en la
Red datos de todo tipo, desde datos meteorológicos hasta resultados deportivos, pasando
por las cotizaciones en bolsa, entre muchísimos otros.

Con el ESP8266 todos estos datos están al alcance de unas líneas de código para poder
usarlos en nuestros proyectos. El sitio web www.programmableweb.com contiene un índice
de servicios web con API pública disponibles en Internet.

Domótica y control industrial

Uniendo todo lo anterior: control de relés, sensores, envío y recepción de información en


red, llegamos necesariamente a lo que muchos estábamos pensando desde el principio. La
domótica es un campo en el que dispositivos como el ESP8266 facilitan el acceso a los
aficionados y a las empresas que inician su andadura.

Aunque tiene unos requerimientos diferentes, mucho más exigentes, de fiabilidad y


disponibilidad, el concepto de control industrial tiene las mismas bases y filosofía que el
control domótico. Proyectos de monitorización ambiental, control de seguridad o
actuadores de elementos físicos pueden encuadrarse tanto en el campo de la domótica como
en el del control industrial.
Hay otros muchos campos en los que se pueden aprovechar las capacidades de estos
dispositivos. Seguro que alguno de los que leéis esto estáis pensando en los wearables o en
los sensores corporales para telemedicina.

Listado de proyectos con ESP8266


A continuación veremos unos ejemplos de proyectos con ESP8266 reales que me he ido
encontrando en el tiempo que llevo trabajando con él.

#1 HomesSmart

A este proyecto le tengo cierto cariño. Es el primero que me encontré, allá por 2014,
buscando información sobre cómo programar esta pequeña placa, justo después de haberme
comprado dos ESP-01. Este proyecto hizo que me diera cuenta que estas dos plaquitas
podían hacer mucho más que escuchar comandos AT.

El proyecto con ESP8266 HomesSmart, comenzó como un módulo para sensores para
sistemas domóticos y de monitorización meteorológica, integrables en el sistema domótico
MajorDomo. Permitía conectar varios sensores a un ESP-01. Estos sensores eran los típicos
de temperatura, presión, humedad, etc.
No es un proyecto de código abierto y además de una versión gratuita tiene una versión de
pago que añade muchas más funcionalidades. Su creador cobra una pequeña cantidad
(bastante justa a decir verdad) por cada dispositivo instalado con la versión completa del
mismo. El precio es de $2 por cada ESP8266 en el que se instale su firmware.

En sus inicios estaba alojado es una página en ruso (gracias Google por la traducción).
Preparando este artículo he podido ver que el proyecto sigue en marcha y están migrando a
un nuevo dominio: wifi-iot.com.

Tienen una sección Wiki en la que puedes comprobar que la lista de sensores soportados y
de integraciones en diferentes servicios ha crecido considerablemente.

Si quieres una forma rápida de integrar sensores basados en ESP8266, sin programar, en un
sistema domótico, este sitio te puede ayudar.

#2 ColorChord coloreando la música

ColorChord es un algoritmo que Charles Lohr diseñó hace algunos años. Charles, @cnlohr
en Twitter, es un mago de los microcontroladores y de la electrónica. Te recomiendo su
blog y su canal de Youtube. Los proyectos con ESP8266 que él realiza tienen ese algo más
que hacen que rocen lo artístico.

ColorChord asigna colores a notas musicales, de manera que a una misma nota, esté en la
escala que esté, se le asigna siempre el mismo color. A pesar de ser un algoritmo con
bastante carga de cálculo, gracias a una gran optimización, ha conseguido implementarlo en
microcontroladores.

El pasado julio publicó un artículo en uno de los sitios de IEEE en el que explicaba cómo
había conseguido implementar en un ESP8266, usando su entrada analógica para muestrear
el sonido a 16 kHz, algo que estoy seguro no debió ser nada fácil de conseguir.

Los datos que obtiene del audio los convierte en colores de una tira de LED
Neopixel utilizando su algoritmo. Como dice Charles, el control de estos LED requiere
mover datos de forma muy rápida y precisa, algo que consiguió utilizando el canal DMA
que integra nuestro pequeño microcontrolador.

Esto no queda simplemente ahí sino que fue capaz de integrar un servidor web en el
ESP8266, lo que le permite observar en tiempo real lo que ocurre dentro del algoritmo
ColorChord.

#3 Implementación de comunicación USB mediante software

Este es otro de los fantásticos proyectos de Charles Lohr. Entre las muchas características
del ESP8266 no está la de soportar comunicación USB. Charles se propuso implementar la
comunicación USB sólo mediante software.
Algo que ha conseguido en tan solo un mes, a pesar de que para ello tuvo que aprender los
detalles del protocolo USB y cómo programar el ESP8266 utilizando instrucciones en
código ensamblador.

Según la información que podéis encontrar en su repositorio en GitHub, ha conseguido


comprimir esto en tan solo 1422 bytes de flash y ocupando unos 500 bytes de RAM.
Impresionante.

Si bien este proyecto es menos visual que el anterior, permite desarrollar multitud de
dispositivos.

Por ahora “solamente” ha conseguido un puerto USB con velocidad de 1.5 Mbps, por lo
que no esperes, de momento, hacer tu propio pendrive utilizando el ESP8266. Sin
embargo, hay muchos dispositivos con este interfaz que no requieren una gran capacidad de
transferencia de datos.

Como prueba de concepto, Charles, desarrolló un emulador de ratón y teclado que se


controla desde una página web alojada en la memoria flash del propio microcontrolador.
Este emulador, programado sobre un ESP8285 montado sobre una placa diseñada a medida
para el proyecto, ocupa poco más que el propio conector USB.

El siguiente paso en el que está trabajando en migrar el código a una librería para que se
pueda utilizar desde el entorno de Arduino. Es lo que han bautizado como arduinización.

#4 Servidor NTP sin conexión a Internet

Cuando el ESP8266 está conectado a Internet, es muy cómodo y sencillo utilizar el


protocolo NTP para sincronizar la hora interna. Yo mismo he programado una librería para
realizar esta función. Lo puedes encontrar en GitHub.

Cuando no existe la posibilidad de conectarse a Internet, es necesario utilizar otras fuentes


como GPS, relojes de tiempo real (RTC) o receptores de señales de radio DCF77.

Pero imagínate que tenemos un sistema compuesto por una red de microcontroladores que,
por la razón que sea, no quieres o no puedes conectar a Internet. Si quieres sincronizar la
hora entre todos ellos tienes que buscar la manera de que obtengan la información horaria
de algún modo.

Este proyecto con ESP8266 permite que obtenga la hora real mediante un receptor GPS,
por ejemplo, y otros dispositivos se conecten a él para sincronizarse utilizando el protocolo
estándar NTP.

#5 Sistema de posicionamiento en interiores SubPos

Una carencia del sistema GPS a la que estamos acostumbrados es la de no funcionar en


interiores o, si lo hace, es cerca de ventanas y con una mala precisión. Por ello han surgido
varios intentos de soluciones de posicionamiento en interiores. Uno de estos sistemas es
SubPos, cuya pretensión es establecerse como un estándar.

Por ahora están lejos de ese objetivo, pero su facilidad de implementación y su robustez
hacen que tenga muchos números para convertirse en uno de los actores en ese mercado.

SubPos utiliza la señal WiFi para transmitir la posición. Sin embargo, no es necesario que
el dispositivo esté conectado a ninguna red, ni siquiera a Internet. Solamente basta con
escuchar las redes WiFi que hay alrededor.

SubPos codifica en los mensajes de anuncio de presencia (tramas beacon) de puntos de


acceso WiFi su propia posición, que debe configurarse de forma manual. Estos
dispositivos, llamados nodos SubPos, se comportan como balizas que transmiten
continuamente su posición. Al no necesitar ninguna comunicación entre nodos o de estos
con Internet, el sistema no requiere ninguna infraestructura.

Una de estas balizas o nodos SubPos, no es más que un ESP8266 con un firmware que
puedes descargar de GitHub. Se configura como punto de acceso y permite la configuración
de su propia ubicación de forma muy sencilla.

El equipo que se conecta al sistema SubPos tampoco requiere de nada especial. Solamente
es necesario un software que interprete los anuncios de posición de las balizas y mida el
nivel de potencia con el que se reciben.

Con esos datos y mediante un algoritmo de triangulación o, más correctamente, de


trilateración se consigue un cálculo de la posición en 2 ó 3 dimensiones de forma
prácticamente inmediata. No es necesario por tanto transmitir ningún dato para obtener la
posición; es un sistema totalmente pasivo.

El resultado es que podemos instalar un sistema de posicionamiento en interiores con una


inversión muy reducida. Cada baliza o nodo no debería tener un costo superior a los 10€, y
es necesario un mínimo de 4 de estos nodos por cada sala del edificio o recinto en el que
queramos montar este sistema.

Está disponible un firmware para el ESP8266 que se comporta como receptor del sistema
SubPos y proporciona una salida NMEA en su puerto serie. También tienen una aplicación
de demostración para dispositivos Android.

#6 ITEAD® Sonoff

Por último os voy a hablar de un proyecto comercial que integra el ESP8266. Se trata del
interruptor WiFi Sonoff de la empresa ITEAD. Éste es un interruptor cuyo firmware se
conecta a un servicio en la nube y que permite controlarlo mediante una aplicación de
Android o IOS.
Es posible no solamente encender o apagar tanto de forma local como remota, sino que
también podemos programar acciones muy fácilmente. Lo que más me gusta de estos
interruptores es que como están diseñados alrededor del ESP8266, podemos cambiar su
firmware y adaptarlo a nuestras necesidades.

Con una simple búsqueda en Internet podéis encontrar artículos sobre cómo modificar estos
interruptores.

Proyectos con ESP8266, conclusión


Habéis visto proyectos con ESP8266 muy interesantes que muestran lo que este
microcontrolador puede hacer. Algunos de ellos son realmente ingeniosos. Este
microcontrolador está causando auténtico furor entre los Makers y puede ser un antes y un
después en la tecnología del IoT.

Su bajo precio lo hacen un artículo muy interesante. Gracias a la comunidad que hay detrás
desarrollando software y plataformas para proyectos con ESP8266, en la actualidad resulta
realmente sencillo programar y desarrollar sistemas con este dispositivo.

Te animo a que también crees los tuyos. Si tienes algo interesante que contar, escríbenos y
lo compartiremos con el resto de la comunidad.

Das könnte Ihnen auch gefallen