ESP8266 開啟伺服器模式和客戶端模式

2021-08-09 17:55:02 字數 3704 閱讀 6960

出處:

感謝樓主堅強的山貓,

step 1:最小系統啟動

這個應該算是比較基礎的,若想從flash啟動進入at系統,只需中間四個腳接vcc高電平即可,其中gpio0為高電平代表從flash啟動,gpio0為低電平代表進入系統公升級狀態,此時可以經過串列埠公升級內部韌體。

gpio16(rst)可做外部硬體復位使用。

step 2:開啟伺服器(server)模式(可以讓其他客戶端連線)

at+cwmode=3 //將模組設定為station+ap模式,提供路由模式,正常返回ok

指令:at+cwmode= mode

說明:mode:1-station模式,2-ap模式,3-ap兼station模式

響應:ok

at+rst //重啟模組,正常返回ready,(wifi got ip)

指令:at+rst

響應:ok

at+cipmux=1 //開啟多連線模式,正常返回ok

指令:at+cipmux=mode

說明:mode:0-單路連線模式,1-多路連線模式

響應:ok

at+cipserver=1,8080//建立伺服器

指令:at+cipserver=mode[,port]

說明:mode:0-關閉server模式,1-開啟server模式

port:埠號,預設值為333

響應:ok

說明:(1) at+ cipmux=1時才能開啟伺服器;關閉server模式需要重啟

(2)開啟server後自動建立server監聽,當有client接入會自動按順序占用乙個連線。

at+cifsr //查詢ip位址

0,connect

1,connect

前面的數字就是裝置的id號,給裝置傳送資訊的時候會用到,如果記不住這個id號了,可以用下面的指令查詢:

at+cipstatus //檢視當前建立的連線

指令:at+cipstatus

響應:status: states

+ cipstatus:id,type,addr,port,type

ok 說明:id:連線的id號0-4

type:字串引數,型別tcp或udp

addr:字串引數,ip位址

port:埠號

type: 0-本模組做client的連線,1-本模組做server的連線

at+cipsend=1,6 //向某個連線傳送資料

指令:1)單路連線時(+cipmux=0),指令為:at+cipsend=length

2)多路連線時(+cipmux=1),指令為:at+cipsend= id,length

響應:收到此命令後先換行返回」>」,然後開始接收串列埠資料,當資料長度滿length時傳送資料。

如果未建立連線或連線被斷開,返回error

如果資料傳送成功,返回 send ok

說明:id:需要用於傳輸連線的id號

length:數字引數,表明傳送資料的長度,最大長度為2048

step 3:開啟客戶端(client)模式(連線伺服器)

at+cwmode=3//將模組設定為station+ap模式,提供路由模式,正常返回ok(其實是接著上邊來的)

指令:at+cwmode= mode

說明:mode:1-station模式,2-ap模式,3-ap兼station模式

響應:ok

at+rst //重啟模組,正常返回ready,(wifi got ip)

指令:at+rst

響應:ok

at+cipserver=0 //關閉server服務 (如果沒有開啟server服務,可免除此步驟)

指令:at+cipserver=mode[,port]

說明:mode:0-關閉server模式,1-開啟server模式

port:埠號,預設值為333

響應:ok

說明:(1) at+ cipmux=1時才能開啟伺服器;關閉server模式需要重啟

(2)開啟server後自動建立server監聽,當有client接入會自動按順序占用乙個連線。

at+cipmux=1//開啟多連線模式

指令:at+cipmux=mode

說明:mode:0-單路連線模式,1-多路連線模式

響應:ok

at+cipstart=2,」tcp」,」192.168.1.122」,8080//建立tcp連線

指令:1)單路連線時(+cipmux=0),指令為:at+cipstart= type,addr,port

2)多路連線時(+cipmux=1),指令為:at+cipstart=id,type,addr,port

響應:如果格式正確且連線成功,返回 ok,否則返回 error

如果連線已經存在,返回 alreay connect

說明:id:0-4,連線的id號

type:字串引數,表明連線型別,」tcp」-建立tcp連線,」udp」-建立udp連線

addr:字串引數,遠端伺服器ip位址

port:遠端伺服器端口號

此時使用網路工具在本機建立乙個伺服器,就可以連線上,實現收發功能

at+cipsend=2,8//向伺服器傳送資料

指令:1)單路連線時(+cipmux=0),指令為:at+cipsend=length

2)多路連線時(+cipmux=1) ,指令為: at+cipsend= id,length

響應:收到此命令後先換行返回」>」,然後開始接收串列埠資料

當資料長度滿length時傳送資料。

如果未建立連線或連線被斷開,返回error

如果資料傳送成功,返回 send ok

說明:id:需要用於傳輸連線的id號

length:數字引數,表明傳送資料的長度,最大長度為2048

就在我快寫完了的時候我驚奇的發現貌似ap模式和sta模式都可以建立server或者client,當時不知道為什麼這麼設計。

既然你已經看到這裡了,我就要告訴你,你剛才做的其實就是socket程式設計,是不是覺得很神奇,我也是想了好長時間突然想明白的,還有就是tcp和udp的區別,尤其是和上位機通訊的時候一定要注意。

ESP8266簡單幾步建立伺服器

don t talk,show me code at restore 恢復出廠設定 簡單粗暴 at rst 重啟一哈 at cwmode 3 設定wifi為state和ap模式 at cwjap qq qwertyuiop789000 連線wifi,熱點名 熱點密碼 at cipmux 1 建立tc...

ESP8266設定AP模式ping包測試

學習記錄 硬體準備 pc機 usb資料線 esp8266開發板 軟體準備 串列埠除錯助手 韌體 我使用的是開發板自帶的韌體 flash download 燒錄工具 硬體連線用usb資料線將esp8266開發板連線到pc機上 軟體安裝 通過flash download 燒錄工具將需要的韌體燒錄到開發板...

ESP8266 OTA之伺服器更新

我之前介紹了兩篇關於esp8266的ota更新方法 說實話以上這兩種方案除有點好玩其實沒有什麼實用性,由其在開發產品時上述的兩種方案就是一種雞肋,甚至可以說是不可用的。那現在市面上的各種智慧型裝置是怎麼更新韌體的呢?答案顯然是肯定的。本文所講述的ota做法其實才是做產品的正道。然後將自更新邏輯寫入韌...