Go Down

Topic: Connecting ESP01 (8266) to arduino uno (Read 245 times) previous topic - next topic

INFO_inas19

Hi
I'am trying to connect the esp01 to the arduino uno
when i use the AT commenad in the sereil moniteur it's responding , but when i upload the code in the arduino uno the esp not respond.
I need the help please.

Juraj

You can't write an Arduino sketch if you didn't learn programming. Not the language, but the concepts of programming - algorithms and data types.

INFO_inas19

I have traying that but the same probleme and  and it stay looping without stopping

Juraj

You can't write an Arduino sketch if you didn't learn programming. Not the language, but the concepts of programming - algorithms and data types.

INFO_inas19

This is the code:

    #include <SoftwareSerial.h>
    #define DEBUG true
   SoftwareSerial  esp8266(10,11);
    // broche 10 de l'arduino en RX et broche 11 en TX //j'utilise (0,1)
    // connectez votre esp8266 e mode croisé RX<=>TX
    void setup()
    {
      Serial.begin(9600);  // com serie a 9600 bauds
      esp8266.begin(9600); // esp8266 a 9600 bauds   
      sendData("AT+RST\r\n",2000,DEBUG); // reinitialise le module esp8266
      sendData("AT+CWMODE=2\r\n",1000,DEBUG); // configure en TCP
      sendData("AT+CWSAP?\r\n",2000,DEBUG); // recupere nom et mot de passe
      sendData("AT+CIFSR\r\n",1000,DEBUG); // recupere l'adresse IP
      sendData("AT+CIPMUX=1\r\n",1000,DEBUG); // configure en connexion multiple
      sendData("AT+CIPSERVER=1,80\r\n",1000,DEBUG); // ouvre le serveur sur le port 80
    }
     
    void loop()
    {
      if(esp8266.available()) // teste si l'ESP envoi un message 
      {
        Serial.println("**********************LOOP**********************");
        esp8266.print("***ok***");
        if(esp8266.find("+IPD,"))
        {
         delay(1000);     
         int connectionId = esp8266.read()-48;
         // soustrait 48 parceque la fonction read() retourne la valeur ASCII decimal et O
         // la premiere valeur decimale commence a 48                                       
         
         String webpage = "<h1>HELLO</h1><h2>WORLD</h2><button>LED1</button>";     
         String cipSend = "AT+CIPSEND=";
         cipSend += connectionId;
         cipSend += ",";
         cipSend +=webpage.length();
         cipSend +="\r\n";         
         sendData(cipSend,1000,DEBUG);
         sendData(webpage,1000,DEBUG);         
         webpage= "<button>LED2</button>";         
         cipSend = "AT+CIPSEND=";
         cipSend += connectionId;
         cipSend += ",";
         cipSend +=webpage.length();
         cipSend +="\r\n";         
         sendData(cipSend,1000,DEBUG);
         sendData(webpage,1000,DEBUG);     
         String closeCommand = "AT+CIPCLOSE=";
         closeCommand+=connectionId; // fermer la connexion
         closeCommand+="\r\n";         
         sendData(closeCommand,3000,DEBUG);
        }
      }
    }         
    String sendData(String command, const int timeout, boolean debug)
    {
        String response = "";       
        esp8266.print(command); // envoi le caractere a l' esp8266   
       
        long int time = millis();       
        while( (time+timeout) > millis())
        {
          while(esp8266.available())
          {         
            Serial.println("***********************ESP READ************************");
           char c = esp8266.read(); // lit le caracter suivant
            response+=c;
          } 
        }       
        if(debug)
        {
            Serial.println("************************Avant**response***********************"); 

          Serial.print(response);
            Serial.println("************************Aprés**response***************************"); 

        }       
        return response;
    }
     

INFO_inas19

The 2nd code that I was used :

#include <SoftwareSerial.h>

SoftwareSerial Ser(0, 1);

String NomduReseauWifi = "LG K4 (2017)"; // Garder les guillements
String MotDePasse      = "password";//Garder les guillements

/****************************************************************/
/*                             INIT                             */
/****************************************************************/
void setup()
{
 Serial.begin(115200);
 Ser.begin(115200);
 initESP8266();
}
/****************************************************************/
/*                        BOUCLE INFINIE                        */
/****************************************************************/
void loop()
{
  while(Ser.available())
  {    
   Serial.println("*****************LOOP******************************");
    Serial.println(Ser.readString());
  }  
}
/****************************************************************/
/*                Fonction qui initialise l'ESP8266             */
/****************************************************************/
void initESP8266()
{  
 Serial.println("**********************************************************");  
 Serial.println("**************** DEBUT DE L'INITIALISATION ***************");
 Serial.println("**********************************************************");  
 envoieAuESP8266("AT+RST");
 recoitDuESP8266(2000);
 Serial.println("**********************************************************");
 envoieAuESP8266("AT+CWMODE=3");
 recoitDuESP8266(5000);
 Serial.println("**********************************************************");
 envoieAuESP8266("AT+CWJAP=\""+ NomduReseauWifi + "\",\"" + MotDePasse +"\"");
 recoitDuESP8266(10000);
 Serial.println("**********************************************************");
 envoieAuESP8266("AT+CIFSR");
 recoitDuESP8266(1000);
 Serial.println("**********************************************************");
 envoieAuESP8266("AT+CIPMUX=1");  
 recoitDuESP8266(1000);
 Serial.println("**********************************************************");
 envoieAuESP8266("AT+CIPSERVER=1,80");
 recoitDuESP8266(1000);
 Serial.println("**********************************************************");
 Serial.println("***************** INITIALISATION TERMINEE ****************");
 Serial.println("**********************************************************");
 Serial.println("");  
}

/****************************************************************/
/*        Fonction qui envoie une commande à l'ESP8266          */
/****************************************************************/
void envoieAuESP8266(String commande)
{  Serial.println("***********************CMD********");
 Ser.println(commande);
}
/****************************************************************/
/*Fonction qui lit et affiche les messages envoyés par l'ESP8266*/
/****************************************************************/
void recoitDuESP8266(const int timeout)
{
 String reponse = "";
 long int time = millis();
 while( (time+timeout) > millis())
 {
   while(Ser.available())
   {
     Serial.println("***********************rep********");
     char c = Ser.read();
     reponse+=c;
   }
 }
 Serial.print(reponse);  
}

Juraj

at what baud rate is the AT firmware set to work? did you run AT+UART_DEF=9600,8,1,0,0? or it is still at default 115200 baud?
You can't write an Arduino sketch if you didn't learn programming. Not the language, but the concepts of programming - algorithms and data types.

INFO_inas19

Thank you for your answers ; when I reconfigure the baud it's work .

Thank's.

Go Up