- Impressum / Datenschutz / ...
- ESP8266 spezifisch
- Programmierumgebung / IDE
- Camera Webserver mit Deepsleep
Camera Webserver mit Deepsleep
- Darker89
- Autor
- Offline
- New Member
Weniger
Mehr
- Beiträge: 1
- Dank erhalten: 0
19 Apr 2023 21:06 - 19 Apr 2023 21:09 #875
von Darker89
Darker89 erstellte das Thema Camera Webserver mit Deepsleep
Hallo,
ich habe mir aus dem Beispiele von Arduino IDE das Beispiel für den ESP32 Camera Webserver genommen und diese um eine DeepSleep funktion erweiter.. und zwar um 6 Uhr Morgens schaltet der DeepSleep ein und um und nach 20 Uhr schaltet der DeepSleep wieder ab. Jedoch beim testet hat es leider nicht funktioniert... um und Nach 20 Uhr, ist der ESP32 trotzdem wieder in dem DeepSleep modus gegangen. Arduino IDE meldet natürlich beim Prüfen keinen Fehler.
Kann mir jemand sagen wo das Problem liegen könnte?
Vielen Dank schonmal
ich habe mir aus dem Beispiele von Arduino IDE das Beispiel für den ESP32 Camera Webserver genommen und diese um eine DeepSleep funktion erweiter.. und zwar um 6 Uhr Morgens schaltet der DeepSleep ein und um und nach 20 Uhr schaltet der DeepSleep wieder ab. Jedoch beim testet hat es leider nicht funktioniert... um und Nach 20 Uhr, ist der ESP32 trotzdem wieder in dem DeepSleep modus gegangen. Arduino IDE meldet natürlich beim Prüfen keinen Fehler.
Kann mir jemand sagen wo das Problem liegen könnte?
Vielen Dank schonmal
#include "esp_camera.h"
#include <WiFi.h>
#include <esp_sleep.h>
#include <time.h>
// Select camera model
#define CAMERA_MODEL_AI_THINKER // Has PSRAM
#include "camera_pins.h"
const char* ssid = "***";
const char* password = "***";
// Set your Static IP address
IPAddress local_IP(000, 000, 0, 000);
// Set your Gateway IP address
IPAddress gateway(000, 000, 0, 0);
IPAddress subnet(255, 255, 255, 0);
// NTP-Server-Informationen
const char* ntpServer = "de.pool.ntp.org";
const long gmtOffset_sec = 3600; // GMT+1 (Deutsche Zeit)
const int daylightOffset_sec = 3600; // Sommerzeit
void startCameraServer();
void setup() {
Serial.begin(115200);
Serial.setDebugOutput(true);
Serial.println();
camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
config.pin_href = HREF_GPIO_NUM;
config.pin_sscb_sda = SIOD_GPIO_NUM;
config.pin_sscb_scl = SIOC_GPIO_NUM;
config.pin_pwdn = PWDN_GPIO_NUM;
config.pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 20000000;
config.pixel_format = PIXFORMAT_JPEG;
// if PSRAM IC present, init with UXGA resolution and higher JPEG quality
// for larger pre-allocated frame buffer.
if(psramFound()){
config.frame_size = FRAMESIZE_UXGA;
config.jpeg_quality = 10;
config.fb_count = 2;
} else {
config.frame_size = FRAMESIZE_SVGA;
config.jpeg_quality = 12;
config.fb_count = 1;
}
#if defined(CAMERA_MODEL_ESP_EYE)
pinMode(13, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
#endif
// camera init
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err);
return;
}
sensor_t * s = esp_camera_sensor_get();
// initial sensors are flipped vertically and colors are a bit saturated
if (s->id.PID == OV3660_PID) {
s->set_vflip(s, 1); // flip it back
s->set_brightness(s, 1); // up the brightness just a bit
s->set_saturation(s, -2); // lower the saturation
}
// drop down frame size for higher initial frame rate
s->set_framesize(s, FRAMESIZE_QVGA);
#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)
s->set_vflip(s, 1);
s->set_hmirror(s, 1);
#endif
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
startCameraServer();
Serial.print("Camera Ready! Use 'http://");
Serial.print(WiFi.localIP());
Serial.println("' to connect");
//////
// NTP-Zeit abrufen
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
Serial.println("NTP-Zeit wird abgerufen...");
while (!time(nullptr)) {
delay(1000);
Serial.println("Warte auf NTP-Zeit...");
}
// Aktuelle Zeit ausgeben
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
Serial.println("Fehler beim Abrufen der NTP-Zeit!");
} else {
Serial.println("Aktuelle Zeit:");
Serial.println(&timeinfo, "%d.%m.%Y %H:%M:%S");
}
// Wenn die aktuelle Zeit zwischen 6:00 Uhr und 20:00 Uhr liegt, den Deepsleep-Modus wieder aktivieren
int hour = timeinfo.tm_hour;
if (hour >= 20 || hour < 6) {
Serial.println("ESP32 geht wieder in den Deepsleep-Modus...");
esp_deep_sleep_start();
}
}
void loop() {
// ESP32 in den Deepsleep-Modus versetzen
Serial.println("ESP32 geht in den Deepsleep-Modus...");
esp_deep_sleep_start();
}
// Wird aufgerufen, wenn der ESP32 aus dem Deepsleep-Modus aufwacht
void IRAM_ATTR wakeUp() {
// Aktuelle Zeit ausgeben
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
Serial.println("Fehler beim Abrufen der NTP-Zeit!");
} else {
Serial.println("Aktuelle Zeit:");
Serial.println(&timeinfo, "%d.%m.%Y %H:%M:%S");
}
// Wenn die aktuelle Zeit zwischen 06:00 Uhr und 20:00 Uhr liegt, den Deepsleep-Modus wieder aktivieren
int hour = timeinfo.tm_hour;
if (hour >= 20 || hour < 6) {
Serial.println("ESP32 geht wieder in den Deepsleep-Modus...");
esp_deep_sleep_start();
}
}
Letzte Änderung: 19 Apr 2023 21:09 von Darker89.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Aktuelle Seite:
- Startseite
- Impressum / Datenschutz / ...
- ESP8266 spezifisch
- Programmierumgebung / IDE
- Camera Webserver mit Deepsleep