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 @ 2024-01-16 11:11  霍北北  阅读(487)  评论(0编辑  收藏  举报