Sari la conținut
ELFORUM - Forumul electronistilor

Esp32-cam


Untold

Postări Recomandate

  • Răspunsuri 55
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Top autori în acest subiect

Imagini postate

Toate verificările să văd dacă poate fi accesată camera din internet le-am făcut de pe telefon cu wifi-off, deci de pe date mobile.

Să le luăm pe rând, am aplicat în mare parte cele sugerate.

@LiviuMihaiu am scos toate înscrierile din portforward și am activat DMZ pentru ip-ul espcam-ului. Deși nu mă așteptam, a mers. De altfel este singura variantă cu care am putut vedea streamul pe telefon din internet. Nu era nevoie ca în link să pun vreun port ci doar adresa mea alocată de digi pentru ip-ul meu extern.

@Liviu M am pus 80-81 și la public și la privat, se încarcă configurările nu și streamul

În sketch nu am găsit/nu știu unde să schimb porturile.

@Bandi Szasz am pus public 8080-8081 (dar am probat și 7000-7000) și privat 80-81, nu merge streamul

@Zotescu Mihai nu știu dacă am înțeles bine poza, am pus 2 înscrierei în portforward una cu 8080-8080 la 80-80 și una cu 8181-8181 la 81-81 ambele pentru același ip ai camerei, nu merge. Bineînțeles că și cu o singură înscriere (8080-8081 la 80-81) nu merge, mai încercasem.

@c_anicai cum s-ar face/ce este virtual server ?

 

Pare o problemă simplă dar na, pentru mine e mai complicată :))

Oricum, dacă nu o pot vedea din internet, camera e useless și așa nu-i cine știe ce calitate, unghi redus, plus că nu are leduri IR, dar dacă tot am cumpărat-o aș fi pus-o undeva la exterior.

 

 

Editat de x_dadu
Link spre comentariu
1 oră în urmă, x_dadu a spus:

am scos toate înscrierile din portforward și am activat DMZ pentru ip-ul espcam-ului. Deși nu mă așteptam, a mers. De altfel este singura variantă cu care am putut vedea streamul pe telefon din internet. Nu era nevoie ca în link să pun vreun port ci doar adresa mea alocată de digi pentru ip-ul meu extern.

Acum te uiti in pagina "status" a routerului si vezi ce porturi destinatie sunt utilizate la conexiunile IP tel.mobil -> IP camera web, le pui in forward si dezactivezi DMZ.
 

Editat de Vizitator
Link spre comentariu
Acum 8 ore, x_dadu a spus:

@Liviu M În sketch nu am găsit/nu știu unde să schimb porturile.

Da, e mai complicat decat mi-am imaginat la inceput, trebuie modificate biblioteca (fisierul app_httpd.cpp) si sketchul. Daca vrei iti zic ce cred eu ca trebuie modificat. N-am modulul, asa ca nu pot testa, dar de compilat s-a compilat.

Cautand prin biblioteca dupa locul de modificat, am descoperit ca mai foloseste un port de control, ctrl_port, cu valoarea implicita 32768 (vezi HTTPD_DEFAULT_CONFIG in fisierul arduino15/packages/esp32/hardware/esp32/1.0.6/tools/sdk/include/esp_https_server/esp_https_server.h),

/*
note: esp_https_server.h includes a customized copy of this
initializer that should be kept in sync
*/
#define HTTPD_DEFAULT_CONFIG() {                        \
        .task_priority      = tskIDLE_PRIORITY+5,       \
        .stack_size         = 4096,                     \
        .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                            \
}

pe care-l incrementeaza in sketch

    config.ctrl_port += 1;

Asa ca sunt sanse sa fie nevoie sa-l forwardezi si pe asta, habar n-am...

Editat de Liviu M
Link spre comentariu

Pentru functionarea serverului de stream si a serverului panoului de configurare (control) pe acelasi port(80), trebuie editat codul HTML care este definit in fisierul camera_index.h, in zona:

const uint8_t index_ov2640_html_gz[] = { ... }

Editarea se poate face cu CyberChef .

Se copiaza codul hex din zona mentionata si se introduce in zona de input Cyberchef, folosind urmatoarea reteta:

From_Hex('Auto')
Gunzip()

In urma conversiei rezulta un fisier html in care linia:

var streamUrl = baseHost + ':81'

trebuie modificata astfel:

var streamUrl = baseHost

Se salveaza codul rezultat, se sterge intrarea si iesirea Cyberchef, se schimba prima reteta cu cea de mai jos

Gzip('Dynamic Huffman Coding','','',false)
To_Hex('0x with comma',16) 

