0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STA+UDP相關(guān)配置指令 STA+UDP模式配置函數(shù)設(shè)計(jì)

嵌入式技術(shù) ? 來(lái)源:嵌入式技術(shù) ? 作者:嵌入式技術(shù) ? 2022-05-30 09:17 ? 次閱讀

在萬(wàn)物互聯(lián)的時(shí)代,各家互聯(lián)網(wǎng)公司都大力推廣物聯(lián)網(wǎng)平臺(tái),WIFI作為連接平臺(tái)的其中一種樞紐,ESP8266就是其中的一個(gè)典型代表。ESP8266模塊內(nèi)置TCP/IP協(xié)議棧,采用串口AT指令集操作方式,操作簡(jiǎn)單。
ESP8266工作模式有AP、STA、AP+STA共存模式;內(nèi)置TCP/IP協(xié)議棧,通信方式支持TCP和UDP兩種方式。

TCP/IP協(xié)議源于1969年,是針對(duì)Internet開(kāi)發(fā)的一種體系結(jié)構(gòu)和協(xié)議標(biāo)準(zhǔn),目的在于解決異種計(jì)算機(jī)網(wǎng)絡(luò)的通信問(wèn)題。使得網(wǎng)絡(luò)在互聯(lián)時(shí)能為用戶提供一種通用、一致的通信服務(wù)。是Internet采用的協(xié)議標(biāo)準(zhǔn)。 TCP/IP是一組通信協(xié)議的代名詞,是由一系列協(xié)議組成的協(xié)議簇。它本身指兩個(gè)協(xié)議集:

TCP(傳輸控制協(xié)議)。

IP(互聯(lián)網(wǎng)絡(luò)協(xié)議)。

TCP協(xié)議:

即傳輸控制協(xié)議,是一個(gè)可靠的、面向連接的協(xié)議。 具有連接建立、數(shù)據(jù)傳輸和連接釋放這三個(gè)階段,在傳送數(shù)據(jù)時(shí)是按序傳送的。

UDP協(xié)議:

采用無(wú)連接的方式,不管發(fā)送的數(shù)據(jù)包是否到達(dá)目的主機(jī),數(shù)據(jù)包是否出錯(cuò)。收到數(shù)據(jù)包的主機(jī)也不會(huì)告訴發(fā)送方是否正確收到了數(shù)據(jù),它的可靠性是由上層協(xié)議來(lái)保障的。

1.STA+UDP相關(guān)配置指令

	"AT\r\n",//測(cè)試指令
    "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",//設(shè)置透?jìng)髂J?    "AT+CIPSEND\r\n",//發(fā)送數(shù)據(jù)

2.STA+UDP模式配置函數(shù)設(shè)計(jì)

