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。

posted @   霍北北  阅读(711)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示