3

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 .

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
    }
}
2
  • 1
    Your serial reading code, with that really horrible delay, is not good. You should read and digest this: hacking.majenko.co.uk/reading-serial-on-the-arduino Commented Jul 15, 2015 at 12:17
  • You want to use AT+CWSAP="SSID","password",1,0 Commented Jul 18, 2015 at 16:24

1 Answer 1

6

Finally i found the solution .

Send AT+CWMODE=1 first , then all other commands working fine.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.