Partage
  • Partager sur Facebook
  • Partager sur Twitter

Une Histoire de String ;)

    18 avril 2019 à 12:05:26

    Bonjour, voici mon petit problème : 

    Je dois connecter mon NodeMCU à ma base de donnée sur le site Firebase. J'utilise donc une bibliotèque me permettant de faire des Get, Set, Erase ....

    Sauf que le Path que je met dans Firebase.getInt('Path')  est une variable d'une trentaine de caractères. J'ai donc choisi d'utilisé une variable String pour utilisé cette chaine de caractère. Mais quand je met cette variable dans la fonction Get, je n'ai rien en retour, alors que si je met directement la chaine de caractère dans le code, ca marche.

    Enfaite, je ne sais pas si j'utilise bien les variable string.

    à noté que dans le moniteur série, quand je lui demande de m'affiché le UID, il maffiche la chaine de caractère que je lui ai envoyer ( normal quoi),

    Puis il fait une deuxième ligne qui est vide. j'en ai déduit qui fait un tableau de chaine de caractère et qui a préparé la seconde ligne mais je sais pas comment gérer ca.

    En esperant avoir été assez clair 

    Clément

    Je vous met mon code Ci-dessous : 

    //déclaration des bibliotèques
        #include <FirebaseArduino.h> 
        #include <ESP8266WiFi.h>
    //Déclaration des Identifiants Firebase
        #define FIREBASE_HOST "XXXXXXXX.firebaseio.com"
        #define FIREBASE_AUTH "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    //Déclaration des Identifiants WIFI    
        #define WIFI_SSID "XXXXXXXX"
        #define WIFI_PASSWORD "XXXXXXXXXXXXXXXXX"
    //Déclaration des variables    
        String UID;
        char aquisition;
        String commande;
    //Initialisation
        void setup()
        {
            Serial.begin(9600);                      //Vitesse de Communication avec la carte Mega ou l'ordinateur
            delay(5000);                             //delay pour ouvrir le moniteur série
            WiFi.begin(WIFI_SSID, WIFI_PASSWORD);    //Connection au réseau WIFI
            Serial.print("connecting");              
            while (WiFi.status() != WL_CONNECTED)    //En attente de connection
                    {    
                      Serial.print(".");    
                      delay(500);
                    }    
            Serial.println();
            Serial.print("connected: ");             //Connection effectué
            Serial.println(WiFi.localIP());          //Adresse IP du microcontroleur
            Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);    //Connection à Firebase
        }
    //Programme Exécuté   
        void loop() 
        {
            while (Serial.available())  // Si réception de données sur le Port Série
                    {
                        aquisition = Serial.read(); //Lecture de chaque caractère par une variable Char
                        UID = UID + aquisition;     //Qui retranscrit un à un les caractère à la variable String
                        delay(50);                  //Délais de réception de chaque caractère
                    }   
            if(Serial.available() == 0 && UID != 0) //Quand Reception terminé
                    {
                      Serial.println(UID);              //Montré le UID
                      delay(200);
                      commande = Firebase.getInt(UID);  //Assigné à la String commande la valeur du Path UID
                      delay(200);
                      Serial.println(commande);         // Montré la variable commande
                      delay(200);
                      UID = "" ;                        // Remise à zéro des String
                      commande = "";                    // Remise à zéro des String
                      Serial.println("clear");          // Annonce la fin de la boucle
                    }
        }

    -
    Edité par ClémentCardot1 18 avril 2019 à 12:10:26

    • Partager sur Facebook
    • Partager sur Twitter
      18 avril 2019 à 23:18:25

      Bonjour,

      Dans le moniteur série, en bas à droite, dans le premier menu déroulant, as tu mis "Pas de fin de ligne" ? Si ce n'est pas le cas, tu dois peut-être filtrer les caractères correspondants ('\r' et '\n') avant de la passer à la fonction getInt.

      • Partager sur Facebook
      • Partager sur Twitter

      Une Histoire de String ;)

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown