Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

ESP32 problemi con webserver

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] ESP32 problemi con webserver

Messaggioda Foto Utentemagomelo » 10 dic 2019, 14:22

Salve,
giusto ieri mi è arrivato un ESP32 con cui ho provato ad utilizzarlo come webserver per pilotare le uscite tramite pagina html raggiungibile da dispositivi collegati alla stessa wifi in cui è collegato l'ESP32.
tutto funziona finche mi collego con un solo dispositivo, se pero' provo a pilotarlo da due dispositivi allora riscontro grandi rallentamenti fino al blocco totale.. cliccando il link che dovrebbe mandare il piedino dell'ESP alto o basso, la pagina rimane in caricamento.
è un problema che ha riscontrato anche qualcuno di voi? e magari sapete dirmi se è risolvibile?
leggendo in giro non ho trovato molto che possa aiutarmi, solo che in questi casi dovrei alimentarlo con un alimentatore dedicato perche la sola corrente fornita dall'USB potrebbe non essere sufficiente ma non so se è quella la causa. stasera faro' altre prove, se nel frattempo arrivano altri suggerimenti ben vengano.
grazie! :ok:
Avatar utente
Foto Utentemagomelo
5 4
 
Messaggi: 47
Iscritto il: 18 giu 2010, 8:25

0
voti

[2] Re: ESP32 problemi con webserver

Messaggioda Foto Utenteluxinterior » 10 dic 2019, 17:13

Da quel poco che so io:
l'alimentatore non è il colpevole se si collega all'AP della tua rete funziona. Mi sembra strano che si colleghi da USB io ho usato un alimentatore esterno, se usavo USB non riusciva a collegarsi alla rete wifi.

Dovrei andare a vedere il codice ma temo che il loro webserver utilizzi un solo socket o meglio è in ascolto su un solo socket e quello rimane anche quando ti connetti. Quindi non più di un dispositivo alla volta.

(Io uso le librerie IDF non quelle Arduino)
Avatar utente
Foto Utenteluxinterior
2.833 2 4 8
Expert EY
Expert EY
 
Messaggi: 1672
Iscritto il: 6 gen 2016, 17:48

0
voti

[3] Re: ESP32 problemi con webserver

Messaggioda Foto Utentemagomelo » 10 dic 2019, 18:58

hmmm... gran bel problema perche se fosse cosi, non avrei soluzioni.
se non è di troppo disturbo, mi faresti la cortesia di verificare se utilizza veramente un solo socket? cosi mi metto l'anima in pace.
grazie mille.
Avatar utente
Foto Utentemagomelo
5 4
 
Messaggi: 47
Iscritto il: 18 giu 2010, 8:25

0
voti

[4] Re: ESP32 problemi con webserver

Messaggioda Foto Utentemagomelo » 10 dic 2019, 22:42

- AGGIORNAMENTO -

ho fatto ulteriori ricerche, ho trovato che in modalita access point riesce a gestire fino a cinque dispositivi collegati a lui, collegandolo in wifi al modem invece non ho trovato il numero preciso dei client che supporta ma penso siano piu di cinque perche nell'articolo che ho letto c'era scritto appunto che a differenza del collegamento tramite modem, usandolo come access point si riusciva a collegarci "solo" cinque client.

ho provato vari sorgenti ed ho visto che il problema del blocco che mi dava era dovuto proprio ad un problema di codice perche caricandone un altro differente adesso funziona meglio.... ha ancora dei bug come ad esempio che ogni volta che mi collego con un nuovo dispositivo non mantiene gli stati logici delle uscite che aveva prima ma "spegne" tutto, ma anche questo sono quasi sicuro sia un problema di codice, ho fiducia nel riuscire a risolverlo abbastanza facilmente.

se nessuno ha da aggiungere nulla, per me si puo considerare l'argomento chiuso... O_/
Avatar utente
Foto Utentemagomelo
5 4
 
Messaggi: 47
Iscritto il: 18 giu 2010, 8:25

0
voti

[5] Re: ESP32 problemi con webserver

Messaggioda Foto Utenteluxinterior » 10 dic 2019, 22:46

