Beruflich Dokumente
Kultur Dokumente
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
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.
Control de relés
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.
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.
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.
#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.
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.
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.
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.
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.
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.
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.
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.
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.
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.