日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ESP32超详细学习记录:wifi连接最基础方法

發(fā)布時(shí)間:2023/12/8 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ESP32超详细学习记录:wifi连接最基础方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2022年05月09日

ESP32連接WiFi

關(guān)鍵函數(shù)(抄自官方庫.h文件)

//WiFiSTA.h wl_status_t begin(const char* wpa2_ssid, wpa2_auth_method_t method, const char* wpa2_identity=NULL, const char* wpa2_username=NULL, const char *wpa2_password=NULL, const char* ca_pem=NULL, const char* client_crt=NULL, const char* client_key=NULL, int32_t channel=0, const uint8_t* bssid=0, bool connect=true); wl_status_t begin(const char* ssid, const char *passphrase = NULL, int32_t channel = 0, const uint8_t* bssid = NULL, bool connect = true); wl_status_t begin(char* ssid, char *passphrase = NULL, int32_t channel = 0, const uint8_t* bssid = NULL, bool connect = true); wl_status_t begin(); //WiFiSTA.h static wl_status_t status();

WiFi庫的函數(shù)接口: Arduino-ESP32庫接口:WiFi.h_喜暖知寒的博客-CSDN博客

簡單講:

連接wifi:

WiFi.begin(ssid,passworld,channel,bassid,connect)

ssid是必須要傳入函數(shù)的,passworld、channel、bassid、connect如果不傳入?yún)?shù),自動(dòng)按照默認(rèn)值。

  • ssid:要連接的WiFi的名稱。(類型 char*)
  • password:WiFi密碼,默認(rèn)NULL(類型 char*)
  • channel:WiFi接入點(diǎn)信道,默認(rèn)為0。(類型 int32_t)
  • bassid:要鏈接WiFi接入點(diǎn)的mac地址,默認(rèn)NULL。(類型const uint8_t*)
  • connect:連接狀態(tài)參數(shù)。如果connect參數(shù)為true,ESP8266開發(fā)板會(huì)使用閃存中儲(chǔ)存的信息嘗試連接WiFi。如果connect參數(shù)為false,ESP8266開發(fā)板不會(huì)嘗試連接WiFi,而只會(huì)將WiFi連接信息保存在閃存中。默認(rèn)為true。(類型bool)

其實(shí)說ssid也不是必要的參數(shù)。如果直接調(diào)用:

WiFi.begin()

會(huì)根據(jù)以前保存在閃存中的參數(shù)連接。


獲取ESP8266的網(wǎng)絡(luò)連接狀態(tài)

WiFi.status();

返回值問題:

  • WL_IDLE_STATUS:0,正在嘗試連接
  • WL_NO_SSID_AVAIL:1,沒有找到SSID網(wǎng)絡(luò)
  • WL_SCAN_COMPLETED:2,網(wǎng)絡(luò)掃描完畢
  • WL_CONNECTED:3,網(wǎng)絡(luò)連接成功
  • WL_CONNECT_FAILED:4,連接失敗
  • WL_CONNECTION_LOST:5,連接丟失
  • WL_DISCONNECTED:6,未連接

代碼示例:

為WiFi功能創(chuàng)建了單獨(dú)文件。目的方便日后移植。

工程目錄下一共三個(gè)文件:main.ino、UserWiFi.cpp、UserWiFi.h

UserWiFi.h

要做比較大的項(xiàng)目還是要學(xué)習(xí)寫庫接口的方法。

#ifndef __USERWIFI__ #define __USERWIFI__#include <WiFi.h>class UserWiFi //定義類 { public: //查看其他庫就能看出,這里寫的是外部可調(diào)用的函數(shù)/** wifi連接函數(shù)*/void WiFiConnect(const char * id,const char * psw);private: //私有函數(shù)};#endif

UserWiFi.cpp

#include "UserWiFi.h"void UserWiFi::WiFiConnect(const char * id,const char * psw) {Serial.println("WiFi:");Serial.println(id);Serial.println("PASSWORLD:");Serial.println(psw);WiFi.begin(id,psw);while(WiFi.status()!=WL_CONNECTED){delay(500);Serial.println("正在連接...");}Serial.println("連接成功!"); }

main.ino

#include "UserWiFi.h"const char * ID = "NATCAP_0E35"; //wifi名稱 const char * PASSWORD = "88888888"; //wifi密碼UserWiFi userwifi; //類的實(shí)例化void setup() {Serial.begin(115200); //串口定義,波特率115200userwifi.WiFiConnect(ID,PASSWORD);}void loop() {Serial.println("連接成功!"); //串口打印delay(5000);}

簡單方法:如果寫成一個(gè)文件

(已驗(yàn)證,可直接復(fù)制編譯)

#include <WiFi.h>const char * ID = "NATCAP_0E35"; const char * PASSWORD = "88888888";void setup() {Serial.begin(115200);Serial.println("WiFi:");Serial.println(ID);Serial.println("PASSWORLD:");Serial.println(PASSWORD);WiFi.begin(ID,PASSWORD);while(WiFi.status()!=WL_CONNECTED){delay(500);Serial.println("正在連接...");}Serial.println("連接成功!");}void loop() {Serial.println("連接成功!");delay(5000); }

最終串口輸出:

串口監(jiān)視器

OK,大致就是這樣。只實(shí)現(xiàn)基本功能的話非常簡單。

總結(jié)

以上是生活随笔為你收集整理的ESP32超详细学习记录:wifi连接最基础方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。