はじめに
esp32camは簡単にファイルをftpserverに上げることができる。(以下のライブラリー)しかし、sdカードから画像を読み出して送る方法がわからなかったので紹介する。
コード
readImage.c
void sendImageFromSD(char* filename) {
File file = SD_MMC.open(filename);
if (!file) {
Serial.println("Failed to open file");
return;
}
Serial.print(" FILE: ");
Serial.println(file.name());
ftp.OpenConnection();
ftp.InitFile("Type I");
ftp.NewFile(file.name());
uint8_t* fileinput;
fileinput = (uint8_t*)malloc(file.size() + 1);
file.read(fileinput, file.size());
fileinput[file.size()] = '\0';
ftp.WriteData(fileinput, file.size());
free(fileinput);
ftp.CloseFile();
}
SDカードやFTPClientなどの初期化は必ずやってください。SDカードのファイル数が一定以上になったらftpに送るなどできると思います。ftpClientにはMakeDir関数もありますので体裁を整えて送ることもできそうです。
最後に
バッテリーで動かす防犯カメラとして動かす場合電力の消費を抑えれそうです。ちなみにftpServerはservaというものを使ってます。