Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

Python – ESP32 CAM Bild speichern

Posted on 1. November 20219. März 2024 by Stefan Draeger

In diesem kurzen und knappen Beitrag möchte ich dir zeigen wie du ein Bild von einer ESP32 CAM mithilfe von Python auf deinem Computer speichern kannst.

ESP32 CAM Bild mit Python abrufen

Wie du die ESP32 CAM programmierst, habe ich dir bereits im Beitrag Einrichten der ESP32-CAM und erster betrieb ausführlich erläutert. Hier nutze ich die Schaltung, um lediglich ein Bild zu speichern.

  • Bezug einer ESP32 CAM
  • Aufbau der Schaltung
  • Programm für den ESP32 CAM
  • Einrichten der ESP32 CAM
  • Python Projekt in PyCharm einrichten
    • Installieren der Bibliothek Requests
    • Installieren der Bibliothek Pillow
    • Abrufen der Bildinformationen von der ESP32 CAM

Bezug einer ESP32 CAM

Für diesen Beitrag benötigst du eine ESP32 CAM, diese ist schon recht lange auf dem Markt und daher auf den gängigen Portalen zu beziehen.

  • ebay.de* – 2 € bis 13 €
  • amazon.de* – 10 € bis 14 €

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Wenn du etwas mehr Wartezeit hast, dann kannst du diese noch günstiger auf Aliexpress.com für knapp 3 € inkl. Versandkosten erstehen. Aber leider halt mit knapp 4 Wochen Lieferzeit.

Für die spätere Programmierung benötigst du ein FTDI Modul welches auf ebay.de für knapp 4 €* erworben werden kann.

Aufbau der Schaltung

Da das ESP32 CAM Modul über keinen eigenen USB – Serial Converter verfügt, müssen wir uns mit einem entsprechenden FTDI Modul eine Schaltung aufbauen.

Schematischer Aufbau der Schaltung "ESP32-CAM mit FTDI Modul"
Schematischer Aufbau der Schaltung „ESP32-CAM mit FTDI Modul“

Es gibt aber auch ein passendes Board, auf welches man die ESP32 CAM stecken kann und eine Micro-USB Buchse hat. (link Aliexpress.com)

ESP32 CAM Set mit Antenne und Board

Wie bereits erwähnt benötigst du für die Programmierung ein FTDI Modul. Jedoch für den späteren betrieb nicht da reicht nur eine 5V Stromquelle.

ESP32 CAM mit FTDI Modul

Programm für den ESP32 CAM

Auf der ESP32 CAM muss das Beispielprogramm aus der installierten ESP32 Bibliothek installiert werden.

Arduino IDE – Beispiel CameraWebServer

In dem Programm muss lediglich das korrekte Kameramodul auskommentiert und die Daten für das lokale Wi-Fi Netzwerk eingegeben werden.

#define CAMERA_MODEL_AI_THINKER // Has PSRAM
const char* ssid = "FRITZBox7590GI";
const char* password = "1234567890";

Einrichten der ESP32 CAM

Wenn das Programm erfolgreich hochgeladen wurde, dann wird in der seriellen Konsole die IP-Adresse angezeigt, welche wir in einem Browser übertragen und somit auf eine Webseite gelangen, um die Kamera zu konfigurieren.

Webpage im Browser der ESP32-CAM
Webpage im Browser der ESP32-CAM

Über dieses Webfrontend lässt sich das spätere Standbild konfigurieren.

Python Projekt in PyCharm einrichten

Wollen wir nun einmal mit der Programmierung in Python beginnen. Ich nutze hierzu die Entwicklungsumgebung PyCharm in der kostenfreien Community Edition.

Installieren der Bibliothek Requests

Damit wir das Bild von der URL abrufen können, müssen wir zuvor die Bibliothek requests installieren.

Am einfachsten ist es, die Installation über das Kontextmenü zu starten. Dazu schreiben wir zunächst die Zeile „import requests“ und setzen den Cursor auf die rot unterkringelten Wort „requests“ und betätigen die Tastenkombination „Alt + Enter“.

Installieren der Bibliothek Pillow

Zum Speichern des Bildes nutze ich die Bibliothek Pillow.

Ich habe diese Bibliothek bereits im Beitrag Python3 – Bilder zusammenfügen mit PIL verwendet, um Bilder zusammenzufügen genutzt.

Abrufen der Bildinformationen von der ESP32 CAM

Über die Adresse „http://<IP-Adresse>/capture“ kannst du ein aktuelles Standbild abrufen. Diese Adresse speichern wir uns zunächst in einer Variablen und erzeugen uns nebenbei gleich eine, welche auf eine Zieldatei zeigen soll.

url = 'http://192.168.178.33/capture'
output = 'data/output.jpg'

Jetzt können wir mit wenigen Zeilen Code die Bildinformationen abrufen und in eine Datei speichern.

r = requests.get(url)
img = Image.open(BytesIO(r.content))
img.save(output)

Hier jetzt der komplette Code zum einfachen Kopieren, du musst hier lediglich deine IP-Adresse sowie das Ausgabeverzeichnis anpassen.

import requests
from PIL import Image
from io import BytesIO

url = 'http://192.168.178.33/capture'
output = 'data/output.jpg'

r = requests.get(url)
img = Image.open(BytesIO(r.content))
img.save(output)

Wenn du die Auflösung, horizontale/ vertikale Spiegelung usw. anpassen möchtest, so musst du dieses lediglich über das Webfrontend einstellen und es wird „on the fly“ für die Standbilder übernommen.

Abrufen eines Standbildes von der ESP32 CAM mit Python
Abrufen eines Standbildes von der ESP32 CAM mit Python

1 thought on “Python – ESP32 CAM Bild speichern”

  1. Pingback: ESP32 CAM - Vergleich der verfügbaren Kameralinsen - Technik Blog

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen
Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

link zu Fabook
link zu LinkedIn
link zu YouTube
link zu TikTok
link zu Pinterest
link zu Instagram
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}