ESP32-CAM fejlesztőkártya, Wifi, Bluetooth, OV3660 3MP
zoom_out_map
chevron_left chevron_right

A termékfotók tájékoztató jellegűek, és a gyártási tételtől és a beszállítótól függően kisebb eltéréseket mutathatnak. A termék specifikációi és árai előzetes értesítés nélkül változhatnak. Mindent megteszünk, hogy a lehető legpontosabb és leghitelesebb specifikációkat adjuk meg a termékoldalon, de lehetséges, hogy ezek nem teljesen helyesek. Ha ilyen esetet észlel, kérjük, jelentse nekünk.

A termék szakemberek számára készült, és használatához képzett, valamint felhatalmazott személyzet szükséges. A termék nem tartalmaz összeszerelési/használati útmutatót . A termék nem megfelelő képesítéssel rendelkező személyek általi üzembe helyezése a weboldalon található Általános Szerződési Feltételek értelmében a jótállás elvesztését eredményezi.

A megadott műszaki adatok (áram, teljesítmény stb.) ideális működési körülmények között érvényes maximális értékeket jelentenek. A biztonságos használat és az optimális élettartam érdekében javasolt a terméket folyamatos üzemben legfeljebb a megadott maximális értékek 50%-án használni.

ESP32-CAM fejlesztőpanel, WiFi, Bluetooth, OV5640 5 MP

Kompatibilis megoldás mesterséges látás, videóstreaming és IoT projektekhez, 802.11b/g/n WiFi és Bluetooth 4.2 LE kapcsolattal vezeték nélküli alkalmazásokhoz. Integrál egy kétmagos processzort akár 240 MHz-ig és 4 MB PSRAM-ot a képfeldolgozás gyorsításához, egy 5 MP-es OV5640 kamerát a részletes felvételekhez, TF-kártya támogatást és JPEG, BMP, szürkeárnyalatos formátumokat, valamint kompatibilis az Arduino IDE-vel a gyors fejlesztéshez.

6 221,17 Ft Adóval együtt

5 141,47 Ft Áfa nélkül

(5/5) kívül 4 összes értékelés
Olvasd el a véleményeket
1-2 zile
check In Stoc

Shipping by csütörtök 22 október

A termék megvásárlásával jár 311,06 Ft hűségpont.

Jótállás: 24 hónap magánszemélyeknek
NEMZETKÖZI SZÁLLÍTÁS
Nemzetközi gyors szállítás az EU-n belül. Ingyenes szállítás 100 EUR feletti megrendelések esetén a legtöbb EU-országban.
GYORS KISZÁLLÍTÁS 24 ÓRÁN BELÜL
24 órán belül szállítunk raktárunkból
HŰSÉGPONTOK
Minden rendelés után pontokat kap, a rendelés értékének 5%-ában.

Az ESP32-CAM fejlesztőpanel egy kompakt modul, amely egyesíti az ESP32 WiFi- és Bluetooth-processzort egy FPC csatlakozón keresztül kapcsolódó 5 MP-es OV5640 kamerával, teljes megoldást kínálva képek rögzítésére és továbbítására mesterséges látási projektekben, videostreamingben és IoT alkalmazásokban. A panel önállóan is működhet, képeket és videófolyamokat küldve a hálózatra WiFi-n keresztül, vagy programozható úgy is, hogy UART-on érkező parancsokra reagáljon, így alkalmas megfigyelésre, tárgyfelismerésre, távoli monitorozásra és automatizált fényképezési projektekre.

A processzor egy 32 bites, kétmagos ESP32 LX6, 80 és 240 MHz közötti órajelekkel és akár 600 DMIPS számítási teljesítménnyel. A 520 KB belső SRAM memóriát 4 MB külső PSRAM egészíti ki, amely nagy felbontású képek tömörítés és továbbítás előtti feldolgozásához szükséges. Az OV5640 kamera maximális felbontása 2592 x 1944 pixel (5 MP), és egy 24 tűs FPC csatlakozón keresztül kapcsolódik, ugyanazon a típusú csatlakozón, mint a régebbi OV2640 kamerás változat.

