Add option to set up for wifi or AP on compile #53
83
src/main.cpp
83
src/main.cpp
|
@ -38,8 +38,8 @@ const int alarmPin = 4; // pin to monitor for RTC alarms
|
||||||
const int network = 1;
|
const int network = 1;
|
||||||
// Connect to existing network
|
// Connect to existing network
|
||||||
// Read from config.h
|
// Read from config.h
|
||||||
const char* ssid = WIFI_SSID;
|
//const char* ssid = WIFI_SSID;
|
||||||
const char* password = WIFI_PASSWORD;
|
//const char* password = WIFI_PASSWORD;
|
||||||
// Create a new access point
|
// Create a new access point
|
||||||
// Replace with your desired network credentials
|
// Replace with your desired network credentials
|
||||||
const char* ssid_ap = "vulpes";
|
const char* ssid_ap = "vulpes";
|
||||||
|
@ -59,6 +59,9 @@ const char* PARAM_RUNNING = "programRunning";
|
||||||
const char* PARAM_STEPLENGTH = "inputStepLength";
|
const char* PARAM_STEPLENGTH = "inputStepLength";
|
||||||
const char* PARAM_CYCLEID = "inputCycleID";
|
const char* PARAM_CYCLEID = "inputCycleID";
|
||||||
const char* PARAM_NTRANS = "inputNtransmitters";
|
const char* PARAM_NTRANS = "inputNtransmitters";
|
||||||
|
const char* PARAM_NETWORK = "inputNetwork";
|
||||||
|
const char* PARAM_SSID = "inputSSID";
|
||||||
|
const char* PARAM_PASSWORD = "inputPassword";
|
||||||
|
|
||||||
// Global variables
|
// Global variables
|
||||||
int yourInputSend;
|
int yourInputSend;
|
||||||
|
@ -74,6 +77,9 @@ bool programRunning;
|
||||||
int yourInputStepLength;
|
int yourInputStepLength;
|
||||||
int yourInputCycleID;
|
int yourInputCycleID;
|
||||||
int yourInputNtransmitters;
|
int yourInputNtransmitters;
|
||||||
|
int yourInputNetwork;
|
||||||
|
String yourInputSSID;
|
||||||
|
String yourInputPassword;
|
||||||
long start_millis = 0;
|
long start_millis = 0;
|
||||||
long stop_millis = 0;
|
long stop_millis = 0;
|
||||||
long pause_until_millis = 0;
|
long pause_until_millis = 0;
|
||||||
|
@ -123,6 +129,7 @@ const char index_html[] PROGMEM = R"rawliteral(
|
||||||
// Fill in the other form fields
|
// Fill in the other form fields
|
||||||
document.getElementById("send-program").value = %inputSend%;
|
document.getElementById("send-program").value = %inputSend%;
|
||||||
document.getElementById("message").value = %inputMsg%;
|
document.getElementById("message").value = %inputMsg%;
|
||||||
|
document.getElementById("network").value = %inputNetwork%;
|
||||||
}
|
}
|
||||||
|
|
||||||
</script></head><body>
|
</script></head><body>
|
||||||
|
@ -177,6 +184,23 @@ const char index_html[] PROGMEM = R"rawliteral(
|
||||||
<input type="submit" value="Submit"">
|
<input type="submit" value="Submit"">
|
||||||
</form>
|
</form>
|
||||||
<iframe style="display:none" name="hidden-form" id="hidden-form"></iframe>
|
<iframe style="display:none" name="hidden-form" id="hidden-form"></iframe>
|
||||||
|
|
||||||
|
<br><hr>
|
||||||
|
<h2>Network Settings</h2>
|
||||||
|
<form action="/get2" accept-charset=utf-8>
|
||||||
|
<p>Network Access<br>
|
||||||
|
AP URL (http, not http<b>s</b>): <a href="http://192.168.0.1">http://192.168.0.1</a><br>
|
||||||
|
<select name="inputNetwork" id="network">
|
||||||
|
<option value="0">Access Point</option>
|
||||||
|
<option value="1">Existing Wireless Network</option>
|
||||||
|
</select><br>
|
||||||
|
Existing Network SSID: <input type="text" name="inputSSID" value = "%inputSSID%"><br>
|
||||||
|
Existing Network Password: <input type="password" name="inputPassword" value = "%inputPassword%"><br>
|
||||||
|
</p>
|
||||||
|
<input type="submit" value="Submit"">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<iframe style="display:none" name="hidden-form02" id="hidden-form02"></iframe>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -243,6 +267,15 @@ String processor(const String& var){
|
||||||
else if(var == "inputNtransmitters"){
|
else if(var == "inputNtransmitters"){
|
||||||
return readFile(SPIFFS, "/inputNtransmitters.txt");
|
return readFile(SPIFFS, "/inputNtransmitters.txt");
|
||||||
}
|
}
|
||||||
|
else if(var == "inputNetwork"){
|
||||||
|
return readFile(SPIFFS, "/inputNetwork.txt");
|
||||||
|
}
|
||||||
|
else if(var == "inputSSID"){
|
||||||
|
return readFile(SPIFFS, "/inputSSID.txt");
|
||||||
|
}
|
||||||
|
else if(var == "inputPassword"){
|
||||||
|
return readFile(SPIFFS, "/inputPassword.txt");
|
||||||
|
}
|
||||||
else if(var == "inputFloat"){
|
else if(var == "inputFloat"){
|
||||||
return readFile(SPIFFS, "/inputFloat.txt");
|
return readFile(SPIFFS, "/inputFloat.txt");
|
||||||
} else if(var == "inputStartTimeUnix"){
|
} else if(var == "inputStartTimeUnix"){
|
||||||
|
@ -331,6 +364,9 @@ void setup() {
|
||||||
yourInputStepLength = readFile(SPIFFS, "/inputStepLength.txt").toInt();
|
yourInputStepLength = readFile(SPIFFS, "/inputStepLength.txt").toInt();
|
||||||
yourInputCycleID = readFile(SPIFFS, "/inputCycleID.txt").toInt();
|
yourInputCycleID = readFile(SPIFFS, "/inputCycleID.txt").toInt();
|
||||||
yourInputNtransmitters = readFile(SPIFFS, "/inputNtransmitters.txt").toInt();
|
yourInputNtransmitters = readFile(SPIFFS, "/inputNtransmitters.txt").toInt();
|
||||||
|
yourInputNetwork = readFile(SPIFFS, "/inputNetwork.txt").toInt();
|
||||||
|
yourInputSSID = readFile(SPIFFS, "/inputSSID.txt");
|
||||||
|
yourInputPassword = readFile(SPIFFS, "/inputPassword.txt");
|
||||||
// Set WPM from saved value
|
// Set WPM from saved value
|
||||||
sender_blink.setWPM(yourInputWPM);
|
sender_blink.setWPM(yourInputWPM);
|
||||||
sender_key.setWPM(yourInputWPM);
|
sender_key.setWPM(yourInputWPM);
|
||||||
|
@ -358,18 +394,22 @@ void setup() {
|
||||||
}
|
}
|
||||||
|
|
||||||
WiFi.setHostname("vulpes");
|
WiFi.setHostname("vulpes");
|
||||||
if (network == 0){
|
if (yourInputNetwork == 1){
|
||||||
// Attach to existing wifi
|
// Attach to existing wifi
|
||||||
WiFi.mode(WIFI_STA);
|
WiFi.mode(WIFI_STA);
|
||||||
WiFi.begin(ssid, password);
|
const char* ssid_char = yourInputSSID.c_str();
|
||||||
|
const char* password_char = yourInputPassword.c_str();
|
||||||
|
WiFi.begin(ssid_char, password_char);
|
||||||
if (WiFi.waitForConnectResult() != WL_CONNECTED) {
|
if (WiFi.waitForConnectResult() != WL_CONNECTED) {
|
||||||
Serial.println("WiFi Failed!");
|
Serial.println("WiFi Failed!");
|
||||||
return;
|
// If you fail to connect, act as new access point
|
||||||
|
WiFi.softAPConfig(local_ip, gateway, subnet);
|
||||||
|
WiFi.softAP(ssid_ap, password_ap);
|
||||||
|
//return;
|
||||||
}
|
}
|
||||||
Serial.println();
|
|
||||||
Serial.print("IP Address: ");
|
Serial.print("IP Address: ");
|
||||||
Serial.println(WiFi.localIP());
|
Serial.println(WiFi.localIP());
|
||||||
} else if (network == 1){
|
} else if (yourInputNetwork == 0){
|
||||||
// Act as new access point
|
// Act as new access point
|
||||||
WiFi.softAPConfig(local_ip, gateway, subnet);
|
WiFi.softAPConfig(local_ip, gateway, subnet);
|
||||||
WiFi.softAP(ssid_ap, password_ap);
|
WiFi.softAP(ssid_ap, password_ap);
|
||||||
|
@ -382,6 +422,7 @@ void setup() {
|
||||||
request->send_P(200, "text/html", index_html, processor);
|
request->send_P(200, "text/html", index_html, processor);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Form 1
|
||||||
// Send a GET request to <ESP_IP>/get?inputCustomMsg=<inputMessage>
|
// Send a GET request to <ESP_IP>/get?inputCustomMsg=<inputMessage>
|
||||||
server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) {
|
server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) {
|
||||||
String inputMessage;
|
String inputMessage;
|
||||||
|
@ -528,6 +569,34 @@ void setup() {
|
||||||
// https://techtutorialsx.com/2018/01/14/esp32-arduino-http-server-external-and-internal-redirects/
|
// https://techtutorialsx.com/2018/01/14/esp32-arduino-http-server-external-and-internal-redirects/
|
||||||
request->redirect("/");
|
request->redirect("/");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Form 2
|
||||||
|
server.on("/get2", HTTP_GET, [] (AsyncWebServerRequest *request) {
|
||||||
|
String inputMessage;
|
||||||
|
/// GET inputNetwork value on <ESP_IP>/get2?inputNetwork=<inputMessage>
|
||||||
|
if (request->hasParam(PARAM_NETWORK)) {
|
||||||
|
inputMessage = request->getParam(PARAM_NETWORK)->value();
|
||||||
|
writeFile(SPIFFS, "/inputNetwork.txt", inputMessage.c_str());
|
||||||
|
yourInputNetwork = inputMessage.toInt();
|
||||||
|
Serial.println(yourInputNetwork);
|
||||||
|
}
|
||||||
|
/// GET inputSSID value on <ESP_IP>/get2?inputSSID=<inputMessage>
|
||||||
|
if (request->hasParam(PARAM_SSID)) {
|
||||||
|
inputMessage = request->getParam(PARAM_SSID)->value();
|
||||||
|
writeFile(SPIFFS, "/inputSSID.txt", inputMessage.c_str());
|
||||||
|
yourInputSSID = inputMessage;
|
||||||
|
Serial.println(yourInputSSID);
|
||||||
|
}
|
||||||
|
/// GET inputNetwork value on <ESP_IP>/get2?inputNetwork=<inputMessage>
|
||||||
|
if (request->hasParam(PARAM_PASSWORD)) {
|
||||||
|
inputMessage = request->getParam(PARAM_PASSWORD)->value();
|
||||||
|
writeFile(SPIFFS, "/inputPassword.txt", inputMessage.c_str());
|
||||||
|
yourInputPassword = inputMessage;
|
||||||
|
Serial.println(yourInputPassword);
|
||||||
|
}
|
||||||
|
request->redirect("/");
|
||||||
|
});
|
||||||
|
|
||||||
server.onNotFound(notFound);
|
server.onNotFound(notFound);
|
||||||
server.begin();
|
server.begin();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user