🛠 Rejoindre The Things Network (OTAA)

Arduino MKR WAN 1310 · intermediaire · Schéma : IMG-mkr-wan-1310-intermediaire-3-mkrwan1310-otaa-the-things-network.svg — MKR WAN 1310 envoyant un uplink LoRaWAN vers une antenne de passerelle puis le cloud The Things Network, clés OTAA représentées par des cadenas.

Objetivos

Conectarse a una red LoRaWAN pública (The Things Network) mediante OTAA con la biblioteca MKRWAN: registrar el dispositivo con su deviceEUI, enviar uplinks y recibir downlinks, leer RSSI/SNR. Esta es la vocación principal de la placa — sin Wi-Fi, sin HTTP aquí, únicamente LoRaWAN clase A.

Material

Código completo

// OTAA The Things Network — MKR WAN 1310
#include <MKRWAN.h>

LoRaModem modem;
String appEui = "0000000000000000"; // EUI de l'application TTN
String appKey = "00000000000000000000000000000000"; // APP_KEY OTAA

void setup {
  Serial.begin(115200);
  while (!Serial);
  if (!modem.begin(EU868)) { Serial.println("Module KO"); while (1); }
  Serial.print("deviceEUI : "); Serial.println(modem.deviceEUI);
  if (!modem.joinOTAA(appEui, appKey)) {   // blocage jusqu'au join
    Serial.println("Join echoue : rapprochez-vous d'une fenetre");
    while (1) {}
  }
  Serial.println("Joint !");
  modem.minPollInterval(60);
}

void loop {
  while (!Serial.available);
  String msg = Serial.readStringUntil('\n');
  modem.beginPacket;
  modem.print(msg);
  int err = modem.endPacket(true);   // true = uplink confirmé (ACK)
  Serial.println(err > 0 ? "Envoye !" : "Echec (duty cycle ?)");
  if (modem.available) {           // downlink reçu en fenetre RX
    char recu[64]; int i = 0;
    while (modem.available && i < 63) recu[i++] = modem.read;
    recu[i] = '\0';
    Serial.printf("Downlink: %s\n", recu);
  }
  Serial.printf("RSSI=%d SNR=%d\n", modem.rssi, modem.snr);
  delay(120000); // le firmware impose 1 émission / 2 min max (EU)
}

Verificación esperada

Se muestra «¡Unido!» después de unos segundos a unos minutos; los uplinks aparecen en los datos en vivo de TTN con RSSI/SNR. Un downlink programado en TTN regresa en la ventana RX que sigue al uplink.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales