使用esp8266编程arduino时出现问题

时间:2015-11-25 12:08:11

标签: arduino-uno esp8266

使用arduino uno和esp8266进行编程时遇到了一些问题。 我已将arduino uno与esp8266模块连接。

当我运行一个空程序来测试esp8266及其命令时,我得到了正确的结果。

手动输入带有结果的命令: enter image description here

当我在串行监视器命令AT中手动给出时,它为所有命令提供了正确的结果。

但是当我尝试使用程序进行自动化时,我不会得到输出,因为当我在串行监视器上手动输入时,请检查我的代码。

void setup() {      
    Serial.begin(115200);
}

void loop() {    
    delay(5000);
    Serial.println("AT+RST");
    while(Serial.available())
    {
        String s=Serial.readString();
        Serial.println(s);
    }  
}

我的输出是: enter image description here

我的下一个节目

#include<SoftwareSerial.h>

SoftwareSerial esp8266(2,3);

void setup() { 
    Serial.begin(115200);
    esp8266.begin(115200);
    delay(1000);  
}

void loop() {
    delay(2000);
    String command="AT+RST";
    esp8266.println(command);
    if(esp8266.available())
    {
        while(esp8266.available())
        {
            char c=esp8266.read();
            Serial.write(c);
        }
    }
}

这个程序的结果在串行监视器上没什么。

我希望将程序中的命令作为字符串获取,以便在充当Web服务器时可以执行find或其他字符串操作。

有人请帮帮我。

2 个答案:

答案 0 :(得分:0)

尝试使用换行符和回车符运行相同的命令。我在AT模式下看到一些ESP8266模块忽略了命令。

// This should give you "OK" as a sanity check
Serial.print("AT\r\n");
// And then you can run this after
Serial.print("AT+RST\r\n");

答案 1 :(得分:0)

做一件事

#include<SoftwareSerial.h>

SoftwareSerial esp8266(2,3);

void setup() { 
    Serial.begin(115200);
    esp8266.begin(115200);
    delay(1000);  
}

void loop() {
    delay(2000);
String command="AT+RST\r\n";
esp8266.println(command);
c=0;
while(!esp8266.find("reset"))
{
    c++;
    if(c>100)
    {
        break;
     }
}
String Response=esp8266.readString();
Serial.write(Response);

}

尝试这个它肯定会工作,如果它没有,那么请交换arxino上的rx和tx引脚而不是代码然后它将工作