Skip to content
Snippets Groups Projects
Commit 5999496e authored by Vladislav Vlasuk's avatar Vladislav Vlasuk
Browse files

hello world without camera

parent 849391b3
No related branches found
No related tags found
1 merge request!3hello world without camera
......@@ -2,14 +2,13 @@
// Beispiel Sketch für das Auslesen der ESP32One Waveshare Kamera
// und lokales Streamen des Kamerabildes per HTTP
// Abhängigkeiten:
// thk_EspCamDriver.h, thk_EspCamServer.h
// thk_EspCamServer.h
// Autor:
// Vladislav Vlasuk (TH Köln, Labor für Assistenzsysteme)
// Datum:
// 05.07.2022
// Bitte ESP32 Kameramodell auskommentieren
#include <thk_EspCamDriver.h> // ESP32 Kamera
#include <thk_EspCamServer.h> // WIFI und HTTP-Server
// Wlan-Netzwerk und Internetressource (URI) festlegen
......@@ -17,26 +16,15 @@ const char *ssid = "iPhone von Vladislav";
const char *password = "qqqqqqqq";
const char *uri = "/stream";
// ESP32 Kameraspezifisch
esp_image_t image;
camera_config_t cameraconfig; // Konfig
esp_err_t cameraerror; // Fehler
camera_fb_t *fb = NULL; // Framebuffer
// Objekte erzeugen
thk_EspCamDriver camera(&cameraconfig, &cameraerror, fb, &image);
thk_EspCamServer server(ssid, password, uri);
void setup()
{
Serial.begin(115200);
camera.set_hmirror(1);
camera.set_vflip(1);
camera.set_grayscale(1);
camera.init(); // Kamera starten
server.connect(); // Wifi verbinden
server.start_webserver(&get_stream_handler); // Server starten
server.start_webserver(&get_helloworld_handler); // Server starten
};
void loop()
......@@ -45,60 +33,6 @@ void loop()
delay(1e4);
}
// Handler für das Auslesen des Kameramoduls am ESP32One Waveshare
esp_err_t get_stream_handler(httpd_req_t *req)
{
Serial.println("Starte Kamera Handler");
esp_err_t res = ESP_OK;
size_t _jpg_buf_len = 0;
uint8_t *_jpg_buf = NULL;
char *part_buf[128];
res = httpd_resp_set_type(req, _STREAM_CONTENT_TYPE);
if (res != ESP_OK)
return res;
while (true)
{
// Schieße Bild
camera.take_picture();
_jpg_buf_len = camera.get_fb()->len;
_jpg_buf = camera.get_fb()->buf;
// This API will send the data as an HTTP response to the request in the form of chunks with chunked-encoding
if (res == ESP_OK)
{
res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY));
}
if (res == ESP_OK)
{
size_t hlen = snprintf((char *)part_buf, 128, _STREAM_PART, _jpg_buf_len);
res = httpd_resp_send_chunk(req, (const char *)part_buf, hlen);
}
if (res == ESP_OK)
{
res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len);
}
// close stream
if (camera.get_fb())
{
camera.close_stream();
_jpg_buf = NULL;
}
else if (_jpg_buf)
{
free(_jpg_buf);
_jpg_buf = NULL;
}
if (res != ESP_OK)
{
Serial.println("send frame failed failed");
break;
}
}
return res;
}
// Bare Minimum Handler
static esp_err_t get_helloworld_handler(httpd_req_t *req)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment