Рубрики
Проекты на ESP32

Как установить статический (фиксированный) IP-адрес на ESP32

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

Вот тут-то и вступают в игру статические IP-адреса. Установив статический IP-адрес, вы сможете получить доступ к веб-серверу, используя тот же IP-адрес, даже после перезапуска ESP32. Это также полезно, чтобы избежать путаницы, когда к вашей сети подключено несколько модулей ESP32.

К счастью, есть довольно простой и быстрый процесс установки статического IP-адреса. Мы пошагово расскажем вам, как установить статический IP-адрес на вашем ESP32.

Шаг 1. Настройка Arduino IDE

Мы будем использовать Arduino IDE для программирования ESP32, поэтому, прежде чем продолжить, убедитесь, что у вас в данной IDE установлено дополнение для работы с ESP32.

Шаг 2. Подключите ESP32 к компьютеру

Для подключения платы ESP32 к компьютеру используйте кабель micro-USB.

Шаг 3. Настройка сетевых учетных данных

Перед настройкой статического IP-адреса рекомендуется проверить текущие сетевые настройки (IP, шлюз, подсеть и DNS), назначенные вашим маршрутизатором. Эта информация может помочь избежать конфликтов IP-адресов. Чтобы узнать текущий IP-адрес ESP32 и другие сетевые настройки, вам необходимо загрузить следующий скетч на ваш ESP32.

Но перед этим вам нужно сделать одно важное изменение. Обновите следующие две переменные, указав ваш фактический SSID и пароль WiFi.

После внесения этих изменений загрузите код.

После загрузки кода откройте окно монитора последовательной связи и установите скорость передачи данных 115200. Затем нажмите кнопку EN на ESP32. Подключение к вашей сети может занять несколько минут, после чего текущие сетевые настройки ESP32 будут выведены на последовательный монитор. Запишите их.

Шаг 4. Установите статический IP-адрес

Получив текущие настройки сети, вы можете установить статический IP-адрес.

Измените скетч ниже, включив в него статическую конфигурацию IP. Вам нужно будет указать статический IP-адрес, шлюз, маску подсети и настройки DNS (необязательно).

На основе текущих сетевых настроек выберите подходящий статический IP-адрес для вашего ESP32. Этот адрес должен находиться в той же подсети, что и ваша текущая сеть, но за пределами диапазона, который обычно назначает ваш маршрутизатор (чтобы избежать конфликтов IP-адресов).

После изменения скетча загрузите его в ESP32.

Шаг 5. Тестирование работы проекта

После загрузки кода в ESP32 используйте последовательный монитор (Serial Monitor), чтобы убедиться, что ESP32 теперь использует заданный вами статический IP-адрес.

Подробное пояснение кода

Скетч начинается с подключения библиотеки WiFi.h. Эта библиотека предоставляет функции, необходимые для подключения ESP32 к сети Wi-Fi и настройки его IP-конфигурации.

Далее определяются константы для SSID Wi-Fi (ssid) и пароля (password). Вам нужно будет заменить их на имя и пароль вашей фактической сети Wi-Fi.

Затем создаются объекты IPAddress для статического IP, шлюза, маски подсети и, опционально, первичного и вторичного DNS-серверов. Эти объекты будут хранить соответствующие адреса и будут использоваться позже для настройки сетевых параметров ESP32.

Внутри функции setup() инициируется последовательная связь с компьютером.

ESP32 пытается подключиться к сети Wi-Fi с помощью WiFi.begin(ssid, password). Цикл while гарантирует, что ESP32 будет продолжать попытки подключения до тех пор, пока это не удастся.

После подключения к Wi-Fi ESP32 настраивается на использование ранее определенного статического IP, шлюза, маски подсети и DNS-серверов с помощью функции WiFi.config(). Если при настройке статического IP-адреса возникает проблема, на последовательный монитор выводится сообщение «Не удалось настроить статический IP-адрес».

После настройки конфигурации IP текущий IP-адрес ESP32 выводится на последовательный монитор с помощью WiFi.localIP(). Если все пойдет по плану, должен отобразиться установленный статический IP-адрес.

IP-адрес задается в функции setup(), и поскольку больше ничего не нужно делать, функция loop() остается пустой.

Статический IP против mDNS

Хотя настройка статического IP для вашего ESP32 эффективна, есть еще один подход, который стоит рассмотреть — это mDNS (Multicast DNS). Этот метод предлагает значительные преимущества по сравнению со статическим IP.

mDNS позволяет вам получить доступ к веб-серверу, работающему на вашем ESP32, используя удобное имя хоста, например «esp32.local», вместо того, чтобы возиться с IP-адресом. Более того, даже если IP-адрес вашего ESP32 изменится, mDNS автоматически преобразует новый IP-адрес в то же имя хоста. Это означает, что вы можете продолжать использовать то же имя хоста, не беспокоясь об отслеживании изменений IP-адреса.

Более подробно об этом вы можете прочитать в данной статье — как настроить mDNS на ESP32.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *