Camara de vigilancia con movimiento por wifi
Presentación
El presente proyecto consiste en desarrollar un sistema de cámara controlada por Wifi que permita realizar vigilancia y mover la misma.
Para ello se utilizo la placa Esp32-Cam de Espressif y a efectos de su motorizacion un Motor Stepper Paso a Paso 28BYJ-48 con un módulo ULN2003.
Para el prototipo desarrolado cuya foto se coloca acontinuación se confeccionaron las distintas partes con una impresora 3D.
El video puesto a continuacion muestra la pagina web de control de la cámara, la direccion ip a utilizar se la puede ver a traves del monitor del IDE de Arduino al momento de iniciar la camara.
Materiales
Placa Esp32-Cam
Motor Stepper Paso a Paso 28BYJ-48
Módulo ULN2003
Circuito
Código
/*********
ESP32- CAMARA VIGILANCIA
Camara con base movil
Version01
*********/
#include "esp_camera.h"
#include <WiFi.h>
#include "pines_camara.h"
#include "credencial.h"
// Motor
const int motorPin1 = 12;
const int motorPin2 = 13;
const int motorPin3 = 15;
const int motorPin4 = 14;
const int numSteps = 8;
const int stepsLookup[8] = { B1000, B1100, B0100,
B0110, B0010, B0011, B0001, B1001 };
//****************************
extern int gpLed = 4; // Light
extern String WiFiAddr = "";
void startCameraServer();
void setup() {
Serial.begin(115200);
Serial.println();
//motor
pinMode(motorPin1, OUTPUT);pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
//led
pinMode(gpLed, OUTPUT); //Light
digitalWrite(gpLed, LOW);
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;
// Parametros Frame
config.frame_size = FRAMESIZE_VGA;
config.jpeg_quality = 20;
config.fb_count = 1;
// Iniciar Camara
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {Serial.printf("Fallo inicio de camara error 0x%x",
err);
return;
}
WiFi.begin(red, clave);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi conectado");
startCameraServer();
Serial.print("Camera Iniciada, User 'http://");
Serial.print(WiFi.localIP());
WiFiAddr = WiFi.localIP().toString();
Serial.println("' para conectar");
}
void loop() {
}