概述
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: //私有函数
};
#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; //类的实例化
void setup()
{
Serial.begin(115200); //串口定义,波特率115200
userwifi.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连接最基础方法的全部内容,希望文章能够帮你解决ESP32超详细学习记录:wifi连接最基础方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复