Skip to main content
Formatted code correctly
Source Link
Anonymous Penguin
  • 6.4k
  • 10
  • 34
  • 62
#include <SoftwareSerial.h>  
 SoftwareSerial esp8266(2,3); // make RX Arduino line is pin 2, make TX Arduino line is pin 3.  
                             // This means that you need to connect the TX line from the esp to the Arduino's pin 2  
                             // and the RX line from the esp to the Arduino's pin 3  
  
void setup()  
 { 
  
   Serial.begin(9600); 
  
   esp8266.begin(9600); // your esp's baud rate might be different  
 }  
  
void loop()  
 { 
  
   if(esp8266.available()) // check if the esp is sending a message
    {
  {  
     while(esp8266.available()) 
  
    {   {
            // The esp has data so display its output to the serial window 
   
          char c = esp8266.read(); // read the next character. 
  
           Serial.write(c); 
  
    }   }
  }  }
    if(Serial.available()) 
  
   { 
  
       // the following delay is required because otherwise the arduino will read the first letter of the command but not the rest 
  
       // In other words without the delay if you use AT+RST, for example, the Arduino will read the letter A send it, then read the rest and send it 
  
       // but we want to send everything at the same time. 
  
       delay(1000); 
   
      String command=""; 
  
       while(Serial.available()) // read the command character by character 
  
    {   {
            // read one character 
  
           command+=(char)Serial.read(); 
  
    }   }
        esp8266.println(command); // send the read character to the esp8266  
  }  }
 } 

I am really struggling with this issue. Could you please help me ?

#include <SoftwareSerial.h>  
 SoftwareSerial esp8266(2,3); // make RX Arduino line is pin 2, make TX Arduino line is pin 3.  
                // This means that you need to connect the TX line from the esp to the Arduino's pin 2  
                // and the RX line from the esp to the Arduino's pin 3  
 void setup()  
 {  
   Serial.begin(9600);  
   esp8266.begin(9600); // your esp's baud rate might be different  
 }  
 void loop()  
 {  
   if(esp8266.available()) // check if the esp is sending a message   
  {  
    while(esp8266.available())  
    {  
    // The esp has data so display its output to the serial window   
     char c = esp8266.read(); // read the next character.  
     Serial.write(c);  
    }   
  }  
  if(Serial.available())  
   {  
    // the following delay is required because otherwise the arduino will read the first letter of the command but not the rest  
    // In other words without the delay if you use AT+RST, for example, the Arduino will read the letter A send it, then read the rest and send it  
    // but we want to send everything at the same time.  
    delay(1000);   
    String command="";  
    while(Serial.available()) // read the command character by character  
    {  
     // read one character  
     command+=(char)Serial.read();  
    }  
   esp8266.println(command); // send the read character to the esp8266  
  }  
 } 

I am really struggling with this issue. Could you please help me ?

#include <SoftwareSerial.h>  
SoftwareSerial esp8266(2,3); // make RX Arduino line is pin 2, make TX Arduino line is pin 3.  
                             // This means that you need to connect the TX line from the esp to the Arduino's pin 2  
                             // and the RX line from the esp to the Arduino's pin 3  
 
void setup()
{ 
    Serial.begin(9600); 
    esp8266.begin(9600); // your esp's baud rate might be different
}
 
void loop()
{ 
    if(esp8266.available()) // check if the esp is sending a message
    {
        while(esp8266.available()) 
        {
            // The esp has data so display its output to the serial window 
            char c = esp8266.read(); // read the next character. 
            Serial.write(c); 
        }
    }
    if(Serial.available()) 
    { 
        // the following delay is required because otherwise the arduino will read the first letter of the command but not the rest 
        // In other words without the delay if you use AT+RST, for example, the Arduino will read the letter A send it, then read the rest and send it 
        // but we want to send everything at the same time. 
        delay(1000); 
        String command=""; 
        while(Serial.available()) // read the command character by character 
        {
            // read one character 
            command+=(char)Serial.read(); 
        }
        esp8266.println(command); // send the read character to the esp8266
    }
}
Code added
Source Link

Here is my code

#include <SoftwareSerial.h>  
 SoftwareSerial esp8266(2,3); // make RX Arduino line is pin 2, make TX Arduino line is pin 3.  
                // This means that you need to connect the TX line from the esp to the Arduino's pin 2  
                // and the RX line from the esp to the Arduino's pin 3  
 void setup()  
 {  
  Serial.begin(9600);  
  esp8266.begin(9600); // your esp's baud rate might be different  
 }  
 void loop()  
 {  
  if(esp8266.available()) // check if the esp is sending a message   
  {  
   while(esp8266.available())  
   {  
    // The esp has data so display its output to the serial window   
    char c = esp8266.read(); // read the next character.  
    Serial.write(c);  
   }   
  }  
  if(Serial.available())  
  {  
   // the following delay is required because otherwise the arduino will read the first letter of the command but not the rest  
   // In other words without the delay if you use AT+RST, for example, the Arduino will read the letter A send it, then read the rest and send it  
   // but we want to send everything at the same time.  
   delay(1000);   
   String command="";  
   while(Serial.available()) // read the command character by character  
   {  
     // read one character  
    command+=(char)Serial.read();  
   }  
   esp8266.println(command); // send the read character to the esp8266  
  }  
 } 

I am really struggling with this issue. Could you please help me ?

I am really struggling with this issue. Could you please help me ?

Here is my code

#include <SoftwareSerial.h>  
 SoftwareSerial esp8266(2,3); // make RX Arduino line is pin 2, make TX Arduino line is pin 3.  
                // This means that you need to connect the TX line from the esp to the Arduino's pin 2  
                // and the RX line from the esp to the Arduino's pin 3  
 void setup()  
 {  
  Serial.begin(9600);  
  esp8266.begin(9600); // your esp's baud rate might be different  
 }  
 void loop()  
 {  
  if(esp8266.available()) // check if the esp is sending a message   
  {  
   while(esp8266.available())  
   {  
    // The esp has data so display its output to the serial window   
    char c = esp8266.read(); // read the next character.  
    Serial.write(c);  
   }   
  }  
  if(Serial.available())  
  {  
   // the following delay is required because otherwise the arduino will read the first letter of the command but not the rest  
   // In other words without the delay if you use AT+RST, for example, the Arduino will read the letter A send it, then read the rest and send it  
   // but we want to send everything at the same time.  
   delay(1000);   
   String command="";  
   while(Serial.available()) // read the command character by character  
   {  
     // read one character  
    command+=(char)Serial.read();  
   }  
   esp8266.println(command); // send the read character to the esp8266  
  }  
 } 

I am really struggling with this issue. Could you please help me ?

Source Link

Arduino with ESP8266

I have completed the circuit and code to interface ESP8266 module with Arduino UNO.

When i send AT,AT+RST from serial monitor the reply is correct .

But when i send AT commands to search WIFI networks (AT+CWLAP) & connect to WIFI (AT+CWJAP="SSID","password") the reply is ERROR.

But the IP address (may be default) is obtained as 192.168.4.1 when i send AT+CIFSR .

I am really struggling with this issue. Could you please help me ?