🛠 Commander une LED par downlink LoRaWAN

Arduino MKR WAN 1300 · intermediaire · Schéma : IMG-mkr-wan-1300-intermediaire-3-mkrwan-downlink-led.svg — LED pilotée par downlink LoRaWAN depuis le serveur réseau

Objectifs

Équivalent du « serveur web LED » : commander la LED à distance. Arduino documente pour cette carte un système de télécommande LED entre deux MKR WAN. Ici la carte reçoit une downlink LoRaWAN (« ON »/« OFF ») depuis le réseau et allume ou éteint la LED — le réseau joue le rôle du navigateur.

Matériel

Code complet

#include <MKRWAN.h>

LoRaModem modem;
const uint8_t LED = 6;   // > 

void setup {
  Serial.begin(115200);
  pinMode(LED, OUTPUT);
  if (!modem.begin(EU868)) while (1) {}
  if (!modem.joinOTAA("0080000000000001",
                      "00112233445566778899AABBCCDDEEFF")) while (1) {}
  modem.minPollInterval(60);
}

void loop {
  if (modem.available) {
    String cmd = "";
    while (modem.available) cmd += (char)modem.read;
    cmd.trim; cmd.toUpperCase;
    if (cmd == "ON")  { digitalWrite(LED, HIGH); Serial.println("LED ON"); }
    if (cmd == "OFF") { digitalWrite(LED, LOW);  Serial.println("LED OFF"); }
  }
  // Une uplink periodique reveille les fenetres de reception (classe A)
  static uint32_t t0 = 0;
  if (millis - t0 > 120000) {
    t0 = millis;
    modem.beginPacket; modem.print("hb"); modem.endPacket(false);
  }
  delay(100);
}

Vérification attendue

Depuis le serveur, envoyer la downlink « ON » : la LED s'allume au prochain échange (classe A : la downlink n'arrive que dans les fenêtrès suivant une uplink). « OFF » l'éteint.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels