Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Arduino] Problème communication esp8266-01 et due

Aucun retour de la part de l'esp8266

Sujet résolu
    1 août 2019 à 14:22:37

    Bonjour à tous,

    Si je viens vous demander de l'aide aujourd'hui c'est parce que je n'arrive pas à utiliser mon esp8266 alors que ca fait plusieurs mois que je cherche, quand je lui envois des commandes AT (via mon arduino due) il ne me renvoie rien ou des carrés qui ne s'arrête pas de défilé, j'ai essaye plein de tuto mais aucun n'a résolu mon problème (je configure mon esp en 115200 bauds) 

    Pouvez vous m'aider?

    Merci d'avance 

    -
    Edité par Ana'GamesPrint 1 août 2019 à 16:06:09

    • Partager sur Facebook
    • Partager sur Twitter
      2 août 2019 à 1:02:13

      Bonjour,

      Essaye de changer la vitesse du port de l'esp à 9600 bauds pour les commandes AT ou dans le cas des défilements permanent à 74880 bauds qui est la vitesse à laquelle les messages s'affichent lors du boot. S'il y a des redémarrages en boucle la raison et le mode de boot devraient être affichés sous cette forme:

      ets Jan 8 2013, rst cause:2, boot mode: (1,6)

      Pourrais tu également préciser quelles broches de l'esp tu as connectées et à quoi ? 

      • Partager sur Facebook
      • Partager sur Twitter
        2 août 2019 à 9:23:16

        Merci de ta réponse mais ca ne fonctionne toujours pas... Par contre aujourd'hui je n'ai pas eu les carrés lors des essais

        Pour le branchement j'utilise (je met sur le RX1 et TX1 du due)

        J'ai aussi vu que parfois il fallait brancher  RST À RST de l'arduino mais rien y fait

        En script j'utilise ou celui de

         https://www.les-electroniciens.com/videos/arduino-ep16-installation-du-module-wifi-esp8266

        ou un programme vide (Mais je me met en serial 0)

        ou un script "bascule" (li serial et envoie sur serial1 et inversement)

        Si toute fois vous me répondais avant lundi, sachez que je ne pourrais pas effectué de test

        • Partager sur Facebook
        • Partager sur Twitter
          8 août 2019 à 0:43:17

          Tu ne sais pas ce que tu as modifié (programme et/ou branchements) entre le moment où ça affichait quelque chose et le moment où ça n'affiche plus rien ?

          Quel port USB de l'arduino est utilisé ? Parce que dans le code, Serial ne fonctionne que pour le "Programming port" et SerialUSB pour le "native port" (avec une boucle while supplémentaire pour attendre que le port soit activé). 

          Ana'GamesPrint a écrit:

          J'ai aussi vu que parfois il fallait brancher  RST À RST de l'arduino mais rien y fait

           Non, ce n'est pas la peine. 

          ou un programme vide (Mais je me met en serial 0)

          C'est un peu risqué, parce que dans ce cas les 2 TX et les 2 RX doivent être connectés ensemble (au lieu de croiser RX et TX pour faire communiquer l'arduino avec l'ESP comme sur ton schéma) et lors du boot de l'arduino, l'ESP et l'arduino peuvent essayer de changer TX en même temps à des niveaux différents et provoquer un court-circuit qui peut griller les broches TX de chaque carte.

          La technique qui est parfois utilisé pour éviter ça consiste à maintenir la puce principale de l'arduino en mode reset, en connectant la broche RST de l'arduino à la masse. Mais je ne sais pas si ça fonctionne aussi avec le DUE.

          ou un script "bascule" (li serial et envoie sur serial1 et inversement)

          C'est bien dans ce programme que tu as essayé de changer la vitesse du port série sur Serial1 (9600, 74880 et 115200) ? 

          Accessoirement le DUE devrait permettre de faire des trucs plus avancés comme changer automatiquement la vitesse de Serial1 en fonction de la vitesse sélectionnée sur le PC. Par exemple:

          #include <Arduino.h>
          
          static const uint32_t pinDTR_ESP_GPIO0 = 6;
          static const uint32_t pinRTS_ESP_CH_PD = 7;
          
          uint32_t baudrate = 115200, new_baudrate;
          
          void setup() {
            SerialUSB.begin(115200);
            Serial1.begin(baudrate);
           
            pinMode(pinDTR_ESP_GPIO0, OUTPUT);
            pinMode(pinRTS_ESP_CH_PD, OUTPUT);
          
            while(!SerialUSB) 
              ;  
          }
          
          void loop() {    
              digitalWrite(pinRTS_ESP_CH_PD, !SerialUSB.rts());
              digitalWrite(pinDTR_ESP_GPIO0, !SerialUSB.dtr());
          
              new_baudrate = SerialUSB.baud();  
              if (new_baudrate != baudrate) {               
                baudrate = new_baudrate;
                Serial1.end();     
                Serial1.begin(baudrate); 
              }    
              
              while(Serial1.available()) {      
                SerialUSB.write(Serial1.read());
              }
              while(SerialUSB.available()) {      
                Serial1.write(SerialUSB.read());
              }    
          }

          J'ai testé un code similaire sur un Arduino M0 Pro (avec du code en plus pour configurer un port série sur les broches 10 et 11), mais pas sur un due. Il faut connecter l'arduino sur le port USB natif, pour que les signaux RTS et DTR du port RS-232 virtuel soient accessibles. C'est le logiciel qui contrôle le port série côté PC qui va changer ces signaux, et des outils comme esptool s'en servent pour changer le mode de boot de l'esp8266 et le redémarrer, donc la broche DTR est connectée à GPIO0 et la broche RTS à CH_PD comme indiqué dans le code.

          • Partager sur Facebook
          • Partager sur Twitter
            8 août 2019 à 16:17:38

            Merci de ta réponse mais ca ne fonctionne toujours pas, cependant il y a du nouveau:

            A 9600 bds il me des carrés qui défilent lentement 

            A 74880 bds, des carrés et des caractères qui défilent rapidement 

            Et à 115200 bds, des carrés et caractères qui défilent rapidement (le pc n'arrive pas à suivre(mais bon la je suis sur xp))

            Je n'ai pas pu tester le programme car les drivers pour le Native Port ne fonctionne pas et je n'arrive pas à les trouves 

            J'ai installé un logiciel pour lire le port série et voilà ce qu'il me sort (apparemment il y a bien transfert de données même quand je n'envoie rien mais je te laisse voir, je pense que tu sauras mieux me dire!):

            -
            Edité par Ana'GamesPrint 8 août 2019 à 16:38:17

            • Partager sur Facebook
            • Partager sur Twitter
              9 août 2019 à 1:01:27

              Quand ça affiche les carrés, comment est connecté l'esp8266 à l'arduino (quelles broches de l'esp sont connectées à quelles broches du due) ? Et s'il est connecté via RX1 et TX1, est-ce que tu changes bien la vitesse à la fois dans Serial.begin(), dans Serial1.begin() au niveau du code du programme de bascule ET dans le moniteur série de l'arduino (en bas à droite de la fenêtre) ? 

              Je ne sais pas ce qu'est censé afficher le logiciel que tu as installé, mais ça n'aide pas à comprendre le problème.

              Pour les drivers, ils sont déjà dans le répertoire "Program Files/Arduino/Drivers", c'est le fichier arduino.inf, mais il semble qu'il puisse y avoir un problème avec XP. D'après cette discussion: https://forum.arduino.cc/index.php?topic=131100.0 il faut éditer le fichier .inf et enlever le &MI_00 à la fin de la ligne:

              %due.sketch.name%=DriverInstall, USB\VID_2341&PID_003E&MI_00
              

              sous "[DeviceList]" (il y a la même ligne dans d'autres sections, mais c'est pour les architectures 64bits).

              Et si je me souviens bien, pour installer un driver, on peut ensuite faire un clic droit sur le fichier .inf dans l'explorateur et cliquer sur l'option installer qui s'affiche dans le menu contextuel. Si ça ne fonctionne pas, il faudra aller dans le gestionnaire de périphériques, trouver le périphérique correspondant au port natif, puis changer le driver en sélectionnant le fichier arduino.inf.

              • Partager sur Facebook
              • Partager sur Twitter
                9 août 2019 à 11:40:07

                Merci beaucoup de m'avoir aider car ça fais quelques mois que je cherche à comprendre et finalement c'était bien que je ne mettais pas les mêmes vitesses (9600 -> TX0 & RX0 et d'autres pour TX1 & RX1) mais finalement en mettant tout à 115200 bauds c'est bon :D!

                Je ne suis tout de même pas arriver à installer les drivers (à chaque fois j'ai échec mais bon, c'est pas grave ^^ )

                Je me sens toute fois bête à ce que la réponse soit juste là :euh: , mais je te remercie beaucoup pour ton aide!

                • Partager sur Facebook
                • Partager sur Twitter

                [Arduino] Problème communication esp8266-01 et due

                × 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