Как подключить Esp32 к wifi — подробное руководство с пошаговой инструкцией

Время на прочтение: 8 минут(ы)

Если вы хотите настроить подключение вашего Esp32 к wifi-сети, то вам понадобится следовать определенным шагам. В этом уроке мы рассмотрим подробную инструкцию по подключению Esp32 к wifi с использованием примера кода на языке C++.

Настройка подключения начинается со сброса параметров wifi-модуля настройками по умолчанию. Для этого вам понадобится использовать специальный код, который очистит все предыдущие данные и вернет модуль в исходное состояние. В нашем примере мы использовали функцию WiFi.mode(WIFI_MODE_NULL) для сброса режима wifi-модуля.

Далее необходимо настроить точку доступа (AP), к которой ваш Esp32 будет подключаться. Вы можете использовать уже существующую точку доступа или создать новую. Для этого в коде нужно указать данные wifi-сети — SSID (имя сети) и пароль. Например, const char* ssid = «MyWiFi»; и const char* password = «12345678»;

Подключение Esp32 к wifi

 Подключение Esp32 к wifi

1. Инициализация

  • Сначала убедитесь, что у вас есть Esp32 и необходимая прошивка.
  • Далее, разберемся, сколько флэш-памяти доступно на Esp32.
  • Затем можно настроить скетч для подключения к wifi-сети и получения ip-адреса для вашего устройства.
  • Таким образом, можно сбросить все параметры и вернуться к начальным настройкам.

2. Подключение к wifi-сети

  • Шаг 1: Узнать имена wifi-точек в вашей области.
  • Шаг 2: Установите пароль для вашей wifi-сети.
  • Шаг 3: Включите режим станции (sta) на Esp32.
  • Шаг 4: Настройте роутер wifi-сети.
  • Шаг 5: Получите и отслеживайте IP-адрес вашего устройства.

3. Работа с wifi-сетью

  • Можно создать веб-интерфейс для управления wifi-сетью и мониторинга ее состояния.
  • Разработайте алгоритм подключения к wifi-сети и удаления имеющихся точек доступа.
  • Также можно настроить DNS и отслеживать последние изменения.
  • Встроенный веб-сервер помогает в управлении wifi-сетью и получении данных от других устройств.
  • Можно получить показатели силы сигнала и другую информацию о wifi-сети.

4. Тестирование

  • Для тестирования wifi-сети можно использовать Esp32 в режиме точки доступа.
  • Можно также показать список подключенных устройств в вашей wifi-сети.
  • Проверьте работу wifi-сети и скетчей на различных сценариях.

В итоге, подключение Esp32 к wifi — это важная часть любого проекта, где требуется работа с wifi-сетью.

Шаг 1: Подготовка к подключению

Перед тем, как приступить к подключению Esp32 к Wi-Fi, вам потребуется следующее:

1. Проверка поддержки Wi-Fi

Убедитесь, что ваш модуль Esp32 поддерживает Wi-Fi и уже имеет установленную и настроенную прошивку Arduino. Если вы не уверены, обратитесь к документации к вашему модулю.

2. Подключение Esp32 к компьютеру

2. Подключение Esp32 к компьютеру

Соедините Esp32 с вашим компьютером с помощью USB-кабеля.

3. Установка Arduino IDE

Убедитесь, что на вашем компьютере установлена Arduino IDE. Если вы еще не установили ее, загрузите и установите последнюю версию с официального сайта Arduino.

4. Очистка текущего проекта

Откройте Arduino IDE и откройте новый скетч (файл -> новый). Удалите весь автоматически сгенерированный код и оставьте чистый список инструкций loop() и setup().

5. Подключение Manager-xss-manager к проекту

Чтобы использовать расширенные возможности Wi-Fi и упростить работу с подключением, мы рекомендуем подключить библиотеку Manager-xss-manager к проекту Esp32. Для этого перейдите в меню «Скетч -> Включить библиотеку -> Manager-xss-manager».

