ESP32: Настройка статического IP-адреса с помощью WiFi.config().

Время чтения: 5 минут | Польза: Стабильный доступ к вашему устройству в локальной сети

Зачем нужен статический IP для ESP32?

Если вы когда-либо запускали веб-сервер на ESP32, то замечали, что при каждом перезагрузке устройства его IP-адрес может меняться. Это означает, что вам всегда нужно проверять монитор порта, чтобы узнать новый адрес. Использование статического IP-адреса решает эту проблему:

  1. Постоянный адресваш ESP32 всегда будет доступен по одному и тому же IP.
  2. Удобство – не нужно постоянно проверять текущий IP в мониторе порта.
  3. Безопасность – вы можете настроить правила брандмауэра для конкретного IP.
  4. Множество устройств – легко различать несколько ESP32 в одной сети.

Зачем нужен статический IP для ESP32?

Шаг 1: Получение текущих сетевых настроек.

Перед тем как назначать статический 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.


Шаг 2: Настройка статического IP с помощью WiFi.config().

Основная функция для назначения статического 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() {
  // Ваш код здесь
}

Настройка статического IP с помощью WiFi.config().

Параметры функции WiFi.config().

Функция 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)

Практические рекомендации.

  1. Выбирайте IP-адрес правильно:
    • Используйте адрес из той же подсети, что и ваш роутер.
    • Избегайте адресов, которые могут быть назначены DHCP (обычно с 100 по 200).
    • Пример: если роутер имеет IP 192.168.1.1, выберите 192.168.1.50.
  2. Проверяйте подключение:
    if (WiFi.status() == WL_CONNECTED) {
      Serial.println("Успешно подключено!");
    } else {
      Serial.println("Ошибка подключения!");
    } 
  3. Для возврата к DHCP:
    WiFi.config(0, 0, 0); // Сбрасываем настройки
    WiFi.begin(ssid, password); // Подключаемся снова
    

Проблема: Не удается подключиться к Wi-Fi после назначения статического IP.

Частые ошибки и их решение.

Проблема: Не удается подключиться к Wi-Fi после назначения статического IP.

Решения:

  1. Проверьте, что статический IP находится в той же подсети, что и роутер.
  2. Убедитесь, что вы не используете IP-адрес, который может быть назначен другим устройством через DHCP.
  3. Проверьте правильность маски подсети и адреса шлюза.

Проблема: ESP32 не отвечает по статическому IP.

Решения:

  1. Проверьте подключение с помощью ping: ping 192.168.1.55.
  2. Убедитесь, что на ESP32 запущен веб-сервер или другое сетевое приложение.
  3. Проверьте настройки брандмауэра на вашем компьютере.

Заключение.

Настройка статического IP-адреса для ESP32 с помощью WiFi.config() – это простой и эффективный способ обеспечить стабильный доступ к вашему устройству в локальной сети. Следуя этой инструкции, вы сможете:

  1. Получить текущие сетевые настройки
  2. Правильно настроить статический IP
  3. Избежать распространенных ошибок
  4. Эффективно использовать ESP32 в ваших проектах

Дополнительные материалы:

Понравилась статья ESP32: Настройка статического IP-адреса с помощью WiFi.config? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на VK Видео, вступить в группу Вконтакте.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Комментарии

Ваше Имя*


Разработка проектов
EasyHMI
Умный Дом