Zum Verwenden des Skriptes muss das Netzwerk vorab angepasst werden
const char* ssid = "iPhone von Vladislav";
const char* password = "qqqqqqqq";
Im Anschluss den Sketch auf den ESP32 One hochladen. Hierbei als Board "ESP32 DEV MODULE(esp32)" wählen. Nun kann mit einem im Netzwerk befindlichen Gerät über die Https-Adresse das Bild im Webserver angezeigt und gespeichert werden.
Im Seriellen Monitor wird hier durch das Neustarten des ESP (Reset-Button) die Adresse ausgegeben.
[OK] WiFi verbunden: 172.20.10.2
[OK] HTTP_Get-Server bereit ( Port 80 ) HTTP: 172.20.10.2/stream
### Erläuterung des Skripts
### Erläuterung des Skripts
Zunächst wird die erforderliche Bibliothek zum Interagieren mit der Kamera und Starten des Servers inkludiert
Zunächst wird die erforderliche Bibliothek zum Starten des Servers inkludiert
#include "thk_EspCamDriver.h" // ESP32 Kamera
#include "thk_EspCamServer.h" // WIFI und HTTP-Server
#include "thk_EspCamServer.h" // WIFI und HTTP-Server
Im Anschluss wird das Netzwerk eingerichtet
Im Anschluss wird das Netzwerk eingerichtet
...
@@ -71,35 +52,19 @@ Optional kann auch die Internetressource unbenannt werden. Diese wird beim Aufru
...
@@ -71,35 +52,19 @@ Optional kann auch die Internetressource unbenannt werden. Diese wird beim Aufru
const char *uri = "/stream";
const char *uri = "/stream";
Die folgenden Objekte sind für den Datenaustausch mit der Kamera notwendig
esp_image_t image;
Server-Objekt erzeugen
camera_config_t cameraconfig; // Konfig
esp_err_t cameraerror; // Fehler
camera_fb_t *fb = NULL; // Framebuffer
Um sowohl die Kamera als auch den Server möglichst kompakt für den Anwender nutzbar zu machen, sind zwei benutzerdefinierten Klassen vorhanden
Anschließend kann in der Setup-Routine die Kamera initialisiert
camera.init();
Und mit dem WiFi-Netzwerk verbunden werden
Und mit dem WiFi-Netzwerk verbinden
server.connect();
server.connect();
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
Abschließend wird der Webserver gestartet. Dafür ist ein sogenannter Handler erforderlich. Dieser bildet die Antwort auf den Zugriff über HTTP.
Hierzu die Referenz entsprechend anpassen.
server.start_webserver(&get_stream_handler);
auch stattdessen das HelloWorld Beispiel ausprobiert werden. Hierzu die Referenz entsprechend anpassen.
server.start_webserver(&get_helloworld_handler);
server.start_webserver(&get_helloworld_handler);
Das Kamerabild wird hier als Buffer gespeichert. Die Länge und der Inhalt (Pixel) können über die Server-Bibliothek bezogen werden.
Wird nun die Internetressource im lokalen Netzwerk geöffnet wird, erfolgt eine Ausgabe im Seriellen Monitor.