A fő jellemzők közé tartozik a kamera FPC csatlakozója, a legfeljebb 4 GB-os microSD kártyahely, egy fehér LED, amely vakuként szolgál, a panelre nyomtatott PCB antenna, két sor tűsor (összesen 16 tű), amelyek a tápellátást, a szabad GPIO-kat és az UART interfészt hozzák ki, valamint egy RESET gomb. A tápellátás 5 VDC-ről történik az 5V tűn, legalább 2A stabil tápegység ajánlott, a panel pedig 3.3 VDC-ről is táplálható a 3V3 tűn keresztül.

Az UART interfészen keresztül (U0T és U0R tűk) a panel egy számítógépről USB-soros átalakítóval programozható és tesztelhető, a hálózatra csatlakoztatás után pedig a képek és a videófolyam közvetlenül elérhető bármely, a helyi hálózaton lévő számítógép vagy telefon böngészőjéből. A megmaradó szabad GPIO-k lehetővé teszik további, Arduino, ESP32, STM32 vagy Raspberry Pi kompatibilis szenzorok és modulok csatlakoztatását is, a panel 3.3V-os logikai szintjét használva.

 

FIGYELEM

Kamera OV5640 (aktuális széria)

Ez a modul OV5640 (5MP) kamerával kerül szállításra az OV2640 helyett. Az érzékelő működés közben erősen felmelegszik, és érintésre forró lehet. Ez normális viselkedés ennél a panel-kamera kombinációnál, nem hiba.

Kötelező használati feltételek:

Hűtőborda felszerelve a kamera hátoldalára, hővezető szalaggal vagy paddal.

Megfelelő szellőzés; ne használja a modult zárt házban, légáramlás nélkül.

Stabil 5V-os tápellátás, legalább 2A, az 5V tűn. Ne táplálja a modult az USB-soros átalakító 3.3V-os kimenetéről.

Ajánlások:

Az Arduino IDE-ben válassza az “AI Thinker ESP32-CAM” panelt, és használja a CameraWebServer példát.

JPEG formátumot használjon. Folyamatos streamhez válasszon alacsonyabb felbontást (SVGA vagy HD); a maximális felbontást csak fényképekhez használja.

Időszakos képrögzítéshez kapcsolja ki az érzékelőt a képek között (GPIO32 HIGH szintre állításával).

Az autofókuszos változatnál az automatikus fókuszhoz 3.3V szükséges a kamera csatlakozó 24-es lábán, valamint egy dedikált könyvtár. Ezek nélkül a kamera fix fókuszban működik.

 

A modul nem ajánlott folyamatos, 24/7 streaminghez. Ha az OV2640-es változatra van szüksége, kérjük, a rendelés leadása előtt vegye fel velünk a kapcsolatot.

 

Specifikációk:

Placa%20dezvoltare%20ESP32-CAM,%20Wifi,%20Bluetooth,%20OV2640%202MP%20wiring.jpg

Tápfeszültség: 5 VDC (5V tű)

Áramfelvétel: 180 mA (Flash LED kikapcsolva) / 310 mA (Flash LED bekapcsolva, maximális fényerő)

Deep-sleep áramfelvétel: minimum 6 mA

Modem-sleep áramfelvétel: minimum 20 mA

Light-sleep áramfelvétel: minimum 6.7 mA

Tűk száma: 16

WiFi: 802.11 b/g/n

Bluetooth: 4.2 LE

CPU: Dual core LX6, 32 bit

CPU frekvencia: 80 - 240 MHz

Belső memória: 520 KB SRAM

Külső memória: 4 MB PSRAM

Támogatott interfészek: UART, SPI, I2C, PWM, ADC, DAC

Mellékelt kamera: OV5640, 5 MP, maximális felbontás 2592 x 1944 pixel

Képfájl formátumok: JPEG, BMP, grayscale

Memóriakártya: microSD (TF), legfeljebb 4 GB

Alacsony fogyasztású módok: Deep-sleep, Modem-sleep, Light-sleep

Beépített szoftverstack: LwIP, FreeRTOS

Hálózati működési módok: STA / AP / STA+AP

Smart Config / AirKiss: Igen

FOTA frissítés: Igen

SPI Flash memória: 32 Mbit

