首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino + WiFi ESP8266

Arduino + WiFi ESP8266
EN

Stack Overflow用户
提问于 2015-12-20 14:24:07
回答 1查看 2K关注 0票数 0

有人能帮我在Arduino Uno和help 8266-05之间交流吗?

我有这段简单的代码,只用于测试响应:

代码语言:javascript
复制
#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);
}

但是响应是一些垃圾(在我的PC上的串行监视器中):

1_Q¨ (X1JXþUÉÁEóAñ¡5%¥4¡1!!1%%¡5%¡4¡1¡!!G-]5

如果我使用简单的电阻分压器或电平移位器(3V-5V-TTL-Bi-directional-Logic-Level-Converter-For-Arduino-p-951182.html),这种行为是相同的。

代码语言:javascript
复制
Connection:
Arduino - esp
pin 12 - pin Tx
pin 13 - resistor divider 10k/20k - pin Rx

OR
Arduino - (HV) level shifter (LV) - esp
pin 12 - TxO - TxI - pin Tx
pin 13 - RxI - RxO - pin Rx

ESP reset pin - not connected

我不知道出了什么问题,因为当我打开Arduino和ESP模块时,我在笔记本上看到一个名为AI-THINKER_012568的新wifi网络,我可以连接到这个网络。

我想,当我打开ESP模块,我应该得到一个‘准备’的反应,但我只得到一些垃圾数据。所以,对于“AT”命令,我应该得到“OK”的回应.

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

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

附加问题:当我搜索一些手册时,我只找到了带有‘ve 8266-01的手册,那么,’ve 8266-05比第一个版本差还是有什么问题?

编辑:

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

代码语言:javascript
复制
#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微芯片时,我得到了这样的信息:

代码语言:javascript
复制
â-¬

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

第一行是“欧元”字符,只是为了测试。下一步是ESP微芯片的初始响应。当我阅读ESP文档时,当ESP微芯片启动时,我应该会得到一些有关版本和ready word的数据。这意味着,ESP微芯片是死亡,还是只有读这个反应有什么问题?

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

EN

回答 1

Stack Overflow用户

发布于 2019-01-04 16:32:45

这是一块油炸板的标志。如果董事会收到了5V,或者是从arduino上的3.3V引脚跑了很长一段时间,很有可能,董事会已经死了。

从编程的角度来看,我已经看到String line = mySerial.readStringUntil("\n");运行得很好。然后,您可以使用and语句检查该行是OK还是ERROR。如果这个实现仍然以(波特率为9600 )返回垃圾,那么板就死了。

软件串行不能以115200的波特率工作,所以不要尝试它。确保董事会的波特率被更改为9600 (我看到你已经做了),并保持在那里!这不是问题所在。

这些板对它们的功率输入非常敏感。在3.3V时给予5V或太小的电流会破坏它们。相信我,我只是把它们连接到arduino上的3.3V电源引脚,而没有意识到发生了什么,我毁了其中的4个。

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

希望这会有所帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34381982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档