Deneyap 1a v2 kartında kamera kullanarak elde ettiğimiz görüntüyü yine kart üzerinde bulunan sd kart yuvasındaki sd karta depolamasını istiyorum ,bunun kodu nasıl olmalı yardımcı olabilir misiniz? sd kartın example kodunu boş çalıştırdığımda (kamera vs.bağlamadan),kart okuma başarısız hatası alıyorum |
deneyap kart a1 v2 kameradan videoyu sd karta kaydetme



-
-
#include "esp_camera.h"
#include <SD.h>
#include <SPI.h>
#define SD_CS 11 // D18 (SDCS)
#define SD_CLK 13 // D16 (SDCK)
#define SD_MOSI 12 // D17 (SDMO)
#define SD_MISO 14 // D19 (SDMI)
SPIClass spiSD(FSPI);
uint16_t photoNumber = 0;
void cameraInit(void);
void savePhotoToSD();
uint16_t getLastPhotoNumber();
void setup() {
Serial.begin(115200);
Serial.setDebugOutput(true);
Serial.println();
// Kamera başlat
cameraInit();
// SD kart başlat
spiSD.begin(SD_CLK, SD_MISO, SD_MOSI, SD_CS);
if (!SD.begin(SD_CS, spiSD)) {
Serial.println("SD Kart bulunamadi veya baslatilamadi!");
while (true); // Dur
}
Serial.println("SD Kart basariyla baslatildi!");
// 'photos' klasörünü oluştur (yoksa)
if (!SD.exists("/photos")) {
SD.mkdir("/photos");
Serial.println("'photos' klasoru olusturuldu.");
} else {
Serial.println("'photos' klasoru bulundu.");
}
// En son foto numarasını bul
photoNumber = getLastPhotoNumber() + 1;
Serial.printf("Son foto numarasi: %d -> Baslangic: %d\n", photoNumber - 1, photoNumber);
}
void loop() {
// Her 5 saniyede bir foto kaydet
savePhotoToSD();
delay(5000);
}
void savePhotoToSD() {
camera_fb_t* fb = esp_camera_fb_get();
if (!fb) {
Serial.println("Foto cekilemedi");
return;
}
char filename[64];
sprintf(filename, "/photos/photo_%05d.jpg", photoNumber);
Serial.printf("Kaydediliyor: %s\n", filename);
File file = SD.open(filename, FILE_WRITE);
if (!file) {
Serial.println("Dosya acilamadi");
esp_camera_fb_return(fb);
return;
}
file.write(fb->buf, fb->len);
Serial.printf("Foto kaydedildi, boyut: %u byte\n", fb->len);
file.close();
esp_camera_fb_return(fb);
photoNumber++;
}
void cameraInit(void) {
camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = CAMD2;
config.pin_d1 = CAMD3;
config.pin_d2 = CAMD4;
config.pin_d3 = CAMD5;
config.pin_d4 = CAMD6;
config.pin_d5 = CAMD7;
config.pin_d6 = CAMD8;
config.pin_d7 = CAMD9;
config.pin_xclk = CAMXC;
config.pin_pclk = CAMPC;
config.pin_vsync = CAMV;
config.pin_href = CAMH;
config.pin_sscb_sda = CAMSD;
config.pin_sscb_scl = CAMSC;
config.pin_pwdn = -1;
config.pin_reset = -1;
config.xclk_freq_hz = 15000000;
config.frame_size = FRAMESIZE_UXGA; // TAM kalite
config.pixel_format = PIXFORMAT_JPEG; // JPEG formatında
config.grab_mode = CAMERA_GRAB_LATEST; // En yeni kareyi al
config.fb_location = CAMERA_FB_IN_PSRAM; // PSRAM kullan
config.jpeg_quality = 10; // 10 kalite (yüksek)
config.fb_count = 2;
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err);
while (true); // Dur
}
sensor_t* s = esp_camera_sensor_get();
s->set_framesize(s, FRAMESIZE_UXGA); // 1600x1200
}
uint16_t getLastPhotoNumber() {
File root = SD.open("/photos");
if (!root || !root.isDirectory()) {
Serial.println("Klasor acilamadi veya klasor degil!");
return 0;
}
uint16_t maxNumber = 0;
File file = root.openNextFile();
while (file) {
String name = String(file.name());
Serial.printf("Bulundu: %s\n", name.c_str());
if (name.indexOf("photo_") >= 0 && name.endsWith(".jpg")) {
int idx1 = name.indexOf("photo_") + 6;
int idx2 = name.indexOf(".jpg");
if (idx2 > idx1) {
String numStr = name.substring(idx1, idx2);
int num = numStr.toInt();
if (num > maxNumber) {
maxNumber = num;
}
}
}
file = root.openNextFile();
}
Serial.printf("Bulunan en buyuk foto numarasi: %d\n", maxNumber);
return maxNumber;
}
Deneyap kart 1a v2 nin detaylı pin özelliklerinde nerelere bağlı olduğuna bakarak sd karta her 5 saniyede en yüksek kalitede görsel kaydedecek bir kod hazırladım ama kodu yüklerken Partition Scheme'yı Huge app seçmeyi unutma
-
Forumda neden daha fazla aktif değilsiniz?
Çok güzel fikri paylaşımlar, tartışmalar olurdu.
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X