esp8266与esp8266-01通过AT指令连接并正常通信应该怎么做

这是一个esp8266的代码
我想用另一个esp8266-01通过AT指令连接并正常通信应该怎么做,弄了好久了可以连接上但是一直无法通信


#include 
#include 
const char *ssid = "1213ESP826601";             //AP的SSID(WiFi名字)
const char *password = "345678910";            //AP的密码
int led = 14;                                 //设置指示灯io,D5
int state_led=2;                              //IO2(D4),板载led,作为判断是否有设备连接
IPAddress sta_client;                        //保存sta设备的ip地址
/****************UDP设置项 *****************/
unsigned int read_Port = 8082;     //监听端口
unsigned int send_Port = 8083;     //发送端口
char readdata[512];                 //数据缓存
WiFiUDP Udp;                        //定义udp
void setup()
{
  Serial.begin(115200);
  Serial.println("");
  init_IO(); //初始化需要的IO引脚
  init_AP();
  Udp.begin(read_Port);             //UDP设置监听指定端口
}
void loop()
{
  //digitalWrite(led, 1);
  int gotoAP=WiFi.softAPgetStationNum();    //获取当前连接到AP的设备数量  
  if (gotoAP==0) 
  {
    digitalWrite(state_led, 1); //如果没有设备连接,熄灭WiFi状态LED
  }
  else
  {
    digitalWrite(state_led, 0); //如果有设备连接,点亮WiFi状态LED
    Udp_Handler(Read_Udp());
  }
}

//初始化io
void init_IO()
{
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  pinMode(state_led, OUTPUT);       //设置指定io为输出模式
  digitalWrite(state_led, 1);       //初始化为高电平,关闭灯状态,板载led为低电平点亮
}

//初始化AP信息
void init_AP()
{
  WiFi.mode(WIFI_AP);                         //设置为AP模式
  WiFi.softAP(ssid, password);                //配置AP信息,并开启AP

  //默认IP为192.168.4.1 , 这里我自定义设置AP的ip段
  IPAddress softLocal(192,168,1,1);        //IP地址,用以设置IP第4字段
  IPAddress softGateway(192,168,1,1);      //IP网关,用以设置IP第3字段
  IPAddress softSubnet(255,255,255,0);
  //配置自定义的IP信息
  WiFi.softAPConfig(softLocal, softGateway, softSubnet);
  IPAddress myIP = WiFi.softAPIP();           //用变量myIP接收AP当前的IP地址
  Serial.println(myIP);                       //打印输出myIP的IP地址
}

/*自定义函数
  将接收的数据,以String类型返回,方便分析处理
*/
String Read_Udp() {
  String data = "";
  int packetSize = Udp.parsePacket();
  if (packetSize) {
    sta_client = Udp.remoteIP();
    memset(readdata, 0x00, sizeof(readdata));
    Udp.read(readdata, 511);
    Udp.flush();
    for (int i = 0; i < packetSize; i++) {
      data += readdata[i];
    }
    Serial.println(data);
  }
  return data;
}
/************自定义函数,对接收数据分析处理************/
void Udp_Handler(String data) {
  if (data != "") {
    if (data == "打开") {
      digitalWrite(led, 1);
      myPrint("打开", 0);
    }
    else if (data == "关闭") {
      digitalWrite(led, 0);
      myPrint("关闭", 0);
    }
    else if (data == "请求") {
      myPrint("收到", 0);
    }
  }
}
/*自定义函数
  封装数据发送功能,方便调用
  第一个参数,使用String类型作为发送内容
  第二个参数,a为真,指定发送,对发送方返回数据,a为假,以保存的ip发送数据
*/
void myPrint(String data, bool a) {
  if (a) {
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
  } else {
    Udp.beginPacket(sta_client, send_Port);
  }
  Udp.print(data);
  Udp.endPacket();
}

参考GPT和自己的思路:要使两个ESP8266通过AT指令连接并正常通信,需要以下步骤:

  1. 在ESP8266上配置SoftAP(软AP)并开启。

  2. 在ESP8266-01上使用AT指令连接到ESP8266的SoftAP。

  3. 通过UDP协议进行数据通信。

根据提供的代码,ESP8266已经配置好了SoftAP并开启了UDP监听端口。但在ESP8266-01上使用AT指令连接时,需要注意以下几点:

  1. 确保ESP8266-01上的固件版本支持AT指令模式。

  2. 将ESP8266-01的串口波特率设置为115200,与ESP8266一致。

  3. 使用AT+CWJAP="1213ESP826601","345678910" (SSID和密码与ESP8266一致)连接到ESP8266的SoftAP。可以在串口监视器中输入指令并查看返回值,确认连接成功。

  4. 在ESP8266-01上使用UDP协议与ESP8266进行数据通信。可以使用AT+CIPSTART="UDP","192.168.4.1",8082连接到ESP8266的UDP监听端口,并使用AT+CIPSEND发送数据。

根据提供的代码,ESP8266会返回接收到的数据,因此可以在ESP8266-01上通过发送"打开"、"关闭"、"请求"等数据进行测试。如果连接成功,ESP8266-01发送的数据应该能够被正确识别并响应。