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