#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiClientSecure.h>
#include "esp_camera.h"
// WiFi credentials
const char* ssid = "realme 3 Pro";
const char* password = "87654321";
// Server configuration
const char* server_ip = "192.168.105.253";
const int server_port = 65000;
// Camera configuration
const int camera_port = 81; // Default camera port
const char* camera_host = "esp32-cam";
// Camera pins
#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);
pinMode(14, INPUT_PULLUP);
// Connect to WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Camera setup
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 = FRAMESIZE_UXGA;
config.jpeg_quality = 10;
config.fb_count = 1;
// Initialize camera
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err);
return;
}
Serial.println("Camera initialized");
}
void loop() {
if(digitalRead(14)== HIGH){
camera_fb_t *fb = esp_camera_fb_get();
if (!fb) {
Serial.println("Camera capture failed");
return;
}
// Connect to server
WiFiClient client;
if (!client.connect(server_ip, server_port)) {
Serial.println("Not Connected to server");
return;
}
// Send image data
client.write(fb->buf, fb->len);
Serial.println("Image sent");
// Cleanup
esp_camera_fb_return(fb);
client.stop();
}
delay(300);
}
this is my code for esp32 cam module. whenever it receives a pulse from my other microcontroller, it should capture an image. but the loop is executing even if i dont connect it to other microcontroller. i can see the loop executing from my serial monitor output
Connecting to WiFi...
Connecting to WiFi...
Connecting to WiFi...
Connected to WiFi
Camera initialized
Not Connected to server
Camera capture failed
Camera capture failed
Camera capture failed