bclose

Introducción a IOT con ESP32

Introducción a IOT con ESP32

 

 

    • Internet of Things.
    • Presentar el curso.
    • Objetivos del curso.
 

 

Material requerido.

 

 Tienda EspañaTienda Mexico
 vista lateral del esp32
Un ESP32

Internet of Things

 

En los últimos años, el desarrollo de procesadores competentes que incluyen comunicaciones de radio, ha permitido iniciar aplicaciones muy interesantes, allí donde los cables no son una opción clara, y lo que es mas importante, nos ha permitido vislumbrar un mundo futuro en que todo este conectado entre si y a Internet de modo que el intercambio de información sea sencillo y barato entre cualquier par de puntos de nuestro mundo (O poco más o menos)

A ese futuro, mas o menos próximo, en que las comunicaciones entre cualquier agente automático y nuestro sistema de información, sean cotidianas y fiables, es lo que se ha bautizado como IOT o Internet Of Things por sus siglas inglesas.

Hasta la fecha, hay mucha literatura al respecto y poca aplicación práctica porque el asunto de las comunicaciones ubicuas aun deja mucho que desear (Por diferentes razones) y no faltan opiniones de que todo esto es una sandez porque no ve el interés de que nuestra nevera se conecte al Eroski o Mercadona y nos haga los pedidos periódicos (Después de controlar el contenido de la nevera, claro)

Mucha gente en los 90, no veía claro el interés de conectarse a Internet , ¿Para buscar qué? Decían, (Ojo que recuerdo nombres) o bien ¿Qué hay de interés en Internet, aparte de porno y chorradas de freakys? Y un poco antes muchos se preguntaban al verte pasar hablando con un móvil por la calle ¿Pero es que ese imbécil no puede esperar a llegar a la oficina?¿De verdad es tan importante lo que tiene que decir?

Pero en realidad la IOT será uno de los grandes avances de la era moderna. Porque abrirá nuevos territorios inexplorados y desconocidos para que los pioneros los colonicen, con aplicaciones que hoy no podemos ni intuir, como era imposible intuir en los 90, Amazon o el comercio online, Google maps o Earth, o Facebook… pero llegaron.

Si miras bien, encontrarás que (A fecha de hoy) las 10 empresas de mayor capitalización bursátil del mundo, son por orden:

 
  • Microsoft
  •  Apple
  •  Amazon
  • Alphabet (Google)
  •  Facebook
  •  Alibaba
  •  Berkshire
  •  Visa
  • Johnson & Johnson
  • Walmart  

Puedes ver que las 6 primeras son de tecnología, es decir no existían hace, digamos 30 años. De las que hubieras imaginado, petroleras, químicas, automóviles, producción industrial no hay ni rastro. De hecho, el valor sumado de las 6 primeras, es mayor que el de las 20 siguientes en la lista.

Parece claro que el valor de negocio de las tecnológicas es explosivo y por eso me suelo reír cuando la gente me dice que no ve el interés de la IOT, la IA, el Blockchain y tantas otras siglas. Eso es porque su valor no se rige por lo que te imaginas ahora, sino por lo que se imaginaran algunos dentro de unos años, que ahora mismo no somos capaces de intuir siquiera en que consistirá. Pero que llegará no lo dudes.

El problema de todos los enterados profetas, es que pretenden imaginar el futuro sin contar con lo que se descubrirá dentro de unos años (Y que lógicamente desconocen) obviando que hace 40 años nadie podía imaginar que las 6 empresas mas grandes del mundo no serían industriales, sino de información. Y si alguien se lo hubiera dicho con una bola de cristal no podrían creerlo.

Hay 3 condiciones que son necesarias para que la IOT (Internet Of Things) se desarrolle:

 
  • Procesadores capaces y baratos.
  • Sensores de bajo coste y amplio abanico.
  • Conexiones ubicuas de bajo coste.  

La primera, Procesadores baratos y capaces, se resolvió ya hace años, con Arduino y similares y actualmente pocos chips son capaces de competir en esto con los ESP8266 y los ESP32 (Y esperamos nuevos modelos a corto plazo).

La comercialización para IOT y DIY (Do it yourself) de procesadores de móviles vendidos como controladores de propósito general, no ha llegado nunca a materializarse, a pesar de ser algo que llevamos pensando que es inminente desde hace varios años. Por alguna razón, que se nos escapa, los grandes jugadores no han querido entrar en este tema (Una honrosa excepción ha sido la Raspberry Pi).

