Abschließend wird der Webserver gestartet. Dafür ist ein sogenannter Handler erforderlich. Dieser bildet die Antwort auf den Zugriff über HTTP. Hier kann neben dem Stream-Handler für das Kamerabild
server.start_webserver(&get_stream_handler);
Das Kamerabild wird hier als Buffer gespeichert. Die Länge und der Inhalt (Pixel) können wie folgt ausgelesen werden
image.buf_len;
image->buf; // Buffer Kamerabild
---
# thk_EspCamDriver
Für die Verwendung eines Kameramoduls am ESP32 ist die genaue Pinbelegung notwendig.
Diese sind in der seperaten Datei `camera_pins.h` hinterlegt. Gerne um neue Board erweitern!
#define CAMERA_PIN1 13
#define CAMERA_PIN2 14
#define D7_GPIO_NUM 36
#define D6_GPIO_NUM 37
#define D5_GPIO_NUM 38
#define D4_GPIO_NUM 39
#define D3_GPIO_NUM 35
#define D2_GPIO_NUM 14
#define D1_GPIO_NUM 13
#define D0_GPIO_NUM 34
#define XCLK_GPIO_NUM 4
#define PCLK_GPIO_NUM 25
#define VSYNC_GPIO_NUM 5
#define HREF_GPIO_NUM 27
#define SIOD_GPIO_NUM 18
#define SIOC_GPIO_NUM 23
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1
#define XCLK_HZ_FREQ 20000000
#define IMG_QUALITY 12
#define FRAMEBUFFER_COUNT 1
#define LED_CHANNEL LEDC_CHANNEL_0
#define LED_TIMER LEDC_TIMER_0
#define FRAMESIZE FRAMESIZE_240X240
#define IMAGE_WIDTH 240
#define IMAGE_HEIGHT 240
#define PIXELFORMAT PIXFORMAT_JPEG
#define GRABMODE CAMERA_GRAB_WHEN_EMPTY
#define FRAMEBUFFER_LOCATION CAMERA_FB_IN_DRAM
Um die Bibliothek zu nutzen, muss zunächst das Modul im Kopf der Bibliothek (thk_EspCamDriver.h) definiert werden.
#define CAMERA_MODEL_WAVESHARE_ESP_ONE
Im Anschluss kann im Arduino-Sketch (.ino Datei) die Bibliothek inkludiert werden
Zunächst müssen im Arduino-Sketch (.ino Datei) die Bibliotheken inkludiert werden
#include "thk_EspCamDriver.h"
#include "camera_boards.h"
Anschließend die Kamera-Objekte (nach Espressiv) erzeugen
esp_image_t image;
camera_config_t cameraconfig; // Konfig
esp_err_t cameraerror; // Fehler
Anschließend das Kamera-Objekt (nach Espressiv) erzeugen
esp_image_t image; // hier werden die Bilddaten gesichert