ESP32 Arduino开发 网络连接
ESP32 Arduino开发 网络连接
1. 编写相关程序
1.1. 引入头文件
WiFi.h
并不是第三方的库,所以不需要先加载库
#include <WiFi.h>
1.2. 调用WiFi连接函数
WiFi连接函数需要2个参数:网络名称以及网络密码,在setup()
函数之外先对参数进行定义,然后直接调用WiFi.begin()
函数就可以进行STA模式配网。
1.3. 检测网络连接状态
通过WiFi.status()
函数获取当前设备的网络连接状态,如果网络未连接,则继续等待,如果网络连接成功,则打印相关信息。综合1.2、1.3,我们可以写出如下的代码。
#include <WiFi.h>
const char* ssid="要连接wifi名字"; //定义两个字符串指针常量
const char* pass="wifi密码";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, pass);
while(WiFi.status()!=WL_CONNECTED){
delay(500);
Serial.println("正在连接...");
}
Serial.println("连接成功!");
}
void loop() {
}
1.4. 连接超时处理
按照我们1.3中所编写的代码,如果我们输入的WiFi信息是错误的情况下,它依旧会一直尝试连接该网络。但是我们都知道,现实中的设备并不会这样处理,在一定时间内连接不上的情况下,会提示超时错误。
最简单的方法就是添加一个变量,每次判断网络是否连接时候使其计数+1,当达到阈值之后,串口打印连接超时。也可以直接用一个循环次数固定的for循环来实现。
#include <WiFi.h>
#define MAX_RETRIES 10
const char* ssid="要连接wifi名字"; //定义两个字符串指针常量
const char* pass="wifi密码";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, pass);
int counter = 0;
while(WiFi.status()!=WL_CONNECTED){
delay(500);
counter++;
if(counter > MAX_RETRIES){
Serial.println("连接超时");
break;
}
Serial.println("正在连接...");
}
if(counter <= MAX_RETRIES){
Serial.println("连接成功!");
}
}
void loop() {
}
#include <WiFi.h>
#define MAX_RETRIES 10
const char* ssid="要连接wifi名字"; //定义两个字符串指针常量
const char* pass="wifi密码";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, pass);
int counter = 0;
for(int i=0; i<MAX_RETRIES; i++)
{
delay(500);
if(WiFi.status()!=WL_CONNECTED){
Serial.println("正在连接...");
} else{
Serial.println("连接成功!");
break;
}
}
if(WiFi.status()!=WL_CONNECTED){
Serial.println("连接超时");
}
}
void loop() {
}
2. STA模式与AP模式
参考:CSDN博客
STA: station模式,wifi工作在无线终端模式,可通过连接热点连接到网络,基本上现实我们使用的设备都可以工作在此模式,像我们的电脑、手机,工作在这种模式称为从模式。
AP: access point,也就是无线接入点,wifi工作在热点模式,其他sta设备可以连接到此热点,AP工作在主模式,一般所使用的无限路由器就是一个AP。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)