#include "esp_camera.h" // Pin definition for 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 camera_config_t config; void setup() { Serial.begin(9600); initCamera(); takePhoto(); ATInternet(); } void loop() { //takePhoto(); //delay(10000); //} } void initCamera() { 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(psramFound()){ config.frame_size = FRAMESIZE_XGA;//FRAMESIZE_UXGA; // FRAMESIZE_ + QVGA|CIF|VGA|SVGA|XGA|SXGA|UXGA config.jpeg_quality = 10; config.fb_count = 2; } else { config.frame_size = FRAMESIZE_UXGA; config.jpeg_quality = 12; config.fb_count = 1; } // Init Camera esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) { Serial.printf("Camera init failed with error 0x%x", err); return; } } void takePhoto() { byte dat=0; camera_fb_t * fb = NULL; // Take Picture with Camera fb = esp_camera_fb_get(); Serial.print("Velikost obrazu: "); Serial.print(fb->len); Serial.print(" B,"); Serial.print((fb->len)/1024); Serial.println(" KB"); Serial.print((fb->len) % 1024); //Serial.print("0x"); /*for(int i=0;ilen;i++) Serial.print(fb->buf[i], HEX);*/ Serial.println(""); // dat = HEX(fb->buf); //Serial.write(fb->buf,fb->len); if(!fb) { Serial.println("Camera capture failed"); // while(fb->len){ // dat=fb->buf,fb->len; //Serial.print(fb->buf,fb->len); //} return; } /* * Free buffer cam */ esp_camera_fb_return(fb); } void ATInternet(){ int poz=0; int dopocet=1024; camera_fb_t * fb = NULL; // Take Picture with Camera fb = esp_camera_fb_get(); String mesage=""; delay(10000); Serial.print("AT+SAPBR=3,1,\"Contype\",\"GPRS\"\r"); Serial.flush(); delay(1000); while(Serial.available()){ mesage=mesage+Serial.read(); } Serial.print("AT+SAPBR=3,1,\"APN\",\"internet\"\r"); Serial.flush(); delay(1000); while(Serial.available()){ mesage=mesage+Serial.read(); } Serial.print("AT+SAPBR=1,1\r"); Serial.flush(); delay(1000); while(Serial.available()){ mesage=mesage+Serial.read(); } Serial.print("AT+SAPBR=2,1\r"); Serial.flush(); delay(1000); while(Serial.available()){ mesage=mesage+Serial.read(); } Serial.print("AT+FTPCID=1\r"); Serial.flush(); delay(1000); while(Serial.available()){ mesage=mesage+Serial.read(); } Serial.print("AT+FTPTYPE=I\r"); Serial.flush(); delay(1000); while(Serial.available()){ mesage=mesage+Serial.read(); } Serial.print("AT+FTPSERV=\"*************\"\r"); Serial.flush(); delay(1000); while(Serial.available()){ mesage=mesage+Serial.read(); } Serial.print("AT+FTPUN=\"*******\"\r"); Serial.flush(); delay(1000); while(Serial.available()){ mesage=mesage+Serial.read(); } Serial.print("AT+FTPPW=\"\"\r"); Serial.flush(); delay(1000); while(Serial.available()){ mesage=mesage+Serial.read(); } Serial.print("AT+FTPPUTPATH=\"*********/\"\r"); Serial.flush(); delay(1000); while(Serial.available()){ mesage=mesage+Serial.read(); } Serial.print("AT+FTPPUTNAME=\"picture.jpg\"\r"); Serial.flush(); delay(1000); while(Serial.available()){ mesage=mesage+Serial.read(); } Serial.print("AT+FTPPUT=1\r"); Serial.flush(); delay(3000); while(Serial.available()){ mesage=mesage+Serial.read(); } int c=(fb->len)/1024; for(int l=0;l<=c;l++){ Serial.print("AT+FTPPUT=2,1024\r"); Serial.flush(); delay(3000); while(Serial.available()){ mesage=mesage+Serial.read(); } for(int i=0;i<=1024;i++) Serial.print(fb->buf[poz],HEX); poz++; // put your setup code here, to run once: delay(3000); } int z=(fb->len)%1024; Serial.print("AT+FTPPUT=2,"); Serial.print(z); Serial.print("\r"); Serial.flush(); for(int i=0;i<=z;i++){ Serial.print(fb->buf[poz],HEX); poz++; } Serial.print("AT+FTPPUT=2,0\r"); Serial.flush(); esp_camera_fb_return(fb); Serial.print("AT+SAPBR=0,1\r"); Serial.flush(); }