De la misma manera que puedes configurar un ruteador inalámbrico, YuboxNow te permite embeber una interface de configuración en tu placa electrónica ESP32. YuboxNow se encuentra bajo licencia libre y una característica muy interesante es que soporta chipsets con LoRaWAN, que está muy de moda en el mundo de Internet de las Cosas o IoT.
Qué tarjetas ESP32 están soportadas?
Teóricamente cualquier tarjeta ESP32. Las que puedo confirmar en lo personal son:
- Heltec WiFi LoRa
- HiLetgo ESP-WROOM-32 (sin LoRaWAN)
- Yubox Node
- Yubox ONE
Aquí haré un pequeño tutorial de cómo instalar YuboxNow en la tarjeta Heltec WiFi LoRa, debido a que es muy fácil conseguirla. Dejo vínculo a Amazon.
Más información de la placa Heltec WiFi LoRa en su sitio Web oficial https://heltec.org/project/wifi-lora-32/
Requisitos
- Un board ESP32 soportado
- Arduino IDE, al menos versión 1.8.13
- Soporte ESP32 para Arduino IDE (Arduino-ESP32), versión 2.0.3 o superior (esto se hace en el gestor de placas de Arduino)
- Bibliotecas de YUBOX Now y dependencias actualizadas
Paso 1) Instalar Plugins de Arduino
El sketch de YUBOXNow se puede compilar desde el Arduino IDE, como se hace con otros proyectos. Se debe de elegir el board “Heltec WiFi LoRa 32 (V2)” desde el gestor de tarjetas. Debemos también tener en cuenta que vamos a necesitar tener los siguientes PLUGINS e Arduino instalados previamente. No confundir plugins con librerías.
- YUBOX – Assemble HTML Interface: crea el directorio data/ y reúne los módulos de YUBOXNow en los archivos HTML y Javascript para el SPIFFS inicial. Se trata de una librería que se puede descargar de este vínculo, en formato ZIP y se instala dentro del directorio “tools” que se encuentra en la carpeta base de Arduino.
- ESP32 Sketch Data Upload: genera y carga el sistema de archivos SPIFFS inicial de YUBOXNow al board. Se puede instalar desde el gestor de bibliotecas del ArduinoIDE o se pueden seguir las instrucciones aquí: https://github.com/me-no-dev/arduino-esp32fs-plugin
Luego de instalar estos plugins la carpeta tools debe quedar parecida a la siguiente imagen.
Luego de esto reiniciamos Arduino y debemos ver estas dos nuevas opciones en el menú de Herramientas.
Paso 2) Instalar YuboxNow
El proyecto YuboxNow se encuentra alojado en GitHub en el siguiente vínculo. Podemos usar la herramienta GIT para clonar el proyecto, o si eso suena complicado, también podemos descargarlo directamente de aquí, en formato zip.
Este archivo contiene una carpeta llamada yubox-now-master. Esta carpeta la colocamos dentro del directorio “libraries“, donde se instalan todas las demás bibliotecas de Arduino.
Sistema Operativo | Ruta bibliotecas (librerías) Arduino |
---|---|
Mac OS X | /Users/USUARIO/Documents/Arduino/libraries |
Windows | C:\Users\USUARIO\Documents\Arduino\libraries |
Linux | /home/USUARIO/arduino/sketchbook/libraries |
Si tenemos problemas con la ruta, podemos ir al menú de Preferencias, dentro del Arduino IDE y allí está la ruta exacta.
YuboxNow tiene sus propias dependencias, entre las cuales citamos las siguientes bibliotecas:
Librería | Método de instalación |
ArduinoJSON | Desde el gestor de bibliotecas de Arduino |
AsyncTCPSock | Desde https://github.com/yubox-node-org/AsyncTCPSock/archive/master.zip |
ESPAsyncWebServer | Desde https://github.com/yubox-node-org/ESPAsyncWebServer/archive/refs/heads/yuboxfixes-0xFEEDC0DE64-cleanup.zip |
Async MQTT client for ESP8266 and ESP32 | Desde https://github.com/marvinroger/async-mqtt-client/archive/master.zip |
Información detallada de cómo instalar estas bibliotecas se encuentra aquí: https://github.com/yubox-node-org/yubox-now/
Una vez instaladas las dependencias y la librería YuboxNow, abrimos uno de los ejemplos que vienen con YuboxNow, desde el menú de “Archivo –> Ejemplos –> YuboxNow –> ybx-blinktest”.
Lo primero que haremos antes de compilar es ejecutar los plugins previamente instalados para poder cargar el directorio Web a la tarjeta. Primero ejecutamos el Yubox Assemble HTML Interface y luego el ESP32 Sketch Data Upload.
3) Soporte LoRaWAN Arduino
Podemos usar YuboxNow sin soporte para LoRaWAN, pero aquí mostraremos cómo añadir este soporte (y su correspondiente menú), puesto que muchas veces es algo engorroso configurar LoRaWAN desde el código. Con YuboxNow es mucho más sencillo, porque se hace a través de una interfaz Web. Para agregar el soporte LoRaWAN, es necesario instalar las siguientes bibliotecas adicionales en el Arduino IDE:
- SX126x-Arduino, librería base para comunicación con los chips SX126x de Semtech. Se la puede instalar desde el gestor de bibliotecas de Arduino.
- Beelan LoRaWAN, la biblioteca base que implementa soporte LoRaWAN para el chipset SX127x. Esta biblioteca puede instalarse de forma ordinaria usando el gestor de bibliotecas de Arduino IDE, y buscándola con el nombre indicado.
- yubox-LoRaWAN, el adaptador que permite configurar el AppEUI y AppKey para el soporte OTAA de LoRaWAN. Esta librería implementa un nuevo menú llamado LoRaWAN en la interfaz Web de YuboxNow. La versión que utiliza la biblioteca Beelan-LoRaWAN está en la rama SX127x-Beelan-LoRaWAN, la cual puede descargarse como un archivo ZIP desde https://github.com/yubox-node-org/yubox-LoRaWAN/archive/refs/heads/master.zip.
Paso 4) Ejecutar programa de ejemplo
La biblioteca yubox-LoRaWAN contiene el ejemplo yubox-lorawan-helloworld que muestra la integración como parte de un programa completo.
Se debe estar seguro de haber seleccionado el board “Heltec WiFi LoRa 32 (V2)” como objetivo desde el Arduino IDE, de lo contrario, las definiciones de pines LoRa no estarán disponibles y fallará la compilación.
Construir el contenido html
Para esto ejecutamos el plugin Yubox Assemble HTML Interface. Lo que hace este plugin es tomar como base una plantilla, la cual se encuentra en la carpeta data-template y construir un directorio llamado data, que es el que realmente se transfiere al ESP32.
Compilar Arduino
Luego de compilar y transferir el código deberíamos ver una nueva red en el menú de red WiFi de nuestro computador. El nombre de la red comienza con la palabra YUBOX. Nos conectamos a esa red y visitamos la interfaz Web en la IP 192.168.4.1. Ya está casi todo listo!
Paso 5) Configuración LoRaWAN
Ahora sí, vamos a un navegador, visitamos al IP antes mencionada y nos encontramos con la interfaz de YuboxNow. El usuario por omisión es admin y la clave es yubox. Lo primero que debemos hacer al ingrsar es cambiar la clave.
Accederemos a una interfaz responsiva y slim desde donde configurar el acceso a WiFi, actualizar el firmware o configurar LoRaWAN será bastante sencilla… siiiiiiiiiii!
Les dejo mi pantalla de configuración de LoRaWAN. Los datos más importante son el EUI del dispositivo y la clave de aplicación. El EUI de aplicación puede quedar en 16 ceros como se ve en la figura, a menos que nuestra red LoRaWAN necesite algo diferente.
Extra) Compilación desde línea de comandos, para usuarios expertos
Algunos usuarios expertos prefieren compilar sin utilizar el Arduino IDE. Es por eso que YuboxNow trae la posibilidad de compilar desde la línea de comandos. Para compilar ejecutamos el comando make con las siguientes opciones.
make ARDUINO_INSTALL=~/arduino-1.8.15 YF=~/Arduino/libraries/yubox-now-master ESP32_BOARD=heltec_wifi_lora_32_V2
La opción ARDUINO_INSTALL debe apuntar al directorio donde se encuentra instalado Arduino en nuestro sistema.
Para transferir nuestro sketch ejecutamos nuevamente el comando make, pero con la opción fullupload
make fullupload
Este comando asume que nuestro dispositivo se encuentra conectado al puerto USB llamado /dev/ttyUSB0, pero se lo puede cambiar la ruta si agregamos el parámetro SERIALPORT=ruta