Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
SCF-TOP03
#1
Salve a tutti apro questo thread per tutti quelli che come me, hanno acquistato questo modulo ed hanno voglia di condividere la propria esperienza. Io sono alle prime armi con la programmazione ma spero che con l'aiuto degli amici del forum riuscuire nel mio intento e creare di conseguenza una guida per chi viene dopo.
Reply
#2
Help......c'è qualcuno di buon cuore che mimi aiuta a scrivere il mio primo  sketch??? Sono riuscito a caricare l'esempio del blinking e funziona,ma come provo a modificarlo per comandare un relè aggiungendo in pin mode 8,1 e in digitalwrite pin 8
output lasciando la stringa #define per i pin 12 e13 e seguendo gli esempi sul sito mi dice panel not define.......un grazie in anticipo....
Reply
#3
Pubblica lo scketch così ti aiutiamo a capire dove sbagli Smile
Reply
#4
sono rouscito a creare un pannello con questo sketch, adesso sul pin 8 indipendentemente dallo switch (on o off)
misuro sempre 3.3 volt...dove sbaglio????
#define ESP_PROGRAM_PIN  12
#define ESP_ENABLE_PIN  13


void setup() {

  Serial1.begin(57600);        // Initialise serial 1 (WiFi Module)
      
  pinMode(ESP_ENABLE_PIN, OUTPUT);
  pinMode(ESP_PROGRAM_PIN, OUTPUT);
  pinMode(8,OUTPUT);
  // Set ESP module in RUN mode on reset
  digitalWrite(ESP_PROGRAM_PIN,HIGH);  
  digitalWrite(ESP_ENABLE_PIN,HIGH);
  digitalWrite(8, 1);
  delay(5000);                 // Let's the module start
 
  // Discharge old partial messages
  Serial1.println("");
 
  // Enable real-time response
  Serial1.println("$PING 200");

  // Discharge old partial messages
 Serial1.println("");
 
  // Send The Panel (A LED and a Switch)

 Serial1.println ("$P:D!282;T*15:Arduino Relay;=*20/L1G:0:Relay;/+*10W1: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")) {digitalWrite(8,0); Serial.println("#L10");}    // Turn OFF LED 1 and Relay if switch is OFF
    if (Msg.equals("#W11")) {digitalWrite(8,1); Serial.println("#L11");}    // Turn ON LED 1 and Relay if switch is ON
    Msg = "";
  }
    
}
Reply
#5
Non conosco Arduino comunque a prima vista si nota che nella prima parte usi serial1 e nella seconda parte usi serial quindi se serial1 e' giusto non leggi il messaggio inviato da uPanel e i due if seguenti non vengono eseguiti, mentre se e' giusto serial allora non definisci nessun pannello.
Reply
#6
grazie, ci ero arrivato ma non ho avuto tempo per fare la prova in effetti non riuscivo a vedere il pannello perché seguendo gli esempi per arduino si usa serial invece rileggendo le pagine legate a questo modulo si deve usare serial1.....li ho corretti e mi è apparso il pannello ma ho mancato l'ultimo....
Reply
#7
salve a tutti sono riuscito a creare uno sketch  funzionante.....
#define ESP_PROGRAM_PIN  12
#define ESP_ENABLE_PIN  13


