ESP8266をWi-Fiルーターのように使う
概要
ESP8266の使い方を調べると、既存のWi-Fiに接続してルーター経由で使用する記事を多く見かけます。
ただ、この使い方ではSSIDとパスワードを把握したWi-Fiルーターの近くでしか使用できず、またIPアドレスが変わった時に調べなおす必要があります。
そこでESP8266をsoftAPモードで起動することでWi-Fiルーターのようにスマホ等を直接接続できるようにします。
参考サイト
ESP8266 をアクセスポイントとして Web サーバーを実装
IoT に初めて取り組む人向けの超簡単な電子工作入門サイト。電子工作の基礎から Arduino を利用したプログラミング等をわかりやすく解説
実行環境
MCU:WeMos D1 mini(LOLIN)
IDE:Arduino IDE 1.8.19
環境構築
詳しくは省略します。Arduino IDEにESP8266のボード情報を追加するだけで、ライブラリの追加は不要です。
サンプルプログラム
#include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #define WIFI_SSID "ESP8266-softAP" /* SSID */ #define WIFI_PWD "12345678" /* パスワード */ ESP8266WebServer server(80); IPAddress ip( 192, 168, 0, 1 ); /* ESP8266のIPアドレス */ IPAddress subnet( 255, 255, 255, 0 ); /* サブネットマスク */ void setup() { /* softAPモードに設定 */ WiFi.mode(WIFI_AP); WiFi.softAPConfig(ip, ip, subnet); WiFi.softAP(WIFI_SSID, WIFI_PWD); /* ルートにアクセスされた時の処理の設定 */ 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一覧を見ると「ESP8266-softAP」が増えているので、これに接続します。
パスワードはdefine WIFI_PWDで設定した文字列です。
無事に接続できたらブラウザで「http://192.168.0.1/」にアクセスします。
ブラウザに「Hello! Web Server!」と表示されれば成功です。
ディスカッション
コメント一覧
まだ、コメントがありません