Kamera csatlakozó: FPC, 24 tű

Mellékelt programozó: Nem, külső adapter szükséges (ajánlott FT232 vagy egyenértékű)

Méretek: 42 x 27 x 12 mm

 

Elrendezés:

Elem Funkció
ESP32-S modul PCB antennával Az ESP32 kétmagos processzor és a panelre nyomtatott WiFi/Bluetooth antenna.
Fehér LED Vakuként szolgál a kamerához, GPIO4 vezérli.
Kamera FPC csatlakozó 24 tűs csatlakozó, amelyhez az OV5640 kamera flex kábele kapcsolódik.
OV5640 kamera 5 MP-es kameramodul, külön szerelve a panelre, flex kábellel csatlakoztatva.
microSD (TF) kártyahely Helyi tárolás képek és fájlok számára, legfeljebb 4 GB-os kártyákhoz.
Két sor tűsor (dupla header) A tápellátást, a szabad GPIO-kat és az UART interfészt hozzák ki, összesen 16 tűvel.
RESET gomb Az ESP32 mikrokontrollert alaphelyzetbe állítja, és a program betöltéséhez is használható.
Feszültségszabályzó Az 5V-os tápellátást a panel áramköreihez szükséges 3.3V-ra alakítja.
Rögzítőfuratok Két furat a tűsorok között a panel rögzítéséhez.

 

Pinout:

Csatlakozó Pin Funkció
5V header 5V Panel tápellátása, 5 VDC
5V header GND Föld
5V header IO12 GPIO12, MicroSD DATA2-ként is használva
5V header IO13 GPIO13, MicroSD DATA3-ként is használva
5V header IO15 GPIO15, MicroSD CMD-ként is használva
5V header IO14 GPIO14, MicroSD CLK-ként is használva
5V header IO2 GPIO2, MicroSD DATA0-ként is használva
5V header IO4 GPIO4, MicroSD DATA1-ként használva, a flash LED vezérlése
3V3 header 3V3 Panel tápellátása, 3.3 VDC
3V3 header IO16 GPIO16, szabad vonal, lehet UART2 RX
3V3 header IO0 GPIO0, indítási módot választ; program betöltéséhez GND-re kell kötni
3V3 header GND Föld
3V3 header VCC 3.3V vagy 5V kimenet, a panelt ezen a tűn keresztül nem szabad táplálni
3V3 header U0R (IO3) UART RX, soros adatfogadás
3V3 header U0T (IO1) UART TX, soros adatátvitel
3V3 header GND Föld

 

Kamera jel (FPC) ESP32 GPIO Funkció
D0 GPIO5 Kamera adatvonal (Y2)
D1 GPIO18 Kamera adatvonal (Y3)
D2 GPIO19 Kamera adatvonal (Y4)
D3 GPIO21 Kamera adatvonal (Y5)
D4 GPIO36 Kamera adatvonal (Y6)
D5 GPIO39 Kamera adatvonal (Y7)
D6 GPIO34 Kamera adatvonal (Y8)
D7 GPIO35 Kamera adatvonal (Y9)
XCLK GPIO0 Bemeneti órajel a kamera érzékelő számára
PCLK GPIO22 Pixel kimeneti órajel
VSYNC GPIO25 Függőleges képkocka-szinkron
HREF GPIO23 Vízszintes sor-szinkron
SIOD (SDA) GPIO26 I2C/SCCB, érzékelő konfiguráció
SIOC (SCL) GPIO27 I2C/SCCB, érzékelő konfiguráció
PWDN GPIO32 Érzékelő kikapcsolása (power-down), HIGH a képek közötti kikapcsoláshoz

 

Használat:

Ha a kameramodul még nincs felszerelve, rögzítse azt a panel FPC csatlakozójára a kontaktusok tájolását betartva, majd zárja le a csatlakozó rögzítőfülét.

Szereljen fel egy kis hűtőbordát hővezető szalaggal vagy paddal az OV5640 kamera hátoldalára az első használat előtt, mivel az érzékelő működés közben erősen felmelegszik, és érintésre forró lehet; ez normális viselkedés ennél a panel-kamera kombinációnál.