void setup() {

  Serial1.begin(57600);        // Initialise serial 1 (WiFi Module)
      
  pinMode(ESP_ENABLE_PIN, OUTPUT);
  pinMode(ESP_PROGRAM_PIN, OUTPUT);
  pinMode(8,OUTPUT);
  // Set ESP module in RUN mode on reset
  digitalWrite(ESP_PROGRAM_PIN,HIGH);  
  digitalWrite(ESP_ENABLE_PIN,HIGH);
  digitalWrite(8,0);
  delay(5000);                 // Let's the module start
 
  // Discharge old partial messages
  Serial1.println("");
 
  // Enable real-time response
  Serial1.println("$PING 200");

  // Discharge old partial messages
 Serial1.println("");
 
  // Send The Panel (A LED and a Switch)

 Serial1.println ("$PBig Grin1g0.16;*10/T20Big GrinANILO HOME;//B1%30,15r30g3#FFFfb: SALA;");
}
String Msg;
void loop(){
 int c;
  while ((c = Serial1.read()) > '\n') Msg += (char) c;  // Read incoming chars, if any, until new line
  if (c == '\n')                                       // is message complete?
  {
    if (Msg.equals("#B1P")){digitalWrite(8,1);delay(9000);digitalWrite(8,0); }
        
    Msg = "";
  }
    

adesso vorrei andare avanti con il mio progetto: collegare al controllore un modulo 16 relè (ovviamente accoppiato con transistor N3904) e creare un pulsante digitale per i relè istallati in casa ma arrivato qui mi blocco...è giusto questo sketch?': no riesco a capire perche non funziona...



#define ESP_PROGRAM_PIN  12
#define ESP_ENABLE_PIN  13


void setup() {

  Serial1.begin(57600);        // attivo modulo wifi
      
  pinMode(ESP_ENABLE_PIN, OUTPUT); //attivo i pin per alimentare modulo
  pinMode(ESP_PROGRAM_PIN, OUTPUT);

  pinMode(0,OUTPUT);
  pinMode(1,OUTPUT);
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
 

// Set ESP module in RUN mode on reset
  digitalWrite(ESP_PROGRAM_PIN,HIGH);  
  digitalWrite(ESP_ENABLE_PIN,HIGH);
  digitalWrite(0,0);
  digitalWrite(1,0);
  digitalWrite(2,0);
  digitalWrite(3,0);
  digitalWrite(4,0);
  digitalWrite(5,0);
  digitalWrite(6,0);
  digitalWrite(7,0);
  digitalWrite(8,0);
  digitalWrite(9,0);
  digitalWrite(10,0);
 
 delay(5000);
  // aspetto per avviare il modulo
 
  Serial1.println(""); //
 
 
  Serial1.println("$PING 200");

 
 Serial1.println("");
 
  // setto il mio pannello

 Serial1.println ("$PBig Grin1g0.17;Tzd,0*30#000Big GrinANILO HOME;==//BA%30,15r30g21#FFFfb:SALA;BB%30,15r30g21#FFFfb:CUCINA;BC%30,15r30g21#FFFfb:AUDIO;=BD%30,15r30g21#FFFfb: CAM.ETTA;BE%30,15r30g21#FFFfb: CAMERA;BF%30,15r30g21#FFFfb: COR.DOIO;=BG%30,15r30g21#FFFfb: T1SALA;BH%30,15r30g21#FFFfb:T2SALA ;BI%30,15r30g21#FFFfb: T3SALA;=BL%30,15r30g21#FFFfb:TCA.TTA;BM%30,15r30g21#FFFfb: TCAMERA;");
}
String Msg;
void loop(){
 int c;
  while ((c = Serial1.read()) > '\n') Msg += (char) c;  // Read incoming chars, if any, until new line
  if (c == '\n')                                       // is message complete?
  {
  if (Msg.equals("#BAP")){digitalWrite(0,1); delay(3000); digitalWrite(0,0);}
   if (Msg.equals("#BBP")){digitalWrite(1,1); delay(3000); digitalWrite(1,0);}
    if (Msg.equals("#BCP")){digitalWrite(2,1); delay(3000); digitalWrite(2,0); }
     if (Msg.equals("#BDP")){digitalWrite(3,1); delay(3000); digitalWrite(3,0); }
      if (Msg.equals("#BEP")){digitalWrite(4,1); delay(3000); digitalWrite(4,0); }
       if (Msg.equals("#BFP")){digitalWrite(5,1); delay(3000); digitalWrite(5,0); }
        if (Msg.equals("#BGP")){digitalWrite(6,1); delay(3000); digitalWrite(6,0); }
         if (Msg.equals("#BHP")){digitalWrite(7,1); delay(3000); digitalWrite(7,0); }
          if (Msg.equals("#BIP")){digitalWrite(8,1); delay(3000); digitalWrite(8,0); }
           if (Msg.equals("#BLP")){digitalWrite(9,1); delay(3000); digitalWrite(9,0); }
            if (Msg.equals("#BMP")){digitalWrite(10,1); delay(3000); digitalWrite(10,0); }
   }

             
      
                     
   Msg = "";

}
Reply
#8
C'è unerrore grossolano hai inserito Msg ="" fuori dal if (c == '\n') in questo modo ad ogni carattere che ricevi il Msg diventa "" e non avrai mai il messaggio completo

Un consiglio per la definizione del pannello, vedo che utilizzi lo stesso stile per ogni oggetto che inserisci quindi puoi usare una classe definendola così S1% 30,15r30g21#FFFfb; poi inserisci i vari oggetti così BAs1:testo;
Reply
#9
Grazie mille delle dritte non conosco Arduino e nonostante notti insonni ancora faccio un fatica a comporre uno sketch
Reply
#10
....cominciano a comparire le prime tessere del mosaico.....finalmente primo sketch per questo modulo da autodidatta per temperatura e umidità con sonda dht11:


// sketch temperatura/ umidità  SCF-TOP03

#include "DHT.h" //inclido libreria sensore
#define DHTPIN 15 // 15 è il pin del sensore di temperatura
#define DHTTYPE DHT11 // dht11 è il tipo di sensore che uso
#define ESP_PROGRAM_PIN  12 //definisco i pin per alimentare il modulo wifi
#define ESP_ENABLE_PIN  13
DHT dht(DHTPIN, DHTTYPE);

void setup() {
 Serial1.begin(57600); // attivo il modulo wifi
 pinMode(ESP_ENABLE_PIN, OUTPUT);//alimento il modulo
 pinMode(ESP_PROGRAM_PIN, OUTPUT);
 digitalWrite(ESP_PROGRAM_PIN,HIGH);//modulo in posizione di lavoro  
 digitalWrite(ESP_ENABLE_PIN,HIGH);
 delay(5000); //un caffè e sono pronto
 Serial1.println(""); // scarico l'eccesso
 Serial1.println("$PING 200");
 Serial1.println("$P:D!228;/{-r30!228,114*12{^*8L15:0;&L25:0;_T:Temperatura (°C);}|{&&&&&}|{^*8L35:0;&L45:0;&L55:0;_T:Umidità (%);}}"); //questo è il mio pannello
}
String Msg;
void loop() {
int t = dht.readTemperature(); //leggi temp e umidità e invialo al pannello
int h = dht.readHumidity();

Serial1.println("#L1" + String(t/10));
Serial1.println("#L2" + String(t%10));
Serial1.println("#L3" + String(h/100));
Serial1.println("#L4" + String((h%100)/10));
Serial1.println("#L5" + String((h%100)%10));
delay(10000);   
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)