Arduino cloud

Nel corso della passata edizione dell’ArduinoD17 abbiamo parlato dell’arduino cloud oltre all’IDE Web

arduino create cloud

Si tratta di una funzionalità di trasmissione dei dati dai tuoi progetti arduino al cloud orientato all’IoT.

Ecco una prima panoramica quando accedi alla tua pagina create con login e password, se non ne possiedi una ti consiglio di registrarti perché accederai a tanti servizi e funzionalità nuove.

Noterai che lo stile Arduino votato alla semplicità è pienamente rispettato anche in questa occasione e creare app cloud è estremamente semplice e guidato passo passo.

Arduino Cloud

la prima schermata presenta nel box in basso a destra l’accesso al cloud:

arduino create cloud

clicca e sarai rediretto alla prima pagina del wizard introduttivo all’arduino cloud:

arduino cloud first page

in cui, oltre al benvenuto, leggi a cosa serve il cloud ed in generale puoi approfondire i concetti di IoT.

Clicca su Next:

arduino cloud second page

in cui puoi scegliere la scheda che desideri utilizzare per il tuo progetto con l’arduino cloud, io ho selezionato la MKR1000:

arduino cloud third page

ti troverai nella pagina che ti spiega come procedere per caricare la libreria cloud che ti permette di interfacciarti facilmente al servizio.

Se preferisci puoi installarla scaricandola dal gitHub ufficiale il cui link è nell’ultima frase della pagina.

Su gitHub trovi:

arduino cloud gitHub

e la procedura di installazione, dopo il download, puoi leggerla in altri articoli dedicati alle librerie.

la successiva pagina ti chiede di definire il nome della tua app cloud:

arduino cloud fourth page

e successivamente ti indica che cliccando su “NEXT” creerai la tua prima app thing:

arduino cloud fifth page

procedi ed otterrai le credenziali che puoi utilizzare nello sketch del progetto:

arduino cloud credential app

cliccando su “NEXT” dovrai definire le “property” della tua prima app cloud:arduino cloud add new property

clicca su “ADD A NEW PROPERTY” e definisci le caratteristiche ed i parametri della nuova property:

arduino cloud property data

nell’esempio non ho cambiato il nome di default ma solo il tipo e la policy.

L’operazione di definizione delle proprietà o widget dell’arduino cloud permette al sistema di generare il codice:

arduino cloud code download

che puoi scaricare cliccando su “DOWNLOAD” e nella schermata successiva ti indica di eseguire l’upload sulla mkr1000:

arduino cloud upload the sketch

nota che quella riportata nella schermata è una immagine per cui le credenziali sono state oscurate, solo nel codice avrai le credenziali in chiaro.

Alla fine del widzard arriverai nella tua dashboard dell’arduino cloud con già la prima property definita:

arduino cloud dashboard

e potrai richiedere nuovamente il codice da uplodare nel tuo progetto se non lo hai salvato.

Lo sketch arduino cloud

Ecco lo sketch che mi ha rilasciato il widzard dell’Arduino Cloud:

#include <WiFi101.h>
#include <ArduinoCloud.h>

/////// Wifi Settings ///////
char ssid[] = "";
char pass[] = "";


// Arduino Cloud settings and credentials
const char userName[]   = "mauroalfieri";
const char thingName[] = "MKR1000Cloud";
const char thingId[]   = "xxxxxxxx-yyyy-zzzz-wwwwwwwwwwwwwwwww";
const char thingPsw[]  = "xxxxxxxx-yyyy-zzzz-wwwwwwwwwwwwwwwww";

WiFiSSLClient sslClient;


// build a new object "MKR1000Cloud"
ArduinoCloudThing MKR1000Cloud;


void setup() {
  Serial.begin (9600);

  // attempt to connect to WiFi network:
  Serial.print("Attempting to connect to WPA SSID: ");
  Serial.println(ssid);

  while (WiFi.begin(ssid, pass) != WL_CONNECTED) {
    // unsuccessful, retry in 4 seconds
    Serial.print("failed ... ");
    delay(4000);
    Serial.print("retrying ... ");
  }


  MKR1000Cloud.begin(thingName, userName, thingId, thingPsw, sslClient);
  MKR1000Cloud.enableDebug();
  // define the properties
  MKR1000Cloud.addProperty("cloudLedStatus", TEMPERATURE_C, R);
  
}