si se introduce codul salvat (html) anterior in zona de input.
In urma conversiei rezulta un cod hex care trebuie scris in locul hexului original din fisierul camera_index.h.
Lungimea acestui cod va creste in urma conversiei, deci trebuie modificata si linia de la inceputul fisierului camera_index.h


#define index_ov2640_html_gz_len 4316

cu lungimea corespunzatoare rezultata in urma conversiei( in fisierul original este 4316, iar cea nou trebuie calculata).

In fisierul app_httpd.cpp se adauga linia:

httpd_register_uri_handler(stream_httpd, &stream_uri);

in urmatoarea zona de cod,

Serial.printf("Starting web server on port: '%d'\n", config.server_port);
    if (httpd_start(&camera_httpd, &config) == ESP_OK) {
        httpd_register_uri_handler(camera_httpd, &index_uri);
        httpd_register_uri_handler(camera_httpd, &cmd_uri);
        httpd_register_uri_handler(camera_httpd, &status_uri);
        httpd_register_uri_handler(camera_httpd, &capture_uri);
        httpd_register_uri_handler(stream_httpd, &stream_uri);// line noua

    }

apoi trebuie comentat sau sters codul care porneste serverul de stream pe portul 81:

/*
if (httpd_start(&stream_httpd, &config) == ESP_OK) {
    httpd_register_uri_handler(stream_httpd, &stream_uri);
 }
*/

Daca se doreste folosirea unui port diferit de 80, modificarea trebuie facuta doar in fisierul esp_http_server.h inclus in fisierul app_httpd.cpp.

#define HTTPD_DEFAULT_CONFIG() {                        \
        .task_priority      = tskIDLE_PRIORITY+5,       \
        .stack_size         = 4096,                     \
        .server_port        = 80,                       \ port nou
        .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                            \
}
       
      

 

Link spre comentariu

Vă mulțumesc pentru răspuns, chiar v-ați dat silința, însă eu nu am înțeles cum să editez în acel CyberChef.

În ultima parte a postării ați spus că dacă folosesc alt port nu ar mai fi nevie de editarea din Cyberchef ci doar o modificare în esp_http_server.hNu știu dacă am înțeles bine dar oricum nu am reușit să găsesc fișierul respectiv.

 

LE până la urmă m-am descurcat cu CyberChef, nu știam cum să bag acele ”rețete”.

Am modificat prin ștergerea acelui + ':81', am modificat lungimea care se modificase.

Dar tot nu merge , mai mult, nu mai merge nici în rețeala locală, respectiv la accesarea cu 192.168.1.11 se încarcă pagina cu setări dar streamul nu merge.

Am făcut portforward de la 7004-7004 la 80-80 și nu merge streamul.

Editat de x_dadu
Link spre comentariu

Eu zic ca te complici. Sa revenim:
Ai vazut ca merge prin DMZ.
Ti-am spus sa te uiti apoi in pagina de "netowork status" a routerului cand este DMZ activ si sa pui in forward porturile destinatie utilizate acolo. Si dezactivezi DMZ. Dupa ce te convingi ca merge asa (sigur va merge), poti modifica "external port".
Eventul pune o poza cu ce conexiuni ai la "status" cand te conectezi la camera din internet prin DMZ.

(poti da mai intai un restart la router pentru a nu avea prea multe conexiuni in lista status).

Link spre comentariu
Acum 3 ore, x_dadu a spus:

io am înțeles da al naiba dacă găsesc acele informații de care zici la status

Poate ne ducem mai pe langa subiect. Dar daca nu se pot afla altfel porturile necesare conectarii:
Conecteaza-te cu PC-ul din reteaua interna la ESP-camera.
Si dintr-o fereastra 'cmd':

netstat -an | find "192..."

unde "192..." este IP ESP
vezi ce porturi sunt deschise la 192... , apoi forward pentru ele pe router.

LE: Clar ca unul este portul 80. Mai trebuie sa fie un port (sau doua) acolo la "netstat".
 

Editat de Vizitator
Link spre comentariu

da, dă o listă întradevăr. Am pornit camera, m-am conectat cu laptopu la ea pe 192... și am dat un nestat -n, mi-a apărut printre altele, ceea ce e legat de ip-ul esp32cam conform pozei. Însă în momentul ăla camera livra video local, de pe telefon pe date mobile nu puteam vedea pagina camerei, decât dacă o deconectat de laptop, caz în care nemaifiind legat la laptop, nu-mi mai dădea nimic de ip-ul camerei cu netstat. Deci nu știu cum să văd porturile în timp ce camera livrează în internet, asta doar ruteru știe.

Capture.JPG

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări