[Programmation] Erreur arduino (GSM, keypad, ...)
Répondre à la discussion
Affichage des résultats 1 à 27 sur 27

Erreur arduino (GSM, keypad, ...)



  1. #1
    Notofino

    Erreur arduino (GSM, keypad, ...)


    ------

    Bonjour j'ai eu plusieurs erreur arduino mais je ne sais pas trop comment les résoudre celle ci, même en cherchant sur internet (en plus moi et les forum anglais ^^)

    Capture.PNG
    Capture2.PNG

    Merci

    -----

  2. #2
    sandrecarpe

    Re : Erreur arduino (GSM, keypad, ...)

    Salut,
    C'est pas une "erreur Arduino", c'est une erreur de programmation
    Mais avec le code sous les yeux ça sera plus facile de t'aider

  3. #3
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    D'accord je vous envoie tous le programme (il est un peu long)

    1.PNG
    2.PNG
    3.PNG
    4.PNG
    5.PNG

  4. #4
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)


  5. A voir en vidéo sur Futura
  6. #5
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    et la dernière image
    Nom : 11.PNG
Affichages : 313
Taille : 12,7 Ko

  7. #6
    Antoane
    Responsable technique

    Re : Erreur arduino (GSM, keypad, ...)

    Bonjour,

    Tu peux aussi poster ton programme sous forme de texte, ce sera plus lisible.
    Pense stp à mettre ton code entre des balises :
    [code] ici ton code[/code]
    ou avec le bouton # de l'éditeur de messages avancé. C'est plus lisible et préserve l'indentation !
    Dernière modification par Antoane ; 13/04/2017 à 18h48. Motif: Réparation balises
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  8. #7
    sandrecarpe

    Re : Erreur arduino (GSM, keypad, ...)

    Je suis étonné de la manière dont sont déclarées tes objets.
    Ça devrait être :
    Code:
    Password password1("1111");
    Et non :
    Code:
    Password password1 = Password("1111");
    Pareil pour les autres objets

  9. #8
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    Code:
    #include <Password.h>
    #include <Keypad.h>
    #include <HX711.h>
    #include <LiquidCrystal.h>
    #include <SoftwareSerial.h>
    #include<Ethernet.h> 
    #include <GSM.h> 
    #include <String.h>
    
    LiquidCrystal lcd(12,11,5,4,3,2);
    
    Password password1("1111"); // Le code du foyer 1
    Password password2("2222"); // Le code du foyer 2
    Password password3("3333"); // Le code du foyer 3
    
    const byte ROWS = 4; // 4 lignes
    const byte COLS = 3; // 3 colonnes
    // Position des touches
    char keys[ROWS][COLS] = {
      {'1','2','3'},
      {'4','5','6'},
      {'7','8','9'},
      {'*','0','#'}
    };
    
    
    byte rowPins[ROWS] = {0,1,7,8}; // Pin utilisés pour les lignes
    byte colPins[COLS] = {A1,A2,A3}; // Pin utilisés pour les colonnes
    
    
    // Creation du Keypad
    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
    
    const int verrou = A4; // le verrou est sur la broche A4
    
    /////////////////////////////////////
    // A
    #define calibration_factor  //This value is obtained using the SparkFun_HX711_Calibration sketch
    int nouveauPoids ;
    int ancienPoids ;
    #define DOUT  A4
    #define CLK  A5
    HX711 scale(DOUT, CLK);
    //////////////////////////////////////
    // T
    const int BP_remplie = 0; //le BP broche 0
    int broche = 9 ;// On déclare le nom de la broche sur laquelle sort le signal PWM
    
    // Site web
    // On recopie l’adresse MAC se trouvant au dos de la carte 
    byte mac[ ] ={0x90, 0xA2, 0xDA, 0x0D, 0x75, 0x2A} ;
    // On définit le port par lequel se fera la communication 
    EthernetServer server(80); // voir note 1
    
    //GSM
     #define PINNUMBER "" 
    
      // initialiser l'instance de la bibliothèque 
      GSM gsmAccess;  // inclure un paramètre 'vrai' pour le débogage activé 
      GSM_SMS sms; 
    
      // char tableau du numéro de téléphone pour envoyer des SMS 
      // change le numéro 1-212-555-1212 en un nombre 
      // vous avez accès à 
      char remoteNumber [20] = "12125551212"; 
    
      // char tableau du message 
      char txtMsg[200]="Test"; 
    ///////////////////////////////////////
    
    
    
    void setup(){
        Serial.begin(9600);
    ///////////////////////////////////////////////////////////
    // ENZO
      pinMode(verrou, OUTPUT);
      digitalWrite(verrou,LOW);
      keypad.addEventListener(keypadEvent); //ajout d'un event sur le keypad
    /////////////////////////////////////////////////////////////
    // ACHOUR
      Serial.println("Poubelle Collective");
    
      scale.set_scale(47170); //This value is obtained by using the SparkFun_HX711_Calibration sketch
      scale.tare(); //Assuming there is no weight on the scale at start up, reset the scale to 0
    
      Serial.println("Readings:");
    ///////////////////////////////////////////////////////////
    // Thomas
        pinMode (broche, OUTPUT); // cette broche est une sortie
        pinMode(BP_remplie, INPUT); // BP est une broche d'entree
        lcd.begin(16,2);
        
       analogWrite (broche, 3) ; // nbre = 128 rapport cyclique 50%
      int remplie = digitalRead(BP_remplie); // Lecture de l'entree BP et sockage du résultats dans remplie
    
    // Site web
      // On initialise la connexion Ethernet et le serveur
       // en mode DHCP 
        Ethernet.begin(mac);
    
        server.begin(); 
        Serial.print("le serveur est à l'adresse "); 
        Serial.println(Ethernet.localIP()); 
    
    //GSM
      // initialiser les communications série 
      Serial.println ("SMS Messages Sender"); 
    
      // état de connexion 
      boolean notConnected = true; 
    
      // Démarrer GSM SHIELD 
      // Si votre carte SIM a un NIP, passez-le en tant que paramètre de begin () entre guillemets 
      while (notConnected) { 
      if (gsmAccess.begin (PINNUMBER) == GSM_READY)
      notConnected = false;
      else
      { 
      Serial.println ("Non connecté"); 
      delay(1000); 
      } 
      } 
      Serial.println ("initialisé par GSM");  
    //////////////////////////////////////////////////////////////
    }
    
    
    void loop(){
      if (verrou,LOW){ // Si le verrou est ouvert
        remplissage(); // void remplissage
        keypad.getKey(); // Appel de l'event du keyPad
        site(); // void site
        sendSMS(); // void sendSMS
      }
        
    }
    
    //Declaration de l'events keyPad
    void keypadEvent(KeypadEvent eKey){
      switch (keypad.getState()){
      case PRESSED:
        Serial.print("Pressed: ");
        Serial.println(eKey);
        switch (eKey){
        case '*':
          checkPassword();
          break;
        case '#':
          password1.reset();
          password2.reset();
          password3.reset();
          break;
        default:
          password1.append(eKey);
          password2.append(eKey);
          password3.append(eKey);
        }
      }
    }
    
    
    
    void checkPassword(){
      if (password1.evaluate()){ // Si le code du foyer1 est bon
         Serial.println("Foyer 1");
         password1.reset();           // le password revient a 0
         digitalWrite(verrou, HIGH);  // Le verrou s'ouvre
         delay(1000);   // delais
         poids1();      // on execute le programme void poids1
      }
      else  // SI le code du foyer 1 est faux
              { 
              if (password2.evaluate()){ // Si le code du foyer2 est bon
              Serial.println("Foyer 2");
              password2.reset();    // le password revient a 0
              digitalWrite(verrou, HIGH);   // Le verrou s'ouvre
              delay(1000);      // delais
              poids2();         // on execute le programme void poids2
              }
              else // SI le code du foyer 1 est faux
                         {
                          if (password3.evaluate()){ // Si le code du foyer3 est bon
                          Serial.println("Foyer 3");
                           password3.reset();     // le password revient a 0
                          digitalWrite(verrou, HIGH); // Le verrou s'ouvre
                           delay(1000);     // delais
                           poids3();      // on execute le programme void poids1
                           }  
                           else // SI le code du foyer 3 est faux
                           {
                            Serial.println("Faux");
                            password3.reset();
                            digitalWrite(verrou,LOW);
                           }
                         }
      }
    }
    
    
    
    
    void poids1(){
     Serial.print("Masse: ");
      Serial.print(scale.get_units(), 1.01); //scale.get_units() returns a float
      Serial.print(" Kg"); //You can change this to kg but you'll need to refactor the calibration_factor
      Serial.println();
      delay(5000);
      ancienPoids = scale.get_units(), 1.01;
    
    
      lcd.setCursor(0,0);    //affichagage du poids sur le lcd
          lcd.print("Poser: ");
           lcd.setCursor(7,0);
          lcd.print(ancienPoids); 
          lcd.setCursor(10,0);
          lcd.print("kg");
           delay(5000);
    
    
      nouveauPoids = ancienPoids - ancienPoids;
          lcd.setCursor(0,1);    //affichagage du poids sur le lcd
          lcd.print("Mesure: ");
           lcd.setCursor(8,1);
          lcd.print(nouveauPoids); 
          lcd.setCursor(11,1);
          lcd.print("kg");
          delay(5000);
    }
    
    void poids2(){
       Serial.print("Masse: ");
      Serial.print(scale.get_units(), 1.01); //scale.get_units() returns a float
      Serial.print(" Kg"); //You can change this to kg but you'll need to refactor the calibration_factor
      Serial.println();
      delay(5000);
      ancienPoids = scale.get_units(), 1.01;
    
    
      lcd.setCursor(0,0);    //affichagage du poids sur le lcd
          lcd.print("Poser: ");
          lcd.setCursor(7,0);
          lcd.print(ancienPoids); 
          lcd.setCursor(10,0);
          lcd.print("kg");
           delay(5000);
    
    
      nouveauPoids = ancienPoids - ancienPoids;
          lcd.setCursor(0,1);    //affichagage du poids sur le lcd
          lcd.print("Mesure: ");
           lcd.setCursor(8,1);
          lcd.print(nouveauPoids); 
          lcd.setCursor(11,1);
          lcd.print("kg");
    }
    
    void poids3(){
       Serial.print("Masse: ");
      Serial.print(scale.get_units(), 1.01); //scale.get_units() returns a float
      Serial.print(" Kg"); //You can change this to kg but you'll need to refactor the calibration_factor
      Serial.println();
      delay(5000);
      ancienPoids = scale.get_units(), 1.01;
    
    
      lcd.setCursor(0,0);    //affichagage du poids sur le lcd
          lcd.print("Poser: ");
           lcd.setCursor(7,0);
          lcd.print(ancienPoids); 
          lcd.setCursor(10,0);
          lcd.print("kg");
           delay(5000);
    
    
      nouveauPoids = ancienPoids - ancienPoids;
          lcd.setCursor(0,1);    //affichagage du poids sur le lcd
          lcd.print("Mesure: ");
           lcd.setCursor(8,1);
          lcd.print(nouveauPoids); 
          lcd.setCursor(11,1);
          lcd.print("kg");
    }
    
    
    
    void remplissage(){
    {    
      analogWrite (broche, 3) ; // nbre = 128 rapport cyclique 50%
      int remplie = digitalRead(BP_remplie); // Lecture de l'entree BP et sockage du résultats dans remplie
      
      if(remplie==LOW) // Si il y a rien dans la poubelle (aucun déchets)
    {
          lcd.setCursor(0,0);
          lcd.print("Poubelle");
          lcd.setCursor(0,1);
          lcd.print("non remplie");
          delay(1000);
          lcd.clear();
    }
    else // SI la poubelle est pleine
     {
        lcd.setCursor(0,0);
        lcd.print("Poubelle");
        lcd.setCursor(0,1);
        lcd.print("remplie");
        delay(1000);
        lcd.clear();
     }
    }
    }
    
    
    
    void site(){
      { 
      EthernetClient client = server.available(); // écoute des clients Ethernet eventuels (= 1 ou 0) 
        {
    // Le bloc suivant sera exécuté si quelqu’un a saisi l’adresse IP de la carte Arduino sur son navigateur 
    if (client) 
           {
      Serial.println("nouveau client"); 
      boolean currentLineIsBlank = true; // voir note 2
      while (client.connected())//tant qu'un client est connecté
              {
      if (client.available())
      
      { char c = client.read();// lecture d’un octet provenant // du client et stockage dans c
      
      Serial.write(c); 
      
      if (c == '\n' &&currentLineIsBlank) // voir note 2 
      
     // Envoi de la page web 
     
     client.println("<!DOCTYPE html>"); 
    client.println("<html>"); 
    client.println("<head>");
    client.println("<title>Temperature salle de SIN</title>"); 
    
    client.println("<STYLE type=text/css>");
    client.println("h1 {border-width : 1; border: solid; text-align: center; background-color: blue;}");
    client.println("table{border-collapse: collapse;} th{border: 1px solid black;}");
    client.println("</STYLE>");
    
    client.println("</head>");
    client.println("<body>"); 
    // Si on veut insérer dans la page web la valeur d’une tension analogique reçue par //la carte
    int resultat = analogRead (1) ; // lecture de la tension analogique sur A1 
    client.print ("<h1>");
    client.print ("<table>");
    client.print("<caption>Poids des déchets des habitants du batiment 1</caption>");
    client.print ("<tr>");
    client.print ("<th>Foyer 1</th>");
    client.print ("<th>Foyer 2</th>");
    client.print ("<th>Foyer 3</th>");
    client.print ("</tr>");
    client.print ("<tr>");
    client.print ("ancienPoids1"); 
    client.print ("ancienPoids2");
    client.print ("ancienPoids3");
    client.print ("</tr>");
    client.print ("</table>");
    client.print ("</h1>");
    client.println("<br />"); 
    client.print ("Site de Thomas");
    client.println("<br />"); 
    client.println("</body>"); 
    client.println("</html>"); 
    break;
    
      if (c == '\n') // voir note 3 
    { 
      // début d’une nouvelle ligne
      currentLineIsBlank = true; 
    }
      else if (c != '\r') 
    {
      // Il y a un caractère sur la ligne courante 
      currentLineIsBlank = false; 
      
    }
              }// findu if (client.available()) 
              }// finduwhile (client.connected())
    delay(1); // laisse au navigateur client le temps de recevoir les données
    client.stop(); // coupe la connexion si le client s’est déconnecté
          }
        }
       }
    }
    
    
    
    void sendSMS(){ 
     Serial.print("Message au numéro de portable:"); 
     Serial.println(remoteNumber); 
    
     // SMS text
     Serial.println ("ENVOYER"); 
     Serial.println (); 
     Serial.println ("Message:"); 
     Serial.println (txtMsg); 
    
     // envoyer le message 
     sms.beginSMS (remoteNumber); 
     sms.print(txtMsg); 
     sms.endSMS(); 
     Serial.println("\nCOMPLETE!\n"); 
      }
    @sandrecarpe : j'ai changer comme tu ma dit mais sa me emt toujours la même erreur à ce niveau là

  10. #9
    sandrecarpe

    Re : Erreur arduino (GSM, keypad, ...)

    Salut,
    L'instanciation de Keypad n'a pas été corrigée
    J'ai l'impression que ton problème vient d'une incompatibilité entre les librairies du module ethernet et celles du keypad...

  11. #10
    sandrecarpe

    Re : Erreur arduino (GSM, keypad, ...)

    Il a fallu modifier la librairie KeyPad pour corriger le problème (même si je n'ai pas testé la correction au final)

    L'enum KeyState entrait en conflit avec une autre enum de la librairie ethernet, j'ai donc tenté corrigé ça.
    J'ai mis l'énum KeyState, DANS la classe Key

    Donc lorsque tu dois utiliser l'enum KeyState, il faut bien préciser qu'elle appartient à la classe Key. Par exemple :
    Code:
    Key::KeyState keyState = Key::KeyState::IDLE;
    //c'était IDLE le problème
    Pareil lorsque tu passes cette enum en argument d'une fonction :
    Code:
    void fct(Key::KeyState keyState)
    {
          //.....
          keyState = Key::KeyState::PRESSED;
    }
    Dis moi si y a un soucis dans cette nouvelle librairie
    Fichiers attachés Fichiers attachés
    Dernière modification par sandrecarpe ; 14/04/2017 à 19h11.

  12. #11
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    J'ai changer la librarie keypad par la tienne mais toujours le même problème

    Code:
    In file included from C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM.h:46:0,
    
                     from C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:6:
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM3ShieldV1BandManagement.h:49:125: warning: 'typedef' was ignored in this declaration
    
     typedef enum GSM3GSMBand {UNDEFINED, EGSM_MODE, DCS_MODE, PCS_MODE, EGSM_DCS_MODE, GSM850_PCS_MODE, GSM850_EGSM_DCS_PCS_MODE};
    
                                                                                                                                 ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:12:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password1("1111"); // Le code du foyer 1
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:13:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password2("2222"); // Le code du foyer 2
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:14:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password3("3333"); // Le code du foyer 3
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino: In function 'void setup()':
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:116:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
       if (gsmAccess.begin (PINNUMBER) == GSM_READY)
    
                                     ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino: In function 'void keypadEvent(KeypadEvent)':
    
    test_assemblage:142: error: 'PRESSED' was not declared in this scope
    
       case PRESSED:
    
            ^
    
    exit status 1
    'PRESSED' was not declared in this scope

  13. #12
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    mais attend je n'es pas trop bien compris tes 2 codes
    (au niveau du keypad c'était pas ma partie donc je decouvre un peu ^^ (on est 3))

  14. #13
    sandrecarpe

    Re : Erreur arduino (GSM, keypad, ...)

    Salut,
    Il faut corriger ton code comme je t'ai indiqué dans mon message précédent
    Il faut rajouter Key::KeyState:: devant PRESSED ainsi que devant chaque autre élément de cette enum. Après ça ton code devrait fonctionner.
    Regarde sur internet ce qu'est une enum en C++ si tu ne vois pas bien comment ça fonctionne
    Dernière modification par sandrecarpe ; 15/04/2017 à 08h10.

  15. #14
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    je comprend pas très bien comment tu veux que je change le code

    Code:
    //Declaration de l'events keyPad
    void keypadEvent(KeypadEvent eKey){
      switch (keypad.getState()){
      case  Key::KeyState::PRESSED:
        Serial.print("Pressed: ");
        Serial.println(eKey);
        switch (eKey){
        case '*':
          checkPassword();
          break;
        case '#':
          password1.reset();
          password2.reset();
          password3.reset();
          break;
        default:
          password1.append(eKey);
          password2.append(eKey);
          password3.append(eKey);
        }
      }
    }
    sa me fait plein d'erreur

  16. #15
    sandrecarpe

    Re : Erreur arduino (GSM, keypad, ...)

    Si tu nous montres pas les erreurs comment tu veux qu'on t'aide ?

  17. #16
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    l'erreur est en changeant le code comme précedemment est
    Code:
    In file included from C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM.h:46:0,
    
                     from C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:6:
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM3ShieldV1BandManagement.h:49:125: warning: 'typedef' was ignored in this declaration
    
     typedef enum GSM3GSMBand {UNDEFINED, EGSM_MODE, DCS_MODE, PCS_MODE, EGSM_DCS_MODE, GSM850_PCS_MODE, GSM850_EGSM_DCS_PCS_MODE};
    
                                                                                                                                 ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:12:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password1("1111"); // Le code du foyer 1
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:13:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password2("2222"); // Le code du foyer 2
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:14:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password3("3333"); // Le code du foyer 3
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino: In function 'void setup()':
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:116:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
       if (gsmAccess.begin (PINNUMBER) == GSM_READY)
    
                                     ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp: In constructor 'GSM3MobileMockupProvider::GSM3MobileMockupProvider()':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp:44:12: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      msgExample="Hello#World";
    
                ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp: In member function 'int GSM3MobileMockupProvider::connectTCPServer(int, char*, int*)':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp:183:32: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
       strcpy("192.168.1.1", localIP);
    
                                    ^
    
    In file included from C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:34:0:
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM3ShieldV1BandManagement.h:49:125: warning: 'typedef' was ignored in this declaration
    
     typedef enum GSM3GSMBand {UNDEFINED, EGSM_MODE, DCS_MODE, PCS_MODE, EGSM_DCS_MODE, GSM850_PCS_MODE, GSM850_EGSM_DCS_PCS_MODE};
    
                                                                                                                                 ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp: In constructor 'GSM3ShieldV1BandManagement::GSM3ShieldV1BandManagement(bool)':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:38:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[UNDEFINED]="";
    
                               ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:39:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[EGSM_MODE]="\"EGSM_MODE\"";
    
                               ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:40:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[DCS_MODE]="\"DCS_MODE\"";
    
                              ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:41:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[PCS_MODE]="\"PCS_MODE\"";
    
                              ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:42:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[EGSM_DCS_MODE]="\"EGSM_DCS_MODE\"";
    
                                   ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:43:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[GSM850_PCS_MODE]="\"GSM850_PCS_MODE\"";
    
                                     ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:44:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[GSM850_EGSM_DCS_PCS_MODE]="\"GSM850_EGSM_DCS_PCS_MODE\""; 
    
                                              ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ModemCore.cpp:39:14: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     char* __ok__="OK";
    
                  ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ModemVerification.cpp: In member function 'String GSM3ShieldV1ModemVerification::getIMEI()':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ModemVerification.cpp:64:20: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]
    
      String number(NULL);
    
                        ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1SMSProvider.cpp: In member function 'void GSM3ShieldV1SMSProvider::beginSMSContinue()':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1SMSProvider.cpp:68:57: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
       if(theGSM3ShieldV1ModemCore.genericParse_rsp(resp, ">"))
    
                                                             ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp: In member function 'String GSM3ShieldV1ScanNetworks::getCurrentCarrier()':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp:66:21: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]
    
       return String(NULL);
    
                         ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp: In member function 'String GSM3ShieldV1ScanNetworks::getSignalStrength()':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp:85:21: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]
    
       return String(NULL);
    
                         ^
    
    libraries\GSM\GSM3SoftSerial.cpp.o (symbol from plugin): In function `GSM3SoftSerial::spaceAvailable()':
    
    (.text+0x0): multiple definition of `__vector_3'
    
    libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here
    
    libraries\GSM\GSM3SoftSerial.cpp.o (symbol from plugin): In function `GSM3SoftSerial::spaceAvailable()':
    
    (.text+0x0): multiple definition of `__vector_4'
    
    libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here
    
    libraries\GSM\GSM3SoftSerial.cpp.o (symbol from plugin): In function `GSM3SoftSerial::spaceAvailable()':
    
    (.text+0x0): multiple definition of `__vector_5'
    
    libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here
    
    collect2.exe: error: ld returned 1 exit status
    
    exit status 1
    Erreur de compilation pour la carte Arduino Ethernet

  18. #17
    sandrecarpe

    Re : Erreur arduino (GSM, keypad, ...)

    C'est le même code qu'avant ?
    T'as cette erreur en mettant la nouvelle librairie ? Parce que j'ai l'impression que c'est pas la même chose
    Tu fais ça avec l'IDE d'arduino?

  19. #18
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    L'erreur sans changer le code :
    Code:
    In file included from C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM.h:46:0,
    
                     from C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:6:
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM3ShieldV1BandManagement.h:49:125: warning: 'typedef' was ignored in this declaration
    
     typedef enum GSM3GSMBand {UNDEFINED, EGSM_MODE, DCS_MODE, PCS_MODE, EGSM_DCS_MODE, GSM850_PCS_MODE, GSM850_EGSM_DCS_PCS_MODE};
    
                                                                                                                                 ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:12:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password1("1111"); // Le code du foyer 1
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:13:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password2("2222"); // Le code du foyer 2
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:14:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password3("3333"); // Le code du foyer 3
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino: In function 'void setup()':
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:116:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
       if (gsmAccess.begin (PINNUMBER) == GSM_READY)
    
                                     ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino: In function 'void keypadEvent(KeypadEvent)':
    
    test_assemblage:142: error: 'PRESSED' was not declared in this scope
    
       case PRESSED:
    
            ^
    
    exit status 1
    'PRESSED' was not declared in this scope
    et en changeant avec ce code la
    Code:
    //Declaration de l'events keyPad
    void keypadEvent(KeypadEvent eKey){
      switch (keypad.getState()){
      case Key::KeyState::PRESSED:
        Serial.print("Pressed: ");
        Serial.println(eKey);
        switch (eKey){
        case '*':
          checkPassword();
          break;
        case '#':
          password1.reset();
          password2.reset();
          password3.reset();
          break;
        default:
          password1.append(eKey);
          password2.append(eKey);
          password3.append(eKey);
        }
      }
    }
    j'ai cette erreur
    Code:
    In file included from C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM.h:46:0,
    
                     from C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:6:
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM3ShieldV1BandManagement.h:49:125: warning: 'typedef' was ignored in this declaration
    
     typedef enum GSM3GSMBand {UNDEFINED, EGSM_MODE, DCS_MODE, PCS_MODE, EGSM_DCS_MODE, GSM850_PCS_MODE, GSM850_EGSM_DCS_PCS_MODE};
    
                                                                                                                                 ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:12:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password1("1111"); // Le code du foyer 1
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:13:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password2("2222"); // Le code du foyer 2
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:14:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password3("3333"); // Le code du foyer 3
    
                              ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino: In function 'void setup()':
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\test_assemblage\test_assemblage.ino:116:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
       if (gsmAccess.begin (PINNUMBER) == GSM_READY)
    
                                     ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp: In constructor 'GSM3MobileMockupProvider::GSM3MobileMockupProvider()':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp:44:12: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      msgExample="Hello#World";
    
                ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp: In member function 'int GSM3MobileMockupProvider::connectTCPServer(int, char*, int*)':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3MobileMockupProvider.cpp:183:32: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
       strcpy("192.168.1.1", localIP);
    
                                    ^
    
    In file included from C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:34:0:
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM3ShieldV1BandManagement.h:49:125: warning: 'typedef' was ignored in this declaration
    
     typedef enum GSM3GSMBand {UNDEFINED, EGSM_MODE, DCS_MODE, PCS_MODE, EGSM_DCS_MODE, GSM850_PCS_MODE, GSM850_EGSM_DCS_PCS_MODE};
    
                                                                                                                                 ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp: In constructor 'GSM3ShieldV1BandManagement::GSM3ShieldV1BandManagement(bool)':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:38:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[UNDEFINED]="";
    
                               ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:39:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[EGSM_MODE]="\"EGSM_MODE\"";
    
                               ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:40:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[DCS_MODE]="\"DCS_MODE\"";
    
                              ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:41:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[PCS_MODE]="\"PCS_MODE\"";
    
                              ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:42:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[EGSM_DCS_MODE]="\"EGSM_DCS_MODE\"";
    
                                   ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:43:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[GSM850_PCS_MODE]="\"GSM850_PCS_MODE\"";
    
                                     ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1BandManagement.cpp:44:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
      quectelStrings[GSM850_EGSM_DCS_PCS_MODE]="\"GSM850_EGSM_DCS_PCS_MODE\""; 
    
                                              ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ModemCore.cpp:39:14: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     char* __ok__="OK";
    
                  ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ModemVerification.cpp: In member function 'String GSM3ShieldV1ModemVerification::getIMEI()':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ModemVerification.cpp:64:20: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]
    
      String number(NULL);
    
                        ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1SMSProvider.cpp: In member function 'void GSM3ShieldV1SMSProvider::beginSMSContinue()':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1SMSProvider.cpp:68:57: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
       if(theGSM3ShieldV1ModemCore.genericParse_rsp(resp, ">"))
    
                                                             ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp: In member function 'String GSM3ShieldV1ScanNetworks::getCurrentCarrier()':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp:66:21: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]
    
       return String(NULL);
    
                         ^
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp: In member function 'String GSM3ShieldV1ScanNetworks::getSignalStrength()':
    
    C:\Program Files (x86)\Arduino\libraries\GSM\src\GSM3ShieldV1ScanNetworks.cpp:85:21: warning: passing NULL to non-pointer argument 1 of 'String::String(int, unsigned char)' [-Wconversion-null]
    
       return String(NULL);
    
                         ^
    
    libraries\GSM\GSM3SoftSerial.cpp.o (symbol from plugin): In function `GSM3SoftSerial::spaceAvailable()':
    
    (.text+0x0): multiple definition of `__vector_3'
    
    libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here
    
    libraries\GSM\GSM3SoftSerial.cpp.o (symbol from plugin): In function `GSM3SoftSerial::spaceAvailable()':
    
    (.text+0x0): multiple definition of `__vector_4'
    
    libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here
    
    libraries\GSM\GSM3SoftSerial.cpp.o (symbol from plugin): In function `GSM3SoftSerial::spaceAvailable()':
    
    (.text+0x0): multiple definition of `__vector_5'
    
    libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here
    
    collect2.exe: error: ld returned 1 exit status
    
    exit status 1
    Erreur de compilation pour la carte Arduino Ethernet
    J'ai bien changer la librarie avec celle que tu ma donner

  20. #19
    sandrecarpe

    Re : Erreur arduino (GSM, keypad, ...)

    Il semble qu'il y ai des conflits entre la librairie software serial et d'autres (d'après une rapide recherche sur internet)
    Essaie plutôt d'utiliser la liaison série matériel pour communiquer avec ton module
    Ça peut être embêtant mais j'ai pas vu d'autre solution
    Dernière modification par sandrecarpe ; 17/04/2017 à 18h55.

  21. #20
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    J'ai essayer en faisant un autre programme avec juste l'histoire du password

    Code:
    #include <Password.h>
    #include <Keypad.h>
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(12,11,5,4,3,2);
    
    
    Password password1( "1111" ); // Le code du foyer 1
    Password password2( "2222" ); // Le code du foyer 2
    Password password3( "3333" ); // Le code du foyer 3
    
    
    const byte ROWS = 4; // 4 lignes
    const byte COLS = 3; // 3 colonnes
    // Position des touches
    char keys[ROWS][COLS] = {
      {'1','2','3'},
      {'4','5','6'},
      {'7','8','9'},
      {'*','0','#'}
    };
    
    byte rowPins[ROWS] = {0,1,7,8}; // Pin utilisés pour les lignes
    byte colPins[COLS] = {A1,A2,A3}; // Pin utilisés pour les colonnes
    
    
    // Creation du Keypad
    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
    
    const int verrou = A4; // le verrou est sur la broche A4
    
    void setup(){
      pinMode(verrou, OUTPUT);
      digitalWrite(verrou,LOW);
      Serial.begin(9600);
      keypad.addEventListener(keypadEvent); //ajout d'un event sur le keypad
    }
    
    
    void loop(){
      keypad.getKey(); // Appel de l'event du keyPad
    }
    
    //Declaration de l'events keyPad
    void keypadEvent(KeypadEvent eKey){
      switch (keypad.getState()){
      case Key::KeyState::PRESSED:
        Serial.print("Pressed: ");
        Serial.println(eKey);
        switch (eKey){
        case '*':
          checkPassword();
          break;
        case '#':
          password1.reset();
          password2.reset();
          password3.reset();
          break;
        default:
          password1.append(eKey);
          password2.append(eKey);
          password3.append(eKey);
        }
      }
    }
    
    void checkPassword(){
      if (password1.evaluate()){ // Si le code du foyer1 est bon
        Serial.println("Foyer 1");
        password1.reset();
        digitalWrite(verrou, HIGH);
      }
      else  // SI le code du foyer 1 est faux
              { 
              if (password2.evaluate()){ // Si le code du foyer2 est bon
              Serial.println("Foyer 2");
              password2.reset();
              digitalWrite(verrou, HIGH);
              }
              else // SI le code du foyer 1 est faux
                         {
                          if (password3.evaluate()){ // Si le code du foyer3 est bon
                          Serial.println("Foyer 3");
                           password3.reset();
                          digitalWrite(verrou, HIGH);
                           }
                           else // SI le code du foyer 3 est faux
                           {
                            Serial.println("Faux");
                            password3.reset();
                            digitalWrite(verrou,LOW);
                           }
                         }
      }
    }
    et la seul erreur que j'ai est celle la

    Code:
    C:\Users\MrWorfi\Desktop\SIN\PROJET\programme finis\Enzo-finis_2\Enzo-finis_2.ino:7:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password1( "1111" ); // Le code du foyer 1
    
                                ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\programme finis\Enzo-finis_2\Enzo-finis_2.ino:8:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password2( "2222" ); // Le code du foyer 2
    
                                ^
    
    C:\Users\MrWorfi\Desktop\SIN\PROJET\programme finis\Enzo-finis_2\Enzo-finis_2.ino:9:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    
     Password password3( "3333" ); // Le code du foyer 3

  22. #21
    sandrecarpe

    Re : Erreur arduino (GSM, keypad, ...)

    Ce n'est pas des erreurs mais des avertissements.
    Tu peux essayer d'y remédier en créant des variables de type char* (pour stocker t'es mots de passe) avant de les passer en paramètre à tes objets Password

  23. #22
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    Comment je peut ecrire le code pour y remedier ?

  24. #23
    sandrecarpe

    Re : Erreur arduino (GSM, keypad, ...)

    Pour les avertissements ? Comme dit dans mon message précédent.
    Au lieu de donner directement le mot de passe à ton objet Password, tu stockes dans une variable char* ton mot de passe, et tu le donnes en paramètre à ton objet Password

    Pour ton problème initial, vérifie que tu n'utilise pas une pin qu'à besoin un de tes shields
    http://playground.arduino.cc/Main/ShieldPinUsage

  25. #24
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    En lancant le programme sur un ordi avec une version antérieru d'arduino j'ai eu d'autre erreur et avec la library password de base

    j'ai eu cette erreur
    Code:
    In file included from test_assemblage.ino:2:
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:16: error: ISO C++ forbids initialization of member 'OFFSET'
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:16: error: making 'OFFSET' static
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:16: error: ISO C++ forbids in-class initialization of non-const static member 'OFFSET'
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:17: error: ISO C++ forbids initialization of member 'SCALE'
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:17: error: making 'SCALE' static
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:17: error: ISO C++ forbids in-class initialization of non-const static member 'SCALE'
    In file included from C:\Users\MrWorfi\Documents\Arduino\libraries\Keypad/Keypad.h:36,
                     from test_assemblage.ino:8:
    C:\Users\MrWorfi\Documents\Arduino\libraries\Keypad/utility/Key.h:46: error: conflicting declaration 'IDLE'
    C:\Program Files (x86)\Arduino\libraries\GSM/GSM3MobileAccessProvider.h:37: error: 'IDLE' has a previous declaration as 'GSM3_NetworkStatus_t IDLE'
    avec ce code
    Code:
    #include <Password.h>
    #include <HX711.h>
    #include <LiquidCrystal.h>
    #include <SoftwareSerial.h>
    #include <Ethernet.h> 
    #include <GSM.h> 
    #include <String.h>
    #include <Keypad.h>
    
    LiquidCrystal lcd(12,11,5,4,3,2);
    
    Password password1("123"); // Le code du foyer 1
    Password password2("456"); // Le code du foyer 2
    Password password3("789"); // Le code du foyer 3
    
    const byte ROWS = 4; // 4 lignes
    const byte COLS = 3; // 3 colonnes
    // Position des touches
    char keys[ROWS][COLS] = {
      {'1','2','3'},
      {'4','5','6'},
      {'7','8','9'},
      {'*','0','#'}
    };
    
    
    byte rowPins[ROWS] = {0,1,7,8}; // Pin utilisés pour les lignes
    byte colPins[COLS] = {A1,A2,A3}; // Pin utilisés pour les colonnes
    
    
    // Creation du Keypad
    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
    
    const int verrou = A4; // le verrou est sur la broche A4
    
    ////////////////////////////////////////////////////////////////////////////////////////
    // A (void poids)
    #define calibration_factor  //This value is obtained using the SparkFun_HX711_Calibration sketch
    int nouveauPoids ;
    int ancienPoids ;
    #define DOUT  A4
    #define CLK  A5
    HX711 scale(DOUT, CLK);
    //////////////////////////////////////////////////////////////////////////////////////////////
    // T (void remplissage)
    const int BP_remplie = 0; //le BP broche 0
    int broche = 9 ;// On déclare le nom de la broche sur laquelle sort le signal PWM
    
    // Site web (void site)
    // On recopie l’adresse MAC se trouvant au dos de la carte 
    byte mac[ ] ={0x90, 0xA2, 0xDA, 0x0D, 0x75, 0x2A} ;
    // On définit le port par lequel se fera la communication 
    EthernetServer server(80); // voir note 1
    
    //GSM (void sms)
     #define PINNUMBER "" 
    
      // initialiser l'instance de la bibliothèque 
      GSM gsmAccess;  // inclure un paramètre 'vrai' pour le débogage activé 
      GSM_SMS sms; 
    
      // char tableau du numéro de téléphone pour envoyer des SMS 
      // change le numéro 1-212-555-1212 en un nombre 
      // vous avez accès à 
      char remoteNumber [20] = "12125551212"; 
    
      // char tableau du message 
      char txtMsg[200]="Test"; 
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    
    
    
    
    
    void setup(){
        Serial.begin(9600);
    /////////////////////////////////////////////////////////////////////////////////////////////////////
    // ENZO (void keypad)
      pinMode(verrou, OUTPUT);
      digitalWrite(verrou,LOW);
      keypad.addEventListener(keypadEvent); //ajout d'un event sur le keypad
    ///////////////////////////////////////////////////////////////////////////////////////////////////////
    // ACHOUR (void poids)
      Serial.println("Poubelle Collective");
    
      scale.set_scale(47170); //This value is obtained by using the SparkFun_HX711_Calibration sketch
      scale.tare(); //Assuming there is no weight on the scale at start up, reset the scale to 0
    
      Serial.println("Readings:");
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Thomas (void remplissage)
        pinMode (broche, OUTPUT); // cette broche est une sortie
        pinMode(BP_remplie, INPUT); // BP est une broche d'entree
        lcd.begin(16,2);
       analogWrite (broche, 3) ; // nbre = 128 rapport cyclique 50%
       int remplie = digitalRead(BP_remplie); // Lecture de l'entree BP et sockage du résultats dans remplie
    
    // Site web (void site)
      // On initialise la connexion Ethernet et le serveur
       // en mode DHCP 
        Ethernet.begin(mac);
    
        server.begin(); 
        Serial.print("le serveur est à l'adresse "); 
        Serial.println(Ethernet.localIP()); 
    
    //GSM (void sms)
      // initialiser les communications série 
      Serial.println ("SMS Messages Sender"); 
    
      // état de connexion 
      boolean notConnected = true; 
    
      // Démarrer GSM SHIELD 
      // Si votre carte SIM a un NIP, passez-le en tant que paramètre de begin () entre guillemets 
      while (notConnected) { 
      if (gsmAccess.begin (PINNUMBER) == GSM_READY)
      notConnected = false;
      else
      { 
      Serial.println ("Non connecté"); 
      delay(1000); 
      } 
      } 
      Serial.println ("initialisé par GSM");  
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    }
    
    
      void loop(){
    site(); // void site
    
        if (BP_remplie,HIGH){
        (verrou==LOW);
    }
    
        if (verrou,LOW){ // Si le verrou est ouvert
        remplissage(); // void remplissage
        keypad.getKey(); // Appel de l'event du keyPad
      } 
    }
    
    
    
    //Declaration de l'events keyPad
    void keypadEvent(KeypadEvent eKey){
      switch (keypad.getState()){
      case PRESSED:
        Serial.print("Pressed: ");
        Serial.println(eKey);
        switch (eKey){
        case '*':
          checkPassword();
          break;
        case '#':
          password1.reset();
          password2.reset();
          password3.reset();
          break;
        default:
          password1.append(eKey);
          password2.append(eKey);
          password3.append(eKey);
        }
      }
    }
    
    void checkPassword(){
      if (password1.evaluate()){ // Si le code du foyer1 est bon
         Serial.println("Foyer 1");
         password1.reset();           // le password revient a 0
         digitalWrite(verrou, HIGH);  // Le verrou s'ouvre
         delay(1000);   // delais
         poids1();      // on execute le programme void poids1
      }
      else  // SI le code du foyer 1 est faux
              { 
              if (password2.evaluate()){ // Si le code du foyer2 est bon
              Serial.println("Foyer 2");
              password2.reset();    // le password revient a 0
              digitalWrite(verrou, HIGH);   // Le verrou s'ouvre
              delay(1000);      // delais
              poids2();         // on execute le programme void poids2
              }
              else // SI le code du foyer 1 est faux
                         {
                          if (password3.evaluate()){ // Si le code du foyer3 est bon
                          Serial.println("Foyer 3");
                           password3.reset();     // le password revient a 0
                          digitalWrite(verrou, HIGH); // Le verrou s'ouvre
                           delay(1000);     // delais
                           poids3();      // on execute le programme void poids1
                           }  
                           else // SI le code du foyer 3 est faux
                           {
                            Serial.println("Faux");
                            password3.reset();
                            digitalWrite(verrou,LOW);
                           }
                         }
      }
    }
    
    
    
    
    void poids1(){
     Serial.print("Masse: ");
      Serial.print(scale.get_units(), 1.01); //scale.get_units() returns a float
      Serial.print(" Kg"); //You can change this to kg but you'll need to refactor the calibration_factor
      Serial.println();
      delay(5000);
      ancienPoids = scale.get_units(), 1.01;
    
    
      lcd.setCursor(0,0);    //affichagage du poids sur le lcd
          lcd.print("Poser: ");
           lcd.setCursor(7,0);
          lcd.print(ancienPoids); 
          lcd.setCursor(10,0);
          lcd.print("kg");
           delay(5000);
    
    
      nouveauPoids = ancienPoids - ancienPoids;
          lcd.setCursor(0,1);    //affichagage du poids sur le lcd
          lcd.print("Mesure: ");
           lcd.setCursor(8,1);
          lcd.print(nouveauPoids); 
          lcd.setCursor(11,1);
          lcd.print("kg");
          delay(5000);
    }
    
    void poids2(){
       Serial.print("Masse: ");
      Serial.print(scale.get_units(), 1.01); //scale.get_units() returns a float
      Serial.print(" Kg"); //You can change this to kg but you'll need to refactor the calibration_factor
      Serial.println();
      delay(5000);
      ancienPoids = scale.get_units(), 1.01;
    
    
      lcd.setCursor(0,0);    //affichagage du poids sur le lcd
          lcd.print("Poser: ");
          lcd.setCursor(7,0);
          lcd.print(ancienPoids); 
          lcd.setCursor(10,0);
          lcd.print("kg");
           delay(5000);
    
    
      nouveauPoids = ancienPoids - ancienPoids;
          lcd.setCursor(0,1);    //affichagage du poids sur le lcd
          lcd.print("Mesure: ");
           lcd.setCursor(8,1);
          lcd.print(nouveauPoids); 
          lcd.setCursor(11,1);
          lcd.print("kg");
    }
    
    void poids3(){
       Serial.print("Masse: ");
      Serial.print(scale.get_units(), 1.01); //scale.get_units() returns a float
      Serial.print(" Kg"); //You can change this to kg but you'll need to refactor the calibration_factor
      Serial.println();
      delay(5000);
      ancienPoids = scale.get_units(), 1.01;
    
    
      lcd.setCursor(0,0);    //affichagage du poids sur le lcd
          lcd.print("Poser: ");
           lcd.setCursor(7,0);
          lcd.print(ancienPoids); 
          lcd.setCursor(10,0);
          lcd.print("kg");
           delay(5000);
    
    
      nouveauPoids = ancienPoids - ancienPoids;
          lcd.setCursor(0,1);    //affichagage du poids sur le lcd
          lcd.print("Mesure: ");
           lcd.setCursor(8,1);
          lcd.print(nouveauPoids); 
          lcd.setCursor(11,1);
          lcd.print("kg");
    }
    
    
    
    void remplissage(){
    {    
     int remplie = digitalRead(BP_remplie); // Lecture de l'entree BP et sockage du résultats dans remplie
     if(remplie==LOW) // Si il y a rien dans la poubelle (aucun déchets)
    {
          lcd.setCursor(0,0);
          lcd.print("Poubelle");
          lcd.setCursor(0,1);
          lcd.print("non remplie");
          delay(1000);
          lcd.clear();
    }
    else // SI la poubelle est pleine
     {
        lcd.setCursor(0,0);
        lcd.print("Poubelle");
        lcd.setCursor(0,1);
        lcd.print("remplie");
        delay(1000);
        lcd.clear();
        sendSMS(); // void sendSMS
     }
    }
    }
    
    
    void site(){
      { 
      EthernetClient client = server.available(); // écoute des clients Ethernet eventuels (= 1 ou 0) 
        {
    // Le bloc suivant sera exécuté si quelqu’un a saisi l’adresse IP de la carte Arduino sur son navigateur 
    if (client) 
           {
      Serial.println("nouveau client"); 
      boolean currentLineIsBlank = true; // voir note 2
      while (client.connected())//tant qu'un client est connecté
              {
      if (client.available())
      
      { char c = client.read();// lecture d’un octet provenant // du client et stockage dans c
      
      Serial.write(c); 
      
      if (c == '\n' &&currentLineIsBlank) // voir note 2 
      
     // Envoi de la page web 
     
     client.println("<!DOCTYPE html>"); 
    client.println("<html>"); 
    client.println("<head>");
    client.println("<title>EcoTrash</title>"); 
    
    client.println("<STYLE type=text/css>");
    client.println("h1 {border-width : 1; border: solid; text-align: center; background-color: blue;}");
    client.println("table{border-collapse: collapse;} th{border: 1px solid black;}");
    client.println("</STYLE>");
    
    client.println("</head>");
    client.println("<body>"); 
    // Si on veut insérer dans la page web la valeur d’une tension analogique reçue par //la carte
    client.print ("<h1>");
    client.print ("<table>");
    client.print("<caption>Poids des déchets des habitants du batiment 1</caption>");
    client.print ("<tr>");
    client.print ("<th>Foyer 1</th>");
    client.print ("<th>Foyer 2</th>");
    client.print ("<th>Foyer 3</th>");
    client.print ("</tr>");
    client.print ("<tr>");
    client.print ("ancienPoids1"); 
    client.print ("ancienPoids2");
    client.print ("ancienPoids3");
    client.print ("</tr>");
    client.print ("</table>");
    client.print ("</h1>");
    client.println("<br />"); 
    client.print ("Site de Thomas");
    client.println("<br />"); 
    client.println("</body>"); 
    client.println("</html>"); 
    break;
    
      if (c == '\n') // voir note 3 
    { 
      // début d’une nouvelle ligne
      currentLineIsBlank = true; 
    }
      else if (c != '\r') 
    {
      // Il y a un caractère sur la ligne courante 
      currentLineIsBlank = false; 
      
    }
              }// findu if (client.available()) 
              }// finduwhile (client.connected())
    delay(1); // laisse au navigateur client le temps de recevoir les données
    client.stop(); // coupe la connexion si le client s’est déconnecté
          }
        }
       }
    }
    
    
    
    void sendSMS(){ 
     Serial.print("Message au numéro de portable:"); 
     Serial.println(remoteNumber); 
    
     // SMS text
     Serial.println ("ENVOYER"); 
     Serial.println (); 
     Serial.println ("Message:"); 
     Serial.println (txtMsg); 
    
     // envoyer le message 
     sms.beginSMS (remoteNumber); 
     sms.print(txtMsg); 
     sms.endSMS(); 
     Serial.println("\nCOMPLETE!\n"); 
      }
    et avec ta librarie

    Code:
    In file included from test_assemblage.ino:2:
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:16: error: ISO C++ forbids initialization of member 'OFFSET'
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:16: error: making 'OFFSET' static
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:16: error: ISO C++ forbids in-class initialization of non-const static member 'OFFSET'
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:17: error: ISO C++ forbids initialization of member 'SCALE'
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:17: error: making 'SCALE' static
    C:\Users\MrWorfi\Documents\Arduino\libraries\HX711-master/HX711.h:17: error: ISO C++ forbids in-class initialization of non-const static member 'SCALE'
    test_assemblage.ino: In function 'void keypadEvent(KeypadEvent)':
    test_assemblage:148: error: 'Key::KeyState' is not a class or namespace
    Dernière modification par Notofino ; 19/04/2017 à 19h40.

  26. #25
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    et je rajoute sa
    Code:
    case Key::KeyState::PRESSED:

  27. #26
    sandrecarpe

    Re : Erreur arduino (GSM, keypad, ...)

    Chez moi, avec l'IDE Arduino, ce code compile.

    Code:
    #include <Keypad.h>
    #include <Password.h>
    #include <GSM.h>
    #include <Ethernet.h> 
    
    const byte ROWS = 4; // 4 lignes
    const byte COLS = 3; // 3 colonnes
    // Position des touches
    const char keys[ROWS][COLS] = {
      {'1','2','3'},
      {'4','5','6'},
      {'7','8','9'},
      {'*','0','#'}
    };
    
    byte rowPins[ROWS] = {0,1,7,8}; // Pin utilisés pour les lignes
    byte colPins[COLS] = {A1,A2,A3}; // Pin utilisés pour les colonnes
    
    Keypad keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
    
    Password password1("123"); // Le code du foyer 1
    Password password2("456"); // Le code du foyer 2
    Password password3("789"); // Le code du foyer 3
    
    void setup() 
    {
      Serial.begin(9600);
      keypad.addEventListener(keypadEvent); 
    }
    
    void loop()
    {
      keypad.getKey();
    }
    
    
    void keypadEvent(KeypadEvent eKey){
      switch (keypad.getState()){
      case Key::KeyState::PRESSED:
        Serial.print("Pressed: ");
        Serial.println(eKey);
        switch (eKey){
        case '*':
          //checkPassword();
          break;
        case '#':
          password1.reset();
          password2.reset();
          password3.reset();
          break;
        default:
          password1.append(eKey);
          password2.append(eKey);
          password3.append(eKey);
        }
      }
    }

    Avec quelques warnings :
     Cliquez pour afficher

  28. #27
    Notofino

    Re : Erreur arduino (GSM, keypad, ...)

    Merci !

    Il a reussis a faire ce qu'il voulais avec les mot de passe on verra au moment de l'assemblage de tous les programme de chacun

Discussions similaires

  1. Erreur skech arduino
    Par boy30 dans le forum Électronique
    Réponses: 10
    Dernier message: 19/05/2015, 11h42
  2. Erreur Arduino UNO : avrdude: stk500_getsync(): not in sync
    Par invitec42036d7 dans le forum Électronique
    Réponses: 34
    Dernier message: 17/05/2015, 20h02
  3. erreur 'SoftwareSerial' does not name a type sous arduino 1.0.5
    Par Thedie dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 18/12/2014, 14h19
  4. [ARDUINO UNO] Où est l'erreur ?
    Par Peeck dans le forum Électronique
    Réponses: 2
    Dernier message: 02/09/2014, 18h55
  5. erreur de compilation arduino
    Par kaky951357 dans le forum Électronique
    Réponses: 3
    Dernier message: 15/01/2014, 19h26
Découvrez nos comparatifs produits sur l'informatique et les technologies.