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.
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).
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.
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
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
Common Course Links
Common Course Files
Ressourcen & Referenzen
-
DokumentationESP32 Tutorial 42/55 - SunFounder Dokumenten Seite Fotoaufnahmedocs.sunfounder.com
Dateien📁
Keine Dateien verfügbar.