Categorías
Uncategorized

Arduinos En Internet. Parte 1: Preparativos

Es posible conectar nuestro Arduino a internet. Aunque, claro, necesitamos un shield que nos permita conectar, como el ENC28J60, o el W5500. Incluso, el WiFi shield. Pero un arduino es grande, y un shield tambien. No queremos que nuestro botón IoT tenga el tamaño de una billetera. Es, despues de todo, un botón.

Presentando al ESP8266

El ESP8266, el chip de WiFi que hace ya varios años vino a revolucionar el mundo del IoT. Por menos de 2 dólares podemos hacer nuestro propio dispositivo. Solo necesitamos conectarle una antena, y unas pilas. Muchos lo habrán visto:

El venerable ESP-01

Este es el ya venerable, pasado de moda incluso, ESP-01. Al principio poco se sabia del chip que llevaba, pero venia con una serie de comandos AT que, a través del puerto serie, nos permitian manejarlo desde un Arduino. El ESP-01 se encargaba de la parte del WiFi, y el Arduino de lo demas

La documentación

Tiempo despues se filtro a internet la hoja de datos. Estaba en chino. La comunidad hizo un esfuerzo y se logró traducir el documento. Resultó que el chip ESP8266 era mucho mejor de lo que el ESP-01 ofrecia: mas E/S digitales y analógicas que arduino, un procesador de 32 bits a 160MHz (contra los 8 bits y 16MHz de Arduino Uno).

El fabricante decidio liberar las herramientas, y el crecimiento fue explosivo. Poco tiempo despues, existia un Core de Arduino que corria en este procesador. Ya no necesitabamos un Arduino para controlarlo: el ESP8266 de por sí era más que suficiente.

Las placas

Por supuesto, este modulo ESP-01 no fue pensado para ser programado directamente desde Arduino. Es perfectamente posible hacerlo, mediante un programador externo – e incluso, un caso de uso sencillo, donde solo necesitemos 2 pines de entrada o salida, este modulo funciona perfectamente.

Pero mientras dura el desarrollo, podemos utilizar algo mejor:

El NodeMCU Amica

El NodeMCU. Originalmente pensado para usarse con el lenguaje de programación Lua, pero bueno, como somos Arduineros, vamos a pisar el firmware de fabrica y utilizar el Arduino. Es, de hecho, mas fácil hacerlo que decirlo.

El Core ESP8266

Un core de Arduino es un conjunto de compiladores, headers, archivos de configuración y otras cosas, que permiten que la IDE Arduino pueda programar otra clase de dispositivos. Es así como Arduino permite utilizar Arduino Uno, Due, Yún, etc. Pero también es posible agregar cores a medida. Veamos como instalar el de ESP8266.

Instalación

La URL del proyecto es: https://github.com/esp8266/Arduino, donde se encuentra la documentación completa. Allí también encontraremos la URL al archivo JSON de instalación, que al momento de escribir este artículo se encuentra en:

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

Para instalarlo copiamos la URL de mas arriba, y la pegamos en la pantalla de configuración de Arduino:

  1. Abrimos la IDE Arduino
  2. Vamos a Archivo/Preferencias
  3. En el campo de texto Gestor de URLs Adicionales de tarjetas, pegamos la URL
  4. Le damos Aceptar

Hecho esto, procederemos a la instalación:

  1. Vamos a Herramientas/Placas/Gestor de Tarjetas
  2. Filtramos con la palabra ESP8266
  3. le damos Instalar

Tarda un par de minutos en descargar todo de Internet pero ya tenemos todo listo.

Conexión

Procederemos a conectar nuestra placa NodeMCU a la computadora. Desde el Administrador de Dispositivos de Windows (o si estamos en Linux, con lsusb) veremos cual es el puerto serie, digamos COMx o ttyUSBx

De nuevo en la IDE Arduino seleccionaremos

  1. Herramientas/Placas/NodeMCU 1.0 (o 0.9)
  2. Herramientas/Puerto/COMx o ttyUSBx

¡Hola, Mundo!

Una vez configurado, abriremos, como siempre, el ejemplo Blink, desde Archivo/Ejemplos/Basics/Blink. Programamos este código (notaremos que la compilación suele tardar bastante mas que con el Arduino Uno), y cuando se suba el código, veremos el LED onboard parpadeando. Ya podemos usar el NodeMCU como un Arduino mas.

El ESP32

El ESP8266 tiene un hermano mayor: el ESP32. Cuesta un poco mas, pero tiene 240MHz y es dual-core: un core se dedica exclusivamente a las tareas de WiFi, y el otro esta totalmente libre para nuestra aplicación. La instalación es idéntica a el ESP8266, pero con el core Arduino ESP32. En Google encontraremos la direccion del JSON a poner en la configuracion de Arduino.

Falsificaciones

Existe un problema con los NodeMCU falsificados, que se da principalmente en los basados en ESP32: la IDE Arduino no puede poner el dispositivo en modo programación. Esto se debe a que falta un capacitor en la linea de reset. Tenemos 2 opciones, la primera, es hacer un reseteo manual:

  1. Le damos Programar
  2. Apretar el boton FLASH
  3. Apretar RESET
  4. Soltar FLASH

La segunda, es colocar el capacitor faltante:

Instalado este capacitor, no fallara el reseteo del ESP32.

Conclusiones

Hemos visto como preparar todo para conectar a WiFi. En el proximo post veremos un pequeño ejemplo de como hacer un servidor web.

Deja una respuesta

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