我将我的esp8266连接到我的arduino nano
ESP Tx > Arudino Tx
ESP Rx > Arduino Rx
ESP 3.3v > Arduino 3v3
ESP Dh_cp > Arduino 3v3
ESP Gnd > Arduino Gnd
我在VIN上使用usb和12V提供arduino nano,使用所有
的公共接地我已经尝试了所有波特率并发送了AT命令。 ESP8266的红灯常亮,蓝灯仅在启动时亮起,而且当连接ESP8266时,红灯常亮。
作为最后的手段,我尝试使用espressif站点的固件刷新ESP8266,我刷了nonos sdk(非启动版本)v2.0.0。
串行监视器在任何波特率上都没有显示任何内容
我在网上找到了很多代码,比如这里的代码: 但主要是我使用空白代码,因为我想将esp8266连接到arduino,并让它给出一些现在正在工作的反馈。比如这个链接:http://randomnerdtutorials.com/getting-started-with-esp8266-wifi-transceiver-review/
使用此代码
#include <SoftwareSerial.h>
SoftwareSerial ESPserial(2, 3); // RX | TX
void setup()
{
Serial.begin(115200); // communication with the host computer
//while (!Serial) { ; }
// Start the software serial for communication with the ESP8266
ESPserial.begin(115200);
Serial.println("");
Serial.println("Remember to to set Both NL & CR in the serial monitor.");
Serial.println("Ready");
Serial.println("");
}
void loop()
{
// listen for communication from the ESP8266 and then write it to the serial monitor
if ( ESPserial.available() ) { Serial.write( ESPserial.read() ); } else { Serial. println("not ready");}
// listen for user input and send it to the ESP8266
if ( Serial.available() ) { ESPserial.write( Serial.read() ); }
}
串口显示器不断打印&#34;未准备好&#34;所以我猜测ESP模块无法读取,但我不知道我们如何从这个诊断问题
闪烁时使用波特率115200
使用此电路也可以测试http://www.martyncurrey.com/wp-content/uploads/2015/01/Arduino-to-ESP8266.jpg
答案 0 :(得分:0)
ESP Rx - &gt; Arudino Tx ESP Tx - &gt; Arduino Rx
改变它,我认为它会起作用
祝你好运。答案 1 :(得分:0)
如果您只想使用AT命令,那么只需上传一张void setup(){}
void loop(){}
的空白草图
在里面。
另外,请保持原样。
我正在做同样的事情,它对我很好。
您也可以参考此链接
https://www.instructables.com/id/Getting-Started-With-the-ESP8266-ESP-01/
答案 2 :(得分:0)
您应始终交叉 接收(接收) TX (传输),如下所示:
ESP Rx &gt; Arudino Tx
ESP Tx &gt; Arduino Rx
ESP 3.3v&gt; Arduino 3v3
ESP Dh_cp&gt; Arduino 3v3
ESP Gnd&gt; Arduino Gnd
你也应该整理一个外部电源,因为ESP需要更多的放大器,而不是Arduino所能提供的,并且它可能无法正常工作(肯定不可靠)。
(不要忘记为arduino,电源和ESP制作一个公共GND)
答案 3 :(得分:0)
其他答案都提出了您 应该 要更改的内容,但是这些可能不是问题的根源。有一个致命错误。软件序列 不能 以115200的波特率工作。您必须使用空白草图将ESP8266连接到TX和RX引脚,并将ESP8266的波特率更改为软件序列号为9600之前就可以使用它。
此外,我认为代码将无法正确接收返回值。尝试以下操作:
#define RX_PIN 3
#define TX_PIN 2
#define ESP_BRATE 9600
SoftwareSerial esp8266(RX_PIN, TX_PIN);
bool at_command(String command, int timeout_ms, String* output) {
esp8266.println(command);
String ret;
int start_time = millis();
while (timeout_ms == -1 || millis() < start_time + timeout_ms) {
String line = esp8266.readStringUntil('\n');
if (line == "OK\r") {
if (output) {
*output = ret;
}
return true;
}
if (line == "ERROR\r") {
if (output) {
*output = ret;
}
return false;
}
ret += line;
ret += '\n';
}
if (output) {
*output = ret;
}
return false;
}
void setup()
{
Serial.begin(9600);
while (!Serial) {
delay(10);
}
esp8266.begin(ESP_BRATE); // I changed this on the ESP to 9600
while (!esp8266) {
delay(10);
}
String out;
bool ret;
ret = at_command("AT", -1, &out);
Serial.println(out);
if (!ret) {
Serial.println("AT is not returning OK");
return;
}
可以在here中找到基于ESP8266-01的气象站的完整示例代码,可能会帮助您了解如何操作。它包括许多有关使用ESP的文档,应该可以带您到达需要的地方!