Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème commandes AT dans le setup()

Arduino due et module LoRa

Sujet résolu
    1 avril 2019 à 16:05:05

    Bonjour à tous,

    Je crée un programme pour paramétrer un module LoRa dans le setup() au démarage et dans le loop() via le moniteur série si besoin.

    Le paramétrage dans le moniteur série ne pose pas de problème. Les commandes AT sont bien interprétées et les réponses sont correctes.

    Mon problème est dans le setup(). Malgré la bonne syntaxe de la commande AT dans le code, le module LoRa me retourne un "command not found".

    Je soupçonne qu'un caractère "espace" soit ajouté automatiquement après le égal de ma chaîne de caractère qui serait la source que cette réponse du module LoRa.

    Vous pouvez voir ci-dessous que lorsque je tape la dite commande dans le moniteur série, le module me répond correctement.

    Quelqu'un aurait-il une idée? déjà fait face à cette situation?

    Merci d'avance pour votre aide. 


    Sid

    • Partager sur Facebook
    • Partager sur Twitter
      1 avril 2019 à 20:58:50

      Bonjour,

      Essaye de remplacer:

      Serial1.println("AT+RFTX=HELP");

      par 

      Serial1.print("AT+RFTX=HELP\n");

      Le caractère de fin de ligne attendu par ce module est probablement LF (`\n`) et println utilise CRLF ("\r\n"), et le "\r" supplémentaire est considéré comme faisant partie de la sous-commande et donc "HELP\r" est recherché au lieu de "HELP". Comme le module doit découper "AT+RFTX=" et "HELP" pour analyser la commande, il est possible que l'espace ne soit qu'un "défaut" d'affichage du message d'erreur au moment de réassembler la commande et la sous-commande et non dû à un espace qui serait inséré par l'arduino (il n'y a pas de raison qu'il l'insère pile à cet endroit à chaque fois).

      -
      Edité par alexisdm 1 avril 2019 à 21:00:47

      • Partager sur Facebook
      • Partager sur Twitter
        2 avril 2019 à 9:12:39

        Merci Alexisdm pour ta réponse!

        Malheureusement le problème n'est pas résolu car j'ai également le "command not found" en retour du module.

        Cependant j'ai tenté d'ajouter un delay(x) après la commande AT et cela a fonctionné. J'ai pu l'affiner à 150ms. En dessous, je faisais face à l'erreur de nouveau.

        Après cette découverte j'ai testé les deux syntaxes (println et print + \n) et les deux fonctionnent correctement!

        Merci pour ton aide et bonne journée

        Sid

        </void setup() {

          // initialize both serial ports:

          Serial.begin(38400); 

          Serial1.begin(38400);

          Serial.println("LoRa module configuration");

          Serial.println("AT+RF=HELP");

          Serial1.println("AT+RF=HELP");

          delay(150);

        }

        void loop() {

        Serialdatahandling();

        }

        void Serialdatahandling(){

          // read from port 1, send to port 0:

          if (Serial1.available()) {

            int inByte = Serial1.read();

            Serial.write(inByte);

          }

          // read from port 0, send to port 1:

          if (Serial.available()) {

            int inByte = Serial.read();

            Serial.write(inByte);

            Serial1.write(inByte);

          }

        }>

        • Partager sur Facebook
        • Partager sur Twitter

        Problème commandes AT dans le setup()

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown