Arduino Cloud
From Aino Wiki
Introduzione
Al di là dello scopo ultimo dell'ambiente sul cloud, l'Arduino Web Editor è una alternativa allo stesso tool locale, un immediato vantaggio è quello della localizzazione in unico posto dove tenere i propri sketch, ha le stesse regole di funzionamento dell'Arduino IDE per l'installazone delle librerie, compilazione e deploy che in questo caso puà persino andare dal Cloud direttamente sul dispositivo che può non esser connesso via USB.
Esperimenti
Contatore su pulsante locale e e remoto
Il segeunte ha il scopo di dimostrare che è possibile fare interagire il cloud (eventualmente anche lo smartphone) con un proprio dispositivo Arduino IoT (nel mio caso un Arduino Uno R4). L'interazione avviene attraverso delle "Variabili cloud" che sono come delle variabili globali tra il dispositivo che agisce localmente ed il Cloud che poi interagisce attraverso una "Dashboard" (applicazione software custom remota realizzata semplicemente con applicativo Arduino "What you see is what you get") e che è visibile da una App Android di Arduino.
Dopo aver messo on-line il dispositivo Arduino Uno R4
Si allestisce il dispositivo:
Si creano delle variabili:
- messaggio di tipo String
- Click_Pulsante1 di tipo bool
Si crea la Dashboard:
Sketch
NOTA Purtroppo la libreria non è direttamente installabile pertanto se ne dovrà fare upload dello ZIP che si trova on-line su GitHub.
/* The following variables are automatically generated and updated when changes are made to the Thing String messaggio; bool click_Pulsante1; Variables which are marked as READ/WRITE in the Cloud Thing will also have functions which are called when their values are changed from the Dashboard. These functions are generated with the Thing and added at the end of this sketch. */ #include <LiquidCrystal_I2C.h> #include "thingProperties.h" //------- MIE AGGIUNTE: int NrClickPulsante1 = 0; LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 20 chars and 4 line display void setup() { Serial.begin(9600); delay(1500); // This delay gives the chance to wait for a Serial Monitor without blocking if none is found // Defined in thingProperties.h initProperties(); // Connect to Arduino IoT Cloud ArduinoCloud.begin(ArduinoIoTPreferredConnection); /* The following function allows you to obtain more information related to the state of network and IoT Cloud connection and errors the higher number the more granular information you’ll get. The default is 0 (only errors). Maximum is 4 */ setDebugMessageLevel(2); ArduinoCloud.printDebugInfo(); //------- MIE AGGIUNTE: NrClickPulsante1 = 0; //Si parte da zero pinMode(8, INPUT); // Pulsante di TEST lcd.init(); lcd.clear(); //lcd.begin(16, 2); lcd.backlight(); lcd.setCursor(0, 0); lcd.print(" <Arduino: Cloud> "); } void loop() { ArduinoCloud.update(); //------- MIE AGGIUNTE: if (digitalRead(8) == HIGH || click_Pulsante1) { NrClickPulsante1++; messaggio = " " + (String)NrClickPulsante1 + " click."; lcd.setCursor(0, 1); lcd.print(messaggio); lcd.setCursor(0, 2); if (click_Pulsante1) { lcd.print("pulsante virtuale"); } else { lcd.print("pulsante reale "); } Serial.println(messaggio); delay(700); //Si attende per evitare molteplici conteggi dovuti alla velocità di elaborazione click_Pulsante1 = false; } } //****************************************************************************** /* Since Messaggio is READ_WRITE variable, onMessaggioChange() is executed every time a new value is received from IoT Cloud. */ void onMessaggioChange() { // Add your code here to act upon Messaggio change } /* Since DispositivoParlante is READ_WRITE variable, onDispositivoParlanteChange() is executed every time a new value is received from IoT Cloud. */ void onDispositivoParlanteChange() { // Add your code here to act upon DispositivoParlante change } /* Since DataOrario is READ_WRITE variable, onDataOrarioChange() is executed every time a new value is received from IoT Cloud. */ void onDataOrarioChange() { // Add your code here to act upon DataOrario change } /* Since ClickPulsante1 is READ_WRITE variable, onClickPulsante1Change() is executed every time a new value is received from IoT Cloud. */ void onClickPulsante1Change() { // Add your code here to act upon ClickPulsante1 change }
Si govrna anche usando l'App Android da cellulare:
Mappa e Link
Arduino Tools di sviluppo | Arduino | Integrazioni tipiche
Parole chiave:
