update main menu and setWiFi.html

This commit is contained in:
Bluedragon 2022-04-28 02:20:35 +07:00
parent 6a8d497214
commit cc2cdedf7b
5 changed files with 119 additions and 172 deletions

29
data/main_menu.html Normal file
View File

@ -0,0 +1,29 @@
<!DOCTYPE HTML><html><head>
<title>Rally TerraTrip v1</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<!--
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
-->
<link href="bootstrap.css" rel="stylesheet">
</head><body>
<!--
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
-->
<script src="bootstrap.bundle.min.js"></script>
<fieldset>
<div class="card text-white bg-secondary mb-3" style="max-width: 40rem;">
<div class="card-header"><h1>MENU</h1></div>
<div class="card-body">
<div class="row align-self-end g-1">
<div class="col text-center "><button onclick="location.href='/startrally1';" id="startrally" name="startrally" class="btn btn-primary btn-lg me-2 mb-2">RALLY</button></div>
<div class="col text-center"><button onclick="location.href='/calibration';" id="calibration" name="calibration" class="btn btn-primary me-2 mb-2">CALIBRATION</button></div>
<div class="col text-center"><button onclick="location.href='/constanta';" id="constanta" name="constanta" class="btn btn-primary me-2 mb-2">CONSTANTA</button></div>
<div class="col text-center"><button onclick="location.href='/settime';" id="constanta" name="constanta" class="btn btn-primary me-2 mb-2">Set TIME</button></div>
<div class="col text-center"><button onclick="location.href='/wifi';" id="settime" name="settime" class="btn btn-primary me-2 mb-2">Set WiFi</button></div>
</div>
</div>
</div>
</fieldset>
</body></html>

21
data/setWiFi.html Normal file
View File

@ -0,0 +1,21 @@
<!DOCTYPE HTML><html><head>
<title>RALLY WIFI Station</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="bootstrap.css" rel="stylesheet">
</head><body><script src="bootstrap.bundle.min.js"></script>
<h3>Your Local IP is: %localip%</h3>
<fieldset><h4>
<form action="/setwifi" method="POST" target="hidden-form">
<div class="mb-3">
<label for="emailID" class="form-label">Wifi SSID (current value %ssidString%): </label>
<input type="text" name="ssidString" id="emailID" class="form-control">
</div>
<div class="mb-3">
<label for="pwdID" class="form-label">Password (current value %inputPwd%): </label>
<input type="password" name="inputPwd" id="pwdID" class="form-control">
</div>
<input type="submit" value="Submit" class="btn btn-primary fw-bold mt-2 mb-2 ms-3">
</form><button ondblclick="location.href='/menu';" class="btn btn-primary fw-bold mt-2 mb-2 ms-3">Back to Menu</button>
</h4></fieldset>
<iframe style="display:none" name="hidden-form"></iframe>
</body></html>

View File