После выполнения этих шагов вы будете готовы к подключению Esp32 к Wi-Fi и настройке соединения. Теперь мы можем перейти к следующему шагу: сканирование Wi-Fi-сетей.

Шаг 2: Установка необходимых библиотек

Для успешного подключения Esp32 к Wi-Fi необходимо установить несколько библиотек. В этом разделе мы разберем, как установить и настроить необходимые библиотеки для вашего проекта.

1. Для начала, вам потребуется узнать адрес вашей Wi-Fi сети.

2. Затем, в веб-панели управления своего маршрутизатора найдите раздел с данными о подключенных устройствах. Сделайте скриншоты или запишите текущий IP-адрес и MAC-адрес вашего модуля Esp32.

3. Теперь, в Arduino IDE, перейдите в раздел «Настройки» (Preferences) и заполните поле «Дополнительный урл раздела для установки дополнительных библиотек» (Additional Board Manager URLs). Вставьте ссылку: https://dl.espressif.com/dl/package_esp32_index.json

Примечание: Если у вас уже была вставлена другая ссылка предыдущего проекта или другого устройства, добавьте запятую в конец старой строки и пробел перед вставкой нового URL.

4. Теперь, перейдите в меню «Инструменты» (Tools), выберите раздел «Плата» (Board) и найдите плату Esp32. Версия платы может немного отличаться в зависимости от конкретной модели Esp32, поэтому выберите подходящую опцию.

5. После выбора платы, перейдите в меню «Инструменты» (Tools) и выберите порт соединения своего модуля Esp32. В этом случае, вам нужно выбрать порт, к которому FTDI, модуль USB-UART подключен к ESP32.

6. Теперь, откройте скетч для тестирования Wi-Fi модуля, используя эту ссылку: https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiScan/WiFiScan.ino

7. Сохраните скетч и нажмите кнопку «Загрузить» (Upload). Дождитесь окончания загрузки.

8. После успешной загрузки скетча, откройте монитор последовательного порта (Serial Monitor) в Arduino IDE. Установите скорость соединения в 115200 бит в секунду и убедитесь, что внизу окна выбран соответствующий порт.

9. После этого, в мониторе последовательного порта вы увидите список доступных Wi-Fi сетей и их характеристики.

Примечание: Если Wi-Fi сеть, к которой вы хотите подключиться, имеет скрытый SSID, вы не увидите его в списке доступных сетей.

Таким образом, настройка необходимых библиотек для подключения Esp32 к Wi-Fi выполнена успешно. Теперь вы можете использовать Wi-Fi модуль в своем проекте.

Скриншот 1 Скриншот 2
Рисунок 1: Скриншоты с адресами и MAC-адресами модуля Esp32 Рисунок 2: Скриншоты скана доступных Wi-Fi сетей

Шаг 3: Создание конфигурационного файла

Перед тем, как подключить Esp32 к Wi-Fi, вам потребуется создать конфигурационный файл для установки параметров подключения.

1. Создайте новый файл с именем «wifi_config.h» в вашей среде разработки (например, Arduino IDE).

2. Вставьте следующий код в файл:

#ifndef WIFI_CONFIG_H
#define WIFI_CONFIG_H
#include <WiFi.h>
// Настройки Wi-Fi
const char* ssid = "имя вашей Wi-Fi сети";
const char* password = "пароль Wi-Fi сети";
// Настройки IP-адреса
IPAddress ip(192, 168, 0, 100);
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
// Использование дополнительной DNS точки
bool useDNS = false;
IPAddress dns(8, 8, 8, 8);
// Параметры сканирования Wi-Fi
bool scanOnBoot = true;
uint32_t scanIntervalSec = 5;
// Режим Wi-Fi модуля
wifi_mode_t wifiMode = WIFI_MODE_STA;
// Ретранслятор (ap или sta)
const char* repeater = "ap";
// Задержка перед запуском в миллисекундах
int bootDelayMs = 0;
// Временной сдвиг в секундах
int daylightOffset_sec = 3600;
// Количество клиентов
int maxClients = 5;
// Ограничение скорости пакетов в байтах в секунду
int packetRateLimit = 0;
// Логическое значение (true или false) для тестирования в реальном времени
bool realtimeTestingEnabled = false;
// Использование пространства имен NVS для хранения параметров
bool useNVS = true;
// Имя NVS пространства имен
const char* nvsNamespace = "piranha";
// Обработчик событий Wi-Fi, вызывается при подключении или отключении от Wi-Fi сети
void eventHandler(WiFiEvent_t event) {
switch(event) {
case SYSTEM_EVENT_STA_GOT_IP:
// Действия при успешном получении IP-адреса
Serial.println("Подключение к Wi-Fi сети: узнать всегда статус! " + WiFi.localIP().toString());
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
// Действия при отключении от Wi-Fi сети
Serial.println("Wi-Fi отключен");
break;
default:
break;
}
}
#endif

