don』t talk,show me code
at+restore //恢復出廠設定(簡單粗暴)
at+rst //重啟一哈
at+cwmode=
3//設定wifi為state和ap模式
at+cwjap=
"qq"
,"qwertyuiop789000"
//連線wifi,「熱點名」,「熱點密碼」
at+cipmux=
1//建立tcp server
at+cipserver=1,
8080
//開啟tcp server ,埠設定為8080(到這裡已經建立成功了)
/*這倆要不要都行*/
at+cipmode=
1//傳送模式設定為透傳模式
具體設定:
/*.h*/
/*連線ap巨集定義*/
#define ssid "qq"
#define pwd "qwertyuiop789000"
#define defaltip "192.168.137.111"
/*傳送接收緩衝區長度巨集定義*/
#define txbuffer_len 50
#define rxbuffer_len 30
/*.c*/
u8 txbuffer[txbuffer_len]=;
//網路通訊資料傳送緩衝
u8 rxbuffer[rxbuffer_len]=;
//網路通訊資料接收緩衝
char empty_buffer[5]
="0000"
;//用於清空盒子,下次使用
/** * 功能:外設串列埠初始化
* 引數:
* 無
*/void
inituart2
(void
)/**
* 功能:指定某個uart傳送乙個位元組
* 引數:usartx:使用的目標串列埠x為1-3
* byte:待傳送位元組
* 返回值:none
*/static
void
sendbyte
(usart_typedef *usartx, u16 byte)
/** * 功能:指定某個串列埠傳送字串
* 引數:usartx:使用的目標串列埠x為1-3
* str:字串指標
* 返回值:none
*/void
sendstring
(usart_typedef *usartx,
char
*str)
}/**
* 功能:串列埠2中斷服務函式
* 引數:none
* 返回值:none
*/void
usart2_irqhandler
(void)}
if(usart_getitstatus
(usart2, usart_it_idle))}
/** * 功能:查詢字串中是否包含另乙個字串
* 引數:
* dest:待查詢目標字串
* src:待查詢內容
* retry_cn:查詢超時時間
* 返回值:查詢結果,非0為查詢成功,0為失敗
* 說明:
* 當發出乙個at指令後,需要一段時間等待esp8266回覆,因此就需要等待一段時間,
* 這個時間通常是幾百ms(除了連線伺服器和ap指令),本程式一般指令通常等待
* 2s,耗時的連線ap和伺服器的設定等待為8s,其實花不了那麼多時間,但如果發生超時
* 就一定可以判斷是通訊問題
*/u8 findstr
(u8* dest,u8* src,u16 retry_cn)
if(retry==0)
//如果超時則有問題,此時返回0
result_flag =1;
//執行到這裡說明一切正常, 表示查詢成功
if(result_flag)
else
}/**
* 功能:初始化esp8266
* 引數:none
* 返回值:初始化結果,非0為初始化成功,0為失敗
*/u8 initesp8266
(void
)memset
(rxbuffer,
0,rxbuffer_len)
;//清空接收緩衝
sendstring
(usart2,
"ate0\r\n");
//關閉回顯 if(
findstr
(rxbuffer,
"ok"
,200)==
0)//設定不成功
return1;
//設定成功
}/**
* 功能:檢查esp8266是否正常
* 引數:none
* 返回值:esp8266返回狀態
* 非0 esp8266正常
* 0 esp8266有問題
*/u8 checkesp8266
(void
)else
//esp8266不正常
}/**
* 功能:連線熱點
* 引數:
* ssid:熱點名
* pwd:熱點密碼
* 返回值:
* 連線結果,非0連線成功,0連線失敗
*/u8 connectap
(u8* ssid,u8* pwd,u8* defaltip)
}memset
(txbuffer,
0,rxbuffer_len)
;//清空傳送緩衝
memset
(rxbuffer,
0,rxbuffer_len)
;//清空接收緩衝
sprintf((
char
*)txbuffer,
"at+cwjap=\"%s\",\"%s\"\r\n"
,ssid,pwd)
;//連線目標ap
sendstring
(usart2,
(char
*)txbuffer);if
(findstr
(rxbuffer,
"ok"
,800)!=
0)//連線成功且分配到ip
return0;
}/**
* 功能:連線熱點
* 引數:
* ssid:熱點名
* pwd:熱點密碼
* 返回值:
* 連線結果,非0連線成功,0連線失敗
* 說明:
* 失敗的原因有以下幾種(uart通訊和esp8266正常情況下)
* 1. wifi名和密碼不正確
* 2. 路由器連線裝置太多,未能給esp8266分配ip
*/u8 creatserver
(void
)else
return0;
}/**
* 功能:處理從手機端接收的控制資料
* 引數:24c02中的驗證碼
* 返回值:none
* 說明:
*/void
proserverdate()
ESP8266 利用網頁控制ESP8266
說明 發出 gpio 1 就輸出 亮燈 gpio 0 就輸出 滅燈 include const char ssid jia 這裡輸入wifi名稱 const char password lm654321 這裡輸入wifi密碼 wifiserver server 80 開啟板子的80埠 int val...
ESP8266學習筆記
因為此模式可控性高且方便,所以推薦此模式 測試指令 at 應用模式設定 at cwmode 3 ap 模式 1 esp8266模組作為熱點,實現手機或電腦直接與模組通訊,實現區域網無線控制。sta 模式 2 esp8266模組通過路由器連線網際網路,手機或電腦通過網際網路實現對裝置的遠端控制 sta...
ESP8266輸出控制
gpio的輸出 esp8266的輸出控制。在esp8266引腳作為gpio輸出時,首先要配置gpio為輸出模式,這個和普通的32位微控制器的io輸出是一樣的,然後提供改變io口的電平來控制輸出模組的狀態。在這裡我用我自己手上的一款esp8266的微控制器為例。gpio相關介面位於 esp8266 n...