https://forum.deneyapkart.org/forum/g%C3%BC%C3%A7-ve-bellek/deneyap-kamera/281-yaln%C4%B1zca-2-adet-resim-%C3%A7ekebiliyorum
forum postundaki çözülmüş kodu biraz değiştirdim. Kameram butona basınca fotoğraf çekiyor ve çalışıyor. Ama kameram çok gecikmeli, çekme komutunu vermemden en az 10 saniye öncesini gösteriyor.
İşte kodum:
#include "esp_camera.h" // Kamera için gereken kütüphane
#include <Arduino.h> // ???
#include "deneyap.h" // Deneyap Kart için gereken kütüphane
#include <base64.h> // Verileri base64 yöntemiyle şifrelemek için kütüphane
// ---------->>>>>>>>>> YUKLEME YAPILAMDAN DIKKAT EDILMESI GEREKEN HUSUS <<<<<<<<<<----------
// "Araclar->Partition Scheme->Huge APP" secilmeli //
// "Tools->Partition Scheme->Huge APP" secilmeli //
camera_fb_t * fb = NULL; // ???
void setup() {
Serial.begin(115200); // Serial (Bilgisayar ile olan iletişim) monitörünü başlatıyoruz.
Serial.println("-----------------------------"); // Düzen sağlamak için bir satırı çizgiyle kaplıyoruz
cameraInit(); // Kamerayı başlatıyoruz
}
void loop() {
WaitForPress(D9); // D9 pinindeki butonun basılıp çekilmesi için bekliyoruz. Bu benim yaptığım bir fonksiyon. Aşağıda anlatılacak
Serial.println("> Fotoğraf çekiliyor... Lütfen bekleyin"); // Fotoğrafın çekildiğini yazıyoruz
fb = esp_camera_fb_get(); // fotoğrafı (5sn öncesini) çekiyoruz ve fb değişkenine kaydediyoruz
if (!fb) { // Eğer fotoğraf YOKSA
Serial.println("> Fotoğraf çekimi başarısız oldu"); // Fotoğraf çekiminin başarısız olduğuna dair bir mesaj gönderiyoruz
Serial.println("-----------------------------"); // Düzen sağlamak için bir satırı çizgiyle kaplıyoruz
}
else { // Eğer fotoğraf VARSA
String buffer = base64::encode((uint8_t *) fb->buf, fb->len); // fotoğrafı saklayamayacağımız için base64 yöntemiyle uzun bir yazıya dönüştürüyoruz
Serial.println("> Fotoğrafınız Hazır :"); //Fotoğrafın hazır olduğuna dair bir mesaj gönderiyoruz
Serial.println(buffer); // 2 satır önce elde ettiğimiz uzun yazıyı mesaj olarak gönderiyoruz
esp_camera_fb_return(fb); // Kamerayı resetliyoruz
Serial.println("-----------------------------"); // Düzen sağlamak için bir satırı çizgiyle kaplıyoruz
}
}
void WaitForPress(char pin) { // yazdığım WaitForPress fonksiyonu
while(digitalRead(pin) == LOW){ }
while(digitalRead(pin) == HIGH){ }
}
forum postundaki çözülmüş kodu biraz değiştirdim. Kameram butona basınca fotoğraf çekiyor ve çalışıyor. Ama kameram çok gecikmeli, çekme komutunu vermemden en az 10 saniye öncesini gösteriyor.
İşte kodum:
#include "esp_camera.h" // Kamera için gereken kütüphane
#include <Arduino.h> // ???
#include "deneyap.h" // Deneyap Kart için gereken kütüphane
#include <base64.h> // Verileri base64 yöntemiyle şifrelemek için kütüphane
// ---------->>>>>>>>>> YUKLEME YAPILAMDAN DIKKAT EDILMESI GEREKEN HUSUS <<<<<<<<<<----------
// "Araclar->Partition Scheme->Huge APP" secilmeli //
// "Tools->Partition Scheme->Huge APP" secilmeli //
camera_fb_t * fb = NULL; // ???
void setup() {
Serial.begin(115200); // Serial (Bilgisayar ile olan iletişim) monitörünü başlatıyoruz.
Serial.println("-----------------------------"); // Düzen sağlamak için bir satırı çizgiyle kaplıyoruz
cameraInit(); // Kamerayı başlatıyoruz
}
void loop() {
WaitForPress(D9); // D9 pinindeki butonun basılıp çekilmesi için bekliyoruz. Bu benim yaptığım bir fonksiyon. Aşağıda anlatılacak
Serial.println("> Fotoğraf çekiliyor... Lütfen bekleyin"); // Fotoğrafın çekildiğini yazıyoruz
fb = esp_camera_fb_get(); // fotoğrafı (5sn öncesini) çekiyoruz ve fb değişkenine kaydediyoruz
if (!fb) { // Eğer fotoğraf YOKSA
Serial.println("> Fotoğraf çekimi başarısız oldu"); // Fotoğraf çekiminin başarısız olduğuna dair bir mesaj gönderiyoruz
Serial.println("-----------------------------"); // Düzen sağlamak için bir satırı çizgiyle kaplıyoruz
}
else { // Eğer fotoğraf VARSA
String buffer = base64::encode((uint8_t *) fb->buf, fb->len); // fotoğrafı saklayamayacağımız için base64 yöntemiyle uzun bir yazıya dönüştürüyoruz
Serial.println("> Fotoğrafınız Hazır :"); //Fotoğrafın hazır olduğuna dair bir mesaj gönderiyoruz
Serial.println(buffer); // 2 satır önce elde ettiğimiz uzun yazıyı mesaj olarak gönderiyoruz
esp_camera_fb_return(fb); // Kamerayı resetliyoruz
Serial.println("-----------------------------"); // Düzen sağlamak için bir satırı çizgiyle kaplıyoruz
}
}
void WaitForPress(char pin) { // yazdığım WaitForPress fonksiyonu
while(digitalRead(pin) == LOW){ }
while(digitalRead(pin) == HIGH){ }
}
Yorum Yap