Biblioteca Arduino para comunicación LoRa simplificada en placas Heltec ESP32.
Proporciona funciones init(), send() (con espera de ACK) y recv() para pruebas punto a punto utilizando el stack LoRaWan de Heltec.
- Placa Heltec ESP32 con LoRa (WiFi LoRa 32, Wireless Stick, etc.)
- Arduino IDE 1.8.19 o superior
Esta biblioteca requiere las siguientes librerías instaladas:
| Biblioteca | Versión | Descripción |
|---|---|---|
| Heltec ESP32 Dev-Boards | v2.1.5 | Controladores de bajo nivel del hardware Heltec |
| Adafruit GFX Library | v1.12.3 | Biblioteca gráfica para el display OLED |
| Adafruit BusIO | v1.17.4 | Abstracción de buses I2C/SPI (dependencia de Adafruit GFX) |
Descargá los archivos ZIP de las siguientes bibliotecas:
-
TdPII-LoRa (esta biblioteca):
- Ir a https://github.com/bautidaskus/TdPII-LoRa
- Click en
Code→Download ZIP
-
Heltec ESP32 Dev-Boards v2.1.5:
- Descargar desde el repositorio oficial de Heltec
-
Adafruit GFX Library v1.12.3:
- https://github.com/adafruit/Adafruit-GFX-Library
- Click en
Code→Download ZIP
-
Adafruit BusIO v1.17.4:
- https://github.com/adafruit/Adafruit_BusIO
- Click en
Code→Download ZIP
- Abrir Arduino IDE 1.8.19
- Ir a Programa → Incluir Librería → Añadir biblioteca .ZIP...
- Navegar hasta la carpeta donde descargaste los archivos ZIP
- Seleccionar cada archivo ZIP y hacer click en Abrir
- Repetir para las 4 bibliotecas
Nota: Instalar primero las dependencias (Adafruit BusIO, Adafruit GFX, Heltec ESP32) y por último TdPII-LoRa.
- Ir a Archivo → Preferencias
- En el campo "Gestor de URLs Adicionales de Tarjetas", agregar:
https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/releases/download/0.0.9/package_heltec_esp32_index.json - Click en OK
- Ir a Herramientas → Placa → Gestor de tarjetas...
- Buscar "Heltec" e instalar "Heltec ESP32 Series Dev-boards"
- Cerrar el Gestor de tarjetas
- Ir a Herramientas → Placa
- En la sección "Heltec ESP32 Arduino", seleccionar tu modelo:
WiFi LoRa 32(V2)para WiFi LoRa 32 V2WiFi LoRa 32(V3)para WiFi LoRa 32 V3Wireless Stickpara Wireless Stick- (seleccionar según tu hardware)
- Ir a Archivo → Ejemplos → TdPII-LoRa
- Seleccionar uno de los ejemplos disponibles:
basic_sender- Ejemplo básico de envíosender_experimentos- Ejemplo para experimentosweb_gateway- Gateway con interfaz web
- Conectar la placa Heltec al puerto USB
- Seleccionar el puerto en Herramientas → Puerto
- Click en Verificar (✓) para compilar o Subir (→) para cargar en la placa
Arduino IDE 1.8.x requiere que el archivo library.properties incluya el campo url. Este campo es obligatorio en versiones anteriores del IDE, aunque Arduino IDE 2.x lo permite como opcional.
La biblioteca TdPII-LoRa ya incluye este campo configurado:
url=https://github.com/bautidaskus/TdPII-LoRaSi descargaste una versión anterior sin este campo, actualizá el archivo library.properties agregando la línea anterior.
Esta biblioteca está diseñada exclusivamente para placas ESP32 con LoRa. No es compatible con Arduino Uno, Mega, Nano ni otras placas AVR.
Asegurate de seleccionar una placa Heltec ESP32 en Herramientas → Placa (ver Paso 4).
TdPII-LoRa/
├── library.properties # Metadatos de la biblioteca
├── README.md # Este archivo
├── PROTOCOL.md # Especificación del protocolo
├── src/
│ ├── TdPIILoRa.h # Header de la biblioteca
│ └── TdPIILoRa.cpp # Implementación
└── examples/
├── basic_sender/ # Ejemplo básico
├── sender_experimentos/ # Experimentos
└── web_gateway/ # Gateway web
La biblioteca implementa un protocolo punto a punto con confirmación sobre LoRa.
Cada trama lleva un header de 2 bytes ([tipo][secuencia]) seguido del payload:
0x01 para datos y 0x02 para el ACK, con hasta 253 bytes de payload de usuario.
send() bloquea hasta recibir el ACK o agotar 3 s de timeout.
La especificación completa —formato de trama, flujos de envío exitoso, timeout y
frame corrupto, manejo de secuencias, parámetros configurables, cálculo de
throughput y comparación con LoRaWAN— está en PROTOCOL.md.
Publicado bajo licencia MIT (ver LICENSE).
Desarrollado por TdPII Team para el Taller de Proyecto II.