Registra il tuo Arduino MKR WAN 1310 come device della tua applicazione

In questo tutorial vedrai come registrare una board Arduino MKR WAN 1310 come device associato ad una applicazione TTS.

L’architettura LoRaWan ha un meccanismo di sicurezza e crittografia molto robusto.

Ogni nodo remoto, detto device nella terminologia LoRaWan, solitamente è associato ad una sola applicazione.

L’architettura LoRaWan permette anche di registrare un device a più di una applicazione, utilizzando valori diversi per un parametro chiamato AppEUI o JoinEUI (nelle ultime versioni del protocollo), tuttavia questa non è una configurazione frequente.

Un device quando si accende effettua una operazione di autenticazione sulla rete LoRaWan chiamata operazione di Join. In questa fase vengono scambiate le chiavi di crittografia e viene definito un canale logico, crittografato e sicuro, di comunicazione. Normalmente un device resta attivo su una sola sessione di comunicazione verso una sola applicazione.

Se per qualsiasi motivo questa sessione virtuale viene chiusa, dalla rete o dal device, deve essere effettuata nuovamente l’operazione di Join.

Poiché l’operazione di Join genera traffico radio, è considerata una buona pratica quella di progettare sistemi che minimizzino le necessità di effettuare più operazioni di Join durante un periodo di attività continuativa del device.



Come hai visto nel video, per registrare sull’applicazione TTS il tuo Arduino MKR WAN 1310 hai bisogno dell’identificatore univoco, DeviceEUI, inserito dal costruttore nel modem LoRa.

Lo sketch per recuperare questo parametro è riportato di seguito.

/*
  Identificazione dell'ID LoRaWan per Arduino MKR WAN 1310 
*/
#include <MKRWAN.h>

LoRaModem modem; // Dichiarazione dell'oggetto per la gestione della trasmissione con protocollo LoRa

void setup() {

  Serial.begin(9600); // Inizializzo la comunicazione seriale con il PC-IDE Arduino
  while(!Serial);  // attendo finché la connessione seriale non è disponibile
  
  Serial.println("");
  Serial.println("===========================================================================");
  Serial.println("");
  Serial.println(".               Discover DeviceEUI  - v.1.0 by Chirale");
  Serial.println("");
  Serial.println("===========================================================================");
  Serial.println("");
  Serial.println("                          INIZIALIZZAZIONE");
  Serial.println("");
  if (!modem.begin(EU868)) {
    Serial.println("Inizializzazione del modem LoRa non riuscita!");
    Serial.println("Esecuzione del programma terminata.");
    while (1) {} // blocco l'esecuzione del programma con un loop infinito
  };
  Serial.println("Modem LoRa inizializzato.");
  Serial.print("Versione del modem LoRa: ");
  Serial.println(modem.version());
  Serial.print("DeviceEUI: ");  
  Serial.println(modem.deviceEUI()); 
  
}

///-----------------------------------------------------------

void loop() {
  // Tutto ciò che serve è nella funzione setup
}