ESP32-WROVERでHTTPS Serverを立ち上げ APモード編

前回までで作ってきたHTTP ServerにおいてWiFi接続はSTAモード(子機)でしたがこれにAPモード(親機)を追加してみます。

ESP-IDFのsamplesの中にESP-IDF/samples/wifi/getting_started/softAP/main/softap_example_main.cというのがありますのでそれを参考にしてみます。

“softap_example_main.c”を見ると”wifi_init_softap()”関数がありそれを呼び出す事で実現しているようです。そこで#define CONFIG_SOFTAP_SELをdefine/undefineでSTAモードとAPモードを区別してみます。

CONFIG_SOFTAP_SELはこの後に出てくるsdkconfigで定義されます。

APモードならwifi_init_softap()を呼び出します。またSTAモードならESP32-WROVERがWiFiに接続したときstart_webserver()を呼び出しますが、APモードのときはwifi_init_softap()を呼び出した直後にstart_webserver()を呼び出します。

当然ながらAPモードのときのみwifi_init_softap()を実装します。

esp_event_handler_register()関数は子機が親機(本機)にconnect/disconnectしたときにメッセージが表示されますがさほど必要ないのでとりあえずコメントアウトしています。

stop_webserver()、disconnet_handler()、connect_handler()はAPモードでは使いませんので#ifndef SOFTAP_SELとします。

最後にAPモード時に使うパラメーターEXAMPLE_ESP_WIFI_SSID、EXAMPLE_ESP_WIFI_PASS、EXAMPLE_ESP_WIFI_CHANNEL、EXAMPLE_MAX_STA_CONNを定義します。

ここでのCONFIG_xxxは「ESP32-WROVERでHTTPS Serverを立ち上げ mDNS追加編」で説明したようにsdkconfig.hに定義されています。sdkconfig.hはsdkconfig(Eclipse)/menuconfig(コマンドプロンプト)で設定された値が反映されます。

sdkconfig(Eclipse)/menuconfig(コマンドプロンプト)の設定パラメーターはどこから作られるかというとESP-IDF/components下のKconfigおよび各プロジェクトのKconfig.projbuildです。

“ESP-IDF/examples/wifi/getting_stated/softAP/main下のKconfig.projbuildの中身を現プロジェクトのmain/Kconfig.projbuildeに挿入します。

ESP32-WROVERでHTTPS Serverを立ち上げ mDNS追加編」から作ったプロジェクトならmenu名が共にExample ConfigurationなのでSoftAP Configurationに変更します。

元々のExample ConfigurationもmDNSの設定なのでmDNS Configurationに変更します。

先に出てきたCONFIG_SOFTAP_SELはここに追加します(“CONFIG_”を付けない名前にするようです)。

ここでいったんbuildしてからsdkconfigを開くとSoftAP Configurationが追加されています。

特に設定を変えないならこのままflashします。

この状態で”myssid”というアクセスポイントが見えるはずなので接続します。パスワードは設定を変えていなければ”mypassword”です。

myssidにつながればSTAモード同様に通信できます。

さきほどのsdkconfig→SoftAP Configuration→softAP selのチェックを外してからbuild/flashとすると今度はSTAモードとして動作します。

ESP-IDFプロジェクトはGitHubにあります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です