premesso che bisognerebbe capire che lingua stiamo parlando altrimenti rischiamo di nono capirci
Se lavori con le librerie IDF
file esp_http_server.h
Codice: Seleziona tutto
#define HTTPD_DEFAULT_CONFIG() {                        \
        .task_priority      = tskIDLE_PRIORITY+5,       \
        .stack_size         = 4096,                     \
        .core_id            = tskNO_AFFINITY,           \
        .server_port        = 80,                       \
        .ctrl_port          = 32768,                    \
        .max_open_sockets   = 7,                        \
        .max_uri_handlers   = 8,                        \
        .max_resp_headers   = 8,                        \
        .backlog_conn       = 5,                        \
        .lru_purge_enable   = false,                    \
        .recv_wait_timeout  = 5,                        \
        .send_wait_timeout  = 5,                        \
        .global_user_ctx = NULL,                        \
        .global_user_ctx_free_fn = NULL,                \
        .global_transport_ctx = NULL,                   \
        .global_transport_ctx_free_fn = NULL,           \
        .open_fn = NULL,                                \
        .close_fn = NULL,                               \
        .uri_match_fn = NULL                            \


e nel tuo codice qualcosa del tipo
Codice: Seleziona tutto
   httpd_config_t config = HTTPD_DEFAULT_CONFIG();

    ESP_LOGI(REST_TAG, "Starting HTTP Server");
    REST_CHECK(httpd_start(&server, &config) == ESP_OK, "Start server failed", err_start);


con l'avvertenza
Codice: Seleziona tutto
/* Sanity check about whether LWIP is configured for providing the
     * maximum number of open sockets sufficient for the server. Though,
     * this check doesn't guarantee that many sockets will actually be
     * available at runtime as other processes may use up some sockets.
     * Note that server also uses 3 sockets for its internal use :
     *     1) listening for new TCP connections
     *     2) for sending control messages over UDP
     *     3) for receiving control messages over UDP
     * So the total number of required sockets is max_open_sockets + 3
     */
    if (CONFIG_LWIP_MAX_SOCKETS < config->max_open_sockets + 3) {
        ESP_LOGE(TAG, "Configuration option max_open_sockets is too large (max allowed %d)\n\t"
                      "Either decrease this or configure LWIP_MAX_SOCKETS to a larger value",
                      CONFIG_LWIP_MAX_SOCKETS - 3);
        return ESP_ERR_INVALID_ARG;
    }
Avatar utente
Foto Utenteluxinterior
2.833 2 4 8
Expert EY
Expert EY
 
Messaggi: 1672
Iscritto il: 6 gen 2016, 17:48

0
voti

[6] Re: ESP32 problemi con webserver

Messaggioda Foto Utentemarcok625 » 10 dic 2019, 22:52

Ciao,
io sto utilizzando ESP12 il fratello minore, sono strumenti molto versatili, ci puoi fare di tutto, io mi sto istruendo tramite alcuni video su youtube, in particolare questo canale https://www.youtube.com/watch?v=ZJoBy2c1dPk, che mi ha aiutato molto.
Per programmarlo stai usando il LUA o utilizzi l'ide di arduino con il suo linguaggio?
Confermo che i problemi che hai avuto è solo codice.
Avatar utente
Foto Utentemarcok625
167 2
New entry
New entry
 
Messaggi: 78
Iscritto il: 7 giu 2019, 15:12

0
voti

[7] Re: ESP32 problemi con webserver

Messaggioda Foto Utentemagomelo » 10 dic 2019, 22:58

per ora mi sto arrangiando a scopiazzare codice per ide di arduino e modificarlo, in passato ho fatto un corso per la programmazione in c++, dovrei rispolverare i manuali e poi se fosse possibile preferirei lavorare in c++
Avatar utente
Foto Utentemagomelo
5 4
 
Messaggi: 47
Iscritto il: 18 giu 2010, 8:25

0
voti

[8] Re: ESP32 problemi con webserver

Messaggioda Foto Utentemarcok625 » 10 dic 2019, 23:05

anche io, prendo del codice qua e la. ma poi mi ritrovo una cosa che non va come vorrei il 99% delle volte allora ci perdo mesi e alla fine parto da principio e mi riscrivo il codice quasi da 0, però cosi facendo imparo anche molto.
attualmente con l'ESP12 sto portando avanti questo progetto. https://www.youtube.com/watch?v=MVDjUWJguRM
Avatar utente
Foto Utentemarcok625
167 2
New entry
New entry
 
Messaggi: 78
Iscritto il: 7 giu 2019, 15:12


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite