ESP32超详细学习记录:wifi连接最基础方法
生活随笔
收集整理的這篇文章主要介紹了
ESP32超详细学习记录:wifi连接最基础方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2022年05月09日
ESP32連接WiFi
關鍵函數(抄自官方庫.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庫的函數接口: Arduino-ESP32庫接口:WiFi.h_喜暖知寒的博客-CSDN博客
簡單講:
連接wifi:
WiFi.begin(ssid,passworld,channel,bassid,connect)ssid是必須要傳入函數的,passworld、channel、bassid、connect如果不傳入參數,自動按照默認值。
- ssid:要連接的WiFi的名稱。(類型 char*)
- password:WiFi密碼,默認NULL(類型 char*)
- channel:WiFi接入點信道,默認為0。(類型 int32_t)
- bassid:要鏈接WiFi接入點的mac地址,默認NULL。(類型const uint8_t*)
- connect:連接狀態參數。如果connect參數為true,ESP8266開發板會使用閃存中儲存的信息嘗試連接WiFi。如果connect參數為false,ESP8266開發板不會嘗試連接WiFi,而只會將WiFi連接信息保存在閃存中。默認為true。(類型bool)
其實說ssid也不是必要的參數。如果直接調用:
WiFi.begin()會根據以前保存在閃存中的參數連接。
獲取ESP8266的網絡連接狀態
WiFi.status();返回值問題:
- WL_IDLE_STATUS:0,正在嘗試連接
- WL_NO_SSID_AVAIL:1,沒有找到SSID網絡
- WL_SCAN_COMPLETED:2,網絡掃描完畢
- WL_CONNECTED:3,網絡連接成功
- WL_CONNECT_FAILED:4,連接失敗
- WL_CONNECTION_LOST:5,連接丟失
- WL_DISCONNECTED:6,未連接
代碼示例:
為WiFi功能創建了單獨文件。目的方便日后移植。
工程目錄下一共三個文件:main.ino、UserWiFi.cpp、UserWiFi.h
UserWiFi.h
要做比較大的項目還是要學習寫庫接口的方法。
#ifndef __USERWIFI__ #define __USERWIFI__#include <WiFi.h>class UserWiFi //定義類 { public: //查看其他庫就能看出,這里寫的是外部可調用的函數/** wifi連接函數*/void WiFiConnect(const char * id,const char * psw);private: //私有函數};#endifUserWiFi.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; //類的實例化void setup() {Serial.begin(115200); //串口定義,波特率115200userwifi.WiFiConnect(ID,PASSWORD);}void loop() {Serial.println("連接成功!"); //串口打印delay(5000);}簡單方法:如果寫成一個文件
(已驗證,可直接復制編譯)
#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); }最終串口輸出:
串口監視器
OK,大致就是這樣。只實現基本功能的話非常簡單。
總結
以上是生活随笔為你收集整理的ESP32超详细学习记录:wifi连接最基础方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源四足机器人 附设计图及代码
- 下一篇: ORACLE 学习(五)