@ -1,4 +1,4 @@
const char HTML_startrally1[] PROGMEM = R"rawliteral(
const char HTML_startrally[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html><head>
<title>Rally TerraTrip v1</title>
<meta charset="utf-8">

View File

@ -406,12 +406,9 @@ String procConst(const String& var){
}
void OnWiFiEvent(WiFiEvent_t event)
{
switch (event) {
case SYSTEM_EVENT_STA_CONNECTED:
Serial.println("ESP32 Connected to WiFi Network");
break;
@ -427,6 +424,7 @@ void OnWiFiEvent(WiFiEvent_t event)
default: break;
}
}
String getPin(){
struct tm timeinfo;
String hasil;
@ -1086,19 +1084,34 @@ void printMonth(int month)
default: lcd.print(" Error ");break;
}
}
void showIPAddressOnLCD(){
IPAddress mlocalIP;
if(WiFi.isConnected()) mlocalIP = WiFi.localIP();
else mlocalIP = WiFi.softAPIP();
Serial.println(mlocalIP);
lcd.setCursor(17,0);
lcd.print(mlocalIP[0]);
lcd.setCursor(17,1);
lcd.print(mlocalIP[1]);
lcd.setCursor(17,2);
lcd.print(mlocalIP[2]);
lcd.setCursor(17,3);
lcd.print(mlocalIP[3]);
}
void mainMenu()
{
MENU = MAIN;
lcd.clear();
lcd.print("1. Rally TSD");
lcd.setCursor(0,1);
lcd.print("2. Set Main Time");
lcd.print("2. Main Time");
lcd.setCursor(0,2);
lcd.print("3. Input Constanta");
lcd.print("3. Constanta");
lcd.setCursor(0,3);
lcd.print("4. Calibration ODO");
lcd.print("4. Calibration");
//lcd.home();
showIPAddressOnLCD();
x=2;
y=0;
lcd.cursor();
@ -2598,8 +2611,6 @@ DS3231_init(DS3231_CONTROL_INTCN);
//
//Serial.begin(115200);
//DynamicJsonDocument doc(512);
// Initialize SPIFFS
#ifdef ESP32
if(!SPIFFS.begin(true)){
@ -2627,7 +2638,7 @@ DS3231_init(DS3231_CONTROL_INTCN);
Serial.println(ssid);
if (yourSSIDString != ""){
strncpy(ssid, yourSSIDString.c_str() , (sizeof ssid)-1);
// strncpy(ssid, yourSSIDString.c_str() , (sizeof yourSSIDString)-1);
// strncpy(ssid, yourSSIDString.c_str() , (sizeof yourSSIDString)-1); //dont show the old password for security reason
}
Serial.println(ssid);
@ -2651,7 +2662,8 @@ Serial.print("try to connect to ssid:");Serial.print(ssid);Serial.print("; with
Serial.println();
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
mainMenu();
// //settingup MDNS
// if(!MDNS.begin("esp32")) {
// Serial.println("Error starting mDNS");
@ -2659,6 +2671,7 @@ Serial.print("try to connect to ssid:");Serial.print(ssid);Serial.print("; with
// }
// Serial.println(“MDNS started.”);
// MDNS.addService(“http”, “tcp”, 80);
// // Init and get the time
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
printLocalTime();
@ -2676,7 +2689,6 @@ Serial.print("try to connect to ssid:");Serial.print(ssid);Serial.print("; with
request->send_P(200, "text/html", wifi_html, processor);
return;
}
});
server.on("/wifi", HTTP_GET, [](AsyncWebServerRequest * request) {
@ -2696,77 +2708,51 @@ Serial.print("try to connect to ssid:");Serial.print(ssid);Serial.print("; with
request->send(200, "text/plain", "Hello from undefined");
});
// Send a GET request to <ESP_IP>/get?inputString=<inputMessage>
server.on("/setwifi", HTTP_POST, [] (AsyncWebServerRequest *request) {
String inputMessage;
boolean bolrestart=false;
boolean POST=true;
Serial.println("ini masuk /setwifi");
Serial.print("/setwifi:");
// GET inputString value on <ESP_IP>/get?inputString=<inputMessage>
if (request->hasParam(PARAM_SSID, POST)) {
inputMessage = request->getParam(PARAM_SSID, POST )->value();
Serial.print(inputMessage);Serial.print(";");
if (inputMessage!=""){
Serial.print(inputMessage);
writeFile(SPIFFS, "/ssidString.txt", inputMessage.c_str());
delay(50);
bolrestart=true;
//ESP.restart();
}
}
// GET inputPwd value on <ESP_IP>/wifi/get?inputPwd=<inputMessage>
if (request->hasParam(PARAM_PWD, POST)) {
inputMessage = request->getParam(PARAM_PWD, POST)->value();
Serial.print(inputMessage);Serial.print(";");
if (inputMessage!=""){
writeFile(SPIFFS, "/inputPwd.txt", inputMessage.c_str());
delay(50);
bolrestart=true;
//ESP.restart();
}
}
else {
inputMessage = "No message sent";
}
Serial.println("");
if (bolrestart) {
ESP.restart();
}
Serial.println("ini /setwifi aja");Serial.println(inputMessage);
// Serial.println("ini /setwifi aja");Serial.println(inputMessage);
request->send(200, "text/text", inputMessage);
});
// // Send a GET request to <ESP_IP>/wifi/get?ssidString=<inputMessage>
// server.on("/wifi/get", HTTP_GET, [] (AsyncWebServerRequest *request) {
// String inputMessage;
// // GET ssidString value on <ESP_IP>/wifi/get?ssidString=<inputMessage>
// Serial.println("ini masuk wifi get");
// Serial.println(request->params());
// if (request->hasParam(PARAM_SSID)) {
// inputMessage = request->getParam(PARAM_SSID)->value();
// writeFile(SPIFFS, "/ssidString.txt", inputMessage.c_str());
// delay(100);
// ESP.restart();
// }
// // GET inputPwd value on <ESP_IP>/wifi/get?inputPwd=<inputMessage>
// else if (request->hasParam(PARAM_PWD)) {
// inputMessage = request->getParam(PARAM_PWD)->value();
// writeFile(SPIFFS, "/inputPwd.txt", inputMessage.c_str());
// delay(100);
// ESP.restart();
// }
// else {
// inputMessage = "No message sent";
// }
// Serial.println("/wifi/get value:"); Serial.println(inputMessage);
// request->send(200, "text/text", inputMessage);
// });
server.on("/menu", HTTP_GET, [] (AsyncWebServerRequest *request) {
//String s = MAIN_page; //Read HTML contents
//request->send_P(200, "text/html", s); //Send web page
request->send_P(200, "text/html", main_menu);
});
server.on("/startrally", HTTP_GET, [] (AsyncWebServerRequest *request) {
server.on("/startrallytest", HTTP_GET, [] (AsyncWebServerRequest *request) {
//String s = MAIN_page; //Read HTML contents
//request->send_P(200, "text/html", s); //Send web page
String PAGE;
@ -2782,8 +2768,8 @@ Serial.print("try to connect to ssid:");Serial.print(ssid);Serial.print("; with
request->send(200, "text/html", PAGE);
});
server.on("/startrally1", HTTP_GET, [] (AsyncWebServerRequest *request) {
request->send_P(200, "text/html", HTML_startrally1, processor);
server.on("/startrally", HTTP_GET, [] (AsyncWebServerRequest *request) {
request->send_P(200, "text/html", HTML_startrally, processor);
});
server.on("/bootstrap.css", HTTP_GET, [] (AsyncWebServerRequest *request) {
@ -2873,14 +2859,6 @@ Serial.print("try to connect to ssid:");Serial.print(ssid);Serial.print("; with
Serial.println("TOGGLE 2");
request->redirect("/startrally1");
});
// //server.on("/adc", HTTP_GET); //This is display page
// server.on("/readADC", HTTP_GET, [] (AsyncWebServerRequest *request) {
// // int a = analogRead(A0);
// // String adcValue = String(millis());
// String adcValue = getPin();
// Serial.println(adcValue);
// request->send_P(200, "text/plain", adcValue.c_str()); //Send ADC value only to client ajax request
// });
server.on("/calibration", HTTP_GET, [] (AsyncWebServerRequest *request) {
int params = request->params(); //showing all params

View File

@ -165,51 +165,27 @@ const char HTML_END[] PROGMEM = R"rawliteral(
</body></html>
)rawliteral";
// HTML web page to handle 3 input fields (inputString, inputInt, inputFloat)
const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html><head>
<title>ESP Input Form</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
function submitMessage() {
alert("Saved value to ESP SPIFFS");
setTimeout(function(){ document.location.reload(false); }, 500);
}
</script></head><body><h3>
<form action="/get" target="hidden-form">
inputString (current value %inputString%): <input type="text" name="inputString">
<input type="submit" value="Submit" onclick="submitMessage()">
</form><br>
<form action="/get" target="hidden-form">
inputInt (current value %inputInt%): <input type="number " name="inputInt">
<input type="submit" value="Submit" onclick="submitMessage()">
</form><br>
<form action="/get" target="hidden-form">
inputFloat (current value %inputFloat%): <input type="number " name="inputFloat">
<input type="submit" value="Submit" onclick="submitMessage()">
</form>
<iframe style="display:none" name="hidden-form"></iframe></h3>
</body></html>
)rawliteral";
const char wifi_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html><head>
<title>ESP WIFI Station</title>
<title>RALLY WIFI Station</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
function submitMessage() {
alert("Saved value to ESP SPIFFS");
setTimeout(function(){ document.location.reload(false); }, 500);
}
</script></head><body>
<h3>Your Local IP is: %localip% <hr>
<form action="/setwifi" method="POST" target="hidden-form" >
Wifi SSID (current value %ssidString%): <input type="text" name="ssidString">
Password (current value %inputPwd%): <input type="text" name="inputPwd">
<input type="submit" value="Submit" >
</form><br>
<iframe style="display:none" name="hidden-form"></iframe></h3>
<link href="bootstrap.css" rel="stylesheet">
</head><body><script src="bootstrap.bundle.min.js"></script>
<h3>Your Local IP is: %localip%</h3>
<fieldset><h4>
<form action="/setwifi" method="POST" target="hidden-form">
<div class="mb-3">
<label for="emailID" class="form-label">Wifi SSID (current value %ssidString%): </label>
<input type="text" name="ssidString" id="emailID" class="form-control">
</div>
<div class="mb-3">
<label for="pwdID" class="form-label">Password (current value %inputPwd%): </label>
<input type="password" name="inputPwd" id="pwdID" class="form-control">
</div>
<input type="submit" value="Submit" class="btn btn-primary fw-bold mt-2 mb-2 ms-3">
</form><button ondblclick="location.href='/menu';" class="btn btn-primary fw-bold mt-2 mb-2 ms-3">Back to Menu</button>
</h4></fieldset>
<iframe style="display:none" name="hidden-form"></iframe>
</body></html>
)rawliteral";
@ -221,87 +197,30 @@ const char main_menu[] PROGMEM = R"rawliteral(
<title>Rally TerraTrip v1</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<!-- Bootstrap CSS -->
<!--
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
-->
<link href="bootstrap.css" rel="stylesheet">
</head><body>
</head><body>
<!--
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
-->
<script src="bootstrap.bundle.min.js"></script>
<fieldset>
<div class="container">
<div class="row">
<div class="col align-self-end"><h1>MENU1</h1></div>
</div>
<div class="row">
<div class="col justify-content-around d-flex flex-column">
<div><button onclick="location.href='/startrally';" id="startrally" name="startrally" class="btn btn-primary mt-2 mb-2">START RALLY</button></div>
<div><button onclick="location.href='/startrally1';" id="startrally1" name="startrally1" class="btn btn-primary mt-2 mb-2">START RALLY 1</button></div>
<div><button onclick="location.href='/settime';" id="settime" name="settime" class="btn btn-primary mt-2 mb-2">Set TIME</button></div>
<div><button onclick="location.href='/wifi';" id="setwifi" name="setwifi" class="btn btn-primary mt-2 mb-2">Set Wifi</button></div>
<div><button onclick="location.href='/calibration';" id="calibration" name="calibration" class="btn btn-primary mt-2 mb-2">CALIBRATION</button></div>
<div><button onclick="location.href='/constanta';" id="constanta" name="constanta" class="btn btn-primary mt-2 mb-2">CONSTANTA</button></div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
-->
<script src="bootstrap.bundle.min.js"></script>
<fieldset>
<div class="card text-white bg-secondary mb-3" style="max-width: 40rem;">
<div class="card-header"><h1>MENU</h1></div>
<div class="card-body">
<div class="row align-self-end g-1">
<div class="col text-center "><button onclick="location.href='/startrally1';" id="startrally" name="startrally" class="btn btn-primary btn-lg me-2 mb-2">RALLY</button></div>
<div class="col text-center"><button onclick="location.href='/calibration';" id="calibration" name="calibration" class="btn btn-primary me-2 mb-2">CALIBRATION</button></div>
<div class="col text-center"><button onclick="location.href='/constanta';" id="constanta" name="constanta" class="btn btn-primary me-2 mb-2">CONSTANTA</button></div>
<div class="col text-center"><button onclick="location.href='/settime';" id="constanta" name="constanta" class="btn btn-primary me-2 mb-2">Set TIME</button></div>
<div class="col text-center"><button onclick="location.href='/wifi';" id="settime" name="settime" class="btn btn-primary me-2 mb-2">Set WiFi</button></div>
</div>
</div>
</div>
</div>
<div class="row row-cols-auto">
<div class="col"><button onclick="location.href='/startrally';" id="startrally" name="startrally" class="btn btn-primary mt-2 mb-2">START RALLY</button></div>
<div class="col"><button onclick="location.href='/settime';" id="settime" name="settime" class="btn btn-primary mt-2 mb-2">Set TIME</button></div>
<div class="col"><button onclick="location.href='/wifi';" id="setwifi" name="setwifi" class="btn btn-primary mt-2 mb-2">Set Wifi</button></div>
<div class="col"><button onclick="location.href='/calibration';" id="calibration" name="calibration" class="btn btn-primary mt-2 mb-2">CALIBRATION</button></div>
<div class="col"><button onclick="location.href='/constanta';" id="constanta" name="constanta" class="btn btn-primary mt-2 mb-2">CONSTANTA</button></div>
</div>
</div>
<div class="card text-white bg-primary mb-3" style="max-width: 20rem;">
<div class="card-header">MENU</div>
<div class="card-body">
<button onclick="location.href='/startrally';" id="startrally" name="startrally" class="btn btn-primary ">START RALLY</button>
<button onclick="location.href='/wifi';" id="settime" name="settime" class="btn btn-primary">Wifi</button>
<button onclick="location.href='/calibration';" id="calibration" name="calibration" class="btn btn-primary">CALIBRATION</button>
<button onclick="location.href='/constanta';" id="constanta" name="constanta" class="btn btn-primary">CONSTANTA</button>
<a href='/wifi' class='btn btn-primary' alt='Broken Link'>Wifi</a>
</div>
</div>
</fieldset>
</fieldset>
</body></html>
)rawliteral";
const char main_menu1[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html><head>
<title>Rally TerraTrip v1</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<!--
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
-->
<link href="bootstrap.css" rel="stylesheet">
</head><body>
<!--
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
-->
<script src="bootstrap.bundle.min.js"></script>
<fieldset>
<div class="card text-white bg-primary mb-3" style="max-width: 20rem;">
<div class="card-header">MENU</div>
<div class="card-body">
<button onclick="location.href='/startrally';" id="startrally" name="startrally" class="btn btn-primary ">START RALLY</button>
<button onclick="location.href='/wifi';" id="settime" name="settime" class="btn btn-primary">Wifi</button>
<button onclick="location.href='/calibration';" id="calibration" name="calibration" class="btn btn-primary">CALIBRATION</button>
<button onclick="location.href='/constanta';" id="constanta" name="constanta" class="btn btn-primary">CONSTANTA</button>
<a href='/wifi' class='btn btn-primary' alt='Broken Link'>Wifi</a>
</div>
</div>
</fieldset>
</body></html>
)rawliteral";