La segunda condición, Sensores de bajo coste y de un amplio abanico de valores físicos, se lleva cumpliendo con comodidad en los últimos años, en los que han ido apareciendo sensores de cualquier cosa que podáis imaginar a costes cada vez más reducidos, y la tendencia es que la propuesta va a continuar en progresión ascendente mientras el precio de procesadores y sensores tiende a cero.

La tercera condición es una red de comunicaciones global, que nos proporcione acceso rápido a internet, desde cualquier punto de la geografía a un coste que no necesite pagos disparatados ni cuotas mensuales de abono, que hacen inviables económicamente la conexión de pequeños módulos a esa red mundial de captación de datos ambientales o de sensores de cualquier tipo

Es esta tercera condición la que aun no se cumple como desearíamos, pero las nuevas infraestructuras 5G prometen cambiar este último e imprescindible condición, en un futuro próximo.

Cuando esto ocurra, creemos que habrá una explosión de conectividad y que de repente se abrirá una nueva área de Internet que tendera a crecer de forma exponencial durante algunos años (En número difícil de determinar por ahora). Como decía un sabio: predecir es una cosa muy complicada, sobre todo cuando predices el futuro.

Cuando en unos años la IOT sea viable, esperamos una explosión de aplicaciones difíciles de imaginar actualmente, pero algunas son evidentes:

 
  • Los cultivos podrán avisar de si necesitan agua o nutrientes a nivel de las plantas que se decida.
  • Los extintores o la comida empaquetada avisara de su caducidad al encargado con unas semanas o meses de antelación y podrán solicitar su renovación mediante un SMS o email
  • La nevera podrá configurar tu pedido al supermercado online, de acuerdo a tus costumbres y recibirás nuevos suministros antes de que te des cuenta que estabas escaso de azúcar o lo que sea.
  • Tu medico robot te llamará porque no le gusta lo que los sensores de tu móvil revelan de tu estado de salud.   

Prácticamente todo lo que tenga interés se irá conectando, con una conexión TCPIP, para integrar una red de información inimaginable, lo que abrirá el proceso de explotar comercialmente esa información.

Por eso y porque no falta tanto para oír el disparo de salida, nos ha parecido buena idea empezar una serie de tutoriales sobre la IOT para ir ganando tiempo (A ver si se nos ocurre el próximo pelotazo, y nos hace un apaño) y plantear sus conceptos básicos desde el principio y para gente que ya está cómoda con la idea de la electrónica y programar.

Quiero decir con esto, que, en esta serie de tutoriales, no nos vamos repetir hablando de las instrucciones de C++, o de conceptos básicos de electrónica. Para quienes necesiten de esta introducción, les recomendamos nuestro curso de inicio Arduino con el kit de inicio.

En esta serie, nos centraremos ene el ESP32 y empezaremos con las características básicas del micro, para que vayamos ordenadamente viendo después lo básico de la WIFI, Bluetooth y a ser posible LORA,  para ir avanzando

Pues eso es todo y vamos directamente a empezar describiendo el ESP32.

 

Viendo el mundo desde los ojos de un ESP32

 

Los PC que tenemos encima de la mesa con los últimos procesadores Intel Core o AMD Ryzen, son maquinas excepcionales capaces de realizar millones de calculo por segundo. Pensados y diseñados para realizar tareas de computación de forma veloz son un prodigio de la tecnología moderna, cuando se refiere a ejecutar programas de cálculo, diseño o matemáticas. Pero cuando pensamos en su capacidad para relacionarse y percibir el mundo exterior próximo, su habilidad se acerca a cero con rapidez porque no están pensadas para eso. ¿Te imaginas como harías con el ultimo PC de escritorio para encender una simple luz cuando alguien entre en la habitación? ¿Quizás sabrías encender un ventilador cuando la temperatura de la sala alcance un cierto umbral?

Nuestros Arduinos en general y nuestro ESP32 son una serie de procesadores, mucho menos potentes en cuando a operaciones por segundo y potencia de cálculo, pero infinitamente más capaces para sentir e influir en el mundo exterior, porque es para lo que están diseñados. Y para entender como ve el mundo uno de estos procesadores, el ESP32, es importante entender como percibe el micro ese mundo exterior del que hablamos.

