🛠 LoRa point à point sans réseau (dumb modem)
Objectifs
Utiliser le module Murata en « modem bête » : sortie du firmware AT LoRaWAN et pilotage direct du SX1276 sur SPI1, sans passerelle ni serveur. Deux cartes s'échangent des messages en LoRa pur. Nécessite la bibliothèque arduino-LoRa ≥ 0.5.0, qui connaît le brochage MKR WAN 1300/1310 (CS = LORA_IRQ_DUMB sur SPI1).
Matériel
- 2 cartes MKR WAN 1310 avec antennes (433/868/915 MHz)
- Bibliothèques : arduino-LoRa ≥ 0.5.0 (et MKRWAN pour le mode bête)
- Câbles micro-USB pour les deux cartes
Code complet
// ===== 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) =====
// même setup ; dans loop :
// int taille = LoRa.parsePacket;
// if (taille) { while (LoRa.available)
// Serial.write(LoRa.read); Serial.println; }
Vérification attendue
L'émetteur incrémente un compteur toutes les 5 s ; le récepteur affiche « bonjour N » avec un décalage d'au plus un paquet. La portée dépasse largement le Wi-Fi : quelques km en ville, 16+ km en vue directe selon la documentation LoRa.
Erreurs fréquentes
- Fréquences différentes entre les deux cartes : aucun paquet reçu, même si les deux affichent « prêt ».
- Le module n'a pas de broche IRQ câblée : le récepteur doit interroger
LoRa.parsePacketen boucle, pas attendre d'interruption. - Rester en mode AT : si un sketch MKRWAN a tourné avant, re-téléverser le sketch LoRa qui relance le module en mode bête.
- Réglages LoRa (spreading factor, bande passante) différents entre émetteur et récepteur : l'arduino-LoRa utilise des valeurs par défaut identiques, ne pas les modifier d'un seul côté.
- En mode brut, aucune retransmission ni ACK : prévoir un accusé applicatif si la fiabilité compte.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
join-otaa.inoArduinouplink-confirme.inoArduinodownlink.inoArduinoactivation-abp.inoArduinosuivi-adr.inoArduinoclasse-c.inoArduino