ESP32をWi-Fiルーターのように使う
概要
ESP32の使い方を調べると、既存のWi-Fiに接続してルーター経由で使用する記事を多く見かけます。
ただ、この使い方ではSSIDとパスワードを把握したWi-Fiルーターの近くでしか使用できず、またIPアドレスが変わった時に調べなおす必要があります。
そこでESP32をsoftAPモードで起動することでWi-Fiルーターのようにスマホ等を直接接続できるようにします。
参考サイト
ESP32にWiFi接続したら自動的にトップページを開くみたいな / kghr IT備忘録
Android, Arduino, 格安sim, ipカメラ, Unity開発 など、試したことやメモを書きます。
実行環境
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!」と表示されれば成功です。
ディスカッション
コメント一覧
まだ、コメントがありません