Obsah:

ESP8266 a ESP32 s WiFiManagerem: 10 kroků
ESP8266 a ESP32 s WiFiManagerem: 10 kroků

Video: ESP8266 a ESP32 s WiFiManagerem: 10 kroků

Video: ESP8266 a ESP32 s WiFiManagerem: 10 kroků
Video: Simple wifi capable microcontrollers - Arduino Nano IoT vs ESP32 vs ESP8266 vs Raspberry Pi Pico W 2024, Červenec
Anonim
Image
Image
PINOUT
PINOUT

Znáte WiFiManager? Je to knihovna, která slouží jako správce bezdrátového připojení, a díky ní máme snadnější způsob konfigurace přístupového bodu i stanice. Obdržel jsem několik návrhů k diskusi na toto téma; dnes vám tedy představím tuto knihovnu a její funkce. Ukážu také ukázku jeho použití s ESP32 i ESP8266.

Krok 1: PINOUT

PINOUT
PINOUT

Zde zobrazuji PINOUT dvou zařízení, která budeme používat:

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

Krok 2: WiFiManager

WiFiManager není ve skutečnosti nic jiného než knihovna napsaná na WiFi.h pro snadnou správu bezdrátových připojení. Pamatujte, že s ním máme větší možnosti konfigurace přístupového bodu i stanice. Pro režim Station konfigurujeme prostřednictvím portálu v prohlížeči.

Některé funkce:

• Záleží na automatickém připojení

• Inicializace neautomatického konfiguračního portálu

• Funguje selektivně v duálním režimu

Krok 3: Jak to funguje

Jak to funguje
Jak to funguje
Jak to funguje
Jak to funguje

ESP po připojení zahájí konfigurační portál WiFi a uloží konfigurační data do energeticky nezávislé paměti. Následně se konfigurační portál znovu spustí pouze po stisknutí tlačítka v modulu ESP.

Zde můžete zkontrolovat postup konfigurace a postupovat podle těchto kroků:

1. Pomocí libovolného zařízení podporujícího WiFi s prohlížečem se připojte k nově vytvořenému přístupovému bodu a zadejte adresu 192.168.4.1.

2. Na obrazovce budete mít dvě možnosti připojení k existující síti:

• Konfigurovat WiFi

• Konfigurovat WiFi (bez skenování)

3. Vyberte jednu ze sítí a zadejte heslo (je -li to nutné). Poté uložte a počkejte, až se ESP restartuje.

4. Na konci bootování se ESP pokusí připojit k uložené síti. Pokud to nemůžete udělat, povolíte přístupový bod.

Krok 4: Knihovny

Knihovny
Knihovny

Přidat knihovnu "WifiManager-ESP32".

Přejděte na https://github.com/zhouhan0126/WIFIMANAGER-ESP32 a stáhněte si knihovnu.

Rozbalte soubor a vložte jej do složky knihoven Arduino IDE.

C: / Program Files (x86) / Arduino / libraries

Přidejte knihovnu „DNSServer-ESP32“.

Přejděte na odkaz https://github.com/zhouhan0126/DNSServer---esp32 a stáhněte si knihovnu.

Rozbalte soubor a vložte jej do složky knihoven Arduino IDE.

C: / Program Files (x86) / Arduino / libraries

Přidejte knihovnu „WebServer-ESP32“.

Přejděte na odkaz https://github.com/zhouhan0126/WebServer-esp32 a stáhněte si knihovnu.

Rozbalte soubor a vložte jej do složky knihoven Arduino IDE.

C: / Program Files (x86) / Arduino / libraries

Poznámka:

Knihovna WiFiManager-ESP32 již má nastavení, která fungují s ESP8266, takže použijeme pouze toto místo dvou liby WiFiManager (jeden pro každý typ čipu).

Jak uvidíme později, ESP8266WiFi a ESP8266WebServer jsou knihovny, které nemusíme stahovat, protože již přicházejí, když instalujeme ESP8266 do Arduino IDE.

Krok 5: Funkce

Funkce
Funkce
Funkce
Funkce
Funkce
Funkce

Zde jsou některé funkce, které nám WiFiManager nabízí.

1. autoConnect

Funkce autoConnect je zodpovědná za vytvoření přístupového bodu. Můžeme ji použít třemi způsoby.

• autoConnect („název sítě“, „heslo“); - vytvoří síť s definovaným jménem a heslem.

• autoConnect („název sítě“); - vytvoří otevřenou síť s definovaným názvem.

• autoConnect (); - vytvoří otevřenou a automaticky pojmenovanou síť s názvem 'ESP' + chipID.

2. startConfigPortal

Funkce startConfigPortal je zodpovědná za vytvoření přístupového bodu bez pokusu o připojení k dříve uložené síti.

• startConfigPortal („název sítě“, „heslo“); - vytvoří síť s definovaným jménem a heslem.

• startConfigPortal (); - vytvoří otevřenou a automaticky pojmenovanou síť s názvem 'ESP' + chipID.

3. getConfigPortalSSID

Vrátí SSID portálu (přístupový bod)

4. getSSID

Tím se vrátí SSID sítě, ke které je připojeno.

5. getPassword

Tím se vrátí heslo sítě, ke které je připojeno.

6. setDebugOutput

Funkce setDebugOutput je zodpovědná za tisk zpráv o ladění na sériovém monitoru. Tyto zprávy jsou již definovány v knihovně. Při procházení funkcí se data vytisknou.

