WiFiMulti 機能を使用して ESP32 で最強の WiFi ネットワークに接続する

Wifimulti Ji Nengwo Shi Yongshite Esp32 De Zui Qiangno Wifi Nettowakuni Jie Xusuru



ESP32 は、WiFi と Bluetooth をサポートする IoT ベースのマイクロコントローラー ボードです。 ESP32 は、3 つの異なる WiFi モード (ステーション、アクセス、またはその両方) で動作できます。これらすべてのモードを使用すると、ESP32 はワイヤレス接続を何倍にも強化できます。今日は、利用可能な最強のネットワークに接続するための ESP32 のマルチ WiFi サポートについて説明します。

ESP32 と WiFiMulti 機能

複数のネットワークにアクセスできる場合、ESP32 は複数のネットワークに接続できます。コード内で SSID とパスワードを定義するだけです。利用可能なネットワークを検索し、コードで定義した最強の Wi-Fi ネットワークに接続します。







ノート: ネットワークへの接続が失われた場合、ESP32 は一度に 1 つのネットワークに接続することに注意してください。ESP32 は他の利用可能な WiFi ネットワークに接続します。



Arduino IDE で WiFiMulti の例を開くことができます。



に行く : ファイル > 例 > WiFi > WifiMulti





ESP32 で複数の WiFi ネットワークを追加する方法

ESP32 ボードに複数の WiFi ネットワークを追加するには。使用します Wifiマルチ 機能 addAP() . addAP() 関数は、引数として複数の SSID とパスワードを受け入れることができます。複数のネットワークを追加するには、SSID とパスワードを個別に定義する必要があります。以下は、複数のネットワークを追加するための構文です。 Wifiマルチ 機能 addAP() :



wifiマルチ。 addAP ( 「SSID ネットワーク1」 「パスワード1」 ) ;

wifiマルチ。 addAP ( 「SSIDネットワーク2」 「パスワード2」 ) ;

wifiマルチ。 addAP ( 「SSIDネットワーク3」 「パスワード3」 ) ;

ESP32 で最強の WiFi ネットワークに接続する方法

ESP32 を利用可能な最強のネットワークに接続するために、ESP32 WiFi スキャンと WiFi マルチの例を組み合わせます。次の手順を実行するコードを Arduino IDE に記述します。

  • 利用可能なネットワークをスキャンする
  • RSSI (信号強度) をシリアル モニターに出力します。したがって、利用可能な最強のネットワークを確認できます
  • 最強のネットワークに自動接続
  • 接続が失われると、次に利用可能な最も強力なネットワークに自動的に接続します

コードをテストするには、 スマートフォン ホットスポットと WiFi ネットワーク。エラーを回避するために、モバイル ホットスポット ネットワークには常に単純な名前を割り当てます。

Arduino IDE を使用して、ESP32 ボードで指定されたコードをアップロードします。

コード

Arduino IDE を開き、ESP32 でコードをアップロードします。 COM ポートを選択することを忘れないでください。

#include /*WIFI ライブラリが含まれています*/

#include /*マルチ WIFI ライブラリが含まれています*/

