Tag: esp8266

如何在Arduino串口打印AT命令的响应?

我想打印AT命令的响应。 我正在发送AT命令,但我没有在Arduino串口中得到任何响应。 它给-1而不是OK。 #include “SoftwareSerial.h” String ssid = “connectify-krish”; String password = “12345678”; String myword= “”; SoftwareSerial esp(10, 11); void setup() { Serial.begin(9600); esp.begin(9600); esp.write(“AT”); Serial.println(esp.read()); } void loop() {}

AT命令响应(理解Arduino上代码执行的顺序)

我正在从Arduino Uno / Nano(ATmega328)向ESP8266发送AT命令并试图解析收到的字符串的结尾,以确定ESP如何反应以及它是否成功(以及它是否已准备好接收另一个命令然而)。 我知道解析AT命令响应之前已经讨论过了: 获取AT命令响应 但是我有一个特定的问题,那里的其他人可能也会感兴趣… 首先,调用一个函数,它将AT命令发送到ESP以连接到ThingSpeak(数据记录服务器)。 这在手动模式下工作正常,并且在尝试解析响应时也连接但是它只解析返回的第一行。 例如,串行监视器中的预期输出将是: c AT+CIPSTART=”TCP”,”api.thingspeak.com”,80 CONNECT OK Connected to ThingSpeak! 其中c只是我输入的命令字符以启动连接。 但实际反应如下: c AT+CIPSTART=”TCP”,”api.thingspeak.com”,80 Cannot connect to ThingSpeak! CONNECT OK 这意味着解析函数在收到响应之前结束…如下面的代码所示,当前指定了10秒的超时。 即使有20秒的超时,同样的事情发生了,尽管事实上,当手动执行时,响应在大约一秒钟内到达。 只是为了测试解析函数,我尝试搜索”80″并返回true,因为这是在响应的第一行末尾找到的。 无论是搜索”OK”还是”OK\r\n” ,结果都是相同的,它返回false,然后收到其余的响应。 这是代码: boolean waitForResponse(String target, unsigned long timeout) { unsigned long startTime = millis(); String responseBuffer; char charIn; //keep checking for ESP response until […]