Время чтения: 5 минут | Польза: Стабильный доступ к вашему устройству в локальной сети
Если вы когда-либо запускали веб-сервер на ESP32, то замечали, что при каждом перезагрузке устройства его IP-адрес может меняться. Это означает, что вам всегда нужно проверять монитор порта, чтобы узнать новый адрес. Использование статического IP-адреса решает эту проблему:
Перед тем как назначать статический IP, рекомендуется узнать текущие параметры сети:
#include <WiFi.h>
// Замените на ваши данные Wi-Fi
const char* ssid = "YourNetworkName";
const char* password = "YourPassword";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("Подключено!");
Serial.print("Текущий IP: ");
Serial.println(WiFi.localIP());
Serial.print("Шлюз: ");
Serial.println(WiFi.gatewayIP());
Serial.print("Маска подсети: ");
Serial.println(WiFi.subnetMask());
Serial.print("DNS: ");
Serial.println(WiFi.dnsIP());
}
Запишите эти значения – они понадобятся для настройки статического IP.
Основная функция для назначения статического IP – WiFi.config(). Вот как ей правильно пользоваться:
#include <WiFi.h>
// Настройки Wi-Fi
const char* ssid = "YourNetworkName";
const char* password = "YourPassword";
// Настройки статического IP
IPAddress staticIP(192, 168, 1, 55); // Статический IP
IPAddress gateway(192, 168, 1, 1); // IP вашего роутера
IPAddress subnet(255, 255, 255, 0); // Маска подсети
IPAddress dns(8, 8, 8, 8); // DNS Google
void setup() {
Serial.begin(115200);
// Назначаем статический IP ДО подключения к Wi-Fi!
if (!WiFi.config(staticIP, gateway, subnet, dns)) {
Serial.println("Не удалось настроить статический IP!");
}
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi подключен!");
Serial.print("IP-адрес ESP32: ");
Serial.println(WiFi.localIP());
}
void loop() {
// Ваш код здесь
}
Функция WiFi.config() принимает следующие параметры:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
| local_ip | IPAddress | Желаемый статический IP-адрес | IPAddress(192, 168, 1, 55)
|
| gateway | IPAddress | IP-адрес вашего маршрутизатора | IPAddress(192, 168, 1, 1)
|
| subnet | IPAddress | Маска подсети | IPAddress(255, 255, 255, 0)
|
| dns1 | IPAddress | Основной DNS-сервер (необязательно) | IPAddress(8, 8, 8, 8)
|
| dns2 | IPAddress | Вторичный DNS-сервер (необязательно) | IPAddress(8, 8, 4, 4)
|
if (WiFi.status() == WL_CONNECTED) {
Serial.println("Успешно подключено!");
} else {
Serial.println("Ошибка подключения!");
} WiFi.config(0, 0, 0); // Сбрасываем настройки WiFi.begin(ssid, password); // Подключаемся снова
Проблема: Не удается подключиться к Wi-Fi после назначения статического IP.
Решения:
Проблема: ESP32 не отвечает по статическому IP.
Решения:
ping 192.168.1.55.Настройка статического IP-адреса для ESP32 с помощью WiFi.config() – это простой и эффективный способ обеспечить стабильный доступ к вашему устройству в локальной сети. Следуя этой инструкции, вы сможете:
Дополнительные материалы:
Понравилась статья ESP32: Настройка статического IP-адреса с помощью WiFi.config? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на VK Видео, вступить в группу Вконтакте.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
Читайте также
Мы в соц сетях
Комментарии