Wi-Fiマルチ Wi-Fiマルチ ;
/*AP 接続時間ごと。 ESP32が接続に時間がかかる場合に増加*/
定数 uint32_t connectTimeoutMs = 10000 ;
空所 設定 ( ) {
シリアル。 始める ( 115200 ) ; /*シリアル通信開始*/
遅れ ( 10 ) ;
Wi-Fi。 モード ( WIFI_STA ) ; /*ステーションとして初期化されたESP32 WIFI*/
/*既知のすべての SSID とそのパスワードを入力します*/
wifiマルチ。 addAP ( 「あなたのSSID」 'パスワード' ) ; /*接続したいネットワーク1*/
wifiマルチ。 addAP ( '電話' ) ; /*接続したいネットワーク2*/
// WiFi.scanNetworks は合計ネットワークを提供します
整数 n = Wi-Fi。 スキャンネットワーク ( ) ; /*利用可能なネットワークをスキャン*/
シリアル。 println ( 「スキャン完了」 ) ;
もしも ( n == 0 ) {
シリアル。 println ( 「利用可能なネットワークがありません」 ) ; /*ネットワークが見つからない場合に表示*/
}
そうしないと {
シリアル。 印刷する ( n ) ;
シリアル。 println ( 「ネットワークが見つかりました」 ) ; /*ネットワークが見つかった場合に出力します*/
為に ( 整数 = 0 ; < n ; ++ ) {
シリアル。 印刷する ( + 1 ) ; /*利用可能なネットワークのSSIDとRSSIを表示*/
シリアル。 印刷する ( ':' ) ;
シリアル。 印刷する ( Wi-Fi。 SSID ( ) ) ;
シリアル。 印刷する ( '(' ) ;
シリアル。 印刷する ( Wi-Fi。 RSSI ( ) ) ;
シリアル。 印刷する ( ')' ) ;
シリアル。 println ( ( Wi-Fi。 暗号化の種類 ( ) == WIFI_AUTH_OPEN ) ? ' ' : 「*」 ) ;
遅れ ( 10 ) ;
}
}
/*利用可能な SSID とパスワードを使用して、利用可能な最強の定義済みネットワークに接続します*/
シリアル。 println ( 「Wi-Fi に接続しています...」 ) ;
もしも ( wifiマルチ。 走る ( ) == WL_接続済み ) {
シリアル。 println ( '' ) ;
シリアル。 println ( 「WIFIネットワークに接続しました」 ) ;
シリアル。 println ( '接続されたネットワークの IP アドレス: ' ) ;
シリアル。 println ( Wi-Fi。 ローカルIP ( ) ) ; /*接続されたネットワークのIPアドレスを出力します*/
}
}
空所 ループ ( ) {
もしも ( wifiマルチ。 走る ( connectTimeoutMs ) == WL_接続済み ) { /*接続が失われた場合、次のネットワークに接続します*/
シリアル。 印刷する ( 'Wi-Fi 接続: ' ) ;
シリアル。 印刷する ( Wi-Fi。 SSID ( ) ) ;
シリアル。 印刷する ( ' ' ) ;
シリアル。 println ( Wi-Fi。 RSSI ( ) ) ;
}
そうしないと {
シリアル。 println ( 「WiFiが接続されていません!」 ) ; /*すべての条件が失敗した場合、これを出力します*/
}
遅れ ( 1000 ) ;
}

ESP32 用の WiFi ライブラリを定義することからコードを開始し、 WiFiマルチ 物体。次に、セットアップの部分で、2 つのネットワークを追加しました。 1 つはパスワードが暗号化された WiFi ネットワークであるため、スマートフォンのホットスポットである 2 番目のネットワークが開いている間にパスワードを入力する必要があるため、ネットワーク SSID を入力するだけでパスワードを入力する必要はありません。

次に、 wifiMulti.run() コマンド ESP32 は、利用可能な最強のネットワークに接続します。 WiFi が接続されると、コードは接続されたネットワーク SSID、IP アドレス、および RSSI を出力します。

出力

最初に ESP32 にコードをアップロードした後、利用可能なネットワークをスキャンし、利用可能な最も強力なネットワークに接続します。ここでは、各ネットワークの RSSI 値を確認できます。RSSI が低いほど、ネットワークが強いことを意味します。

  自動生成されたテキスト説明

ESP32 が接続されていることがわかります。 電話網 それは持っているので RSSI の値 -62 SSID とパスワードが定義されているもう一方のネットワークは、 チームサム その値は -73. ここで、モバイル ホットスポット ネットワークの RSSI 値がゼロに近いほど、接続が強いことを意味します。

スマートフォンのホットスポットを切断します。 ESP32 は、他の強力な利用可能なネットワークに接続します。出力にあるように、ESP32 が次に強力な利用可能なネットワークに接続されていることがわかります。接続先のネットワークは、RSSI 値が 0f -65 の Team SAM です。

結論

ESP32 は、そのサークルで利用可能な最強のネットワークに接続できます。コード内で複数のネットワーク SSID とパスワードを定義するだけです。を使用して WiFiマルチ 関数 ESP32 は利用可能なネットワークをスキャンし、接続が失われると、ESP32 範囲内の他の利用可能なネットワークに接続します。