Coding CCTV ESP32 Cam
Coding CCTV ESP32 Cam
h"
#include <WiFi.h>
#include <WebServer.h>
#include <WiFiClient.h>
//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_ESP_EYE
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE
#define CAMERA_MODEL_AI_THINKER
#include "camera_pins.h"
OV2640 cam;
WebServer server(80);
"Access-Control-Allow-Origin: *\r\n" \
"Content-Type: multipart/x-mixed-replace;
boundary=123456789000000000000987654321\r\n";
void handle_jpg_stream(void)
char buf[32];
int s;
client.write(HEADER, hdrLen);
client.write(BOUNDARY, bdrLen);
while (true)
if (!client.connected()) break;
cam.run();
s = cam.getSize();
client.write(CTNTTYPE, cntLen);
client.write(buf, strlen(buf));
client.write(BOUNDARY, bdrLen);
"Content-type: image/jpeg\r\n\r\n";
cam.run();
if (!client.connected()) return;
client.write(JHEADER, jhdLen);
void handleNotFound()
message += server.uri();
message += server.args();
message += "\n";
void setup()
Serial.begin(115200);
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;
// Frame parameters
// config.frame_size = FRAMESIZE_UXGA;
config.frame_size = FRAMESIZE_QVGA;
config.jpeg_quality = 12;
config.fb_count = 2;
#if defined(CAMERA_MODEL_ESP_EYE)
pinMode(13, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
#endif
cam.init(config);
IPAddress ip;
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
delay(500);
Serial.print(F("."));
ip = WiFi.localIP();
Serial.println(F("WiFi connected"));
Serial.println("");
Serial.println(ip);
Serial.print(ip);
Serial.println("/mjpeg/1");
server.onNotFound(handleNotFound);
server.begin();
void loop()
server.handleClient();