【问题标题】:No Response from ESP8266 WIFI ModuleESP8266 WIFI 模块无响应
【发布时间】:2016-09-10 12:46:52
【问题描述】:

我买了一个新的 ESP8266 WIFI 模块(8 针)并正确使用 arduino Duemilanove 刷了固件(来自https://raw.githubusercontent.com/nodemcu/nodemcu-flasher/master/Win32/Release/ESP8266Flasher.exe)。 我已经完成了许多故障排除步骤,但在重置模块确实给出了一些乱码响应,但 “AT”命令没有 Ready/OK 响应

红色 LED 模块常亮,但蓝灯不亮。

采取的步骤:-

  1. 为了提供足够的电流,我使用 Beaglebone 3V3 电源作为 Vcc 模块。 但我无法收到来自 AT 命令的任何响应。

  2. Arduino Tx (5V) 已使用分压器降低到 3v3,并且 连接到 Rx

  3. 在 Flash 设置中确保波特率为 115200 且所有设置均正确
  4. 模块工作正常,可能与另外 2 个模块相同

这是我的联系方式:

//////////////////////////////////////////////////////////////////////////////
    ///////                         CONNECTIONS              ////////
    /////////////////////////////////////////////////////////////////////////////
    /*
    ESP8266 VCC -> BeagleBone 3.3
    ESP8266 GND -> Common GND (Arduino & BeagleBone)
    ESP8266 CH_PD -> 3K resistor -> VCC
    ESP8266 RST -> VCC or pin 13(arduino)
    GPIO CAB BE LEFT OPEN OR TIED HIGH
    ESP8266 Tx -> pin2 (Arduino software serial Rx)
    ESP8266 Rx <- Voltage Divider <- pin3 (Arduino software serial Tx)
    */

这是我的代码

#define esp8266 Serial2
#define CH_PD Vcc // but needs a narrow low pulse
#define speed8266 9600 // This is the speed that worked with my ESP8266
void setup()
{
 esp8266.begin (speed8266);
 Serial.begin(9600);
 reset8266(); // Pin CH_PD need a reset before start communication
}
void loop()
{
 while(esp8266.available())
 { Serial.write(esp8266.read()); }
 while(Serial.available())
 { esp8266.write(Serial.read()); }
}
/*************************************************/
// Reset funtion to accept communication
void reset8266 ()
{
 pinMode(CH_PD, OUTPUT);
digitalWrite(CH_PD, LOW);
 delay(300);
 digitalWrite(CH_PD, HIGH);
}

这是串行监视器上的输出 Arduino Serial Monitor Output

请帮助我我做错了什么? 我不想使用另一个 FTDI 芯片,而 arduino 已经有了它。

【问题讨论】:

  • 根据我的经验,这种乱码(不是静默)是典型的错误串行端口设置:波特率、数据位、奇偶校验、停止位。此模块的一些文档状态为“8N1”,波特率为 115200,而其他(例如来自 sparkfun 的“NURDspace Wiki(原理图、数据表和更多!)”链接到此https://nurdspace.nl/ESP8266,其中指出波特率为57600. 这个其他的法语文档here 与 9600 一起使用......这真的是业余爱好者的东西......
  • (如下)所以我会尝试其他波特率,从 115200(似乎不起作用)到 57600,然后是 38400、19200,最后是 9600。
  • 我尝试了所有波特率,结果相同。而且这不是乱码,奇怪的数据在重置过程中只出现一次,否则它完全沉默没有响应。有时在测试期间,它不是乱码,而是一些致命异常(0)或 checksum0x0000 rooms 0 tail 8... 之类的事情..
  • 我只对 ESP 的直接 gcc 编译器有经验(请指定下次使用哪个模块),但我的第一个猜测是芯片被炸了。假设您已经正确测试了不同的波特率和奇偶校验设置,但无济于事,则在炸芯片时会吐出随机噪声。我知道这一点的唯一原因是因为它不久前发生在我的一个 ESP03 上。我仍然可以刷新芯片,但多个 GPIO 会随机运行,串行通信完全是垃圾,如果我记得的话,我想我的 ADC 停止工作了。总而言之,这是一个您可能不小心做空的 2 美元筹码。哦,好吧。

标签: arduino wifi iot esp8266


【解决方案1】:

目前我只能给你一个部分答案(似乎我还不能评论:))。

启动/重置 ESP 时出现乱码是正常的,它只是以 74880 波特(基本上是默认波特率 115200,但由于 ESP 以较低的 cpu 频率启动,波特率速率也较低,启动频率为 26 mhz,正常频率为 40 mhz,26/40 * 115200 = 74880。如果您可以将串行客户端设置为 74880 波特,您应该会看到该消息,但这是一个奇怪的波特率,所以它可能很难或不可能设置。

所以重置时乱码是好的!这意味着 ESP 正在工作并且很开心,问题出在您的软件上(正如您自己决定的那样)。

我假设您的代码在 Arduino 方面? 最大的问题是 ESP 上显示的是什么,以及预期的行为是什么。从你的问题来看,我不能 100% 确定你在上面闪过什么......

我想你可能已经在上面刷了 nodemcu,它不会响应 AT 命令,尝试刷一下 Espressif Systems 的“原始”AT rom 吗?

【讨论】:

  • 我能够在其上正确刷入 NodeMCU,并能够在我的 ESP8266-01 上获得响应并创建服务器,但由于某些原因,我不知道它是否使用相同的电路和固件不要每次都重复它的行为。有时我得到 NodeMCU 屏幕“lua:无法打开 init.lua”,有时我无法调试乱码数据打印 chksum、房间等。
  • 您使用的是哪个版本的 NodeMCU? 1.5.1 以 115200 开头,然后在前 2 期间自动检测?秒,但它只有在接收到数据时才能做到这一点。尝试将您的串行客户端设置为 115200 波特。胡言乱语几乎总是意味着双方之间的波特率不匹配。您还可以设置特定的波特率 init.lua
  • 请注意,chksum、rooms 等是引导加载程序与您交谈,通常它以 74880 波特率执行此操作。你到底在使用哪个串行客户端?
  • 我使用了由 Lua 5.1.4 提供支持的 nodemcu_integer_0.9.5_20150318.bin 和 NodeMCU 0.9.5 build 20150318。我正在使用 arduino UART(串行监视器)与 ESP8266 通信。 BAUD RATE : 115200 FLASH SIZE : 4MB FLASH SPEED : 40MHz SPI : DIO Module is powered with apt power (单独的电源和如上所述的连接) 那么你认为是模块中闪烁的波特率不正确还是电流接收器的问题? Cranphin 你怎么能说“chksum、rooms 等是引导加载程序与你交谈,通常它以 74880 波特率执行”我在哪里可以找到这些信息丰富的东西?
  • 我想在独立环境中使用 ESP8266。所以不要用原来的AT ROM刷机。如果引导加载程序正在与我交谈,我应该猜它,而不是它不应该继续使用 arduino 代码,因为它似乎没有收到来自 arduino 端的任何命令或不正确的顺序/配置。我该怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-06
  • 1970-01-01
  • 2023-02-11
  • 2018-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多