Ve výchozím nastavení je tato funkce nastavena na hodnotu TRUE. Pokud chcete zprávy deaktivovat, jednoduše nastavte funkci na FALSE.

7. setMinimumSignalQuality

Funkce setMinimumSignalQuality je zodpovědná za filtrování sítí na základě kvality signálu. Ve výchozím nastavení WiFiManager nezobrazí přihlašovací sítě pod 8%.

8. setRemoveDuplicateAPs

Funkce setRemoveDuplicateAPs je zodpovědná za odebírání síťových duplikátů.

Ve výchozím nastavení je nastavena na hodnotu TRUE.

9. setAPStaticIPConfig

Funkce setAPStaticIPConfig je zodpovědná za nastavení nastavení statické adresy v režimu přístupového bodu.

(IP, GATEWAY, SUBNET)

10. nastavitSTAStaticIPConfig

Funkce setSTAStaticIPConfig je zodpovědná za nastavení nastavení statické adresy v režimu stanice.

(IP, GATEWAY, SUBNET)

Před autoConnect musíte přidat příkaz !!!

11. nastavte APCallback

Funkce setAPCallback je zodpovědná za informování o spuštění režimu AP.

Parametr je funkce, která musí být vytvořena, aby jej označila jako zpětné volání;

12. setSaveConfigCallback

Funkce setSaveConfigCallback je zodpovědná za informování o tom, že byla uložena nová konfigurace a připojení bylo úspěšně dokončeno.

Parametr je funkce k vytvoření a označuje to jako allback.

Před autoConnect musíte přidat příkaz !!!

Krok 6: Sestavení

Shromáždění
Shromáždění

Příklad

V našem příkladu vytvoříme přístupový bod s ESP (kód bude sloužit jak ESP8266, tak ESP32). Po vytvoření AP budeme k portálu přistupovat prostřednictvím IP 192.168.4.1 (což je výchozí přístup k němu). Pojďme tedy získat dostupné sítě, vybrat jednu a uložit. Odtud se ESP restartuje a pokusí se k němu připojit a poté bude fungovat jako stanice a už ne jako přístupový bod.

Po vstupu do režimu stanice můžete ESP vrátit do režimu přístupového bodu pouze pomocí tlačítka.

Krok 7: Kód

Knihovny

Nejprve definujme knihovny, které budeme používat.

Všimněte si, že máme příkazy #if definované, #else a #endif. Podmínkou je zahrnutí nezbytných knihoven týkajících se čipu. Tato část je nesmírně důležitá pro spuštění stejného kódu na ESP8266 i ESP32.

definováno #if (ESP8266)

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

definováno #if (ESP8266)

#include // Místní webový server sloužící k obsluze konfiguračního portálu

#jiný

#include // Místní server DNS používaný k přesměrování všech požadavků na konfigurační portál (https://github.com/zhouhan0126/DNSServer---esp32)

#endif

#include // Local WebServer sloužící k obsluze konfiguračního portálu (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ORIGINÁL)

Krok 8: Nastavení

V nastavení konfigurujeme náš WiFiManager nejjednodušším způsobem. Pojďme definovat zpětná volání a vytvořit síť.

const int PIN_AP = 2;

neplatné nastavení () {Serial.begin (9600); pinMode (PIN_AP, INPUT); // deklarace na objeto wifiManager WiFiManager wifiManager;

// použití jako základ pro konfiguraci, jako je používání pamětí // vše, co potřebujete, abyste mohli automaticky spojovat konektory, ela apagada. // wifiManager.resetSettings (); // zpětné volání pro více režimů konfigurace WiFi APManager.setAPCallback (configModeCallback); // zpětné volání para quando se conecta 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"); }

Krok 9: Smyčka

Ve smyčce přečteme pin tlačítka, abychom zjistili, zda byl stisknut, a poté zavoláme metodu pro opětovné povolení režimu AP.

prázdná smyčka () {

WiFiManager wifiManager; // se o botao foi pressionado if (digitalRead (PIN_AP) == HIGH) {Serial.println ("resetar"); // tenta abrir o portal if (! wifiManager.startConfigPortal ("ESP_AP", "12345678")) {Serial.println ("Falha ao conectar"); zpoždění (2000); ESP. restart (); zpoždění (1000); } Serial.println ("Conectou ESP_AP !!!"); }

Když stisknete tlačítko, ESP opustí režim stanice a otevře váš přístupový bod a portál.

Pamatujte, že nepoužíváme příkaz resetSettings (). Nastavení se při příštím spuštění ESP stále uloží.

Krok 10: Zpětná volání

Funkce zpětného volání, které jsou spojeny s událostmi, slouží k tomu, abyste měli přesný okamžik operace, v našem případě vstup do režimu AP a režimu stanice. Poté můžeme implementovat nějakou požadovanou rutinu, například načtení SSID z připojené sítě.

// zpětné volání que indica que o ESP neobsahuje žádné modo AP

void configModeCallback (WiFiManager *myWiFiManager) {// Serial.println ("Vstup do konfiguračního režimu"); Serial.println ("Entrou no modo de configuração"); Serial.println (WiFi.softAPIP ()); // imprime o IP do AP Serial.println (myWiFiManager-> getConfigPortalSSID ()); // zobrazení nebo identifikace SSID znovu

}

// zpětné volání que indica que salvamos uma nova rede para se conectar (modo estação)

void saveConfigCallback () {// Serial.println ("Měl bych uložit konfiguraci"); Serial.println ("Configuração salva"); Serial.println (WiFi.softAPIP ()); // imprime o IP do AP}

Doporučuje: