Cuprins:

Noțiuni introductive despre ESP32 CAM - Streaming video folosind ESP CAM prin Wifi - Proiectul camerei de securitate ESP32: 8 pași
Noțiuni introductive despre ESP32 CAM - Streaming video folosind ESP CAM prin Wifi - Proiectul camerei de securitate ESP32: 8 pași

Video: Noțiuni introductive despre ESP32 CAM - Streaming video folosind ESP CAM prin Wifi - Proiectul camerei de securitate ESP32: 8 pași

Video: Noțiuni introductive despre ESP32 CAM - Streaming video folosind ESP CAM prin Wifi - Proiectul camerei de securitate ESP32: 8 pași
Video: Curs 2 IoT (Internet of Things) 2024, Noiembrie
Anonim
Noțiuni introductive despre ESP32 CAM | Streaming video folosind ESP CAM prin Wifi | Proiectul camerei de securitate ESP32
Noțiuni introductive despre ESP32 CAM | Streaming video folosind ESP CAM prin Wifi | Proiectul camerei de securitate ESP32

Astăzi vom învăța cum să folosim această nouă placă ESP32 CAM și cum să o codificăm și să o folosim ca cameră de securitate și să obținem un streaming video prin wifi.

Pasul 1: Lucruri de care aveți nevoie

Lucruri de care ai nevoie
Lucruri de care ai nevoie
Lucruri de care ai nevoie
Lucruri de care ai nevoie

Înainte de a începe, asigurați-vă că aveți următoarele lucruri la dumneavoastră: ESP 32 CAM:

FTDI:

Pasul 2: Configurare ESP32 Arduino IDE

Configurare ESP32 Arduino IDE
Configurare ESP32 Arduino IDE

Asigurați-vă că aveți Arduino IDE în computer și că ați instalat plăci ESP32 în Arduino IDE și, dacă nu este cazul, vă rugăm să urmați următoarele instrucțiuni pentru instalare.:

Pasul 3: Specificații pentru placa ESP32 CAM

Specificații pentru placa ESP32 CAM
Specificații pentru placa ESP32 CAM

Înainte să mergem să facem ceva, asigurați-vă că cunoașteți specificațiile și pinout-ul etc al plăcii ESP32 CAM, iar pentru această imagine pinout este adăugată vă rugăm să consultați și specificațiile plăcii ESP32 CAM sunt date mai jos: Cea mai mică 802.11b / g / n Wi-Fi Modul BT SoC CPU de 32 de biți, de asemenea, poate deservi procesorul de aplicație Până la 160 MHz viteză de ceas, putere de calcul sumară până la 600 DMIPS Built-in 520 KB SRAM, extern 4MPSRAM Suportă UART / SPI / I2C / PWM / ADC / DAC Suport camere OV2640 și OV7670, lampă flash încorporată Suport imagine încărcare WiFI Suport card TF Suportă mai multe moduri de repaus Lwip încorporat și FreeRTOSS Suportă modul de operare STA / AP / STA + AP Suportă Smart Config / AirKiss tehnologie Suport pentru port serial actualizări firmware locale și la distanță (FOTA) Pinuri utilizate pentru cititorul de card microSD: GPIO 14: CLKGPIO 15: CMDGPIO 2: Date 0GPIO 4: Data 1 (conectat și la LED-ul de bord) GPIO 12: Data 2GPIO 13: Data 3

Pasul 4: conectați totul împreună

Conectează totul împreună
Conectează totul împreună

Pentru a programa acest lucru, trebuie să conectăm un FTDI / usb la ttl pentru a programa acest lucru, deoarece această placă nu are unul. Deci conectați Ftdi / usb la ttl conform schematicilor.

Pasul 5: Obținerea codului