Biztosítson megfelelő szellőzést a modul körül, és ne használja zárt házban, légáramlás nélkül.

A panelt 5 VDC-ről, legalább 2A-rel táplálja az 5V tűn, stabil tápegységgel, és ne táplálja a modult USB-soros átalakító 3.3V-os kimenetéről.

Programozáshoz csatlakoztasson egy FT232 vagy egyenértékű adaptert az U0R, U0T és GND tűkre, az adapter feszültségjumperét 5V-ra állítva, az adapter TXD-jét az U0R-hez, az RXD-jét pedig az U0T-hez kötve.

Az Arduino IDE-ben telepítse az esp32 by Espressif Systems csomagot a Boards Managerből, válassza ki az AI Thinker ESP32-CAM panelt, és nyissa meg a CameraWebServer példát a File - Examples menüből.

A kódban válassza ki a #define CAMERA_MODEL_AI_THINKER sort, és adja meg a WiFi hálózat nevét és jelszavát.

Feltöltés előtt ideiglenesen kösse az IO0 tűt GND-re, hogy a panel Flash módba kerüljön, röviden nyomja meg a RESET gombot, majd indítsa el a kód feltöltését az Arduino IDE-ben.

A feltöltés befejezése után távolítsa el az IO0 és GND közötti összekötést, majd nyomja meg ismét a RESET gombot, hogy a panel a feltöltött programot futtassa.

Nyissa meg a Serial Monitor-t 115200 baud sebességgel, várja meg a WiFi hálózathoz való csatlakozást, jegyezze fel a megjelenő IP-címet, majd ezt a címet böngészőből elérve tekintse meg a videófolyamot.

Folyamatos streamhez használjon JPEG formátumot alacsonyabb felbontáson, például SVGA vagy HD módban, és a maximális felbontást csak egyedi fényképekhez tartsa fenn.

Időszakos képrögzítéshez kapcsolja ki az érzékelőt a képek között a GPIO32 HIGH szintre állításával, majd a következő rögzítés előtt állítsa vissza LOW-ra.

Az autofókuszos változatnál táplálja a kamera csatlakozó 24-es lábát 3.3V-tal, és használjon dedikált autofocus könyvtárat; ennek hiányában a kamera fix fókuszban működik.

Ne használja a modult folyamatos, 24/7 videostreamingre, mivel a panelt időszakos rögzítésre és monitorozásra tervezték.

 

Méretrajz:

 

Oktatóanyag:

ESP3232-cam%20ESPCAM%20wiring%20programator%20ft232.png

9087

Produs destinat utilizarii in proiecte electronice, automatizari, prototipare, educatie si cercetare.

Produsul trebuie utilizat numai conform specificatiilor tehnice mentionate in descriere si/sau in documentatia produsului.

Avertismente generale de siguranta:

Nu utilizati produsul la tensiuni, curenti sau temperaturi peste valorile specificate.

Montajul si conectarea trebuie realizate de persoane cu cunostinte tehnice minime in domeniul electric/electronic.

Evitati scurtcircuitele, inversarea polaritatii si conectarea gresita a alimentarii.

Nu lasati produsul alimentat nesupravegheat in timpul testelor.

Produsul nu este jucarie si nu este destinat copiilor.

Pentru modulele electronice, se recomanda utilizarea in carcase, panouri sau montaje protejate, dupa caz.

Identificare produs:

Denumirea produsului, codul/SKU-ul si caracteristicile tehnice sunt mentionate in pagina produsului si/sau pe eticheta ambalajului.

Producator / Importator / Distribuitor:

Sigmanortec S.R.L.

Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania

E-mail: [email protected]

Website: www.sigmanortec.ro

Persoana responsabila in UE:

Sigmanortec S.R.L.

Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania

E-mail: [email protected]

Documentatie si siguranta:

Pentru informatii suplimentare, fise tehnice, declaratii de conformitate sau instructiuni, ne puteti contacta la [email protected].

