ESP32をWi-Fiルーターのように使う

技術開発ESP32

概要

ESP32の使い方を調べると、既存のWi-Fiに接続してルーター経由で使用する記事を多く見かけます。
ただ、この使い方ではSSIDとパスワードを把握したWi-Fiルーターの近くでしか使用できず、またIPアドレスが変わった時に調べなおす必要があります。

そこでESP32をsoftAPモードで起動することでWi-Fiルーターのようにスマホ等を直接接続できるようにします。

参考サイト

実行環境

MCU:ESP32-DevKit C / 30pin (ESP-WROOM-32)
IDE:Arduino IDE 1.8.19

環境構築

詳しくは省略します。Arduino IDEにESP32のボード情報を追加するだけで、ライブラリの追加は不要です。

サンプルプログラム

#include <WiFi.h>
#include <WebServer.h>

#define WIFI_SSID "ESP32-softAP"    /* SSID */
#define WIFI_PWD "12345678"           /* パスワード */

WebServer server(80);                   /* ポート80で宣言 */
IPAddress ip( 192, 168, 0, 1 );         /* ESP32のIPアドレス */
IPAddress subnet( 255, 255, 255, 0 );   /* サブネットマスク */

void setup() {
  /* softAPモードに設定 */
  WiFi.mode(WIFI_AP);
  WiFi.softAP(WIFI_SSID, WIFI_PWD);
  delay(100);
  WiFi.softAPConfig(ip, ip, subnet);
  

  /* ルートにアクセスされた時の処理の設定 */
  server.on("/", []() {
    server.send(
      200,
      "text/html",
      "<h1>Hello! Web Server!</h1>");
  });

  /* Webサーバーの起動 */
  server.begin();
}

void loop() {
  /* クライアントからアクセスがあった時の処理 */
  server.handleClient();
}

パスワードなしのWi-Fiに設定した時は、WiFi.softAP()の引数をSSIDのみにします。
WiFi.softAP(WIFI_SSID, WIFI_PWD);
 → WiFi.softAP(WIFI_SSID);

動作確認

スマホやPCでWi-Fi一覧を見ると「ESP32-softAP」が増えているので、これに接続します。
パスワードはdefine WIFI_PWDで設定した文字列です。
無事に接続できたらブラウザで「http://192.168.0.1/」にアクセスします。
ブラウザに「Hello! Web Server!」と表示されれば成功です。