Get form submission time from webform and update RTC.
This commit is contained in:
parent
0317a93d38
commit
abe751d30c
|
@ -10,10 +10,12 @@
|
||||||
|
|
||||||
[env:esp32doit-devkit-v1]
|
[env:esp32doit-devkit-v1]
|
||||||
platform = espressif32
|
platform = espressif32
|
||||||
build_flags =
|
;build_flags =
|
||||||
-std=gnu++11
|
; -std=c++11
|
||||||
|
; -std=gnu++11
|
||||||
board = esp32doit-devkit-v1
|
board = esp32doit-devkit-v1
|
||||||
framework = arduino
|
framework = arduino
|
||||||
|
upload_speed = 921600
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
lib_deps =
|
lib_deps =
|
||||||
me-no-dev/AsyncTCP@^1.1.1
|
me-no-dev/AsyncTCP@^1.1.1
|
||||||
|
@ -21,6 +23,7 @@ lib_deps =
|
||||||
contrem/arduino-timer@^3.0.1
|
contrem/arduino-timer@^3.0.1
|
||||||
kj7rrv/Telegraph@^1.0.0
|
kj7rrv/Telegraph@^1.0.0
|
||||||
jandelgado/JLed@^4.13.0
|
jandelgado/JLed@^4.13.0
|
||||||
adafruit/RTClib@^2.1.1
|
;adafruit/RTClib@^2.1.1
|
||||||
|
https://github.com/adafruit/RTClib.git ; >=2.1.2
|
||||||
adafruit/Adafruit BusIO@^1.14.3
|
adafruit/Adafruit BusIO@^1.14.3
|
||||||
;jchristensen/DS3232RTC@^2.0.1
|
;jchristensen/DS3232RTC@^2.0.1
|
||||||
|
|
|
@ -25,14 +25,14 @@
|
||||||
#include <Adafruit_BusIO_Register.h> // for DS3231
|
#include <Adafruit_BusIO_Register.h> // for DS3231
|
||||||
#include <RTClib.h> // for DS3231
|
#include <RTClib.h> // for DS3231
|
||||||
//#include <DS3232RTC.h> //for DS3231
|
//#include <DS3232RTC.h> //for DS3231
|
||||||
#include <sstream>
|
//#include <sstream>
|
||||||
|
|
||||||
// download zip from https://github.com/me-no-dev/ESPAsyncWebServer and install.
|
// download zip from https://github.com/me-no-dev/ESPAsyncWebServer and install.
|
||||||
#include <ESPAsyncWebServer.h>
|
#include <ESPAsyncWebServer.h>
|
||||||
|
|
||||||
AsyncWebServer server(80);
|
AsyncWebServer server(80);
|
||||||
|
|
||||||
RTC_DS3231 rtc;
|
RTC_DS3231 rtc; // set up RTC
|
||||||
|
|
||||||
// Read from config.h
|
// Read from config.h
|
||||||
const char* ssid = WIFI_SSID;
|
const char* ssid = WIFI_SSID;
|
||||||
|
@ -52,7 +52,7 @@ int yourInputWPM;
|
||||||
int yourInputMsg;
|
int yourInputMsg;
|
||||||
int yourInputMsg_old; // to save previous state and check changes
|
int yourInputMsg_old; // to save previous state and check changes
|
||||||
float yourInputFloat;
|
float yourInputFloat;
|
||||||
long yourInputTime; //to keep time
|
uint32_t yourInputTime; //to keep time
|
||||||
|
|
||||||
// HTML web page to handle 3 input fields (inputString, inputSend, inputFloat)
|
// HTML web page to handle 3 input fields (inputString, inputSend, inputFloat)
|
||||||
const char index_html[] PROGMEM = R"rawliteral(
|
const char index_html[] PROGMEM = R"rawliteral(
|
||||||
|
@ -65,7 +65,7 @@ const char index_html[] PROGMEM = R"rawliteral(
|
||||||
setTimeout(function(){ document.location.reload(false); }, 500);
|
setTimeout(function(){ document.location.reload(false); }, 500);
|
||||||
}
|
}
|
||||||
var putDate = function(form) {
|
var putDate = function(form) {
|
||||||
form.inputTimeUnix.value = Date.now();
|
form.inputTimeUnix.value = Math.floor(Date.now() / 1000);
|
||||||
};
|
};
|
||||||
</script></head><body>
|
</script></head><body>
|
||||||
<form action="/get" target="hidden-form" onsubmit="putDate(this);">
|
<form action="/get" target="hidden-form" onsubmit="putDate(this);">
|
||||||
|
@ -90,7 +90,7 @@ const char index_html[] PROGMEM = R"rawliteral(
|
||||||
|
|
||||||
WPM (current value %inputWPM%): <input type="number " name="inputWPM" value = %inputWPM%> (doesn't work yet)<br>
|
WPM (current value %inputWPM%): <input type="number " name="inputWPM" value = %inputWPM%> (doesn't work yet)<br>
|
||||||
|
|
||||||
<input type="hidden" name="inputTimeUnix" id="js_time_unix"><br>
|
<input type="hidden" name="inputTimeUnix" id="js_time_unix">
|
||||||
<script>
|
<script>
|
||||||
<!-- document.write(Date.now()); -->
|
<!-- document.write(Date.now()); -->
|
||||||
</script>
|
</script>
|
||||||
|
@ -461,10 +461,29 @@ void setup() {
|
||||||
// GET inputTimeUnix value on <ESP_IP>/get?inputTimeUnix=<inputMessage>
|
// GET inputTimeUnix value on <ESP_IP>/get?inputTimeUnix=<inputMessage>
|
||||||
if (request->hasParam(PARAM_TIME)) {
|
if (request->hasParam(PARAM_TIME)) {
|
||||||
inputMessage = request->getParam(PARAM_TIME)->value();
|
inputMessage = request->getParam(PARAM_TIME)->value();
|
||||||
yourInputTime = std::stol(inputMessage);
|
Serial.println(inputMessage);
|
||||||
|
//https://stackoverflow.com/a/22733127/2152245
|
||||||
|
yourInputTime = atol(inputMessage.c_str());
|
||||||
Serial.println(yourInputTime);
|
Serial.println(yourInputTime);
|
||||||
// update the RTC time
|
// update the RTC time
|
||||||
rtc.adjust(DateTime(yourInputTime));
|
rtc.adjust(DateTime(yourInputTime));
|
||||||
|
;
|
||||||
|
DateTime now = rtc.now();
|
||||||
|
Serial.print("UTC time from browser: ");
|
||||||
|
Serial.print(now.year(), DEC);
|
||||||
|
Serial.print('/');
|
||||||
|
Serial.print(now.month(), DEC);
|
||||||
|
Serial.print('/');
|
||||||
|
Serial.print(now.day(), DEC);
|
||||||
|
Serial.print(" (");
|
||||||
|
Serial.print(now.dayOfTheWeek());
|
||||||
|
Serial.print(") ");
|
||||||
|
Serial.print(now.hour(), DEC);
|
||||||
|
Serial.print(':');
|
||||||
|
Serial.print(now.minute(), DEC);
|
||||||
|
Serial.print(':');
|
||||||
|
Serial.print(now.second(), DEC);
|
||||||
|
Serial.println();
|
||||||
}
|
}
|
||||||
// GET inputFloat value on <ESP_IP>/get?inputFloat=<inputMessage>
|
// GET inputFloat value on <ESP_IP>/get?inputFloat=<inputMessage>
|
||||||
if (request->hasParam(PARAM_FLOAT)) {
|
if (request->hasParam(PARAM_FLOAT)) {
|
||||||
|
@ -499,7 +518,7 @@ void loop() {
|
||||||
time_until_start.tick();
|
time_until_start.tick();
|
||||||
timer.tick();
|
timer.tick();
|
||||||
|
|
||||||
DateTime now = rtc.now();
|
// DateTime now = rtc.now();
|
||||||
// Serial.print(now.year(), DEC);
|
// Serial.print(now.year(), DEC);
|
||||||
// Serial.print('/');
|
// Serial.print('/');
|
||||||
// Serial.print(now.month(), DEC);
|
// Serial.print(now.month(), DEC);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user