Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools

Arduino Cloud

From Aino Wiki

Jump to: navigation, search

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

TestCloud step01.jpg

Si allestisce il dispositivo:

TestCloud 01.jpeg

Si creano delle variabili:

  • messaggio di tipo String
  • Click_Pulsante1 di tipo bool
TestCloud step02.jpg

Si crea la Dashboard:

TestCloud step03.jpg

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:

TestCloud step04 App Android dashboard.jpeg

Mappa e Link


Arduino Tools di sviluppo | Arduino | Integrazioni tipiche


C++ | Dizionario Elettronica


Parole chiave:

Author