【发布时间】:2020-12-08 10:51:25
【问题描述】:
我是 arduino 的新手,我目前正在尝试将 ESP8266-01 (https://www.reichelt.de/entwicklerboards-esp8266-wifi-modul-debo-esp8266-p192142.html) 与我的 arduino nano 连接起来。我使用这个 (https://www.youtube.com/watch?v=ji71cHaGW8w) 作为教程,我的接线几乎相同。
ESP8266-01 upload wiring
我可以毫无问题地上传。唯一的区别是,直接使用3V3 没有任何额外的组件。我测量了120mA(稳定),它们应该足够了。
这是我的 ESP8266-01 代码:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.write("Hello from ESP");
delay(2000);
}
上传到 ESP8266-01 后,我将接线更改为 this(除了我将 Vcc 直接连接到 3V3)。这是我的 Arduino 代码:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
delay(5000);
}
void loop(){
String IncomingString="";
boolean StringReady = false;
while (mySerial.available()){
IncomingString=mySerial.readString();
StringReady= true;
}
if (StringReady){
Serial.println("Received String: " + IncomingString);
}
}
再一次,上传没问题,但我没有任何生命迹象。 ESP8266-01 LED 不闪烁(仅在上传时)并且串行监视器中没有输出。我已经将 ESP8266-01 换成了另一个,但没有任何改变。
编辑: 我用眨眼和接入点示例测试了 ESP8266-01,它没有任何问题。
【问题讨论】:
-
您好!我会尝试使用另一个程序。您应该尝试删除尽可能多的变量。然后在调整 RX 和 TX 引脚、波特率并删除
mySerial.println("Hello, world?");后运行 SoftwareSerialExample(在示例/软件序列中),然后重试。也许也可以尝试只交换 RX 和 TX 直到它工作(虽然这对我来说似乎很好,但尝试不会有什么坏处)。请记住,Uno 使用 5v 和 ESP 3v3,因此当 Uno 通过串行向 3v3 ESP 发送 5v 信号时,您可能会遇到问题。 -
我用的是 nano 有问题吗?
-
不应该。 nano 几乎只是一个很小的 uno(我认为有时会降频并且缺少一些引脚),但您应该在工具/板中设置它。发生了什么?
-
我将“mySerial”的波特率更改为 9600,另一个默认为 57600。每次我在串行监视器中切换这两者时,它都会打印“晚安月亮!” (57600) 或一些奇怪的字符,如“⸮]⸮”或只是一个“k”。
-
呃...抱歉让您失望了,但是“晚安月亮”只是代码发送的默认消息,因此您知道 Uno 正在做它的事情。每当您更改波特率时,uno 都会重置,因此您要么收到该启动消息,要么收到损坏的版本,因为您使用了错误的波特率。
标签: arduino esp8266 arduino-esp8266