ESP32 nefunguje režim AP na Wi-Fi

ESP32 nefunguje režim AP na Wi-Fi
« kdy: 31. 05. 2020, 19:23:53 »
Před časem jsem si koupil ESP32 (https://www.aliexpress.com/item/32858054775.html) a při dnešní propršené neděli na něj přišla řada. Připojil jsem k tomu nějaké senzory, relé, vše funguje OK, ale těžce jsem narazil s komunikací.

Moc se v tom neorintuji, takže jsem sáhl po prvním tutoriálu z Google (https://dronebotworkshop.com/esp32-intro/) a šel zkusit AP mód. Absolutně nic. Dva mobily, tablet, notebook, Mikrotik, nic tu síť nevidí. Zkusil jsem tedy režim STA a úplně stejná situace. Nepřipojí se to ani proti Mikrotiku ani proti AP udělané na mobilu. Jediné co funguje, je skenování sítí.

Zkusil jsem do toho nahrát MicroPython, jestli náhodou nemám něco blbě v tom Arduino IDE, když těchto návodů jak přes kopírák je plný internet, ale stejná situace. Fungovalo jen skenování síti.

Už jsem myslel, že to je prostě nějaký nefunkční kus, než jsem jako poslední zoufalý pokus, než to odpískám, vytáhl ze skříně starý TP-Link TL-WR741N, který jsem si před lety koupil na oťukání OpenWRT. ESP32 se proti tomu připojilo na první dobrou. Zkusil jsem vyhrabat ještě ten nejobyčenější Mikrotik RB941-2nD, kde jsem si hrál s kanály a zabezpečením, ale tady se mi to nepřipojilo.

Našel jsem doporučení přidat

#include "esp_wifi.h"
a
esp_wifi_set_ps(WIFI_PS_NONE);
To ovšem nepomohlo.

Nesetkali jste se prosím někdo s podobným chováním? Nevím, co si o tom mám myslet. Jestli to je jen nepovedená čínská deska, nebo něco přehlížím. Díky
« Poslední změna: 01. 06. 2020, 09:35:22 od Petr Krčmář »


Re:ESP32, problém s WiFi
« Odpověď #1 kdy: 31. 05. 2020, 19:31:09 »
Jde o:
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: a4:cf:12:xx:xx:xx
Uploading stub...
Running stub...
Stub running...
Manufacturer: 20
Device: 4016
Detected flash size: 4MB

Re:ESP32, problém s WiFi
« Odpověď #2 kdy: 31. 05. 2020, 19:44:19 »
Co je v logu?

Re:ESP32, problém s WiFi
« Odpověď #3 kdy: 31. 05. 2020, 19:55:09 »
Co je v logu?
V jakém logu? Na sériovou konzoli to nepíše nic.

Re:ESP32, problém s WiFi
« Odpověď #4 kdy: 31. 05. 2020, 20:45:53 »
V jakém logu? Na sériovou konzoli to nepíše nic.
Pokud nevidis opravdu "nic", delas neco spatne.


Re:ESP32, problém s WiFi
« Odpověď #5 kdy: 31. 05. 2020, 20:58:10 »
Pokud nevidis opravdu "nic", delas neco spatne.
Nic smysluplného. Jen tečky, což odpovídá kódu u daného příkladu.
Kód: [Vybrat]
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }

Re:ESP32, problém s WiFi
« Odpověď #6 kdy: 31. 05. 2020, 21:01:27 »
Dobrý den,
mám podobný problém, je něco zbahnilého v poslední verzi ESP32 podpory pro arduino ide, všechny mé stavající projekty pokud překompiluji a flešnu do esp32 mají problém fungovat jako wifi client na AP, jde to až na několikátý pokus, pak není spoleh na http clienta...všechno jsou to jednoduché věci co ve starší verzi bez problému jely.
Měl jsem podezření na desku tak jsem to přepsal do ESP-IDF a Vše tam funguje, tak doufejme že to rychle opraví v arduino frameworku.

Zkouším v platform IO, Espresif 32 verze 1.12.2 framework arduino, mám tu Vaší desku také, a ještě jednu úplně jinou, další jsem zatím netestoval chová se to stejně, bude to něco s časováním, pokud desku nataktuji na 80Mhz tak mam problém se připojit vůbec, na výchozí takt to jde lépe, ale takové chování jsem v minulých verzích vůbec řešit nemusel, opakování jsem v projektech ani neměl :).

PS: na AP je připojeno, na statickou konfiguraci ip a brana mac dns http klient na 2 až 3 pokusy data odešle pokud nechám dhcp nedostane nic, připojení vyjednáné s AP je klient se připojí ale adresu si neslízne, koukam na to v mikrotiku.


Re:ESP32, problém s WiFi
« Odpověď #7 kdy: 31. 05. 2020, 21:06:01 »
Zkouším v platform IO, Espresif 32 verze 1.12.2 framework arduino
Zvláštní, teď jsem zrovna jedno ESPčko v Platformiu flashoval, taky ho připojuju na Mikrotik, ale problém žádný nemám. Jestli budu mít někdy brzo čas, kouknu na verzi frameworku.

Pro Tomáše G.: jestli používáš Arduino IDE, zkus taky spíš Platformio, snadno tam můžeš přepínat verzi frameworku, což by mohlo pomoct, jestli je to fakt verzí.

Re:ESP32, problém s WiFi
« Odpověď #8 kdy: 31. 05. 2020, 21:13:51 »
A nebo zkus použít přímo idfko s cmakem.

