Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino ESP8266串行返回';垃圾';去阿杜伊诺_Arduino_Esp8266 - Fatal编程技术网

Arduino ESP8266串行返回';垃圾';去阿杜伊诺

Arduino ESP8266串行返回';垃圾';去阿杜伊诺,arduino,esp8266,Arduino,Esp8266,我购买了ESP8266模块,并通过SoftwareSerial(引脚10-RX,引脚11-TX)连接到Arduino UNO板, 我也有ESP8266 5V(450mA)的外部电源,它通过降压转换器降低到3.3V 连接: ESP 8266 Vcc-来自外部电源的3.3V电源 CHU PD-来自外部电源的3.3V电源 GND-来自外部的GND 重置-未连接 GPIO-未连接 GPI2-未连接 RX 3.3至arduino 我上传到Arduino示例程序,测试esp8266通信 Arduino项目

我购买了ESP8266模块,并通过SoftwareSerial(引脚10-RX,引脚11-TX)连接到Arduino UNO板, 我也有ESP8266 5V(450mA)的外部电源,它通过降压转换器降低到3.3V

连接:

ESP 8266

Vcc-来自外部电源的3.3V电源

CHU PD-来自外部电源的3.3V电源

GND-来自外部的GND

重置-未连接

GPIO-未连接

GPI2-未连接

RX 3.3至arduino

我上传到Arduino示例程序,测试esp8266通信

Arduino项目:

#include <SoftwareSerial.h>

const byte rxPin = 10; // Wire this to Tx Pin of ESP8266
const byte txPin = 11; // Wire this to Rx Pin of ESP8266

// We'll use a software serial interface to connect to ESP8266
SoftwareSerial ESP8266 (rxPin, txPin);

void setup() {
  Serial.begin(9600);
  ESP8266.begin(9600); // Change this to the baudrate used by ESP8266
  delay(1000); // Let the module self-initialize
}

void loop() {

  delay(100);

  Serial.println("Sending an AT command...");
  ESP8266.println("AT\r\n");
  delay(30);
  while (ESP8266.available()){
     String inData = ESP8266.readStringUntil('\n');
     Serial.println("Got reponse from ESP8266: " + inData);
  }  
}
#包括
常量字节rxPin=10;//将其连接至ESP8266的Tx引脚
常量字节txPin=11;//将其连接至ESP8266的Rx引脚
//我们将使用软件串行接口连接到ESP8266
软件系列ESP8266(rxPin、txPin);
无效设置(){
Serial.begin(9600);
开始(9600);//将其更改为ESP8266使用的波特率
延迟(1000);//让模块自初始化
}
void循环(){
延迟(100);
Serial.println(“发送AT命令…”);
ESP8266.println(“AT\r\n”);
延误(30);
而(ESP8266.available()){
字符串inData=ESP8266.readStringUntil('\n');
Serial.println(“从ESP8266获得回复:“+inData”);
}  
}
但是我没有正确地工作。。。当Arduino向ESP发送消息时,ESP仅返回rubish。。没有“就绪”并且没有获取固件信息。我测试了所有的速度波特,看起来都一样


当我从串行监视器EPS手动发送“AT”命令时,没有任何响应

对于高于19200波特的速度,不要使用SoftwareSerial

默认情况下,ESP8266以115000波特通话。使用USB/串行将其直接连接到计算机,使用115000波特的putty与ESP通话。将ESP的波特率更改为19200(早期FW版本为at+CIOBAUD=19200,较新版本为at+UARTsomething)


SoftwareSerial应该比它更有效,但我不再使用它——各种各样的问题;硬武器审判好多了。只需在计算机和ESP之间切换Arduino RX/TX引脚;没有显示器输出,然后虽然;使用LED指示灯为您提供线索。

连接非常完美。默认情况下,esp8266的波特率为115200。因此,对于esp8266和串行监视器,首次保持波特率115200

Serial.begin(115200)
ESP8266.begin(115200)
现在需要更改esp8266的波特率。命令可以通过串行通信发送。请使用此命令

AT+CIOBAUD=9600

在此之后,上述代码应按预期工作。

为esp8266 Rx引脚使用逻辑电平转换器。Arduino逻辑为5.0 v,esp8266为3.3 v逻辑。

更改10K电阻器。不要使用它。当使用高值电阻器时,它会抑制电流,因此不会从该侧读取任何信号。
尝试使用低值电阻器,并以9600波特率将ext电源和arduino接地连接起来。

如果要使用arduino uno对esp模块进行编程,需要绕过arduino并编写代码 步骤: 别针

arduinotx-->rx(esp) arduino接收-->tx(esp)

3.3v电源-->vcc、CHU pd(esp)

接地-->接地,Gpi0(esp)


波特率对我有效是960057600

您尝试过任何不同的波特率吗?您有哪个ESP模块,以及通电5秒后LED是什么样子的?另外,也可以将Arduino和ESP8266接地连接在一起。这些是引导加载程序消息。AT命令以不同的波特率传输。你试过115200或57600吗?根据目前给出的答案,似乎这可能是一个硬件问题,这将使它在这里如此。您可能比at或Stack Exchange更幸运。这并不能提供问题的答案。一旦你有足够的钱,你将能够;相反-