/*******************************************************************************************************************
**形參: wifi_name --WIFI名
**      password  --密碼
**      remote_ip  --遠(yuǎn)端IP地址(255.255.255.255為廣播地址)
**      remote_prot  --遠(yuǎn)端端口號(hào)
**      localhost    ---本地端口號(hào)
**返回值: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 *)"+++"); //退出透?jìng)髂J?        Delay_Ms(1000);
        printf("1.測(cè)試指令.......\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.關(guān)回顯.......\r\n");
    if(ESP8266_SendCmd((u8 *)"ATE0\r\n",(u8 *)"OK"))return 2; 
    printf("4.設(shè)置為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.設(shè)置透?jìng)?......\r\n");
    if(ESP8266_SendCmd((u8 *)"AT+CIPMODE=1\r\n",(u8 *)"OK"))return 8; 
    printf("10.發(fā)送數(shù)據(jù).......\r\n");
    if(ESP8266_SendCmd((u8 *)"AT+CIPSEND\r\n",(u8 *)">"))return 9; 
    esp8266_info.port=localprot;
    return 0;
}

運(yùn)行效果:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ1MzY5NA==,size_16,color_FFFFFF,t_70#pic_center
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1324

    瀏覽量

    78759
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    317

    瀏覽量

    33801
  • ESP8266
    +關(guān)注

    關(guān)注

    50

    文章

    959

    瀏覽量

    44547
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ESP32-S3作為STA無(wú)法同時(shí)UDP廣播發(fā)送和接收要怎么解決這個(gè)問(wèn)題?

    怎么做,才能做到同時(shí)收發(fā)UDP廣播呀?有什么方法能類似以前用AT指令的時(shí)候那樣,設(shè)置多鏈接,然后用兩個(gè)鏈接分別配置接收和發(fā)送呀?(AT+CIPSTART=0,\"UDP\"
    發(fā)表于 06-13 06:08

    IR615如何配置Wi-Fi STA模式聯(lián)網(wǎng)?

    1)選擇網(wǎng)絡(luò)》WLAN模式切換》選擇模式sta 2)重啟系統(tǒng)(系統(tǒng)&gt;&gt;重啟系統(tǒng)),重啟后選擇網(wǎng)絡(luò)》wan(sta)端口 3)
    發(fā)表于 07-25 07:27

    立創(chuàng)商城ESP8266WIFI模塊串口無(wú)線STA模式AT指令設(shè)置

    ,UDP 配置AT+CWMODE=1設(shè)置模塊WIFI模式STA 模式AT+RST重啟模塊并生效AT+CWJAP="ALIENTEK","
    發(fā)表于 08-11 14:58

    請(qǐng)問(wèn)通過(guò)手機(jī)遠(yuǎn)程與ESP8266互相傳送數(shù)據(jù),wifi模塊要配置為什么模式?

    單片機(jī)+ESP8266模塊作為檢測(cè)裝置,通過(guò)手遠(yuǎn)程接收檢測(cè)的數(shù)據(jù),并且可以發(fā)送數(shù)據(jù)給單片機(jī)。wifi模塊要配置為什么模式?(sta/ap/sta+ap/TCP服務(wù)器/客戶端/
    發(fā)表于 04-22 06:35

    精英版與ATK-ESP8266在STA模式下通信模塊無(wú)法配置成功

    請(qǐng)問(wèn)大家,我在測(cè)試,測(cè)試wifi模塊作為AP是可以傳輸數(shù)據(jù)的,但是在進(jìn)行STA模式測(cè)試時(shí),模塊卻始終無(wú)法配置成功,一直停留在下圖的界面中,已經(jīng)更換了一次wifi模塊了還是同樣的問(wèn)題,請(qǐng)問(wèn)是我忽略了
    發(fā)表于 04-28 02:55

    esp8266配置sta模式失敗

    如圖,配置sta模式失敗,我也把防火墻關(guān)了的,為什么還一直失敗呢,求指教
    發(fā)表于 05-13 06:35

    WIFI模塊不能配置STA

    AP模式可以使用就是無(wú)法配置sta,求解!‘顯示屏一直顯示為正在配置
    發(fā)表于 06-05 04:35

    esp8266用at和cipsta修改sta模式ip后不能接收到數(shù)據(jù)

    本人wifi新手。在使用串口助手調(diào)試esp8266的UDP下的sta模式,與電腦端的網(wǎng)絡(luò)調(diào)試助手進(jìn)行通信。在直接使用連接wifi后分配的ip地址時(shí)可以進(jìn)行正常通信。但用at指令修改ip
    發(fā)表于 06-24 04:36

    為什么ESP8266 UDP使用能PING通但是接收不到任何數(shù)據(jù)?

    大家好! 我是使用ESP8266的新手,請(qǐng)大家多多指教。 我使用兩個(gè)ESP8266模塊,將其中一個(gè)作為AP模式使用,另外一個(gè)作為STA模式使用,兩個(gè)模塊都使用UDP協(xié)議。我的想法是使用
    發(fā)表于 07-11 04:35

    ESP32-S3作為STA為什么無(wú)法同時(shí)UDP廣播發(fā)送和接收?

    ,才能做到同時(shí)收發(fā)UDP廣播呀?有什么方法能類似以前用AT指令的時(shí)候那樣,設(shè)置多鏈接,然后用兩個(gè)鏈接分別配置接收和發(fā)送呀?(AT+CIPSTART=0,"UDP","
    發(fā)表于 02-10 06:51

    關(guān)于UDP的使用問(wèn)題求解

    路由器網(wǎng)絡(luò)。我的問(wèn)題是,因?yàn)槲覐奈凑嬲P(guān)閉過(guò)在 AP 模式下創(chuàng)建的 UDP 套接字,它是否仍然處于活動(dòng)狀態(tài)并且可用于 STA 模式下的 NODEMCU?或者我是否必須先關(guān)閉以前的
    發(fā)表于 02-23 08:34

    ESP32-S3作為STA無(wú)法同時(shí)UDP廣播發(fā)送和接收怎么辦?

    ,才能做到同時(shí)收發(fā)UDP廣播呀?有什么方法能類似以前用AT指令的時(shí)候那樣,設(shè)置多鏈接,然后用兩個(gè)鏈接分別配置接收和發(fā)送呀?(AT+CIPSTART=0,"UDP","
    發(fā)表于 03-03 08:08

    ESP32-S3作為STA無(wú)法同時(shí)UDP廣播發(fā)送和接收怎么辦?

    ,才能做到同時(shí)收發(fā)UDP廣播呀?有什么方法能類似以前用AT指令的時(shí)候那樣,設(shè)置多鏈接,然后用兩個(gè)鏈接分別配置接收和發(fā)送呀?(AT+CIPSTART=0,"UDP","
    發(fā)表于 03-08 08:42

    ESP32從AP切換到STA模式是要重啟么?

    ESP32上電先跑STA模式,接收到指令后切換AP模式進(jìn)入UDP服務(wù)接收SSID PASSWORD,寫入NVS后再切回
    發(fā)表于 03-09 06:22

    有沒(méi)有辦法只綁定一個(gè)TCP/UDP服務(wù)器實(shí)例到AP IP地址,讓STA仍然可以正常與云端通信?

    APSTA,則 TCP/UDP 服務(wù)器實(shí)例似乎綁定到 STA 而不是 AP,因此不會(huì)收到來(lái)自客戶端的通信,而是僅通過(guò) STA IP 收到,而不是在連接到 AP 時(shí)收到。 如果我只為 AP
    發(fā)表于 05-08 07:56