2022年2月12日ESP32はbluetoothやWiFiを内蔵していて、ネットワーク接続が比較的に簡単に行えます。いうことで、WiFi接続にチャレンジしていきたいと思います。複数のアクセスポイントを切り替えて接続まとめWiFi接続WiFi接続について、いろいろと試していきたいと思います。アクセスポイントに接続まずは、アクセスポイントに接続して、ESP32に設定されているIPアドレス等の設定情報を表示、および、設定を行ってみたいと思います。プログラムは以下になります。repeatedly:}プログラムについて簡単に説明いたします。1行目で、WiFiを使用するためのクラスヘッダを読み込んでいます。3行目で、接続するアクセスポイントのSSIDを設定しています。4行目で、アクセスポイントに接続するパスワードを設定しています。SSIDとパスワードは、実行環境に合わせて設定を行ってください。8行目で、SSIDとPASSWORDを指定して、ネットワーク設定の初期化とWiFi接続を行っています。9行目で、WiFi接続の現在のステータスを確認しています。WiFiに接続が完了するまで、ステータスの確認を行います。「WiFi.status()」を行うことで、以下の値が確認できます。WiFiネットワークに接続完了。WiFiシールドが存在しない。WiFi.begin()の呼び出しから、接続完了、または、接続失敗までのアイドル状態。利用できるSSIDが存在しない。ネットワークスキャン完了。WiFiネットワークに接続失敗。WiFiネットワークの接続ロスト。WiFiネットワークから切断。WiFiネットワークとの接続が完了後に、現時点でESP32に設定されている接続情報を取得します。15行目の「GetWiFiConfig()」関数で、設定情報をシリアル表示しています。表示する内容は以下になります。MACアドレスまた、16行目の「SetWiFiConfig()」関数で、今回はIPアドレスのみ設定しています。47~51行目で、「WiFi.config()」を使用してネットワーク設定を行っています。引数は以下になります。ESP32に割り当てるIPアドレスデフォルトゲートウェイサブネットマスクDNSサーバー1のIPアドレスDNSサーバー2のIPアドレス17行目で、設定が行われているか確認しています。IDEからESP32に書き込みを行い、動作を確認してみます。WiFi接続が正常に行われ、まず最初に割り当てられたIPアドレスが表示されています。その後、「10.0.0.11」にIPアドレスが書き換わっていることが確認できました。自宅のWiFiや携帯のテザリングなど、複数のアクセスポイントを使い分けることができる「WiFiMulti」クラスを試してみたいと思います。「WiFiMulti」クラスは、事前に複数のアクセスポイントの情報を登録しておき、登録したアクセスポイントに順番に接続を試みます。接続が確立したアクセスポイントを利用するといった便利機能になります。「WiFiMulti」クラスは、Arudinoのサンプルスケッチにもあるので、確認してみてください。メニューの「ファイル」→「スケッチ例」→「WiFi」→「WiFiMulti」を参照。確認プログラムを以下に記載いたします。delay(1000);}プログラムについて簡単に説明いたします。1~2行目に、WiFiとWiFiMultiクラスを使用するために、ヘッダファイルの読み込みをします。4行目で、WiFiMultiクラスを使用するための変数を設定します。11、12行目で、「WiFi.addAP()」を使用して、アクセスポイントを複数追加します。引数には、SSIDと接続パスワードを指定して下さい。今回は、自宅のルータと携帯のテザリングを使用してみました。15~51行目の「loop()」関数で、1秒ごと繰り替えしWiFiの接続状況を監視しています。16行目の「run()」関数で、「WiFi.addAP()」で追加したアクセスポイントに接続を試みて、接続状態を戻り値で取得できます。18行目で、今回の接続状態と前回の接続状態を比較して、不一致の場合は状態を出力しています。接続が確立した場合(WL_CONNECTED)は、接続先のSSIDも出力しています。実際に動作させた結果が以下になります。SSID:NETGEAR■・・・自宅ルータSSID:SH-■_AP・・・携帯テザリング確認した手順とESP32のWiFi接続状態は、以下のようになりました。自宅ルータと携帯テザリングを両方ともONにする。ESP32を起動すると、自宅ルータに接続される。自宅ルータの電源OFFにする。ESP32が接続先を見失う。使用できるSSIDがなくなる(実際は携帯のテザリングがONなのであるのでは?)。携帯のテザリングに接続される。携帯のテザリングをOFFにする。ESP32のWiFiが切断される。使用できるSSIDがなくなる。自宅ルータの電源をONにする。自宅ルータに接続される。概ね予想通りの動作をしてくれました。available」は、ちょっと微妙でした。まとめESP32でWiFi接続を試してみました。比較的簡単にネットワーク接続を行うことができてしまい、ちょっと拍子抜けしてしまいました。便利なライブラリがいろいろたありそうなので、引き続きWiFiを試していきたいと思います。