In the same way that you can configure a wireless router, YuboxNow allows you to embed a configuration interface on your ESP32 electronic board. YuboxNow is under free license and a very interesting feature is that it supports chipsets with LoRaWAN, which is very fashionable in the world of Internet of Things or IoT.
ESP32 boards supported?
Theoretically any ESP32 card. The ones that I can confirm personally are:
- Heltec WiFi LoRa
- HiLetgo ESP-WROOM-32 (without LoRaWAN)
- Yubox Node
- Yubox ONE
Here I will do a short tutorial on how to install YuboxNow on the Heltec WiFi LoRa card, because it is very easy to get it. I leave link to Amazon.
More information about the Heltec WiFi LoRa board on its official website https://heltec.org/project/wifi-lora-32/
Requirements
- Un board ESP32 soportado
- Arduino IDE, at least version 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)
- YUBOX Now Libraries and Dependencies Updated
Paso 1) Instalar Plugins de Arduino
The YUBOXNow sketch can be compiled from the 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: create the data / directory and gather the YUBOXNow modules into the HTML and Javascript files for the initial SPIFFS. It is a library that can be downloaded from this link, in ZIP format 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
The YuboxNow project is hosted on GitHub at the following link. We can use the GIT tool to clone the project, or if that sounds complicated, we can also download it directly from here in zip format.
This file contains a folder called yubox-now-master. We place this folder inside the directory "librariesWhere all the other Arduino libraries are installed.
Operating system | Arduino libraries path |
---|---|
Mac OS X | / Users /USERNAME/ Documents / Arduino / libraries |
Windows | C: \ Users \USERNAME\ Documents \ Arduino \ libraries |
Linux | /home/USERNAME/ arduino / sketchbook / libraries |
If we have problems with the route, we can go to the Preferences menu, inside the Arduino IDE and there is the exact route.
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, the base library that implements LoRaWAN support for the SX127x chipset. This library can be installed in an ordinary way using the Arduino IDE library manager, and searching for it with the indicated name.
- 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
The yubox-LoRaWAN library contains the yubox-lorawan-helloworld sample that shows the integration as part of a complete program.
Make sure you have selected the “Heltec WiFi LoRa 32 (V2)” board as the target from the Arduino IDE, otherwise the LoRa pin definitions will not be available and the compilation will fail.
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
After compiling and transferring the code we should see a new network in the WiFi network menu of our computer. The name of the network begins with the word YUBOX. We connect to that network and visit the web interface at IP 192.168.4.1. Almost everything is ready!
Paso 5) Configuración LoRaWAN
Now, we go to a browser, we visit the aforementioned IP and we find the YuboxNow interface. The default user is admin and the key is yubox. The first thing we must do when entering is to change the password.
We will access a responsive and slim interface from where configuring WiFi access, updating the firmware or configuring LoRaWAN will be quite simple ... yes!
I leave my LoRaWAN configuration screen. The most important data is the EUI of the device and the application key. The application EUI can be 16 zeros as seen in the figure, unless our LoRaWAN network needs something different.
Extra) Compilation from command line, for expert users
Some expert users prefer to compile without using the Arduino IDE. That is why YuboxNow brings the ability to compile from the command line. To compile we execute the make command with the following options.
make ARDUINO_INSTALL = ~ / arduino-1.8.15 YF = ~ / Arduino / libraries / yubox-now-master ESP32_BOARD = heltec_wifi_lora_32_V2
The ARDUINO_INSTALL option should point to the directory where Arduino is installed in our system.
To transfer our sketch we execute the make command again, but with the fullupload option
make fullupload
This command assumes that our device is connected to the USB port called / dev / ttyUSB0, but the path can be changed if we add the SERIALPORT = path parameter