WiFiMulti

はじめに

複数のWiFiアクセスポイントを登録し、RSSIが最大のアクセスポイントに接続します。

プログラム

定義等

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
/*
 *  This sketch trys to Connect to the best AP based on a given list
 *
 */

#include <WiFi.h>
#include <WiFiMulti.h>

WiFiMulti wifiMulti;
 

WiFiMultiクラスは、複数のアクセスポイントを管理するためのクラスです。

setup()

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void setup()
{
    Serial.begin(115200);
    delay(10);

    wifiMulti.addAP("ssid_from_AP_1", "your_password_for_AP_1");
    wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2");
    wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3");

    Serial.println("Connecting Wifi...");
    if(wifiMulti.run() == WL_CONNECTED) {
        Serial.println("");
        Serial.println("WiFi connected");
        Serial.println("IP address: ");
        Serial.println(WiFi.localIP());
    }
}
 

wifiMullti.addAP()は、WiFiアクセスポイントの登録です。SSIDとPASSWORDは、各自の環境に合わせて変更する必要があります。

wifiMulti.run()は、wifiMullti.addAP()で登録したアクセスポイントに接続するメソッドです。接続に成功するとWL_CONNECTEDが返ってきます。

WiFi.localIP()は、現在割り当てられているIPアドレスを返却します。WiFiは、WiFi.cppで定義されている変数です。

loop()

29
30
31
32
33
34
35
void loop()
{
    if(wifiMulti.run() != WL_CONNECTED) {
        Serial.println("WiFi not connected!");
        delay(1000);
    }
}

wifiMulti.run()を、1秒おきに起動しています。アクセスポイントに接続しているときは、WL_CONNECTEDが返ってきます。

バージョン

Hardware:ESP-WROOM-32
Software:Arduino core for the ESP32 2.0.4

最終更新日

September 4, 2022

inserted by FC2 system