系统有些指令必须特性状态下才可以执行,即先执行一些其它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()); }