parent
84b55bad91
commit
b33f9258e9
|
@ -31,6 +31,7 @@
|
||||||
// Functions from the main .ino
|
// Functions from the main .ino
|
||||||
extern void flashLED(int flashtime);
|
extern void flashLED(int flashtime);
|
||||||
extern void setLamp(int newVal);
|
extern void setLamp(int newVal);
|
||||||
|
extern void printLocalTime(bool extraData);
|
||||||
|
|
||||||
// External variables declared in the main .ino
|
// External variables declared in the main .ino
|
||||||
extern char myName[];
|
extern char myName[];
|
||||||
|
@ -56,6 +57,7 @@ extern bool autoLamp;
|
||||||
extern bool filesystem;
|
extern bool filesystem;
|
||||||
extern String critERR;
|
extern String critERR;
|
||||||
extern bool debugData;
|
extern bool debugData;
|
||||||
|
extern bool haveTime;
|
||||||
extern int sketchSize;
|
extern int sketchSize;
|
||||||
extern int sketchSpace;
|
extern int sketchSpace;
|
||||||
extern String sketchMD5;
|
extern String sketchMD5;
|
||||||
|
@ -73,15 +75,14 @@ static const char* _STREAM_PART = "Content-Type: image/jpeg\r\nContent-Length: %
|
||||||
httpd_handle_t stream_httpd = NULL;
|
httpd_handle_t stream_httpd = NULL;
|
||||||
httpd_handle_t camera_httpd = NULL;
|
httpd_handle_t camera_httpd = NULL;
|
||||||
|
|
||||||
|
|
||||||
void serialDump() {
|
void serialDump() {
|
||||||
Serial.println("\r\nPreferences file: ");
|
Serial.println();
|
||||||
dumpPrefs(SPIFFS);
|
|
||||||
if (critERR.length() > 0) {
|
|
||||||
Serial.printf("\r\n\r\nA critical error has occurred when initialising Camera Hardware, see startup megssages\r\n");
|
|
||||||
}
|
|
||||||
// Module
|
// Module
|
||||||
Serial.printf("Name: %s\r\n", myName);
|
Serial.printf("Name: %s\r\n", myName);
|
||||||
|
if (haveTime) {
|
||||||
|
Serial.print("Time: ");
|
||||||
|
printLocalTime(true);
|
||||||
|
}
|
||||||
Serial.printf("Firmware: %s (base: %s)\r\n", myVer, baseVersion);
|
Serial.printf("Firmware: %s (base: %s)\r\n", myVer, baseVersion);
|
||||||
float sketchPct = 100 * sketchSize / sketchSpace;
|
float sketchPct = 100 * sketchSize / sketchSpace;
|
||||||
Serial.printf("Sketch Size: %i (total: %i, %.1f%% used)\r\n", sketchSize, sketchSpace, sketchPct);
|
Serial.printf("Sketch Size: %i (total: %i, %.1f%% used)\r\n", sketchSize, sketchSpace, sketchPct);
|
||||||
|
@ -123,9 +124,15 @@ void serialDump() {
|
||||||
Serial.printf("Freq: %i MHz\r\n", ESP.getCpuFreqMHz());
|
Serial.printf("Freq: %i MHz\r\n", ESP.getCpuFreqMHz());
|
||||||
Serial.printf("Heap: %i, free: %i, min free: %i, max block: %i\r\n", ESP.getHeapSize(), ESP.getFreeHeap(), ESP.getMinFreeHeap(), ESP.getMaxAllocHeap());
|
Serial.printf("Heap: %i, free: %i, min free: %i, max block: %i\r\n", ESP.getHeapSize(), ESP.getFreeHeap(), ESP.getMinFreeHeap(), ESP.getMaxAllocHeap());
|
||||||
Serial.printf("Psram: %i, free: %i, min free: %i, max block: %i\r\n", ESP.getPsramSize(), ESP.getFreePsram(), ESP.getMinFreePsram(), ESP.getMaxAllocPsram());
|
Serial.printf("Psram: %i, free: %i, min free: %i, max block: %i\r\n", ESP.getPsramSize(), ESP.getFreePsram(), ESP.getMinFreePsram(), ESP.getMaxAllocPsram());
|
||||||
|
// Filesystems
|
||||||
if (filesystem) {
|
if (filesystem) {
|
||||||
Serial.printf("Spiffs: %i, used: %i\r\n", SPIFFS.totalBytes(), SPIFFS.usedBytes());
|
Serial.printf("Spiffs: %i, used: %i\r\n", SPIFFS.totalBytes(), SPIFFS.usedBytes());
|
||||||
}
|
}
|
||||||
|
Serial.println("Preferences file: ");
|
||||||
|
dumpPrefs(SPIFFS);
|
||||||
|
if (critERR.length() > 0) {
|
||||||
|
Serial.printf("\r\n\r\nA critical error has occurred when initialising Camera Hardware, see startup megssages\r\n");
|
||||||
|
}
|
||||||
Serial.println();
|
Serial.println();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -522,6 +529,15 @@ static esp_err_t dump_handler(httpd_req_t *req){
|
||||||
|
|
||||||
// System
|
// System
|
||||||
d+= sprintf(d,"<h2>System</h2>\n");
|
d+= sprintf(d,"<h2>System</h2>\n");
|
||||||
|
if (haveTime) {
|
||||||
|
struct tm timeinfo;
|
||||||
|
if(getLocalTime(&timeinfo)){
|
||||||
|
char timeStringBuff[50]; //50 chars should be enough
|
||||||
|
strftime(timeStringBuff, sizeof(timeStringBuff), "%H:%M:%S, %A, %B %d %Y", &timeinfo);
|
||||||
|
//print like "const char*"
|
||||||
|
d+= sprintf(d,"Time: %s<br>\n", timeStringBuff);
|
||||||
|
}
|
||||||
|
}
|
||||||
int64_t sec = esp_timer_get_time() / 1000000;
|
int64_t sec = esp_timer_get_time() / 1000000;
|
||||||
int64_t upDays = int64_t(floor(sec/86400));
|
int64_t upDays = int64_t(floor(sec/86400));
|
||||||
int upHours = int64_t(floor(sec/3600)) % 24;
|
int upHours = int64_t(floor(sec/3600)) % 24;
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include <DNSServer.h>
|
#include <DNSServer.h>
|
||||||
#include <ArduinoOTA.h>
|
#include <ArduinoOTA.h>
|
||||||
#include "src/parsebytes.h"
|
#include "src/parsebytes.h"
|
||||||
|
#include "time.h"
|
||||||
|
|
||||||
|
|
||||||
/* This sketch is a extension/expansion/reork of the 'official' ESP32 Camera example
|
/* This sketch is a extension/expansion/reork of the 'official' ESP32 Camera example
|
||||||
|
@ -170,6 +171,17 @@ const int pwmMax = pow(2,pwmresolution)-1;
|
||||||
bool otaEnabled = true;
|
bool otaEnabled = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(NTPSERVER)
|
||||||
|
bool haveTime = true;
|
||||||
|
const char* ntpServer = NTPSERVER;
|
||||||
|
const long gmtOffset_sec = NTP_GMT_OFFSET;
|
||||||
|
const int daylightOffset_sec = NTP_DST_OFFSET;
|
||||||
|
#else
|
||||||
|
bool haveTime = false;
|
||||||
|
const char* ntpServer = "";
|
||||||
|
const long gmtOffset_sec = 0;
|
||||||
|
const int daylightOffset_sec = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Critical error string; if set during init (camera hardware failure) it
|
// Critical error string; if set during init (camera hardware failure) it
|
||||||
// will be returned for all http requests
|
// will be returned for all http requests
|
||||||
|
@ -226,6 +238,18 @@ void setLamp(int newVal) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void printLocalTime(bool extraData=false) {
|
||||||
|
struct tm timeinfo;
|
||||||
|
if(!getLocalTime(&timeinfo)){
|
||||||
|
Serial.println("Failed to obtain time");
|
||||||
|
} else {
|
||||||
|
Serial.println(&timeinfo, "%H:%M:%S, %A, %B %d %Y");
|
||||||
|
}
|
||||||
|
if (extraData) {
|
||||||
|
Serial.printf("NTP Server: %s, GMT Offset: %li(s), DST Offset: %i(s)\r\n", ntpServer, gmtOffset_sec, daylightOffset_sec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void WifiSetup() {
|
void WifiSetup() {
|
||||||
// Feedback that we are now attempting to connect
|
// Feedback that we are now attempting to connect
|
||||||
flashLED(300);
|
flashLED(300);
|
||||||
|
@ -642,6 +666,15 @@ void setup() {
|
||||||
Serial.println("OTA is disabled");
|
Serial.println("OTA is disabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set time via NTP server when enabled
|
||||||
|
if (haveTime) {
|
||||||
|
Serial.print("Time: ");
|
||||||
|
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
|
||||||
|
printLocalTime(true);
|
||||||
|
} else {
|
||||||
|
Serial.println("Time functions disabled");
|
||||||
|
}
|
||||||
|
|
||||||
// Now we have a network we can start the two http handlers for the UI and Stream.
|
// Now we have a network we can start the two http handlers for the UI and Stream.
|
||||||
startCameraServer(httpPort, streamPort);
|
startCameraServer(httpPort, streamPort);
|
||||||
|
|
||||||
|
@ -672,8 +705,6 @@ void setup() {
|
||||||
} else {
|
} else {
|
||||||
Serial.printf("\r\nCamera unavailable due to initialisation errors.\r\n\r\n");
|
Serial.printf("\r\nCamera unavailable due to initialisation errors.\r\n\r\n");
|
||||||
}
|
}
|
||||||
Serial.print("\r\nThis is the 4.0 alpha\r\n - Face detection has been removed!\r\n");
|
|
||||||
|
|
||||||
|
|
||||||
// Used when dumping status; these are slow functions, so just do them once during startup
|
// Used when dumping status; these are slow functions, so just do them once during startup
|
||||||
sketchSize = ESP.getSketchSize();
|
sketchSize = ESP.getSketchSize();
|
||||||
|
@ -682,6 +713,9 @@ void setup() {
|
||||||
|
|
||||||
// As a final init step chomp out the serial buffer in case we have recieved mis-keys or garbage during startup
|
// As a final init step chomp out the serial buffer in case we have recieved mis-keys or garbage during startup
|
||||||
while (Serial.available()) Serial.read();
|
while (Serial.available()) Serial.read();
|
||||||
|
|
||||||
|
// While in Beta; Warn!
|
||||||
|
Serial.print("\r\nThis is the 4.0 alpha\r\n - Face detection has been removed!\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|
|
@ -113,6 +113,19 @@ struct station stationList[] = {{"ssid1", "pass1", true},
|
||||||
*/
|
*/
|
||||||
// #define OTA_PASSWORD "SuperVisor"
|
// #define OTA_PASSWORD "SuperVisor"
|
||||||
|
|
||||||
|
/* NTP
|
||||||
|
* Uncomment the following to enable the on-board clock
|
||||||
|
* Pick a nearby pool server from: https://www.ntppool.org/zone/@
|
||||||
|
* Set the GMT offset to match your timezone IN SECONDS;
|
||||||
|
* see https://en.wikipedia.org/wiki/List_of_UTC_time_offsets
|
||||||
|
* 1hr = 3600 seconds; do the math ;-)
|
||||||
|
* Default is CET (Central European Time), eg GMT + 1hr
|
||||||
|
* The DST offset is usually 1 hour (again, in seconds) if used in your country.
|
||||||
|
*/
|
||||||
|
//#define NTPSERVER "<EDIT THIS>.pool.ntp.org"
|
||||||
|
//#define NTP_GMT_OFFSET 3600
|
||||||
|
//#define NTP_DST_OFFSET 3600
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Camera Defaults
|
* Camera Defaults
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue