ESP32 Tutorial 42/55 - Foto mit Kamera aufnehmen und auf Micro SD speichern CAM-1 | SunFounder's ESP32 Kit

ESP32 Tutorial 42/55 - Foto mit Kamera aufnehmen und auf Micro SD speichern CAM-1 | SunFounder's ESP32 Kit

In diesem Tutorial werden wir den ESP32-Mikrocontroller zusammen mit seinem Erweiterungsboard von SunFounder verwenden, um Fotos mit einer Kamera aufzunehmen und diese direkt auf einer microSD-Karte zu speichern. Dieses Projekt nutzt die integrierten Funktionen des ESP32, einschließlich Wi-Fi und Bluetooth, um ein kompaktes Fotografie-Gerät zu schaffen. Am Ende dieses Tutorials werden Sie eine funktionierende Einrichtung haben, die Bilder aufnehmen und speichern kann, die später auf einem Computer abgerufen werden können.

extension_bopard_camera

Für diejenigen, die neu im ESP32-Ökosystem sind, bietet dieses Kit eine vielseitige Plattform für verschiedene Projekte, einschließlich dieses hier. Die in diesem Projekt verwendete Kamera ist die OV2640, die eine Auflösung von 1600x1200 Pixeln bietet. Auch wenn sie nicht mit der Qualität moderner Smartphones mithalten kann, reicht sie für grundlegende Aufnahmeaufgaben aus. Um eventuelle Schritte zu klären, sollten Sie das Video zu diesem Tutorial überprüfen (im Video bei 00:00).

20240103_163227858_iOS

Hardware erklärt

Die Hauptkomponenten dieses Projekts sind der ESP32-Mikrocontroller, das Kameramodul (OV2640) und eine micro SD-Karte zur Speicherung. Der ESP32 ist ein leistungsstarker Mikrocontroller mit integrierten Wi-Fi- und Bluetooth-Funktionen, was ihn ideal für IoT-Anwendungen macht. Das Kameramodul erfasst Bilder, die dann vom ESP32 verarbeitet werden.

esp32-41-einstellung-3

Die micro SD-Karte dient als Speichermedium für die aufgenommenen Bilder. In diesem Aufbau kommuniziert der ESP32 mit dem Kameramodul über spezifische GPIO-Pins, und die Bilder werden im JPEG-Format auf der SD-Karte gespeichert. Dies ermöglicht eine einfache Abfrage und Anzeige der Fotos später.

  • Stellen Sie sicher, dass die Kamera beim Einfügen in die ESP32-Platine korrekt ausgerichtet ist.
  • Verwenden Sie eine microSD-Karte mit einer Kapazität von 32 GB oder weniger, um Kompatibilitätsprobleme zu vermeiden.
  • Verbinden Sie GPIO 0 mit GND für den Programmiermodus.
  • Achten Sie auf die Stromversorgung, um Probleme mit braunem Strom zu vermeiden.
  • Halten Sie die Kamera während der Aufnahme von Fotos ruhig, um verschwommene Bilder zu vermeiden.

Verdrahtungsanweisungen

Um das ESP32-Kameramodul zu verdrahten, stelle zunächst sicher, dass das ESP32 ausgeschaltet ist. Verbinde das micro SD-Kartenmodul mit dem ESP32 unter Verwendung der folgenden Pins: verbinde dieCSPin der SD-Karte an den ESP32GPIO 5,MOSIzuGPIO 23,MISOzuGPIO 19, undSCKzuGPIO 18. Verbinden Sie als Nächstes die Pins des Kameramoduls wie folgt:PWDNzuGPIO 32,XCLKzuGPIO 0,SIODzuGPIO 26, undSIOCzuGPIO 27. Die Pixeldaten-PinsY2zuY9sollte verbunden sein mitGPIO 5durchGPIO 39wie in Ihrem Code definiert.

