Съдържание:

ESP8266 и ESP32 с WiFiManager: 10 стъпки
ESP8266 и ESP32 с WiFiManager: 10 стъпки

Видео: ESP8266 и ESP32 с WiFiManager: 10 стъпки

Видео: ESP8266 и ESP32 с WiFiManager: 10 стъпки
Видео: Как защитить свою сеть от взлома wi-fi на ESP32 2024, Ноември
Anonim
Image
Image
ПИНАУТ
ПИНАУТ

Запознати ли сте с WiFiManager? Това е библиотека, която служи като мениджър на безжични връзки и с нея имаме по -лесен начин да конфигурираме както точка за достъп, така и станция. Получих няколко предложения за обсъждане на тази тема; така че днес ще ви запозная с тази библиотека и нейните функции. Ще направя и демонстрация на използването му както с ESP32, така и с ESP8266.

Стъпка 1: ИЗТЕГЛЯНЕ

ПИНАУТ
ПИНАУТ

Тук показвам PINOUT на двете устройства, които ще използваме:

  • NodeMCU ESP-12E
  • NodeMCU ESP-WROOM-32

Стъпка 2: WiFiManager

WiFiManager всъщност не е нищо повече от библиотека, написана върху WiFi.h за лесно управление на безжичните връзки. Не забравяйте, че с него имаме по -голяма възможност за конфигуриране както на точка за достъп, така и на станция. За режим Station ние конфигурираме чрез портал в браузъра.

Някои функции:

• Зависи от автоматичното свързване

• Инициализиране на неавтоматичен портал за конфигуриране

• Работи избирателно в двоен режим

Стъпка 3: Как работи

Как работи
Как работи
Как работи
Как работи

ESP ще инициира портал за конфигуриране на WiFi, когато е свързан и ще запише конфигурационни данни в енергонезависима памет. Впоследствие порталът за конфигуриране ще се стартира отново само ако е натиснат бутон в ESP модула.

Тук можете да проверите потока на конфигурацията и да следвате тази стъпка по стъпка:

1. Използвайки всяко устройство с WiFi с браузър, свържете се с новосъздадената точка за достъп и въведете адреса 192.168.4.1.

2. На екрана ще имате две възможности за свързване към съществуваща мрежа:

• Конфигурирайте WiFi

• Конфигуриране на WiFi (без сканиране)

3. Изберете една от мрежите и въведете паролата (ако е необходимо). След това запишете и изчакайте ESP да се рестартира.

4. В края на зареждането ESP се опитва да се свърже със запазената мрежа. Ако не можете да направите това, ще активирате точка за достъп.

Стъпка 4: Библиотеки

Библиотеки
Библиотеки

Добавете библиотека „WifiManager-ESP32“.

Отидете на https://github.com/zhouhan0126/WIFIMANAGER-ESP32 и изтеглете библиотеката.

Разархивирайте файла и го поставете в папката библиотеки на Arduino IDE.

C: / Програмни файлове (x86) / Arduino / библиотеки

Добавете библиотека "DNSServer-ESP32".

Отидете на връзката https://github.com/zhouhan0126/DNSServer---esp32 и изтеглете библиотеката.

Разархивирайте файла и го поставете в папката библиотеки на Arduino IDE.

C: / Програмни файлове (x86) / Arduino / библиотеки

Добавете библиотека „WebServer-ESP32“.

Отидете на връзката https://github.com/zhouhan0126/WebServer-esp32 и изтеглете библиотеката.

Разархивирайте файла и го поставете в папката библиотеки на Arduino IDE.

C: / Програмни файлове (x86) / Arduino / библиотеки

Забележка:

Библиотеката WiFiManager-ESP32 вече има настройките, които работят с ESP8266, така че ние ще използваме само това, вместо два lib WiFiManager (по един за всеки тип чип).

Както ще видим по -късно, ESP8266WiFi и ESP8266WebServer са библиотеки, които не е необходимо да изтегляме, защото те вече идват, когато инсталираме ESP8266 в IDE на Arduino.

Стъпка 5: Функции

Функции
Функции
Функции
Функции
Функции
Функции

Ето някои функции, които WiFiManager ни предлага.

1. autoConnect

Функцията autoConnect отговаря за създаването на точка за достъп. Можем да го използваме по три начина.

• autoConnect ("име на мрежата", "парола"); - създава мрежа с определено име и парола.

• autoConnect ("име на мрежата"); - създава отворена мрежа с определено име.

• autoConnect (); - създава отворена и автоматично кръстена мрежа с име „ESP“+ chipID.

2. startConfigPortal

Функцията startConfigPortal е отговорна за създаването на точка за достъп, без да се опитва да се свърже с предварително запазена мрежа.

• startConfigPortal ("име на мрежата", "парола"); - създава мрежа с определено име и парола.

• startConfigPortal (); - създава отворена и автоматично кръстена мрежа с име „ESP“+ chipID.

3. getConfigPortalSSID

Връща SSID на портала (точка за достъп)

4. getSSID

Това връща SSID на мрежата, към която е свързан.

5. getPassword

Това връща паролата на мрежата, към която е свързан.

6. setDebugOutput

Функцията setDebugOutput е отговорна за отпечатването на съобщения за отстраняване на грешки на серийния монитор. Тези съобщения вече са дефинирани в библиотеката. Докато преминавате през функциите, данните ще бъдат отпечатани.

По подразбиране тази функция е зададена на TRUE. Ако искате да деактивирате съобщенията, просто задайте функцията на FALSE.

7. setMinimumSignalQuality

