Подключение ESP8266 к WiFi без жесткого кодирования учетных данных

Недавно мне удалось подключить мою плату ESP8266 к локальному WiFi, но мне пришлось жестко прописать учетные данные в коде, как в 99% руководств в Интернете. Мой код выглядит примерно так:

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>

#define USE_SERIAL Serial

ESP8266WiFiMulti WiFiMulti;

void setup() {

    USE_SERIAL.begin(115200);

    WiFi.mode(WIFI_STA);
    WiFiMulti.addAP("SSID", "Password");

}

void loop() {
    // Еще немного кода
}

Дело в том, что я хотел бы узнать, есть ли способ параметризовать учетные данные, чтобы мне не приходилось перекомпилировать и загружать код на плату каждый раз, когда меняется пароль WiFi.

Одной из моих идей было подключить все платы к локальному маршрутизатору без фактического подключения к Интернету и сделать так, чтобы сервер в той же локальной сети управлял конфиденциальной информацией, а не платами. Это позволило бы мне правильно управлять учетными данными. Имеет ли это вообще смысл?

, 👍3


1 ответ


Лучший ответ:

1

Обычный способ сделать это — перевести ESP8266 в режим AP (точки доступа), а затем открыть веб-страницу с интерфейсом конфигурации.

Чтобы сделать это еще проще, вы можете создать портал Captive, чтобы пользователю не нужно было открывать определенный IP-адрес в своем браузере. Портал Captive приведет к загрузке страницы конфигурации независимо от того, какой адрес он откроет.

Популярная библиотека Arduino, которая делает все это очень простым — WiFiManager:

https://github.com/tzapu/WiFiManager

,