0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STA+UDP相关配置指令 STA+UDP模式配置函数设计

嵌入式技术 来源:嵌入式技术 作者:嵌入式技术 2022-05-30 09:17 次阅读

在万物互联的时代,各家互联网公司都大力推广物联网平台,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;
}

运行效果:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1271

    浏览量

    78290
  • UDP
    UDP
    +关注

    关注

    0

    文章

    311

    浏览量

    33615
  • ESP8266
    +关注

    关注

    50

    文章

    947

    浏览量

    43932
收藏 人收藏

    评论

    相关推荐

    立创商城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配置sta模式失败

    如图,配置sta模式失败,我也把防火墙关了的,为什么还一直失败呢,求指教
    发表于 05-13 06:35

    ESP8266 STA Server配置有时不成功

    ESP8266作为STA连接到路由器配置为Server,但有时候配置不成功,要复位很多次才可以配置成功,从返回来的数据看有可能是下面的函数
    发表于 05-22 04:06

    WIFI模块不能配置STA

    AP模式可以使用就是无法配置sta,求解!‘显示屏一直显示为正在配置
    发表于 06-05 04:35

    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

    如何配置TerraTerm以使用UDP而不是TCP?

    使用TerraTermPro和一个使用telnet连接到主板的TCP示例...但是一旦我在主板上有一个UDP示例,我需要知道如何配置TerraTerm以使用UDP而不是TCP。谢谢。
    发表于 09-17 11:04

    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

    ESP32从AP切换到STA模式是要重启么?

    ESP32上电先跑STA模式,接收到指令后切换AP模式进入UDP服务接收SSID PASSWORD,写入NVS后再切回
    发表于 03-09 06:22

    有没有办法只绑定一个TCP/UDP服务器实例到AP IP地址,让STA仍然可以正常与云端通信?

    APSTA,则 TCP/UDP 服务器实例似乎绑定到 STA 而不是 AP,因此不会收到来自客户端的通信,而是仅通过 STA IP 收到,而不是在连接到 AP 时收到。 如果我只为 AP
    发表于 05-08 07:56