Rivista #239: sperimentiamo con Sigfox

Tra i contenuti del fascicolo 239 (ottobre 2019)  attualmente in edicola, iniziamo a testare le opportunità offerte dalla rete Sigfox per implementare applicazioni IoT.

SigFox è una rete di telecomunicazioni dedicata ai dispositivi IoT e prende il nome dall’azienda che l’ha sviluppata; nata in Francia, si è sviluppata anche in altre nazioni grazie ad accordi con fornitori di connettività (in Italia è Nettrotter, www.nettrotter.io) che permettono l’accesso alla rete globale SigFox attraverso stazioni ricetrasmittenti (Base Station) conformi allo standard SigFox. È possibile verificare la copertura SigFox alla pagina web www.sigfox.com/en/coverage. In queste pagine scoprirete come sfruttare la rete SigFox per imple­mentare applicazioni IoT, ma prima è utile un richiamo sulla teoria di funzionamento della rete.

SigFox permette una comunicazione bidi­rezionale e la comunicazione deve sempre essere avviata dal dispositivo. È stata concepita per l’invio di messaggi di ridotte dimensioni e non è quindi adatta per usi a banda larga (multimediali, trasmissione permanente, ecc.).

L’attenzione posta all’efficienza energetica con­sente di realizzare dispositivi collegati alla rete in grado di funzionare per anni con una batteria standard.

La rete SigFox opera su frequenze sub-GHz, sulle bande ISM: 868MHz in Europa/ETSI e 902MHz in USA/FCC. SigFoX utilizza una modulazione Ultra-Narrow Band (UNB) e consente una copertura maggiore rispetto alla rete GSM.

Non vi è alcuna negoziazione dei parametri della connessione tra il dispositivo e una base station ri­cevente: il dispositivo, semplicemente emette nella banda di frequenza disponibile. Il segnale viene rilevato dalle base station più vicine, decodificato e trasmesso al back-end della rete.

La de-duplicazione dei messaggi ed altre operazio­ni relative alla trasmissione sono gestiti dalla rete stessa. I messaggi vengono poi (eventualmente) inoltrati all’applicazione dell’utente e resi accessi­bili tramite le API di SigFox. Ogni messaggio viene autenticato utilizzando un meccanismo hash, e una chiave privata specifica del dispositivo; tale caratteristica offre elevata protezione dagli attac­chi “replay”. Il protocollo radio SIGFOX offre anche un’elevata resistenza alle interferenze (Jammer).

SigFox è una soluzione per lunghe distanze (30÷50 km in ambienti favorevoli, fino a 15 km in aree semi-rurali o urbane non densamente popolate) e basse velocità di trasmissione dati (10÷100 bps e fino a 12 byte per messaggio, max 140 al giorno). 

SCHEDA MKRFOX1200

SigFox ha delegato la produzione dei dispositivi da interconnettere alla propria infrastruttura di rete a una serie di produttori di chip; uno di questi è Atmel (ora Microchip), che con il dispositivo ATA8520 sta primeg­giando. Arduino da parte sua ha colto la palla al balzo ed ha realizzato un dispositivo della famiglia MKR il modulo MKRFOX1200 che tra l’altro, prevede una sottoscrizione gratuita alla rete SigFox per un periodo di due anni.

La board è basata sul microcontrollore SAMD21 e sul modulo di connettività SigFox ATA8520; il modulo SigFox comunica con il microcontrollore tramite l’interfaccia SPI.

La scheda può funzionare per oltre sei mesi con 2 batterie AA da 1,5 V; è anche possibile alimentare la scheda tramite un alimentatore a 5 V. Il passag­gio da una fonte di alimentazione all’altra viene eseguito automaticamente.

Una buona potenza di calcolo a 32 bit simile alla scheda Zero, il solito ricco set di interfacce I/O, comunicazione SigFox a bassa potenza e la facilità d’uso del software Arduino (IDE) per lo sviluppo e la programmazione del codice, sono elementi che rendono questa scheda la scelta d’elezione per i progetti alimentati a batteria in cu è richiesto un fattore di forma compatto.

