🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

Python – ESP32 CAM Bild speichern

Veröffentlicht am 1. November 202129. April 2023 von 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 €

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ächt 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'

Nun 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 nun 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

Schreibe einen Kommentar Antworten abbrechen

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

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
x
x