Come utilizzare l’Arduino cloud
Nello scorso articolo abbiamo capito come attivare la Arduino sim e come configurare l’Arduino MKR GSM 1400. Inoltre abbiamo visto come sia possibile inviare dati alla scheda utilizzando il Network Monitor.
In questo articolo andremmo a creare un elemento Thing utilizzando l’Arduino Cloud e a scrivere il codice per la MKR GSM 1400 in modo da poter inviare dei dati sul cloud.
Seguiamo questo indirizzo https://create.arduino.cc/iot/. Nella home dell’Arduino Cloud (al momento ancora in versione beta) possiamo creare un nuovo Thing, ovvero un contenitore di oggetti grafici che hanno il compito di visualizzare dati provenienti dalla scheda oppure di inviarli.
Cliccando sul bottone Add New Thing verrà caricata una pagina in cui inserire il nome del Thing e la scheda da associare nostro progetto IoT.
Nel combobox Select Board selezioneremmo la scheda GSM 1400 che abbiamo configurato nel precedente articolo. Clicchiamo ora sul pulsante CREATE.
Ci ritroveremo nella pagina principale del Thing che abbiamo appena creato.
Attualmente sono disponibili 4 Tab. Nel tab Properties verranno elencate tutte le variabili del Thing. Queste variabili potranno essere richiamate nello sketch. Nal tab Dashboard verranno rappresentate le variabili sotto forma di oggetti grafici, pulsanti e indicatori. Nel tab Webhooks possiamo scambiare dati con altri servizi. Nel tab Board sarà possibile associare una scheda al Thing, questa associazione è molto importante perchè va a mettere in relazione la scheda selezionata con la chiave memorizzata nel crypto chip della GSM 1400. Se la chiave del crypto chip non coincide con la chiave della scheda che abbiamo caricato nel Device Manager, la comunicazione non potrà avvenire.
Creare delle proprietà
Torniamo nel tab Properties e clicchiamo sul bottone ADD PROPERTY. Verrà caricata una nuova pagina contenente un form come quello in figura:
Nel campo Name inseriamo un nome identificativo per la proprietà, questo nome sarà copiato anche sul campo Variable Name. Se lo riteniamo opportuno possiamo cambiare il Variable Name. Il nome inserito nel campo Variable Name, sarà utilizzato all‘interno del codice dello sketch.
Inseriamo per esempio il nome “temperatura”.
Nella combobox Type selezioniamo la voce Temperature sensor (Celsius). Vengono visualizzati due nuovi campi dove inserire il valore minimo e massimo che la variabile temperatura dovrà avere. Inseriamo come valore minimo 0°C e come valore massimo 100°C.
Compiliamo anche la sezione Permission, Update e History.
Nella sezione Permission possiamo scegliere Read Only se il dato viene inviato dal dispositivo al cloud Arduino, mentre sceglieremo Read & Write se abbiamo la necessita di aggiornare la variabile temperature dall’Arduino cloud.
La sezione Update ci permette di ricevere i dati a tempi prestabiliti (utilizzando la textbox per indicare un tempo) oppure riceverli quando il dato ha una variazione rispetto al dato precedentemente inviato.
La sezione history crea un grafico utilizzando uno storico dei dati inviati dalla scheda.
Ora non ci resta che cliccare sul bottone ADD PROPERTY per confermare la nostra proprietà.
Andiamo nel tab Dashboard è osserviamo la presenza di un elemento che visualizzerà il dato proveniente dalla scheda.
Per il momento non aggiungiamo nessun’altra proprietà e dedichiamoci alla scrittura del codice.
Installazione delle librerie
Apriamo l’Arduino IDE e creiamo un nuovo sketch. Importiamo tutte le librerie per lavorare con l’Arduino cloud. Da Gestore Librerie (combinazione di tasti Ctrl+Maiusc+i) cerchiamo la libreria ArduinoIotCloud:
procediamo con l’installazione cliccando sul pulsante Installa. Il gestore delle librerie indicherà che sono indispensabili delle librerie aggiuntive:
Installiamole tutte come richiesto.
Scrivere il codice per la scheda MKR GSM 1400
Il codice seguente mostra come collegarsi all’Arduino Cloud e come aggiornare la variabile temperatura definita precedentemente nel Thing:
//Includo le librerie seguenti #include <ArduinoIoTCloud.h> #include <Arduino_ConnectionHandler.h> //creo una costante dove contenere il think_id //questo dato possiamo ottenerlo andando nel pannello di controllo //dell'arduino cloud const char THING_ID[] = "a42be6ce-3158-4843-a29b-a36e1c90256f"; //in queste costanti inserisco i dati relativi alla sim arduino const char GPRS_APN[] = "prepay.pelion"; const char PINNUMBER[] = "0000"; const char GPRS_LOGIN[] = "arduino"; const char GPRS_PASSWORD[] = "arduino"; //questa è la variabile temperatura che abbiamo definito nelle proprietà del Thing CloudTemperature temperatura; //creo la connessione all'arduino cloud usando la rete gsm GSMConnectionHandler ArduinoIoTPreferredConnection(PINNUMBER, GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD); void setup() { // inizializzo la seriale Serial.begin(9600); //attendo che tutto sia pronto delay(1500); //inizializzo con l'id del clous ArduinoCloud.setThingId(THING_ID); //specifico la variabile che ho inserito nel thing e le sue caratteristiche ArduinoCloud.addProperty(temperatura, READ, ON_CHANGE, NULL); //inizializzo la connessione con la'rduino cloud //specificando il canale di comunicazione ArduinoCloud.begin(ArduinoIoTPreferredConnection); //attivo i messaggi di debug setDebugMessageLevel(2); ArduinoCloud.printDebugInfo(); } void loop() { //trigghero l'arduino cloud ArduinoCloud.update(); //genero dei valori casuali per la variabile temperatura temperatura = random(0, 100); //visualiazzo sul serial monitor il valore della variabile Serial.print("send data "); Serial.println(temperatura); attendo 10 s tra gli aggiornamenti delay(10000); }
I commenti che ho inserito nel codice descrivono il lavoro svolto dalle istruzioni.
Compiliamo e carichiamo il codice sulla Arduino GSM 1400. Terminato il caricamento apriamo il Serial monitor e osserviamo le fasi che portano a stabilire la connessione con l’Arduino Cloud.
Sul serial monitor osserviamo la stringa Device ID, questo valore deve essere identico a quello riportato nel tab Board. La stringa Thing ID invece deve essere identica a quella che viene indicata sulla pagina del Thing che abbiamo creato.
Apriamo una finestra del browser e colleghiamoci all’Arduino Cloud andando sulla dashboard del Thing. Osservando l’elemento grafico temperatura, dovremmo riscontrare gli stessi valori che la scheda sta trasmettendo.
In questo articolo abbiamo visto come configurare l’Arduino cloud e come trasmettere dei dati usando la MKR GSM 1400. Vedremo prossimamente anche come inviare dati dall’Arduino cloud alla scheda.
Related posts
Articoli popolari
Sorry. No data so far.
.Net micro framework Arduino Arduino Webserver Domotica Flyport I2C IOT Netduino OpenPicus raspberry RTC Speed Test