🛠 Démarrer le module radio et rejoindre un réseau LoRaWAN
Objetivos
Este tutorial sustituye al clásico «escaneo Wi-Fi»: la placa no dispone de módulo Wi-Fi (sin ESP32/NINA). El equivalente de hardware confirmado es el módulo de radio LoRa Murata CMWX1ZZABZ, un segundo CPU (STM32L0) que controla el transceptor SX1272 y se comunica mediante comandos AT sobre SPI. Iniciamos el módulo, leemos su identificador y luego nos unimos a una red LoRaWAN mediante OTAA (The Things Network o servidor privado).
Material
- 1 Arduino MKR WAN 1300 + antena micro-UFL (banda EU868 o US915 según la versión)
- Cuenta en The Things Network (o ChirpStack)
- Biblioteca «MKRWAN» (v1.1.2)
Código completo
#include <MKRWAN.h>
LoRaModem modem; // module Murata câblé en SPI interne
String appEui = "0080000000000001";
String appKey = "00112233445566778899AABBCCDDEEFF";
void setup {
Serial.begin(115200);
while (!Serial) {}
if (!modem.begin(EU868)) { // bande de TA carte
Serial.println("Module KO - firmware probablement obsolete");
while (1) {}
}
Serial.print("fw="); Serial.println(modem.version);
Serial.print("DevEUI="); Serial.println(modem.deviceEUI);
if (!modem.joinOTAA(appEui, appKey)) {
Serial.println("Join echoue : cles, couverture, gateway ?");
while (1) {}
}
modem.minPollInterval(60); // le firmware impose >= 1 msg / 2 min
Serial.println("JOIN OK");
}
void loop { delay(1000); }
Verificación esperada
El monitor muestra la versión del firmware AT, el DevEUI (que se debe registrar en TTN) y luego «JOIN OK». El servidor muestra la unión OTAA correspondiente.
Errores frecuentes
- «Failed to start module»: el firmware del módulo es demasiado antiguo, consulta el tutorial de actualización del firmware.
- joinOTAA a veces anuncia un falso error (bug conocido, issue #139): verifica el estado en el lado del servidor antes de dudar del hardware.
- Banda incorrecta (US915 configurado en una placa EU868): no se escucha ninguna pasarela.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
emission-p2p.inoArduinoreception-p2p.inoArduinoreglage-sp.inoArduinometeo-lora.inoArduinotrame-crc.inoArduinorelais-radio.inoArduino