Cámara espía barata de 11 USD ESP32 Cam
En este tutorial vamos a crear una cámara espía barata de 11 USD y además podremos ver nuestra cámara desde cualquier parte del mundo desde nuestro celular con estos sencillos pasos:
Requerimientos de nuestra camara espia barata:
Primero debemos comprar nuestra camara espia existen muchos modelos en el mercado pero yo recomiendo esp32-cam que puedes comprar desde este link:
O la pudes buscar por tu cuenta y se mira asi:
Ademas requerimos un modulo para cargar el programa a nuestra camara el cual lo podemos comprar aqui:
modulo-programador-adaptador-esp32-cam
Y finalmente un cable V8 para conectar la camara a nuestra computadora (este lo podemos comprar en cualquier papeleria)
Software
Ahora vamos a instalar arduino desde este link https://www.arduino.cc/en/software
Tutorial para instalar arduino IDE: Instalar arduino
Una vez instalado vamos a Archivo -> Preferencias
Pegamos este link en la ventana de preferencias https://dl.espressif.com/dl/package_esp32_index.json
Vamos a Herramientas -> Placa: “Arduino” -> Gestor de tarjetas
Buscamos esp-32 e instalamos la versión 1.0.4
Ahora vamos a Herramientas-> Placa -> ESP32-> AI Thinker ESP32-CAM
Vamos a Archivo -> Ejemplos -> ESP32->Camera->CameraWebServer
Se abrira uuna nuva ventana con codigo y la guardaremos con el nombre CameraWebServer3 o e nombre que querramos.
#include "esp_camera.h" #include <WiFi.h> // // WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality // Ensure ESP32 Wrover Module or other board with PSRAM is selected // Partial images will be transmitted if image exceeds buffer size // // Select camera model //#define CAMERA_MODEL_WROVER_KIT // Has PSRAM //#define CAMERA_MODEL_ESP_EYE // Has PSRAM //#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM //#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM //#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM //#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM #define CAMERA_MODEL_AI_THINKER // Has PSRAM //#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM #include "camera_pins.h" const char* ssid = "TotalplayDraLovera"; const char* password = "totalDraLove420207"; void startCameraServer(); void setup() { Serial.begin(115200); Serial.setDebugOutput(true); Serial.println(); Serial.print("Entro"); Serial.println(); 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 PSRAM IC present, init with UXGA resolution and higher JPEG quality // for larger pre-allocated frame buffer. if(psramFound()){ config.frame_size = FRAMESIZE_UXGA; config.jpeg_quality = 10; config.fb_count = 2; } else { config.frame_size = FRAMESIZE_SVGA; config.jpeg_quality = 12; config.fb_count = 1; } #if defined(CAMERA_MODEL_ESP_EYE) pinMode(13, INPUT_PULLUP); pinMode(14, INPUT_PULLUP); #endif // camera init esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) { Serial.printf("Camera init failed with error 0x%x", err); return; } sensor_t * s = esp_camera_sensor_get(); // initial sensors are flipped vertically and colors are a bit saturated if (s->id.PID == OV3660_PID) { s->set_vflip(s, 1); // flip it back s->set_brightness(s, 1); // up the brightness just a bit s->set_saturation(s, -2); // lower the saturation } // drop down frame size for higher initial frame rate s->set_framesize(s, FRAMESIZE_QVGA); #if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM) s->set_vflip(s, 1); s->set_hmirror(s, 1); #endif WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); startCameraServer(); Serial.print("Camera Ready! Use 'http://"); Serial.print(WiFi.localIP()); Serial.println("' to connect"); } void loop() { // put your main code here, to run repeatedly: delay(10000); }
Editamos el código de la camara espia barata así:
De tal suerte que nos quedaría asi:
// Select camera model //#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" const char* ssid = "NombreDeNuestraRedWifi"; const char* password = "PasswordDeNuestraRedWifi";
Conectando la camara
Conectamos el ESP32 al adaptador asi:
Abrimos el slot y metemos los pines de la camara y cerramos de tal suerte que debe quedar asi:
Finalmete debe quedar asi:
Ahora conectamos el cable v8 ala caara espia y el uusb a la computadora
Buscar el puerto de nuestra camra espia ESP32 CAM
Abrimos el buscador de aplicacion y escribimos “administrador de dispositivos” y damos enter
Buscamos en la categoria Puertos (COM) el nuevo puerto que se creo. Si no lohubicamos desconectamos y conectamos la camra espia.
Vamos a Herramientas-> Puerto->COM5 en nuestro caso quizas el tuyo sea diferente.
Precionamos en este boton para subir el programa
Precionamos el boton IO0 y el boton RESET de la camara espia. LOS 2 AL MISMO TIEMPO SIN SOLTAR HASTA VER QUE EL PROGRAMA TERMINO DE CARGAR (Eso lo sabreos cuando aparesca el texto Connecting…..)
Cuando aparesca el texto Connecting… solamos todos los btones que teniamos precionados y esperamos que cargue.
Damos click en el boton “Monitor serie” y esperamos que abra esta ventana
Precionamos y soltamos el boton RST de la camara espia “ESP32 CAM” asi:
Se debe de mostrar un text como este en el monitor de serie:
WiFi connected
Starting web server on port: ’80’
Starting stream server on port: ’81’
Camera Ready! Use ‘http://192.168.100.157’ to connect
En este caso vamos a copiar el puerto de la camara espia que es http://192.168.100.157 y lo pegamos en nuestro navegador y se mostrara los siguiente:
Para que nuestra camara se active precionamos “Start Stream”
Transmitir via internet
Entramos a https://ngrok.com/
Nos registramos aqui https://dashboard.ngrok.com/signup
Vamos a https://dashboard.ngrok.com/get-started/setup y descargamos la aplicacion de ngrok.exe
Descomprimimos el programa
Damos click en la aplicacion que descomprimmos y se va a abrir un cmd
Vamos a la pagina https://dashboard.ngrok.com/get-started/setup copiamos esta linea y la pegamos en la consola que se abrio antes
Despues colocamos esta linea de codigo:
ngrok tcp 192.168.100.157:81 –authtoken toquen_que_nos_dio_ngrok
Nos va aparecer algo asi y debeos de copiar la ip de ngrok
Pegamos en el navegador cambiando tcp por http y agregaos stream asi : http://4.tcp.ngrok.io:19969/stream
Finalmente, logramos transmitir con cámara espía barata un video a internet.