🛠 Commander une LED par downlink LoRaWAN
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
- 1 Arduino MKR WAN 1300 (jointe OTAA réussie)
- 1 LED externe + résistance 220 Ω (broche 6) ou la LED embarquée
- Accès au serveur réseau pour envoyer une downlink
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
- Downlink envoyée hors fenêtre : en classe A il faut attendre la next uplink ; augmenter la cadence pendant les tests.
- Comparaison sensible à la casse/aux espaces : trim + toUpperCase avant de comparer.
- Confondre LED embarquée (D6) et LED externe sur broche.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
emission-p2p.inoArduinoreception-p2p.inoArduinoreglage-sp.inoArduinometeo-lora.inoArduinotrame-crc.inoArduinorelais-radio.inoArduino