/*
  Test sketch for ESP32-CAM (AI-Thinker) with OV5640 5MP camera
  Board: "AI Thinker ESP32-CAM" (Tools > Board > ESP32 Arduino)
  Board package: esp32 by Espressif Systems, installed from Boards Manager
  Boards Manager URL: https://dl.espressif.com/dl/package_esp32_index.json
  Library: esp_camera.h, included with the esp32 package, no extra library required
  Wiring: camera attached through the onboard FPC connector, board powered at 5V on the 5V pin
  This sketch does not use Wi-Fi, it only verifies that the camera initializes and captures frames
*/

#include "esp_camera.h"

// ---- AI-Thinker camera pin map ----
#define PWDN_GPIO_NUM   32
#define RESET_GPIO_NUM  -1
#define XCLK_GPIO_NUM    0
#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     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

void setup() {
  Serial.begin(115200);
  delay(500);
  Serial.println("ESP32-CAM OV5640 test starting");

  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG;
  config.frame_size = psramFound() ? FRAMESIZE_UXGA : FRAMESIZE_CIF;
  config.jpeg_quality = 12;
  config.fb_count = psramFound() ? 2 : 1;

  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x\n", err);
    return;
  }
  Serial.println("Camera init OK");
}

void loop() {
  camera_fb_t * fb = esp_camera_fb_get();
  if (!fb) {
    Serial.println("Frame capture failed");
  } else {
    Serial.printf("Captured frame: %u x %u pixels, %u bytes\n", fb->width, fb->height, fb->len);
    esp_camera_fb_return(fb);
  }
  delay(5000);
}

Az ESP32-CAM fejlesztőlap 5MP-es OV5640 kamerával egy beépített kamerával rendelkező ESP32 fejlesztőmodul, amellyel képeket rögzíthetünk és továbbíthatunk WiFi-n keresztül, külön kiegészítő alkatrészek nélkül. Ez a leírás magát az ESP32-CAM AI-Thinker lapot használja platformként az Arduino IDE-vel együtt, hogy feltöltsünk egy programot, amely elindítja a kamerát, és egy egyszerű videófolyamot szolgáltat egy belső webszerveren keresztül.

Mivel a lapnak nincs saját USB portja, a program feltöltéséhez külső, FT232 típusú USB-soros adapterre van szükség, amelyet a lap soros lábaihoz csatlakoztatunk.

ESP32-CAM fejlesztőlap, WiFi, Bluetooth, OV5640 5MP

Hogyan működik:

Az OV5640 szenzor a képet a 8 párhuzamos adatvonalon (D0-D7) rögzíti, amelyeket az XCLK, PCLK, VSYNC és HREF jelek szinkronizálnak. A szenzor beállítása (felbontás, expozíció, fehéregyensúly) a SIOD és SIOC vonalakon keresztül, I2C/SCCB kapcsolaton történik. A szenzor JPEG formátumba tömöríti a képet, mielőtt az ESP32 átvenné, ami jelentősen csökkenti az adatmennyiséget a nyers képhez képest.

SVGA felbontásnál (800 x 600 pixel) egy JPEG képkocka mérete a jelenettől és a kódban megadott minőségi szinttől függően körülbelül 20 - 50 KB. Ha egy tipikus, néhány száz KB/s sebességű helyi WiFi sávszélességet elosztunk ezzel a képkockamérettel, akkor másodpercenként néhány képkockás folyam adódik. Ez elegendő videós megfigyeléshez, de jóval elmarad a szenzor 2592 x 1944 pixeles maximális képességétől, amelyet az egyedi fényképek számára tartogatunk.

Csatlakoztatás:

A lap programozása egy FT232 adapterrel történik, amelyet az ESP32-CAM soros lábaihoz csatlakoztatunk. Az adapter feszültség-jumperét 5V-ra kell állítani, az IO0 lábat pedig csak a kód feltöltése idejére kötjük ideiglenesen GND-re.

A termék lába Ide csatlakozik Szerep
5V FT232 VCC A lap tápellátása, 5 VDC
GND FT232 GND Közös föld
U0R (GPIO3) FT232 TXD Soros adatok fogadása (a vonalak keresztezettek)
U0T (GPIO1) FT232 RXD Soros adatok küldése (a vonalak keresztezettek)
IO0 GND (ideiglenes áthidalás) Kiválasztja a Flash módot a kód feltöltéséhez

ESP32-CAM bekötése az FT232 programozóhoz

Lap és könyvtárak:

