Arduino 阿杜伊诺+;无线ESP8266

Arduino 阿杜伊诺+;无线ESP8266,arduino,esp8266,Arduino,Esp8266,有人能帮我联系Arduino Uno和ESP8266-05吗 我只为测试响应编写了以下简单代码: #include <SoftwareSerial.h> SoftwareSerial esp8266(12, 13); void setup () { esp8266.begin(19200); Serial.begin(115200); } void loop () { char buffer[50]; esp8266.write("AT\r\n"

有人能帮我联系Arduino Uno和ESP8266-05吗

我只为测试响应编写了以下简单代码:

#include <SoftwareSerial.h>

SoftwareSerial esp8266(12, 13);

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

void loop () {
    char buffer[50];
    esp8266.write("AT\r\n");
    esp8266.readBytes(buffer, sizeof(buffer));
    Serial.println(buffer);
    delay(1000);
}
我不知道出了什么问题,因为当我打开Arduino和ESP模块时,我在笔记本上看到一个名为AI-Thinker012568的新wifi网络,我可以连接到这个网络

我想,当我打开ESP模块时,我应该得到一个“就绪”响应,但我只得到一些垃圾数据。所以,对于“AT”命令,我应该得到一个“OK”响应

我搜索了很多字符集(ASCII vs UTF)的问题,但没有任何结果

我尝试了很多组合,从一个串口到另一个串口读取(
read()
)和写入(
write()
print()
println()
)数据,但只有一些垃圾响应或没有任何响应。。。我也试过各种波特率

附加问题:当我搜索一些手册时,我只找到了带有ESP8266-01的手册,那么,ESP8266-05是否比第一个版本更差,或者有什么问题

编辑:

当我有arduino的简单代码时,它只从一个串行端口向第二个端口发送数据:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(12, 13); // RX, TX

void setup () {
    Serial.begin(9600);
    while (!Serial) {}
    Serial.println("€");

    mySerial.begin(9600);
}

void loop () {
    mySerial.listen();
    int i = 0;
    while (mySerial.available()) {
        char c = mySerial.read();
        Serial.write(c);
        i++;
    }
    if (i > 0) {
        Serial.println();
    }        


    int j = 0;
    while (Serial.available()) {
        char c = Serial.read();
        mySerial.write(c);
        Serial.print(c);
        j++;
    }
    if (j > 0) {
        Serial.println();
        mySerial.println();
    }
}
第一行表示“€”字符,仅用于测试。下一行是ESP微芯片的初始响应。正如我在ESP文档中读到的,当ESP微芯片启动时,我应该会得到一些关于版本和
ready
word的数据。这句话的意思是,ESP微芯片是死亡,还是阅读此响应有问题


然后,当我发送“AT”命令时,我没有得到任何响应:(

这是一个油炸板的迹象。如果该板曾经收到5伏电压,或者在arduino上的3.3伏引脚上运行了很长一段时间,则该板很可能已死亡

从编程的角度来看,我已经看到
String line=mySerial.readStringUntil(“\n”)
工作得很好。然后可以使用and if语句检查行是否
OK
ERROR
。如果此实现仍然以9600的波特率返回垃圾,则电路板已死亡

软件串行在波特率为115200时不工作,所以不要尝试。确保电路板的波特率更改为9600(我看到您已经这样做了),并保持不变!这不是问题所在

这些电路板对其电源输入非常敏感。在3.3伏电压下提供5伏或太小的电流都会损坏它们。相信我,我只需将它们连接到arduino上的3.3伏电源插脚上,而不知道发生了什么,就损坏了其中的4个电路板

我给你的代码应该有用;我在一个项目中完美地使用了它


希望这有帮助:)

您在软件串行上尝试过其他波特率吗?这里也有同样的问题。我也可以为ESP8266-01确认这一点。格雷戈尔:是的,我尝试了所有波特率,这些波特率在串行监视器下拉列表中定义。我为连接Arduino ESP尝试了这些波特率。您是否尝试重新刷新ESP?您编写了
所有波特率
,但一些ESP的波特率很奇怪,这是不标准的。它接近74880或74560你也试过吗?
#include <SoftwareSerial.h>

SoftwareSerial mySerial(12, 13); // RX, TX

void setup () {
    Serial.begin(9600);
    while (!Serial) {}
    Serial.println("€");

    mySerial.begin(9600);
}

void loop () {
    mySerial.listen();
    int i = 0;
    while (mySerial.available()) {
        char c = mySerial.read();
        Serial.write(c);
        i++;
    }
    if (i > 0) {
        Serial.println();
    }        


    int j = 0;
    while (Serial.available()) {
        char c = Serial.read();
        mySerial.write(c);
        Serial.print(c);
        j++;
    }
    if (j > 0) {
        Serial.println();
        mySerial.println();
    }
}
â-¬

ÿ
q·$aã
Å% ð´
D9$kvKþµ¿`ÈÛ¯h:¤ó[Y \B¡H$èðÍÝ׸Jø
å
ü+¡
ð