void loop() {
  MKR1000Cloud.poll();

  MKR1000Cloud.writeProperty("cloudLedStatus", "oh...");
  
  delay(1000);
  MKR1000Cloud.writeProperty("cloudLedStatus", "yeah!");
  
  delay(1000);
}

leggendolo linea per linea ti accorgi che il codice è semplice:

linee 01-02: includi la libreria WiFi e la nuova libreria Cloud;

linee 05-60: definisci i due parametri di connessione SSID e Password alla tua rete;

linee 10-13: imposti i parametri per accedere all’app cloud ed alla property definita;

linea 15: crea l’istanza WiFi SSL che utilizzerà per la connessione;

linea 19: crea ua istanza della classe ArduinoCloudThing che chiami, in questo caso, come l’app MKR1000Cloud;

linee 23-34: esegui la connessione al WiFi come descritto in altri progetti dedicati alla MKR1000 o alla WiFI;

linea 37: inizializza l’istanza MKR1000Cloud con il metodo begin passandole i parametri per l’autenticazione e, come ultimo parametro, l’istanza client per la connessione ssl wifi;

linea 38: abilita la modalità di debug;

linea 40: definisci la prima property come già fatto sul cloud. Cercando nella documentazione della libreria ArduinoCloudThing puoi trovare i parametri da passare al metodo addProperty:

arduino cloud property method

in cui puoi leggere:

  • name: nome della property;
  • datatype: il tipo definito sul cloud;
  • permission: la modalità in cui puoi accedere alla property;

il dubbio che potrebbe venirti è quali siano le permission che puoi impostare, cercando nella documentazione ho trovato:

arduino cloud property variables

in cui puoi leggere il significato della “R” nella posizione permission ed anche altre variabili che puoi impostare;

linea 45: usa il metodo “poll()” su cui non ho trovato documentazione, ma mi informerò meglio sulla sua funzione nei prossimi tutorial;

linea 47: usa il metodo writeProperty() per scrivere sulla property “cloudLedStatus”, quella che hai creato, il valore “oh…”

linee 49-52: attendi un secondo, scrivi un nuovo valore sulla tua property e attendi nuovamnete un secondo;

Nei prossimi tutorial sostituirai i valori fittizi con delle sonde di temperatura e umidità per tracciare i dati sull’arduino cloud.

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/arduino-cloud.html

4 commenti

Vai al modulo dei commenti

    • Marco il 10 Giugno 2018 alle 12:14
    • Rispondi

    Buongiorno, Volevo sapere se era possibile implementare la libreria Arduino Cloud anche su un Arduino uno.
    Ho una ethernet shild e mi piaceva connettere dei sensori al cloud.

    1. Ciao Marco,
      che io sappia di default non è supportata, ossia non ti forniscono del codice da utilizzare con la ethernet shield ma solo con la WiFi 101, MKR1000 e Yun shield o Yun board.
      Tuttavia puoi modificare l’esempio della WiFi 101 per adattarlo alla ethernet e far inviare i dati come se fossi connesso in WiFi.

        • Marco il 28 Giugno 2018 alle 16:40
        • Rispondi

        Ciao Mauro,
        scusami se non mi sono più fatto vivo, ho provato a connettere Arduino ad Arduino Cloud tramite scheda Ethernet HR911105A.
        Ho notato che il Cloud richiede una connessione SSl, però la libreria Ethernet.h non la supporta.
        Comunque ho provato a riprendere lo sketch di esempio e a sostituire la libreria Wifi101.h con Ethernet.h. In fase di dubug non ha dato errori, però non ha funzionato.

        Allego lo sketch che ho realizzato:

        [[ codice rimosso in automatico ]]

        1. Ciao Marco,
          in primo luogo non è necessario scusarsi di essere stati impegnati a sperimentare ma ti chiedo la cortesia di rispettare le regole del blog che trovi nella sezione apposita. Il codice, ad esempio, non può essere postato nei commenti.
          Inoltre non eseguo revisione di codice scritto da altri sia per questioni di tempo sia di competenza.
          In merito alle connessioni SSL, che io sappia, la prima scheda che le supporta è la MKR1000

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

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