Az Arduino IDE-ben nyissa meg a File - Preferences menüt, és az Additional Boards Manager URLs mezőbe írja be a https://dl.espressif.com/dl/package_esp32_index.json címet. Ezután nyissa meg a Tools - Board - Boards Manager menüt, keressen rá az esp32 kifejezésre, és telepítse az esp32 by Espressif Systems csomagot.

A telepítés után válassza ki az AI Thinker ESP32-CAM lapot a Tools - Board - ESP32 Arduino menüből.

Nem szükséges további könyvtárat telepíteni, mivel az esp_camera.h és a WiFi.h automatikusan települ az esp32 by Espressif Systems csomaggal.

A kód:

Az alábbi kód inicializálja a kamerát az AI-Thinker lap lábkiosztásával, csatlakozik a WiFi hálózathoz, és a videófolyamot a 80-as porton csatlakozó bármely kliensnek elküldi.

Az ESP32-CAM csatlakoztatása az FT232RL programozóhoz a kód feltöltéséhez

Az ESP32-CAM csatlakoztatása az FT232RL programozóhoz a kód feltöltéséhez

/*
  ESP32-CAM (AI-Thinker) with OV5640 5MP camera - WiFi video stream example
  Board: "AI Thinker ESP32-CAM" (Tools > Board > ESP32 Arduino)
  Board package: esp32 by Espressif Systems, installed from Boards Manager
  Boards Manager URL: https://dl.espressif.com/dl/package_esp32_index.json
  Libraries: esp_camera.h and WiFi.h, both included with the esp32 package, no extra library required
  Upload wiring: FT232 VCC->5V, FT232 GND->GND, FT232 TXD->U0R, FT232 RXD->U0T, IO0 bridged to GND only during upload
*/
#include "esp_camera.h"
#include <WiFi.h>
// ---- Wi-Fi credentials ----
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
// ---- AI-Thinker camera pin map ----
#define PWDN_GPIO_NUM   32
#define RESET_GPIO_NUM  -1
#define XCLK_GPIO_NUM    0
#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     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
WiFiServer server(80);
void startCamera() {
  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG;
  if (psramFound()) {
    config.frame_size = FRAMESIZE_SVGA;   // 800x600, good balance for streaming
    config.jpeg_quality = 12;             // lower number = higher quality, bigger file
    config.fb_count = 2;
  } else {
    config.frame_size = FRAMESIZE_CIF;
    config.jpeg_quality = 15;
    config.fb_count = 1;
  }
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x\n", err);
    return;
  }
  Serial.println("Camera initialized");
}
void sendStreamToClient(WiFiClient &client) {
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: multipart/x-mixed-replace; boundary=frame");
  client.println();
  while (client.connected()) {
    camera_fb_t * fb = esp_camera_fb_get();
    if (!fb) {
      Serial.println("Frame capture failed");
      break;
    }
    client.println("--frame");
    client.println("Content-Type: image/jpeg");
    client.printf("Content-Length: %u\n\n", fb->len);
    client.write(fb->buf, fb->len);
    client.println();
    esp_camera_fb_return(fb);
    if (!client.connected()) break;
  }
}
void setup() {
  Serial.begin(115200);
  Serial.println();
  startCamera();
  WiFi.begin(ssid, password);
  Serial.print("Connecting to WiFi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("WiFi connected, IP address: ");
  Serial.println(WiFi.localIP());
  Serial.println("Open this address in a browser to view the live stream");
  server.begin();
}
void loop() {
  WiFiClient client = server.available();
  if (client) {
    Serial.println("New client connected");
    sendStreamToClient(client);
    client.stop();
    Serial.println("Client disconnected");
  }
}

Hogyan működik a kód:

A fájl elején a WiFi hálózat adatai (ssid, password) és a kamera lábai vannak megadva az AI-Thinker lapnak megfelelően (PWDN_GPIO_NUM, XCLK_GPIO_NUM, Y2_GPIO_NUM - Y9_GPIO_NUM, VSYNC_GPIO_NUM, HREF_GPIO_NUM, PCLK_GPIO_NUM, SIOD_GPIO_NUM, SIOC_GPIO_NUM).

A startCamera függvény kitölti a camera_config_t struktúrát ezekkel a lábakkal, kiválasztja a FRAMESIZE_SVGA felbontást és két képkockapuffert, ha a lapon elérhető a PSRAM, majd meghívja az esp_camera_init függvényt, és a Serial monitoron kiírja, hogy az inicializálás sikerült-e.

A sendStreamToClient függvény a csatlakoztatott kliensnek multipart/x-mixed-replace típusú HTTP fejlécet küld. Ezután, amíg a kliens csatlakozva marad, az esp_camera_fb_get függvénnyel átvesz egy-egy JPEG képkockát, elküldi a kapcsolaton keresztül, és az esp_camera_fb_return függvénnyel felszabadítja.

A setup függvényben inicializáljuk a soros portot, elindítjuk a kamerát, megvárjuk a WiFi hálózathoz való csatlakozást, és kiírjuk a kapott IP-címet, majd a WiFiServer szervert elindítjuk a 80-as porton. A loop függvényben a lap új kliensre vár, és a sendStreamToClient segítségével elküldi neki a videófolyamot.

Eredmény:

Nyissa meg a Serial Monitort 115200 baud sebességgel. A kamera inicializálása és a hálózathoz való csatlakozás után megjelenik a lap IP-címe, és ha ezt a címet megnyitja egy böngészőben, megjelenik a kamera élő videófolyama.

Camera initialized
Connecting to WiFi.....
WiFi connected, IP address: 192.168.0.114
Open this address in a browser to view the live stream
New client connected
Client disconnected
New client connected
Client disconnected

Gyakori problémák:

Ha a Serial Monitor nem jelenít meg semmit, ellenőrizze, hogy a kiválasztott sebesség 115200 baud, és hogy a feltöltés után, a RESET megnyomása előtt eltávolította az IO0 és a GND közötti összeköttetést.

Ha indításkor hibaüzenet jelenik meg a kamera inicializálásakor (camera init failed), ellenőrizze, hogy a kamera flex szalagkábele jól rögzítve van az FPC csatlakozóban, és hogy a hűtőborda felszerelésekor nem mozdult el.

Ha a lap magától újraindul, vagy brownout üzenetek jelennek meg a Serial Monitorban, a tápforrás túl gyenge. Cserélje le egy legalább 2A-es, 5V-os tápra, amelyet közvetlenül az 5V lábra csatlakoztat.

Ha a lap nem csatlakozik a WiFi hálózathoz, ellenőrizze, hogy helyesen adta-e meg a hálózat nevét és a jelszót, és hogy a WiFi jel elég erős-e azon a helyen, ahol a lap el van helyezve.

Ha a kép nagyon sötét vagy zajos, biztosítson jobb fényforrást a jelenetben, mivel a kamerának a vakuLED-en kívül nincs saját megvilágítása.

Ha a kód feltöltése a laphoz való csatlakozás sikertelenségét jelző üzenetekkel meghiúsul, készítse el újra az IO0-GND áthidalást, és nyomja meg újra a RESET gombot pontosan abban a pillanatban, amikor az Arduino IDE megkezdi a feltöltést.

Korlátok és tippek:

Az OV5640 kamera az 5MP-es maximális felbontást csak egyedi fényképeknél éri el. Folyamatos streameléshez kisebb felbontások, például SVGA vagy HD ajánlottak, hogy a másodpercenkénti képkockák száma ésszerű maradjon.

A lapnak nincs saját USB portja, ezért a programozáshoz mindig külső USB-soros adapterre van szükség, az autofókuszos változat hiányában pedig a kamera fix fókusszal működik.

A szenzor működés közben érezhetően felmelegszik, ezért a lap nem ajánlott folyamatos, 24/7 videóstreamelésre, hanem megfigyelésre és időszakos felvételekre, felszerelt hűtőbordával és biztosított szellőzéssel.

Erre az összeállításra olyan projektek építhetők, mint a WiFi-s térfigyelő kamerák, a microSD kártyára képeket mentő megfigyelőállomások, vagy az egyszerű objektumfelismerő rendszerek, amelyek a képfeldolgozást külső szerveren végzik.

Ez még talán érdekelhet