LA MKRFOX1200 E L’IDE ARDUINO

Il modulo MKRFOX1200 può essere programma­to tramite L’IDE Arduino, a patto che sia almeno la versione 1.8.9. Per utilizzare il modulo MKR­FOX1200 sarà necessario installare la board nell’I­DE, quindi bisogna andare al menu Tool/Board/Bo­ard Manager e, nella schermata di Fig. 3, digitare “samd” nel box di ricerca: dopo un po’ dovrebbe apparire la Voce “Arduino SAMD Boards (32 bits ARM Cortex M0 +). Selezioniamo nella combo box a sinistra l’ultima versione ed installiamola.

Ora che SAMD Core è installato, è possibile col­legare la scheda al computer utilizzando un cavo USB standard. La prima volta potrebbe essere necessario installare i driver USB.

In virtù della aggiunta precedente vedremo com­parire una lista di nuove Board (Fig. 4) relative al processore SAMD Cortex M0. Affinché la nostra scheda SigFox venga riconosciuta e possa lavorare in modo corretto, è necessario selezionare come tipo di scheda la “Arduino MKR FOX 1200” (Fig. 5).

 

PRIMO SETUP DELLA SCHEDA

Per poter utilizzare la scheda MKRFOX1200 con la rete SigFox è necessario effettuare una prima registrazione sul Backend SigFox.

Per fare questo, bisogna caricare un primo sketch che serve a ricavare due parametri essenziali per la registrazione e poi una volta effettuata la registra­zione a verificare la corretta comunicazione tra la scheda Arduino e il Backend SigFox.

Abbiamo quindi necessità di utilizzare due librerie: SigFox.h e ArduinoLowPower.h

Includiamo sempre le librerie nel progetto perché le stesse sono oggetto di continua evoluzione e non è detto che versioni diverse funzionino senza modifiche sul codice degli esempi che includiamo nel nostro articolo. E un malfunzionamento del primo schetch è molto frustrante per un lettore. L’inclusione delle librerie ci permette di distribuire del codice che dovrebbe funzionare senza alcuna modifica. Naturalmente se avete già alcune librerie presenti nella vostra installazione di Arduino, non la sovrascrivete con quella che abbiamo allegato all’articolo, ma provate in prima istanza ad usare quella già presenti. Quando avrete testato il fun­zionamento del codice da noi rilasciato sarete liberi di aggiornare le eventuali librerie.

Nel Listato 1 abbiamo riportato solo la parte essenziale; in pratica, dopo l’inizializzazione del dispositivo tramite la libreria Sigfox, vengono letti alcuni parametri: quelli che ci interessano ora sono ID e PAC (questi due parametri sono personali e non vanno divulgati). Ottenuti i due parametri dalla finestra di log di Arduino (Fig. 6) dobbiamo recarci su questo url: https://backend.sigfox.com/activate nella quale ci verrà richiesto di selezionare il nostro Paese.

Selezionando quindi Italia, ci verrà indicato che il nostro fornitore di connettività sarà Nettrotter e atterreremo sulla pagina di Fig. 7 in cui siamo in­vitati a selezionare il tipo di scheda. Qui clicchiamo sul logo di Arduino. Ci verrà nuovamente richiesto di specificare la nazione, selezioniamo Italia e clicchiamo nuovamente su il logo di Nettrotter. Dopo la selezione si presenta la maschera di Fig. 8 in cui dovremo inserire ID e PAC ricavati prece­dentemente. Successivamente ci verrà richiesto di registrare un account per accedere al Backend SigFox (Fig. 9): inseriamo quindi i dati richiesti e completiamo la registrazione cliccando sul link presente nella email che ci verrà inviata.

Al termine avremo a disposizione un account Sigfox che ci permetterà di accedere alla relativa Dashboard del Backend. È anche possibile regi­strare il dispositivo dal link https://buy.sigfox.com/ activate/devkit/FR.

L’articolo completo è pubblicato sul numero 239 (Ottobre 2019), acquistabile in tutte le edicole. 

 

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

0