固定IPアドレスでWifiアクセスポイントに接続する方法 with Arduino IDE
開発環境
OS : Windows 11 Pro
ESP32:ESP-WROOM-32
統合開発環境 : Arduino IDE 2.3.2
Arduino core for the ESP32:2.0.17
使用ライブラリ:なし
使用パーツ
ESP32開発ボード(38Pin)
ESP-WROOM-32
ポチップ
作業内容
スケッチ作成
固定IPアドレスを使用して無線ルーターに接続するサンプルコード。
使用API:WiFi.config() / WiFi.begin()
#include <WiFi.h>
const char* ssid = "xxxxxxxx";
const char* password = "xxxxxxxx";
const IPAddress ip(192, 168, 11, 52);
const IPAddress gateway(192, 168, 11, 1);
const IPAddress subnet(255, 255, 255, 0);
const IPAddress dns1(192, 168, 11, 1);
void setup()
{
Serial.begin(115200);
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
if (!WiFi.config(ip,gateway,subnet,dns1)){
Serial.println("Failed to configure!");
}
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop()
{
// put your main code here, to run repeatedly:
}
コード説明
[ssid]と[password]の内容は変更します。
const char* ssid = "xxxxxx";
const char* password = "xxxxxx";
固定IPアドレスを取得する場合は、WiFi.config()を使用します。
if (!WiFi.config(ip,gateway,subnet,dns1)){
Serial.println("Failed to configure!");
}
引数
local_ip | ESP-WROOM-32に割り当てるIPアドレス |
gateway | ゲートウェイのIPアドレス |
subnet | サブネットマスク |
dns1 | プライマリDNSサーバのIPアドレス。(オプション) |
dns2 | セカンダリDNSサーバのIPアドレス。(オプション) |
dns1,dns2はオプションのため指定しなくても良いですが、外部と通信する場合は必要になります。今回はdns1のみ指定しています。
Wi-Fi API - - — Arduino ESP32 latest documentation
動作確認
以下のようにシリアルモニタに表示されれば、接続完了です。
まとめ
今後Webサーバを立てた時など、利用者がIPアドレスを知りたいシステムを作る場合に便利だと思います。
また、家庭内の無線LAN接続機器を管理する上でも、常時接続しているものは固定IPアドレスにしていると何かと便利です。
Wifi切断時に自動で接続させる方法はこちら👇
コメント
固定IPアドレスのメリットとしては、DHCPからアドレス取得をする時間を省略できるため、接続時間が大幅に短縮される点ですね。
時間の計測はしていないのですが、体感半分以下になっています。
私はLightSleepに入れておいて10分おきに起床、温度を送信というアプリケーションを組んでいるのですが、
リポバッテリーで運用していますので、Active時間をできる限り短くできるように、固定IP運用にしています。
なるほど。接続時間の短縮にも固定IPアドレスは有効なのですね!
時間がある時にでも計測してみます。
LightSleepはまだ実装したことがないので、これも参考にさせていただきます。
特にwifi関連は電力使いそうですし、その点でも固定IPアドレスは有効なのですね。