Esempi di base

Questa sezione presenta alcuni semplici esempi che mostrano come utilizzare μPanel con una scheda Arduino UNO.

2. Cronometro a una cifra

In questo esempio, un semplice cronometro è implementato usando un LCD a 7 segmenti. Arduino aumenterà una variabile a tasso 1 Hz e aggiornerà lo stato di visualizzazione di conseguenza.

Hardware

Hardware e le connessioni sono le stesse come nell’esempio precedente:

  • Arduino UNO
  • ESP-01 modulo WiFi (con μPanel Firmware)
  • adattatore ADP-01 Breadboard
  • fili Breadboard (3 linee)

Definizione μPanel

La definizione pannello è molto semplice e molto simile al primo presentato in Design Examples, solo un testo aggiuntivo è stato aggiunto per visualizzare l’esempio.

D!228;*10/T*15:&#956Panel-Arduino Example 2;{%100,3!88F,228}/20{-3r30p20!228,114*15{T:Run;|L1G:0;_T:Stop;|L2R:0;}|{^*8L35:0;_T:Counter;}}

Arduino Code

void setup() {

  // Initialize Serial Port
  Serial.begin(57600);

  // Let's uPanel start 
  delay(3000);

  // Discharge old partial messages
  Serial.println("");

  // Send Panel
  Serial.print("$P:D!228;*10/T*15:μ-Arduino Example 2;{%100,3!88F,228}/20");
  Serial.println("{-3r30p20!228,114*15{T:Run;|L1G:0;_T:Stop;|L2R:0;}|{^*8L35:0;_T:Counter;}}");  

  // Turn ON LED 1
  Serial.println("#L11");
}

long int n = 0;  // Define and initialise counter 

void loop() {

  // Wait 1 s
  delay(1000);

  // Set LED 3 State and increment counter
  Serial.print("#L3");
  Serial.println((n++ % 10),DEC);

}

3. Interruttore LED On/Off  

In questo esempio, un interruttore e un led saranno collocati sul pannello. Arduino sarà in attesa per l’utente di cambiare lo stato dell’interruttore e dovrà aggiornare lo stato del LED di conseguenza. Questo è il primo esempio in cui Arduino deve ricevere i messaggi inviati dal gruppo di esperti, in tal modo, dobbiamo collegare la linea Arduino Rx e includiamo nel codice Arduino le funzioni di leggere i messaggi in arrivo.

Hardware

Si prega di notare che per la programmazione Arduino Uno, la linea RxD (filo blu) deve essere scollegato dal modulo WiFi

Definizione μPanel

La definizione del pannello include un testo per il titolo del pannello, un LED verde standard e un interruttore On / Off di tipo 2.

 

D!228;T*15:&#956Panel-Arduino Example 3;{%100,3!88F,228}*20/L1G:0:LED;*10/W1:0;

 

Arduino Code

void setup() {

  // Initialize Serial Port
  Serial.begin(57600);

  // Let uPanel to start 
  delay(3000);

  // Discharge old partial messages and activate real-time response
  Serial.println("\n$PING 200");

  // Send Panel (A LED and a Switch)
  Serial.println("$P:D!228;T*15:μ-Arduino Example 3;{%100,3!88F,228}*20/L1G:0:LED;*10/W1:0;");

}

String Msg;

void loop() {

  int c;
  while ((c = Serial.read()) > '\n') Msg += (char) c;  // Read incoming chars, if any, until new line
  if (c == '\n')                                       // is the message complete?
  { 
    if (Msg.equals("#W10")) Serial.println("#L10");    // Turn OFF LED 1 if switch is OFF
    if (Msg.equals("#W11")) Serial.println("#L11");    // Turn ON LED 1 if switch is ON
    Msg = "";
  } 

}

4. Contatore Pressioni

In questo esempio un pulsante sarà posto sul pannello. Arduino conterà quante volte l’utente preme il tasto. Il valore del contatore viene visualizzato sul pannello sopra il pulsante.

Hardware

Hardware e le connessioni sono le stesse come nell’esempio precedente:

Definizione μPanel
La definizione del pannello include un testo per il titolo del pannello, un messaggio per visualizzare il valore del contatore e un pulsante.

D!228;T*15:&#956Panel-Arduino Example 4;{%100,3!88F,228}*20/T:Counter:;&M1:0;//B1p20r40:INCREMENT;

Arduino Code

void setup() {

  // Initialize Serial Port
  Serial.begin(57600);

  // Let uPanel to start 
  delay(3000);

  // Discharge old partial messages and activate real-time response
  Serial.println("\n$PING 200");

  // Send Panel (a Message and a Button)
  Serial.println("$P:D!228;T*15:μ-Arduino Example 4;{%100,3!88F,228}*20/T:Counter:;&M1:0;//B1p20r40:INCREMENT;");

}

String Msg;
int n = 0;                                             // Create the counter variable

void loop() {

  int c;
  while ((c = Serial.read()) > '\n') Msg += (char) c;  // Read incoming chars, if any, until new line
  if (c == '\n')                                       // is message complete?
  { 
    if (Msg.equals("#B1P"))                            // has Button 1 been pushed?
      {  
        Serial.print("#M1");                           // Update message 1 text:
        Serial.println(++n,DEC);                       // increment and send the counter value      
      }
    Msg = "";
  } 

}