3. Внесите следующие изменения в код:

  • В строке const char* ssid = «имя вашей Wi-Fi сети»; замените «имя вашей Wi-Fi сети» на точное имя вашей Wi-Fi сети.
  • В строке const char* password = «пароль Wi-Fi сети»; замените «пароль Wi-Fi сети» на пароль вашей Wi-Fi сети.

4. Сохраните файл.

Теперь у вас есть конфигурационный файл, который содержит параметры подключения к Wi-Fi сети. Вы можете использовать этот файл в вашем Esp32 проекте для подключения к Wi-Fi сети.

Шаг 4: Настройка параметров подключения

После инициализации устройства Esp32 к WiFi-сети необходимо настроить параметры подключения. Это можно сделать с помощью веб-интерфейса или через командную строку.

Веб-интерфейс. Он предоставляет возможность настройки параметров через веб-браузер. Для этого нужно включить режим Access Point (точка доступа) на Esp32 и подключиться к ней с устройства, например, с телефона или компьютера. Затем можно открыть веб-браузер и перейти по адресу 192.168.4.1. Веб-интерфейс будет доступен и позволит настроить параметры подключения к WiFi сети.

Командная строка. Данная возможность позволяет настроить параметры подключения с помощью команды AT, которую можно отправлять через Serial Monitor в Arduino IDE или через SSH. Следующий пример кода показывает, как настроить параметры подключения к WiFi сети в режиме STATION.

Пример кода:

#include <WiFi.h>
void setup()
{
Serial.begin(115200);
delay(1000);
WiFi.begin("ssid", "password");
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
}
void loop()
{
// Ваш код
}

В данном коде строка WiFi.begin(«ssid», «password») отвечает за подключение к WiFi сети с указанными именем (ssid) и паролем (password). Затем выполняется проверка статуса подключения с помощью функции WiFi.status(). Если статус равен WL_CONNECTED, то устройство успешно подключено к WiFi сети.

Также, для получения информации о доступных WiFi сетях, можно использовать функцию WiFi.scanNetworks(). Эта функция сканирует доступные сети и возвращает количество доступных сетей и их параметры.

Если вам требуется настроить параметры подключения к WiFi сети в режиме ACCESS POINT (точка доступа), вы можете использовать следующий код:

Пример кода:

#include <WiFi.h>
void setup()
{
Serial.begin(115200);
delay(1000);
WiFi.softAP("ssid", "password");
IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);
}
void loop()
{
// Ваш код
}

По умолчанию устройство Esp32 поддерживает IPv4, но также может быть настроено для использования IPv6. Для этого нужно использовать функции WiFi.enableIPv6() и WiFi.dnsIP() для указания DNS-сервера.

На этом шаге были рассмотрены основные методы настройки параметров подключения Esp32 к WiFi. Данные методы могут быть использованы в зависимости от потребностей конкретного проекта.

Шаг 5: Подключение к wifi-сети

На этом шаге настроим подключение Esp32 к wifi-сети.

Для начала нам потребуется создать объект класса WiFiManager, который будет отвечать за работу с wifi-сетью. Для этого добавим следующую строку кода:

WiFiManager wifiManager;

Затем в функции setup() добавим следующую строку кода, которая будет запускать процесс подключения к wifi:

