系统有些指令必须特性状态下才可以执行,即先执行一些其它AT指令

 

1.设置station模式的IP信息

 AT+CIPSTA="192.168.19.1","192.168.1.1","255.255.0.0"

设置后,使用AT+CWDHCP=2,1 

恢复:DHCP方式

 

2.启动后服务器

AT+CIPMUX=1

AT+CIPSERVER=1,333  --后面是端口

 

3.启动UDP广播地址监听

AT+CIPMUX=1

AT+CIPSTART=0,"UDP","255.255.255.255",1111,2000,2

说明:1111任意端口(表示远程),2000为本地端口,

2(mode参数)表示以最后一次收到数据包IP为目标地址,也就是说如果有多个IP给本设备发送UDP包,那么AT+CIPSEND=0,x回复时数据发给最后一个发消息过来的

 当采用mode=2时使用:AT+CIPSTATUS可以查看最后一发请求过来的的链接情况

4.启动UDP链接

AT+CIPSTART=0,"UDP","192.168.88.88",8080,2000,2

参数2与上面一样,比方192.168.88.11:8111,最后一个给设备发UPD包,那么设备回复时的目标设备就是192.168.88.11:8111了

 

5.退出透传模式

1.发送+++后面不要有回车换行

2.等一会

3.发送回车与换行

4.发送AT&回车换行看命令是否恢复

 

6.Arduino下进行测试

/*
ESP-01    

VCC       -------- 3.3V
GND      -------- GND
CH-PD   -------- 3.3V (加不加10K电阻都可以)

TXD       ------   10  // 软串口的RX
RXD       -------  11  // 软串口的TX
                

UNO的代码:
*/
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()  
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}
View Code

相关文章: