Instalar librerías LoRa y OLED en ESP-IDF

Resumen

Configurar un proyecto ESP32 con LoRa y pantalla OLED en ESP-IDF requiere instalar dos librerías externas como components: una para el módulo de radio LoRa y otra para el display SSD1306. Si trabajas con microcontroladores y quieres mandar datos de forma inalámbrica con visualización local, este flujo te ahorra horas de trabajo.

La idea es sencilla: creas el proyecto base con idf.py, descargas los repositorios de GitHub, y mueves el contenido relevante a una carpeta llamada components dentro de tu proyecto. A partir de ahí, ESP-IDF detecta esos módulos automáticamente y los deja listos para que hagas include en tu código principal.

¿Qué librerías necesitas para usar LoRa y OLED en ESP32?

Necesitas dos components externos que no vienen incluidos en ESP-IDF, pero que están diseñados específicamente para las tarjetas de desarrollo que integran radio LoRa y pantalla OLED [01:00].

¿Para qué sirve la librería ESP32 LoRa Library?

La primera librería se llama ESP32 LoRa Library y funciona como component para controlar el módulo de radio LoRa de tu tarjeta. Incluye funciones esenciales como:

  • reset para reiniciar la configuración de la radio.
  • sleep para entrar en modo de bajo consumo.
  • receive para detectar mensajes entrantes.
  • init para inicializar la configuración de la tarjeta.

Esta librería es compatible con el modelo de tarjeta que se usa en el curso. Si tienes otro modelo, debes verificar que la librería corresponda a tu hardware [02:30].

¿Qué es un component en ESP-IDF? Es la forma estándar en que se distribuyen librerías para ESP32. Cada component contiene su código fuente, archivos de cabecera y configuración, listos para integrarse en cualquier proyecto.

¿Qué hace la librería SSD1306 para la pantalla OLED?

La segunda librería corresponde al controlador SSD1306, el chip que maneja la pantalla OLED integrada en muchas tarjetas de desarrollo. El repositorio incluye no solo el component, sino también varios ejemplos funcionales que conviene revisar antes de integrarlos a tu proyecto [03:15].

De esta librería solo necesitarás la versión SPI, porque en la tarjeta del curso ese es el protocolo que conecta la pantalla con el microcontrolador. Si tu tarjeta usa I2C, deberás elegir el archivo correspondiente según las especificaciones del fabricante.

¿Cómo creo un proyecto ESP-IDF desde la terminal?

Desde una carpeta limpia, abre la terminal y ejecuta el comando de creación. Toda la base del curso de ESP32 en Platzi te sirve aquí, así que si algo no te suena, vuelve a esos contenidos.

El comando es:

bash idf.py create-project ESP32_LoRa

Después entras a la carpeta recién creada y la abres en Visual Studio Code:

bash cd ESP32_LoRa code .

Dentro encontrarás el archivo .c con la función app_main, que es la entrada del programa. Si ejecutas idf.py build, aparecerá también la carpeta build tras la primera compilación, que suele ser un poco lenta [05:45].

¿Dónde se coloca la carpeta components en un proyecto ESP-IDF? En la raíz del proyecto, al mismo nivel que la carpeta main. ESP-IDF la detecta automáticamente y deja todos sus módulos disponibles para hacer include desde tu código.

¿Cómo instalo las librerías como components en mi proyecto?

Descarga ambos repositorios desde GitHub, ya sea clonándolos o como archivo comprimido. Una vez descomprimidos, busca dentro de cada uno la carpeta components y copia las subcarpetas relevantes [07:00].

Los pasos concretos son:

  1. Crea una carpeta llamada components en la raíz de tu proyecto, junto a main.
  2. Copia la carpeta lora desde el repositorio del primer component hacia tu nueva carpeta components.
  3. Copia la carpeta ssd1306 desde el segundo repositorio al mismo destino.

Con eso, tu proyecto ya tiene los dos módulos integrados y listos para usarse.

¿Qué archivos contiene cada component y para qué sirven?

Los components siguen una estructura parecida a un proyecto ESP-IDF, pero pensada para funcionar como módulo, no como ejecutable final. Vas a encontrar:

  • Una carpeta include con archivos .h que declaran qué funciones están disponibles.
  • Archivos .c que definen cómo funciona internamente cada una de esas funciones.
  • Un archivo component.mk que en algunos casos está vacío, pero existe para que el sistema de build lo reconozca.
  • Configuración expuesta en menuconfig, donde por ejemplo seleccionas los pines de comunicación de la radio LoRa [09:30].

No tengas miedo de abrir el código fuente. Es exactamente la misma lógica que ya conoces del curso de ESP32, solo que alguien ya hizo el trabajo de empaquetarlo para que tú no tengas que repetirlo. Leer los .h te dice qué argumentos recibe cada función y qué devuelve, además de la documentación inline.

¿Por qué conviene revisar el código fuente de las librerías?

Revisar las librerías te da dos beneficios concretos. Primero, entiendes qué hace cada función antes de llamarla, lo que evita errores de integración. Segundo, vas a notar que tú mismo podrías haber implementado esas librerías con lo que ya sabes, lo que refuerza tu comprensión del ecosistema ESP-IDF.

En la siguiente clase vas a usar estas librerías por primera vez para escribir mensajes en la pantalla OLED. ¿Ya descargaste los repositorios? Cuéntame en los comentarios qué tarjeta de desarrollo estás usando.