Re:ESP32, problém s WiFi
« Odpověď #9 kdy: 31. 05. 2020, 22:33:18 »
... bude to něco s časováním ...
To by teoreticky být mohlo. Bluetooth se chová podobně blbě. Zas mi do toho ale nezapadá ten MicroPython, kde mi to dělalo totéž.

Re:ESP32 nefunguje režim AP na Wi-Fi
« Odpověď #10 kdy: 01. 06. 2020, 09:49:09 »
To arduinove SDK pre ESP32 je nenormálne zabugované.  Hlavne BLE časť je hrôza. Mne sa na wifi pripojí pri každom druhom reboote. V loop() mám kontrolu, že ak sa do 20s po štarte nepripojí na wifi, tak reboot. No a na druhý pokus sa pripojí okamžite. Tiež pozor na kvalitu napájania - tá verzia dosky čo si kúpil aspoň ako tak funguje. No je aj iná, ktorá nemá pred 3,3V regulátorom kondenzátor a tá sa pri pokuse o inicializáciu rádia (pokusom o štart wifi alebo bluetooth) okamžite reštartuje. Bez prispájkovania kondenzátora na vstup je nepoužiteľná.

Re:ESP32 nefunguje režim AP na Wi-Fi
« Odpověď #11 kdy: 01. 06. 2020, 15:00:59 »
Také jsem si teď na jaře v jednom projektu hrál s ESP32 (konkrétně tenhle) a Wifi v Arduino IDE - vše chodilo bez problémů na první pokus.
Ale je tam jedno důležité omezení (viditelné i v Arduino IDE menu) - BT a Wifi je podporované/funkční až od 80MHz, na 40MHz to zřejmě nestíhá - já jedu na plný výkon 240MHz.

Re:ESP32 nefunguje režim AP na Wi-Fi
« Odpověď #12 kdy: 01. 06. 2020, 15:31:12 »
Ještě jedna zkušenost pro začátečníky - u ESP32 použití Wifi koliduje s použitím ADC2 pinů pro čtení senzorů - nelze používat obojí současně a funkčnost pinů se neobnoví sama ani po vypnutí Wifi.
https://github.com/espressif/arduino-esp32/issues/440
Na obnovení funkčnosti pinů po skončení Wifi spojení existuje workaround popsaný v odkaze výše.
 

Re:ESP32 nefunguje režim AP na Wi-Fi
« Odpověď #13 kdy: 01. 06. 2020, 20:50:49 »
Tak jsem zkusil do VSCode přidat to PlatformIO a v něm přeložit ukázkový espidf-http-request. To už je trošku ukecanější, ale stejně z toho nic nevyčtu.

Kód: [Vybrat]
␛[0;32mI (104655) example_connect: Wi-Fi disconnected, trying to reconnect...␛[0m
␛[0;32mI (106715) example_connect: Wi-Fi disconnected, trying to reconnect...␛[0m
I (106835) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1
I (106835) wifi:state: init -> auth (b0)
I (107835) wifi:state: auth -> init (200)
I (107835) wifi:new:<1,0>, old:<1,1>, ap:<255,255>, sta:<1,1>, prof:1
␛[0;32mI (107835) example_connect: Wi-Fi disconnected, trying to reconnect...␛[0m
␛[0;32mI (109895) example_connect: Wi-Fi disconnected, trying to reconnect...␛[0m
I (110015) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1
I (110015) wifi:state: init -> auth (b0)
I (111015) wifi:state: auth -> init (200)
I (111015) wifi:new:<1,0>, old:<1,1>, ap:<255,255>, sta:<1,1>, prof:1
␛[0;32mI (111015) example_connect: Wi-Fi disconnected, trying to reconnect...␛[0m
␛[0;32mI (113075) example_connect: Wi-Fi disconnected, trying to reconnect...␛[0m
I (113195) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1
I (113195) wifi:state: init -> auth (b0)
I (114195) wifi:state: auth -> init (200)
I (114195) wifi:new:<1,0>, old:<1,1>, ap:<255,255>, sta:<1,1>, prof:1
␛[0;32mI (114205) example_connect: Wi-Fi disconnected, trying to reconnect...␛[0m
␛[0;32mI (116255) example_connect: Wi-Fi disconnected, trying to reconnect...␛[0m
I (116375) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1
I (116375) wifi:state: init -> auth (b0)
I (117375) wifi:state: auth -> init (200)
I (117375) wifi:new:<1,0>, old:<1,1>, ap:<255,255>, sta:<1,1>, prof:1
␛[0;32mI (117385) example_connect: Wi-Fi disconnected, trying to reconnect...␛[0m
␛[0;32mI (119435) example_connect: Wi-Fi disconnected, trying to reconnect...␛[0m
I (119555) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1
I (119555) wifi:state: init -> auth (b0)
I (120555) wifi:state: auth -> init (200)
I (120565) wifi:new:<1,0>, old:<1,1>, ap:<255,255>, sta:<1,1>, prof:1
␛[0;32mI (120565) example_connect: Wi-Fi disconnected, trying to reconnect...␛[0m

Re:ESP32 nefunguje režim AP na Wi-Fi
« Odpověď #14 kdy: 01. 06. 2020, 22:07:55 »
Tak jsem zkusil do VSCode přidat to PlatformIO a v něm přeložit ukázkový espidf-http-request. To už je trošku ukecanější, ale stejně z toho nic nevyčtu.
Tohle máš napsané ve frameworku ESP-IDF, takže jsi zjistil minimálně to, že není problém v Arduino knihovně.

Taky jsi zjistil (pokud se teda nepletu), že selhala auth fáze. Viz https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wifi.html#auth-phase