Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Stabilità connessione app - modulo
#10
Chicca di come reinviare il pannello in caso di reset del modulo:
Prendendo l'esempio originale per comandare un relè tramite arduino uno:
Code:
void setup() {

 // Initialize Serial Port
 Serial.begin(57600);
 
 // Let uPanel start
 delay(3000);

 // Discharge old partial messages
 Serial.println("");
 
 // Send The Panel (A LED and a Switch)
 Serial.println("$P:D!282;T*15:Arduino Relay;=*20/L1G:0:Relay;/+*10W1:0;");

 // Initialize digital output pin
 digitalWrite(8, 1);
 pinMode(8,OUTPUT);
 
}

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")) {digitalWrite(8,1); Serial.println("#L10");}    // Turn OFF LED 1 and Relay if switch is OFF
   if (Msg.equals("#W11")) {digitalWrite(8,0); Serial.println("#L11");}    // Turn ON LED 1 and Relay if switch is ON
   Msg = "";
 }
   
}
Basta aggiungere questa stringa: 
Code:
if (Msg.equals("$RES")){delay(100);Serial.println("$P:D!282;T*15:Arduino Relay;=*20/L1G:0:Relay;/+*10W1:0;");}

in questa maniera verrà reinviato il pannello nel caso il messaggio sulla seriale risulta essere $RES.

Lo sketch finale si dovrà presentare cosi':

Code:
void setup() {

 // Initialize Serial Port
 Serial.begin(57600);
 
 // Let uPanel start
 delay(3000);

 // Discharge old partial messages
 Serial.println("");
 
 // Send The Panel (A LED and a Switch)
 Serial.println("$P:D!282;T*15:Arduino Relay;=*20/L1G:0:Relay;/+*10W1:0;");

 // Initialize digital output pin
 digitalWrite(8, 1);
 pinMode(8,OUTPUT);
 
}

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")) {digitalWrite(8,1); Serial.println("#L10");}    // Turn OFF LED 1 and Relay if switch is OFF
   if (Msg.equals("#W11")) {digitalWrite(8,0); Serial.println("#L11");}    // Turn ON LED 1 and Relay if switch is ON
   if (Msg.equals("$RES")) {delay(100);Serial.println("$P:D!282;T*15:Arduino Relay;=*20/L1G:0:Relay;/+*10W1:0;");} // invia nuovamente il pannello in caso di reset .
   
   Msg = "";
 }
   
}
Spero possa tornarvi utile.
Ciao
Enzo
Reply


Messages In This Thread
Stabilità connessione app - modulo - by Dok - 06-17-2016, 06:46 AM
RE: Stabilità connessione app - modulo - by Dok - 06-21-2016, 11:49 AM
RE: Stabilità connessione app - modulo - by Dok - 07-06-2016, 09:28 AM
RE: Stabilità connessione app - modulo - by Enzo147 - 01-11-2017, 09:41 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)