🛠 Démarrer le module radio et rejoindre un réseau LoRaWAN
Objectifs
Ce tutoriel remplace le classique « scan Wi-Fi » : la carte n'a pas de module Wi-Fi (pas d'ESP32/NINA). L'équivalent matériel confirmé est le module radio LoRa Murata CMWX1ZZABZ, un second CPU (STM32L0) qui pilote le transceiver SX1272 et parle en commandes AT sur SPI. On démarre le module, on lit son identifiant, puis on rejoint un réseau LoRaWAN en OTAA (The Things Network ou serveur privé).
Matériel
- 1 Arduino MKR WAN 1300 + antenne micro-UFL (bande EU868 ou US915 selon la version)
- Compte The Things Network (ou ChirpStack)
- Bibliothèque « MKRWAN » (v1.1.2)
Code complet
#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 échoue : cles, couverture, gateway ?");
while (1) {}
}
modem.minPollInterval(60); // le firmware impose >= 1 msg / 2 min
Serial.println("JOIN OK");
}
void loop { delay(1000); }
Vérification attendue
Le moniteur affiche la version du firmware AT, le DevEUI (à enregistrer sur TTN), puis « JOIN OK ». Le serveur montre la jointure OTAA correspondante.
Erreurs fréquentes
- « Failed to start module » : firmware du module trop vieux, voir le tuto mise à jour firmware.
- joinOTAA annonce parfois une fausse erreur (bug connu, issue #139) : vérifier l'état côté serveur avant de douter du matériel.
- Mauvaise bande (US915 configuré sur carte EU868) : aucune passerelle entendue.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
emission-p2p.inoArduinoreception-p2p.inoArduinoreglage-sp.inoArduinometeo-lora.inoArduinotrame-crc.inoArduinorelais-radio.inoArduino