El ESP32 es un micro que integra CPU, memoria RAM volátil y no volátil (Para el programa) y varios dispositivos de I/O (Entrada y salida) en un chip único, además de dispositivos de comunicaciones variados, que podemos emplear para recibir y enviar información al exterior.

Básicamente el ESP32 es capaz de:

 
  • Recibir señales digitales (Digital Inputs)
  • Enviar señales digitales (Digital Output)
  • Recibir señales Analógicas en tensión (Analog Input ) mediante ADCs.
  • Enviar señales analógicas al exterior, (Analog Output) como señales moduladas en pulsos PWM y con 2 convertidores digital a analógico (DAC)
  • Detectar variaciones de Capacidad en los pines adecuados.
  • Medir la temperatura ambiente (Con sus más y con sus menos)
  • Comunicarse con el exterior de forma cableada:
    • Buses I2C integrados
    • Buses SPI integrados
    • Puertas UART o serie programables.
  • Comunicarse con el exterior de forma inalámbrica
    • Puerto WIFI integrado, con stack TCPIP.
    • Puerto Bluetooth 5 integrado.  

No todos los pines del ESP32 sirven para todo, pero iremos viendo que pines pueden hacer que y como usarlos para las funciones que describimos arriba y seguro que se nos ira ocurriendo mas cosas sobre la marcha. En cierta manera la descripción de esas capacidades serán el objeto de las próximas sesiones antes de pasar a las posibilidades de IOT del ESP32 propiamente dichas.

 

 

Instalando el entorno de trabajo

 

Aprender a desarrollar en un entorno de micro controlador concreto, es algo largo y complicado y en general todos tendemos a amortizar ese conocimiento cuando conseguimos alcanzar un grado cómodo de conocimiento del entorno (Es la ley de la pereza cósmica). Si ya conoces el entorno de un micro, procuras mantenerte fiel a el mientras sea posible, unas veces por vagancia y otras por evitar el esfuerzo de aprender un nuevo entorno.

El ESP32 es un micro con un sistema de desarrollo y programación propio, que no nos interesa en este momento, porque el fabricante fue listo y desarrollo en código abierto un plugin que, una vez instalado, nos muestra el ESP32 como un Arduino mientras mantiene las instrucciones y la terminología que ya conocemos (Al menos los seguidores de Prometec) lo que hace que podamos empezar a desarrollar de forma inmediata con él. Para ello basta con instalar un pluggin y a partir de ahí podemos trabajar como si fuera un miembro más de Arduino. Limpio ¿No te parece? Veamos cómo. Si ya tienes instalado el IDE de Arduino, bastara con instalar y configurar el plugin específico para el ESP32.

 

La gente de Arduino, desarrolló con gran acierto, una metodología para describir tarjetas o micros no oficiales, en el entorno, de modo que terceros fabricantes pudieran incorporar sus propios micros a la plataforma, sin necesidad de hablar con Arduino directamente

A esto se llama el gestor de tarjetas y nos permite incluir micros no oficiales de forma sencilla una vez que el fabricante desarrolla el pluggin (O descripción del micro) de este modo, muchos fabricantes se han sentido atraídos hacia la plataforma Arduino, lo que les permite aprovechar la enorme base de conocimientos que se acumulan en forma de librerías, programas (Y hasta tutoriales)

Para dar de alta el ESP32 en el entorno, basta con ir al menú

\\Archivo\Preferencias

Y en el campo Gestor de URLs adicionales, escribir

https://dl.espressif.com/dl/package_esp32_index.json
Preferencias Arduino

Si quieres dar de alta también al hermano menor de ESP32, llamado ESP8266 (Que incluye WIFI pero no Bluetooth) Puedes añadir otra URL (Separadas por una coma) y una tercera si lo necesitases.

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Si vas ahora a \\Herramientas\Placa\Gestor de tarjetas, puedes ya descargar lo necesario lo necesario para que puedas usar el ESP32 o el ESP8266 con tu entorno Arduino, sin mas que pedirle que te lo instale.

INstalando el ESP32 en Arduino IDE

Ojo que va a tardar un rato porque tiene que descargar un buen montón de código. Con esto dejamos listo el entorno para que en la próxima sesión podamos empezar a trabajar con las características del ESP32 y con cómo utilizarlas.

 

IMAGEN DE MARCA