Stellen Sie sicher, dass Sie die Erd- und Strompins entsprechend verbinden. Der ESP32 kann mit der im Kit enthaltenen Batterie betrieben werden. Überprüfen Sie nach dem Verdrahten, ob die Verbindungen sicher sind, bevor Sie das Gerät einschalten. Wenn Sie die Anweisungen genau befolgen, sollten Sie sehen, dass die Kamera korrekt initialisiert, wenn Sie den Code hochladen.

Codebeispiele und Schritt-für-Schritt-Anleitungen

esp32-41-einstellung-2
esp32-41-einstellung-1

Im Code beginnen wir mit der Einbindung notwendiger Bibliotheken und der Definition der Kamera-Pin-Konfigurationen. Die VariablepictureNumberwird initialisiert, um die Anzahl der aufgenommenen Fotos zu verfolgen.

int pictureNumber = 0;

void setup() {
  WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);  // Disable brownout detector
  Serial.begin(115200);
  camera_config_t config;
  // Configuration settings for the camera
  config.ledc_channel = LEDC_CHANNEL_0;
  // Additional camera settings...
}

Die Setup-Funktion initialisiert die serielle Kommunikation und konfiguriert die Kameraeinstellungen. Die Konfiguration umfasst Parameter wieledc_channel,pin_d0, undxclk_freq_hzfür optimale Leistung.

Als Nächstes entfernen wir den Bildaufnahmeprozess, indem wir eine Schleife verwenden, um mehrere Bilder zu machen. Die Bilddaten werden auf der SD-Karte mit einem Dateinamen gespeichert, der auf derpictureNumber.

for (int shoot = 0; shoot < 5; shoot++) {
    camera_fb_t *fb = esp_camera_fb_get(); // Take Picture
    String path = "/picture" + String(pictureNumber) + ".jpg"; // File path
    File file = fs.open(path.c_str(), FILE_WRITE); // Open file to write
    // Write image data to file
    file.write(fb->buf, fb->len);
    // Update picture number in EEPROM
    EEPROM.write(0, pictureNumber);
}

Diese Schleife erfasst bis zu fünf Bilder, wobei jedes Bild mit einem einzigartigen Dateinamen gespeichert wird. Die Verwendung von EEPROM ermöglicht es dem Programm, die letzte Bildnummer zu merken, wodurch sichergestellt wird, dass jedes neue Bild einen einzigartigen Identifikator hat.

Demonstration / Was zu erwarten ist

Wenn Sie den Code ausführen, wird der ESP32 die Kamera und die SD-Karte initialisieren. Nach dem Drücken der Reset-Taste am ESP32 wird er eine Reihe von Bildern aufnehmen, die basierend auf dem EEPROM-Wert fortlaufend von 0 bis 255 nummeriert sind. Nachdem die Bilder aufgenommen wurden, können Sie die micro SD-Karte entfernen und die Bilder auf Ihrem Computer anzeigen.

Zu den häufigsten Fallstricken gehört, sicherzustellen, dass die micro SD-Karte ordnungsgemäß formatiert und eingesetzt ist, sowie eine stabile Kameraposition beizubehalten, um verschwommene Bilder zu vermeiden. Wenn Sie Probleme haben, dass die Kamera keine Bilder aufnimmt, überprüfen Sie die Verkabelung und die Konfigurationen im Code (im Video um 06:45).

Video-Zeitstempel

  • 00:00 Beginn
  • 1:39 Einführung
  • 5:19 ESP32 Kamera-Code erklärt
  • 11:10 Auswahl des ESP32-Boards und des COM-Ports in der Arduino IDE
  • 12:52 Fotos drinnen und draußen machen Test

Bilder

esp32-41-setting-3
esp32-41-setting-3
extension_bopard_camera
extension_bopard_camera
20240103_163227858_iOS
20240103_163227858_iOS
esp32-41-setting-1
esp32-41-setting-1
esp32-41-setting-2
esp32-41-setting-2
843-ESP32 Tutorial 42/55- Arduino code for taking photo and saving it
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Dateien📁

Keine Dateien verfügbar.