使用arduino uno和esp8266进行编程时遇到了一些问题。 我已将arduino uno与esp8266模块连接。
当我运行一个空程序来测试esp8266及其命令时,我得到了正确的结果。
当我在串行监视器命令AT中手动给出时,它为所有命令提供了正确的结果。
但是当我尝试使用程序进行自动化时,我不会得到输出,因为当我在串行监视器上手动输入时,请检查我的代码。
void setup() {
Serial.begin(115200);
}
void loop() {
delay(5000);
Serial.println("AT+RST");
while(Serial.available())
{
String s=Serial.readString();
Serial.println(s);
}
}
我的下一个节目
#include<SoftwareSerial.h>
SoftwareSerial esp8266(2,3);
void setup() {
Serial.begin(115200);
esp8266.begin(115200);
delay(1000);
}
void loop() {
delay(2000);
String command="AT+RST";
esp8266.println(command);
if(esp8266.available())
{
while(esp8266.available())
{
char c=esp8266.read();
Serial.write(c);
}
}
}
这个程序的结果在串行监视器上没什么。
我希望将程序中的命令作为字符串获取,以便在充当Web服务器时可以执行find或其他字符串操作。
有人请帮帮我。
答案 0 :(得分:0)
尝试使用换行符和回车符运行相同的命令。我在AT模式下看到一些ESP8266模块忽略了命令。
// This should give you "OK" as a sanity check
Serial.print("AT\r\n");
// And then you can run this after
Serial.print("AT+RST\r\n");
答案 1 :(得分:0)
做一件事
#include<SoftwareSerial.h>
SoftwareSerial esp8266(2,3);
void setup() {
Serial.begin(115200);
esp8266.begin(115200);
delay(1000);
}
void loop() {
delay(2000);
String command="AT+RST\r\n";
esp8266.println(command);
c=0;
while(!esp8266.find("reset"))
{
c++;
if(c>100)
{
break;
}
}
String Response=esp8266.readString();
Serial.write(Response);
}
尝试这个它肯定会工作,如果它没有,那么请交换arxino上的rx和tx引脚而不是代码然后它将工作