🛠 LoRa point à point sans réseau (dumb modem)
Objetivos
Utilizar el módulo Murata en modo «módem tonto»: salida del firmware AT LoRaWAN y control directo del SX1276 sobre SPI1, sin pasarela ni servidor. Dos tarjetas intercambian mensajes en LoRa puro. Requiere la biblioteca arduino-LoRa ≥ 0.5.0, que conoce el cableado de la MKR WAN 1300/1310 (CS = LORA_IRQ_DUMB sobre SPI1).
Material
- 2 tarjetas MKR WAN 1310 con antenas (433/868/915 MHz)
- Bibliotecas: arduino-LoRa ≥ 0.5.0 (y MKRWAN para el modo tonto)
- Cables micro-USB para las dos tarjetas
Código completo
// ===== EMETTEUR =====
#include <SPI.h>
#include <LoRa.h>
int compteur = 0;
void setup {
Serial.begin(9600);
while (!Serial);
// arduino-LoRa >= 0.5.0 redémarre le module Murata en mode bête lui-même
if (!LoRa.begin(868E6)) { // 868E6 (UE), 915E6 (US), 433E6
Serial.println("Demarrage LoRa impossible");
while (1);
}
Serial.println("LoRa emetteur pret");
}
void loop {
LoRa.beginPacket;
LoRa.print("bonjour ");
LoRa.print(compteur++);
LoRa.endPacket; // pas d'ACK en mode brut
delay(5000);
}
// ===== RECEPTEUR (autre carte) =====
// meme setup ; dans loop :
// int taille = LoRa.parsePacket;
// if (taille) { while (LoRa.available)
// Serial.write(LoRa.read); Serial.println; }
Verificación esperada
El emisor incrementa un contador cada 5 s; el receptor muestra «hola N» con un desfase de como máximo un paquete. El alcance supera ampliamente el Wi-Fi: varios km en ciudad, 16+ km en línea de visión directa según la documentación de LoRa.
Errores frecuentes
- Frecuencias diferentes entre las dos tarjetas: no se recibe ningún paquete, aunque ambas muestren «listo».
- El módulo no tiene un pin IRQ cableado: el receptor debe consultar
LoRa.parsePacketen bucle, no esperar una interrupción. - Quedarse en modo AT: si se ejecutó antes un sketch de MKRWAN, volver a cargar el sketch de LoRa que reinicia el módulo en modo tonto.
- Ajustes de LoRa (factor de propagación, ancho de banda) diferentes entre emisor y receptor: arduino-LoRa utiliza valores predeterminados idénticos, no modificarlos solo en un lado.
- En modo bruto, no hay retransmisión ni ACK: prever un acuse de recibo a nivel de aplicación si la fiabilidad es importante.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
join-otaa.inoArduinouplink-confirme.inoArduinodownlink.inoArduinoactivation-abp.inoArduinosuivi-adr.inoArduinoclasse-c.inoArduino