🛠 Commander une LED par downlink LoRaWAN
Objetivos
Equivalente al «servidor web LED»: controlar el LED a distancia. Arduino documenta para esta placa un sistema de control remoto de LED entre dos MKR WAN. Aquí la placa recibe una downlink LoRaWAN («ON»/«OFF») desde la red y enciende o apaga el LED — la red actúa como el navegador.
Material
- 1 Arduino MKR WAN 1300 (con unión OTAA exitosa)
- 1 LED externo + resistencia de 220 Ω (pin 6) o el LED integrado
- Acceso al servidor de red para enviar una downlink
Código completo
#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);
}
Verificación esperada
Desde el servidor, enviar la downlink «ON»: el LED se enciende en el siguiente intercambio (clase A: la downlink solo llega en las ventanas siguientes a una uplink). «OFF» lo apaga.
Errores frecuentes
- Downlink enviada fuera de la ventana: en clase A hay que esperar la siguiente uplink; aumentar la frecuencia durante las pruebas.
- Comparación sensible a mayúsculas/minúsculas y espacios: usar trim + toUpperCase antes de comparar.
- Confundir el LED integrado (D6) con un LED externo en un pin.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
emission-p2p.inoArduinoreception-p2p.inoArduinoreglage-sp.inoArduinometeo-lora.inoArduinotrame-crc.inoArduinorelais-radio.inoArduino