Já se omlouvám jestli jsem tady s tím otravoval ale nevím si rady ,jaký je přenos binární nebo znakový ?
void takePhoto() {
camera_fb_t * fb = NULL;
// Take Picture with Camera
fb = esp_camera_fb_get();
if(!fb) {
Serial.println("Camera capture failed");
return;
}
/*
* Upload to ftp server
*/
ftp.ChangeWorkDir(ftp_path);
ftp.InitFile("Type I");
String nombreArchivo = "picture.jpg";
// timeClient.getFormattedTime()+".jpg"; // AAAAMMDD_HHMMSS.jpg
Serial.println("Nahravani "+nombreArchivo);
int str_len = nombreArchivo.length() + 1;
char char_array[str_len];
nombreArchivo.toCharArray(char_array, str_len);
ftp.NewFile(char_array);
ftp.WriteData( fb->buf, fb->len );
ftp.CloseFile();
/*
* Free
*/
esp_camera_fb_return(fb);
****************************************
a tady co dělám špatně ?
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]);
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]);
poz++;
}
Serial.print("AT+FTPPUT=2,0\r");
Serial.flush();
esp_camera_fb_return(fb);
Serial.print("AT+SAPBR=0,1\r");
Serial.flush();
díky