wifiManager.autoConnect();

Теперь устройство будет работать в режиме точки доступа wi-fi и будет доступно для подключения. В командной строке arduino ide у вас появится текст «Подключен к [имя wifi-сети]». Если у вас не запускается режим точки доступа, то вы можете задать желаемые настройки подключения, добавив следующий код:

wifiManager.setAPCallback(configModeCallback);

В функции configModeCallback() разберемся, что делать, когда наш Esp32 подключится как ретранслятор:

void configModeCallback (WiFiManager* myWiFiManager) {
ESP_LOGD("user_wifi_manager", "Entered config mode");
ESP_LOGD("user_wifi_manager", WiFi.softAPIP().toString().c_str());
ESP_LOGD("user_wifi_manager", WiFi.softAPIP().toString().c_str());
}

Теперь наш Esp32 перешел в режим точки доступа и доступен для подключения. Также можно проверить текущее состояние wifi подключения следующим образом:

WiFi.status() == WL_CONNECTED

Теперь разберемся, как настроить подключение к текущей wifi-сети. Добавим следующий код:

wifiManager.setAPCallback(configModeCallback);

Это позволит нам настроить подключение с помощью WPS. Добавим следующий код для включения WPS:

wifiManager.setBreakAfterConfig(true);

Теперь, при каждом запуске устройства, произойдет автоматическое сканирование доступных wifi-сетей и подключение к ним. Мы также можем перейти в режим настройки, нажав и удерживая кнопку BOOT. Чтобы узнать текущий сигнал wifi, используйте следующий код:

wifiManager.getSignalQuality();

Шаг 6: Проверка соединения

После инициализации и настройки Wi-Fi мы можем приступить к проверке соединения с точкой доступа.

  1. Запустите скетч wifiscan для сканирования доступных Wi-Fi сетей. Вы сможете увидеть список имен сетей (SSID) и их параметры.
  2. Внесите SSID и пароль вашей точки доступа в файл index.html. Это нужно для веб-интерфейса, с помощью которого можно будет подключаться к ESP32.
  3. Обратите внимание на IP-адрес, который содержит информацию о точке доступа и MAC-адреса ESP32. Он будет отображаться в мониторе последовательного порта.
  4. Если у вас есть возможность, проверьте соединение с точкой доступа через веб-интерфейс, введя IP-адрес веб-страницы ESP32 в браузере. Если соединение установлено успешно, вы увидите информацию о Wi-Fi подключении.

Важно помнить, что режим клиента и точки доступа может использоваться одновременно, но в этом случае может возникнуть некоторый минимальный сбой в трафике.

Также вы можете расширить функциональность вашего проекта, добавив возможность использования IPv6, защищенного доступа, DNS и дополнительных функций.

DHCP клиент: что это и как работает

DHCP клиент – это функция, которая включается в прошивке Esp32 и отвечает за получение IP-адреса от DHCP сервера вашей wifi-сети.

Когда Esp32 включается в wifi-сеть, DHCP клиент начинает работать следующим образом:

  1. В первую очередь, Esp32 сканирует доступные wifi-сети в окрестности с помощью функции Wifi.scanNetworks().
  2. Он находит точку доступа с которой нужно произвести подключение, используя нужное имя сети (SSID) и запоминает ее.
  3. После этого, Esp32 устанавливает подключение к wifi-сети с помощью функции Wifi.begin(). Если точка доступа требует пароль, то он также будет указан в этой функции.
  4. DHCP клиент запрашивает у DHCP сервера IP-адрес для Esp32 с помощью функции Wifi.config().
  5. После успешного получения IP-адреса, Esp32 становится полноценно подключенным устройством к wifi-сети.

Важно отметить, что DHCP клиент является неотъемлемой частью проекта на Esp32, поскольку без корректного получения IP-адреса Esp32 не сможет взаимодействовать с другими устройствами в сети.

В следующем разделе мы рассмотрим код для подключения Esp32 к wifi-сети и настройки DHCP клиента.