Функцията setMinimumSignalQuality отговаря за филтрирането на мрежи въз основа на качеството на сигнала. По подразбиране WiFiManager няма да показва мрежи за вход под 8%.

8. setRemoveDuplicateAPs

Функцията setRemoveDuplicateAPs отговаря за премахването на мрежови дубликати.

По подразбиране е зададено на TRUE.

9. setAPStaticIPConfig

Функцията setAPStaticIPConfig отговаря за задаване на статичните настройки на адреса, когато е в режим на точка за достъп.

(IP, GATEWAY, SUBNET)

10. setSTAStaticIPConfig

Функцията setSTAStaticIPConfig е отговорна за задаването на статичните настройки на адреса, когато е в режим на станция.

(IP, GATEWAY, SUBNET)

Трябва да добавите командата преди autoConnect !!!

11. setAPCallback

Функцията setAPCallback е отговорна да ви информира, че режимът на AP е стартирал.

Параметърът е функция, която трябва да бъде създадена, за да го посочи като обратно повикване;

12. setSaveConfigCallback

Функцията setSaveConfigCallback е отговорна да ви информира, че е запазена нова конфигурация и връзката е успешно завършена.

Параметърът е функция за създаване и показва това като allback.

Трябва да добавите командата преди autoConnect !!!

Стъпка 6: Монтаж

Монтаж
Монтаж

Пример

В нашия пример ще създадем точка за достъп с ESP (кодът ще обслужва както ESP8266, така и ESP32). След създаването на AP ще имаме достъп до портала чрез IP 192.168.4.1 (който е достъп по подразбиране). Така че нека вземем наличните мрежи, изберете една и запишете. Оттам ESP ще се рестартира и ще се опита да се свърже с него, след което ще работи като станция, а не като точка за достъп.

След като влезете в режим на станция, можете да накарате ESP да се върне в режим на точка за достъп само чрез бутона.

Стъпка 7: Код

Библиотеки

Първо нека определим библиотеките, които ще използваме.

Обърнете внимание, че имаме #if дефинирани, #else и #endif команди. Те условно включват необходимите библиотеки, свързани с чипа. Тази част е изключително важна за изпълнението на един и същ код както на ESP8266, така и на ESP32.

#if дефинирано (ESP8266)

#include // ESP8266 Core WiFi Library #else #include // ESP32 Core WiFi Library #endif

#if определено (ESP8266)

#include // Локален уеб сървър, използван за обслужване на портала за конфигуриране

#иначе

#include // Локален DNS сървър, използван за пренасочване на всички заявки към портала за конфигуриране (https://github.com/zhouhan0126/DNSServer---esp32)

#endif

#include // Локален уеб сървър, използван за обслужване на конфигурационния портал (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ОРИГИНАЛ)

Стъпка 8: Настройка

При настройката ние конфигурираме нашия WiFiManager по най -простия начин. Нека просто дефинираме обратните обаждания и да създадем мрежата.

const int PIN_AP = 2;

void setup () {Serial.begin (9600); pinMode (PIN_AP, INPUT); // декларация за обект на wifiManager WiFiManager wifiManager;

// използвайте esse comando, as configurações são apagadas da memória // caso tiver salvo alguma rede para conectar automaticamente, ela é apagada. // wifiManager.resetSettings (); // обратно извикване, за да влезете в режим на конфигуриране на AP wifiManager.setAPCallback (configModeCallback); // извикване за Quando се свързва em uma rede, ou seja, quando passa a trabalhar em modo estação wifiManager.setSaveConfigCallback (saveConfigCallback); // cria uma rede de nome ESP_AP com senha 12345678 wifiManager.autoConnect ("ESP_AP", "12345678"); }

Стъпка 9: Цикъл

В цикъла ще прочетем щифта на бутона, за да видим дали е натиснат, и след това ще извикаме метода за повторно активиране на режима на AP.

void loop () {

WiFiManager wifiManager; // se o botão foi pressionado if (digitalRead (PIN_AP) == HIGH) {Serial.println ("resetar"); // тента abrir o portal if (! wifiManager.startConfigPortal ("ESP_AP", "12345678")) {Serial.println ("Falha ao conectar"); забавяне (2000); ESP.restart (); забавяне (1000); } Serial.println ("Conectou ESP_AP !!!"); }

Когато натиснете бутона, ESP ще излезе от режима на станция и ще отвори вашата точка за достъп и портал.

Не забравяйте, че не използваме командата resetSettings (). Настройките все още се запазват за следващия път, когато ESP се стартира.

Стъпка 10: Обратни обаждания

Функциите за обратно повикване, които са свързани със събития, служат за да имате точния момент на операция, в нашия случай, за влизане в режим на AP и режим на станция. След това можем да приложим някаква желана рутина, като например извличане на SSID от свързаната мрежа, например.

// извикване que indica que o ESP entrou без modo AP

void configModeCallback (WiFiManager *myWiFiManager) {// Serial.println ("Въведен режим на конфигуриране"); Serial.println ("Entrou no modo de configuração"); Serial.println (WiFi.softAPIP ()); // imprime o IP do AP Serial.println (myWiFiManager-> getConfigPortalSSID ()); // imprime o SSID criado da rede

}

// обратно повикване que indica que salvamos uma nova rede para se conectar (modo estação)

void saveConfigCallback () {// Serial.println ("Трябва да се запише конфигурация"); Serial.println ("Configuração salva"); Serial.println (WiFi.softAPIP ()); // imprime o IP do AP}

Препоръчано: