Ola pessoal...
atualmente eu estou utilizando esse código pra envio de foto capturada pelo telegram...ele tira uma foto baseado em um intervalo de tempo...porem queria adaptar pra tirar uma foto via detecção.
/
ESP32-CAM save a captured photo to Telegram
Author : ChungYi Fu (Kaohsiung, Taiwan) 2020-1-18 19:00
https://www.facebook.com/francefu/
// Enter your WiFi ssid and password
const char ssid = "XXXXX"; //your network SSID
const char password = "XXXXXX"; //your network password
Ola pessoal... atualmente eu estou utilizando esse código pra envio de foto capturada pelo telegram...ele tira uma foto baseado em um intervalo de tempo...porem queria adaptar pra tirar uma foto via detecção.
/ ESP32-CAM save a captured photo to Telegram Author : ChungYi Fu (Kaohsiung, Taiwan) 2020-1-18 19:00 https://www.facebook.com/francefu /
// Enter your WiFi ssid and password const char ssid = "XXXXX"; //your network SSID const char password = "XXXXXX"; //your network password
String token = "XXXXXXXXXXXXXXX"; // Create your bot and get the token -> https://telegram.me/fatherbot String chat_id = "XXXXXXX"; // Get chat_id -> https://telegram.me/userinfobot
include
include
include "soc/soc.h"
include "soc/rtc_cntl_reg.h"
include "esp_camera.h"
// WARNING!!! Make sure that you have either selected ESP32 Wrover Module, // or another board which has PSRAM enabled
//CAMERA_MODEL_AI_THINKER
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() { WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);
Serial.begin(115200); delay(10);
WiFi.mode(WIFI_STA);
Serial.println(""); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password);
long int StartTime=millis(); while (WiFi.status() != WL_CONNECTED) { delay(500); if ((StartTime+10000) < millis()) break; }
Serial.println(""); Serial.println("STAIP address: "); Serial.println(WiFi.localIP());
Serial.println("");
if (WiFi.status() != WL_CONNECTED) { Serial.println("Reset");
} else { ledcAttachPin(4, 3); ledcSetup(3, 5000, 8); for (int i=0;i<5;i++) { ledcWrite(3,10); delay(200); ledcWrite(3,0); delay(200);
} ledcDetachPin(3);
}
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; //init with high specs to pre-allocate larger buffers if(psramFound()){ config.frame_size = FRAMESIZE_UXGA; config.jpeg_quality = 10; //0-63 lower number means higher quality config.fb_count = 2; } else { config.frame_size = FRAMESIZE_SVGA; config.jpeg_quality = 12; //0-63 lower number means higher quality config.fb_count = 1; }
// camera init esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) { Serial.printf("Camera init failed with error 0x%x", err); delay(1000); ESP.restart(); }
//drop down frame size for higher initial frame rate sensor_t * s = esp_camera_sensor_get(); s->set_framesize(s, FRAMESIZE_CIF); // UXGA|SXGA|XGA|SVGA|VGA|CIF|QVGA|HQVGA|QQVGA }
void loop() { sendCapturedImage2Telegram(token, chat_id); delay(72000); }
String sendCapturedImage2Telegram(String token, String chat_id) { const char* myDomain = "149.154.167.220"; String getAll="", getBody = "";
camera_fb_t * fb = NULL; fb = esp_camera_fb_get();
if(!fb) { Serial.println("Camera capture failed"); delay(1000); ESP.restart(); return "Camera capture failed"; }
Serial.println("Connect to " + String(myDomain)); WiFiClientSecure client_tcp;
if (client_tcp.connect(myDomain, 443)) { Serial.println("Connection successful");
} else { getBody="Connected to api.telegram.org failed."; Serial.println("Connected to api.telegram.org failed."); }
return getBody; }