esp32cam拍照存储在哪里
时间: 2025-05-01 16:29:43 浏览: 27
### ESP32-CAM 拍照后图片存储位置及方式
当使用ESP32-CAM模块拍摄照片并将这些图像文件保存至microSD卡时,通常情况下,所拍的照片会被存放在指定路径下的特定目录中。具体来说,在初始化microSD卡之后,程序可以创建一个根目录用于存放所有的图片文件[^1]。
为了实现这一功能,代码中一般会定义一个字符串变量来表示基础路径(例如`/pictures/`),每次成功捕获一张新图后都会在这个基础上加上唯一的文件名构成完整的绝对路径以便写入数据流。下面是一段简单的C++代码片段展示如何设置以及保存图片:
```cpp
#include "FS.h"
#include "SD_MMC.h"
void setup() {
Serial.begin(115200);
if (!SD_MMC.begin()) {
Serial.println("Card Mount Failed");
return;
}
File root = SD_MMC.open("/");
if(!root){
Serial.println("Failed to open the root directory");
}else{
Serial.println("Successfully opened the root directory");
}
String basePath = "/pictures/";
if (SD_MMC.mkdir(basePath)) { // 创建文件夹
Serial.printf("Directory created at %s\n", basePath.c_str());
} else {
Serial.printf("mkdir failed for %s\n", basePath.c_str());
}
}
void loop() {
static int photoCounter = 0; // 记录已拍摄的数量
char filename[20];
sprintf(filename, "%d.jpg", photoCounter++);
File file = SD_MMC.open((basePath + filename).c_str(), FILE_WRITE); // 打开或新建文件准备写入
if (!file) {
Serial.println("Failed to create file");
return;
}
// 假设这里已经获取到了JPEG格式的数据 buffer 和其大小 length
uint8_t* buffer = ... ;
size_t length = ... ;
if(file.write(buffer, length)){
Serial.print("File written successfully: ");
Serial.println(filename);
}else{
Serial.print("Error writing file: ");
Serial.println(filename);
}
delay(5000); // 等待五秒再继续下一次循环
}
```
上述代码展示了基本的操作流程:先尝试挂载microSD卡;接着检查是否存在名为`pictures`的子文件夹,如果不存在则创建之;最后每当触发拍照事件时就按照顺序命名新的jpg文件并将其内容写入对应的二进制模式打开的文件对象里去。
阅读全文
相关推荐

















