在万物互联的时代,各家互联网公司都大力推广物联网平台,WIFI作为连接平台的其中一种枢纽,ESP8266就是其中的一个典型代表。ESP8266模块内置TCP/IP协议栈,采用串口AT指令集操作方式,操作简单。
ESP8266工作模式有AP、STA、AP+STA共存模式;内置TCP/IP协议栈,通信方式支持TCP和UDP两种方式。
TCP/IP协议源于1969年,是针对Internet开发的一种体系结构和协议标准,目的在于解决异种计算机网络的通信问题。使得网络在互联时能为用户提供一种通用、一致的通信服务。是Internet采用的协议标准。 TCP/IP是一组通信协议的代名词,是由一系列协议组成的协议簇。它本身指两个协议集:
TCP(传输控制协议)。
IP(互联网络协议)。
TCP协议:
即传输控制协议,是一个可靠的、面向连接的协议。 具有连接建立、数据传输和连接释放这三个阶段,在传送数据时是按序传送的。
UDP协议:
采用无连接的方式,不管发送的数据包是否到达目的主机,数据包是否出错。收到数据包的主机也不会告诉发送方是否正确收到了数据,它的可靠性是由上层协议来保障的。
1.STA+UDP相关配置指令
"AT\r\n",//测试指令
"AT+RST\r\n",
"ATE0\r\n",
"AT+CWMODE=1\r\n",//STA模式
"AT+CWJAP="360WIFI_123","12345678"\r\n",//连接WIFI
"AT+CIFSR\r\n",//查询IP
"AT+CIPSTART="UDP","172.20.7.2",10500,8080,0\r\n",//建立UDP
"AT+CIPMODE=1\r\n",//设置透传模式
"AT+CIPSEND\r\n",//发送数据
2.STA+UDP模式配置函数设计
/*******************************************************************************************************************
**形参: wifi_name --WIFI名
** password --密码
** remote_ip --远端IP地址(255.255.255.255为广播地址)
** remote_prot --远端端口号
** localhost ---本地端口号
**返回值:0 --成功,
** 其它值 --失败
**示例:ESP8266_UDP_STA_Mode("360WIFI_123","12345678","172.20.7.2",10500,8080);
*********************************************************************************************************************/
u8 ESP8266_UDP_STA_Mode(u8 *wifi_name,u8 *password,u8 *remote_ip,u16 remote_prot,u16 localprot)
{
char buff[100];
u8 i=0;
for(i=0;i<5;i++)
{
USARTx_SendStr(USART3,(u8 *)"+++"); //退出透传模式
Delay_Ms(1000);
printf("1.测试指令.......\r\n");
if(ESP8266_SendCmd((u8 *)"AT\r\n",(u8 *)"OK")==0)break;
}
if(i==5)return 1;
printf("2.重启模块.......\r\n");
USARTx_SendStr(USART3,(u8 *)"AT+RST\r\n");
Delay_Ms(1000);
Delay_Ms(1000);
printf("3.关回显.......\r\n");
if(ESP8266_SendCmd((u8 *)"ATE0\r\n",(u8 *)"OK"))return 2;
printf("4.设置为STA模式.......\r\n");
if(ESP8266_SendCmd((u8 *)"AT+CWMODE=1\r\n",(u8 *)"OK"))return 3;
printf("6.连接WIFI.......\r\n");
snprintf(buff,sizeof(buff),"AT+CWJAP=\"%s\",\"%s\"\r\n",wifi_name,password);
if(ESP8266_SendCmd((u8 *)buff,(u8 *)"OK"))return 5;
printf("7.查询IP.......\r\n");
if(ESP8266_SendCmd((u8 *)"AT+CIFSR\r\n",(u8 *)"OK"))return 6;
ESP8266_GetData((char *)usart3_rx_buff,esp8266_info.ipaddr,"STAIP");
printf("8.建立UDP连接.....\r\n");
snprintf(buff,sizeof(buff),"AT+CIPSTART=\"UDP\",\"%s\",%d,%d,0\r\n",remote_ip,remote_prot,localprot);
if(ESP8266_SendCmd((u8 *)buff,(u8 *)"OK"))return 7;
printf("9.设置透传.......\r\n");
if(ESP8266_SendCmd((u8 *)"AT+CIPMODE=1\r\n",(u8 *)"OK"))return 8;
printf("10.发送数据.......\r\n");
if(ESP8266_SendCmd((u8 *)"AT+CIPSEND\r\n",(u8 *)">"))return 9;
esp8266_info.port=localprot;
return 0;
}
运行效果:

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
TCP
+关注
关注
8文章
1438浏览量
83920 -
UDP
+关注
关注
0文章
335浏览量
35578 -
ESP8266
+关注
关注
51文章
972浏览量
49986
发布评论请先 登录
相关推荐
热点推荐
ESP32-S3作为STA无法同时UDP广播发送和接收要怎么解决这个问题?
怎么做,才能做到同时收发UDP广播呀?有什么方法能类似以前用AT指令的时候那样,设置多链接,然后用两个链接分别配置接收和发送呀?(AT+CIPSTART=0,\"UDP\"
发表于 06-13 06:08
IR615如何配置Wi-Fi STA模式联网?
1)选择网络》WLAN模式切换》选择模式为sta
2)重启系统(系统>>重启系统),重启后选择网络》wan(sta)端口
3)
发表于 07-25 07:27
立创商城ESP8266WIFI模块串口无线STA模式AT指令设置
,UDP 配置AT+CWMODE=1设置模块WIFI模式为 STA 模式AT+RST重启模块并生效AT+CWJAP="ALIENTEK","
发表于 08-11 14:58
请问通过手机远程与ESP8266互相传送数据,wifi模块要配置为什么模式?
单片机+ESP8266模块作为检测装置,通过手远程接收检测的数据,并且可以发送数据给单片机。wifi模块要配置为什么模式?(sta/ap/sta+ap/TCP服务器/客户端/
发表于 04-22 06:35
精英版与ATK-ESP8266在STA模式下通信模块无法配置成功
请问大家,我在测试,测试wifi模块作为AP是可以传输数据的,但是在进行STA模式测试时,模块却始终无法配置成功,一直停留在下图的界面中,已经更换了一次wifi模块了还是同样的问题,请问是我忽略了
发表于 04-28 02:55
esp8266用at和cipsta修改sta模式ip后不能接收到数据
本人wifi新手。在使用串口助手调试esp8266的UDP下的sta模式,与电脑端的网络调试助手进行通信。在直接使用连接wifi后分配的ip地址时可以进行正常通信。但用at指令修改ip
发表于 06-24 04:36
为什么ESP8266 UDP使用能PING通但是接收不到任何数据?
大家好! 我是使用ESP8266的新手,请大家多多指教。 我使用两个ESP8266模块,将其中一个作为AP模式使用,另外一个作为STA模式使用,两个模块都使用UDP协议。我的想法是使用
发表于 07-11 04:35
ESP32-S3作为STA为什么无法同时UDP广播发送和接收?
,才能做到同时收发UDP广播呀?有什么方法能类似以前用AT指令的时候那样,设置多链接,然后用两个链接分别配置接收和发送呀?(AT+CIPSTART=0,"UDP","
发表于 02-10 06:51
关于UDP的使用问题求解
路由器网络。我的问题是,因为我从未真正关闭过在 AP 模式下创建的 UDP 套接字,它是否仍然处于活动状态并且可用于 STA 模式下的 NODEMCU?或者我是否必须先关闭以前的
发表于 02-23 08:34
ESP32-S3作为STA无法同时UDP广播发送和接收怎么办?
,才能做到同时收发UDP广播呀?有什么方法能类似以前用AT指令的时候那样,设置多链接,然后用两个链接分别配置接收和发送呀?(AT+CIPSTART=0,"UDP","
发表于 03-03 08:08
ESP32-S3作为STA无法同时UDP广播发送和接收怎么办?
,才能做到同时收发UDP广播呀?有什么方法能类似以前用AT指令的时候那样,设置多链接,然后用两个链接分别配置接收和发送呀?(AT+CIPSTART=0,"UDP","
发表于 03-08 08:42
有没有办法只绑定一个TCP/UDP服务器实例到AP IP地址,让STA仍然可以正常与云端通信?
APSTA,则 TCP/UDP 服务器实例似乎绑定到 STA 而不是 AP,因此不会收到来自客户端的通信,而是仅通过 STA IP 收到,而不是在连接到 AP 时收到。
如果我只为 AP 配
发表于 05-08 07:56
STA+UDP相关配置指令 STA+UDP模式配置函数设计
评论