În IDE-ul dvs. Arduino, accesați Fișier> Exemple> ESP32> Cameră și deschideți exemplul CameraWebServer. SAU puteți utiliza următorul cod dat, copiați următorul cod: #include "esp_camera.h" #include #include "esp_timer.h" #include "img_converters.h" #include "Arduino.h" #include "fb_gfx.h" #include "soc / soc.h" // dezactivați problemele brownout # include "soc / rtc_cntl_reg.h" // dezactivați problemele brownout # include "dl_lib.h" #include "esp_http_server.h" // Înlocuiți cu acreditările de rețeasconst char * ssid = "REPLACE_WITH_YOUR_SSID"; const char * password = "REPLACE_WITH_YOUR_PASSWORD"; # define PART_BOUNDARY "12345678900000000000000000000000000000000 Modelul AI Thinker, Modelul M5STACK PSRAM și M5STACK FĂRĂ PSRAM # definesc CAMERA_MODEL_AI_THINKER // # define CAMERA_MODEL_M5STACK_PSRAM // # define CAMERA_MODEL_M5STACK_WITHOUT_PSRAM // Nu sunt testate cu acest model // # definesc CAMERA_MODEL_W RESET_GPIO_NUM -1 #define XCLK_G PIO_NUM 21 #define SIOD_GPIO_NUM 26 #define SIOC_GPIO_NUM 27 #define Y9_GPIO_NUM 35 #define Y8_GPIO_NUM 34 #define Y7_GPIO_NUM 39 #define Y6_GPIO_NUM 36 #define Y5_GPIO_NUM 19 #define Y4_GPIO_NUM 18 #define Y3_GPIO_NUM 5 #define Y2_GPIO_NUM 4 #define VSYNC_GPIO_NUM 25 #define HREF_GPIO_NUM 23 #define PCLK_GPIO_NUM 22 # elif definită (CAMERA_MODEL_M5STACK_PSRAM) #define PWDN_GPIO_NUM -1 #define RESET_GPIO_NUM 15 #define XCLK_GPIO_NUM 27 #define SIOD_GPIO_NUM 25 #define SIOC_GPIO_NUM 23 #define Y9_GPIO_NUM 19 #define Y8_GPIO_NUM 36 #define Y7_GPIO_NUM 18 #define Y6_GPIO_NUM 39 #define Y5_GPIO_NUM 5 #define Y4_GPIO_NUM 34 #define Y3_GPIO_NUM 35 #define Y2_GPIO_NUM 32 #define VSYNC_GPIO_NUM 22 #define HREF_GPIO_NUM 26 #define PCLK_GPIO_NUM 21 # elif definită (CAMERA_MODEL_M5STACK_WITHOUT_PSRAM) #define PWDN_GPIO_NUM -1 #define RESET_GPIO_NUM 15 #define XCLK_GPIO_NUM 27 #define SIOD_GPIO_NUM 25 #define SIOC_GPIO_NUM 23 #define Y9_GPIO_NUM 19 #define Y8_GPIO_NUM 36 #define Y7_GPIO_NUM 18 #define Y6_ GPIO_NUM 39 #define Y5_GPIO_NUM 5 #define Y4_GPIO_NUM 34 #define Y3_GPIO_NUM 35 #define Y2_GPIO_NUM 17 #define VSYNC_GPIO_NUM 22 #define HREF_GPIO_NUM 26 #define PCLK_GPIO_NUM 21 # elif definit (CAMERA_MODEL_AI_THINKER) #define PWDN_GPIO_NUM 32 #define RESET_GPIO_NUM -1 #define XCLK_GPIO_NUM 0 # defini SIOD_GPIO_NUM 26 #define SIOC_GPIO_NUM 27 #define Y9_GPIO_NUM 35 #define Y8_GPIO_NUM 34 #define Y7_GPIO_NUM 39 #define Y6_GPIO_NUM 36 #define Y5_GPIO_NUM 21 #define Y4_GPIO_NUM 19 #define Y3_GPIO_NUM 18 #define Y2_GPIO_NUM 5 #define VSYNC_GPIO_NUM 25 #define HREF_GPIO_NUM 23 #define PCLK_GPIO_NUM 22 # else #error "Modelul camerei nu este selectat" #endifstatic const char * _STREAM_CONTENT_TYPE = "multipart / x-mixed-replace; boundary =" PART_BOUNDARY; static const char * _STREAM_BOUNDARY = "\ r / n--" PART_BOUNDARY "\ r / n "; static const char * _STREAM_PART =" Content-Type: image / jpeg / r / nContent-Length:% u / r / n / r / n "; httpd_handle_t stream_httpd = NULL; static esp_err_t stream_handler (httpd_req_t * req) {camera_fb_t * f b = NUL; esp_err_t res = ESP_OK; size_t _jpg_buf_len = 0; uint8_t * _jpg_buf = NULL; char * part_buf [64]; res = httpd_resp_set_type (cerere, _STREAM_CONTENT_TYPE); if (res! = ESP_OK) {returnează res; } while (adevărat) {fb = esp_camera_fb_get (); if (! fb) {Serial.println ("Captura camerei a eșuat"); res = ESP_FAIL; } else {if (fb-> width> 400) {if (fb-> format! = PIXFORMAT_JPEG) {bool jpeg_converted = frame-j.webp

Pasul 6: Încărcați codul

Încărcați codul
Încărcați codul

După ce obțineți codul, trebuie să încărcați codul și este nevoie de puține setări pentru a încărca codul, deci asigurați-vă că ați urmat ceva în timpul încărcării, deoarece este un cod de îmbrățișare, astfel încât să nu fie încărcat prin metoda normală. selectați ESP32 Wrover Module Accesați Tools> Port și selectați portul COM la care este conectat ESP32In Tools> Partition Scheme, selectați „Huge APP (3MB No OTA)” Înainte de a încărca codul, trebuie să introduceți acreditările dvs. wifi în următoarea parte a cod: const char * ssid = "REPLACE_WITH_YOUR_SSID"; const char * password = "REPLACE_WITH_YOUR_PASSWORD"; și asigurați-vă că ați selectat modulul de cameră potrivit. alte modele și decomentați-l pe acesta: #define CAMERA_MODEL_AI_THINKER Apăsați butonul ESP32-CAM RESET de la bord Apoi, faceți clic pe butonul de încărcare pentru a încărca codul.

Pasul 7: Obținerea adresei IP

Obținerea IP-ului
Obținerea IP-ului

Scoateți jumper-ul conectat între GPIO0 și GND apoi, Deschideți monitorul serial cu baud rate: 115200 și apoi apăsați butonul ESP32-CAM Reset și așteptați să apară IP-ul și așteptați câteva secunde, apoi apăsați din nou reset. vezi că am primit IP-ul meu și este evidențiat în imagine.

Pasul 8: Obținerea videoclipului de streaming Wifi

Obținerea videoclipului Wifi Streaming
Obținerea videoclipului Wifi Streaming

Deschideți browserul și asigurați-vă că PC-ul dvs. este conectat la aceeași rețea ca ESP32 CAM și apoi tastați IP-ul în browserul dvs., apoi faceți clic pe butonul de flux și veți obține fluxul dvs. video și există câteva setări și aici, astfel încât să le puteți încerca. și obțineți și un videoclip mai bun.

Recomandat: