2018-11-26 16:02:08 +00:00
|
|
|
#include <DNSServer.h>
|
2017-10-20 09:49:54 +00:00
|
|
|
#include <ESPUI.h>
|
2017-05-19 23:32:31 +00:00
|
|
|
|
2018-11-26 16:02:08 +00:00
|
|
|
const byte DNS_PORT = 53;
|
|
|
|
IPAddress apIP(192, 168, 1, 1);
|
|
|
|
DNSServer dnsServer;
|
|
|
|
|
2017-12-01 16:11:16 +00:00
|
|
|
#if defined(ESP32)
|
2018-11-26 16:02:08 +00:00
|
|
|
#include <WiFi.h>
|
2017-12-01 16:11:16 +00:00
|
|
|
#else
|
2018-11-26 16:02:08 +00:00
|
|
|
#include <ESP8266WiFi.h>
|
2017-12-01 16:11:16 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
const char *ssid = "ESPUI";
|
2017-11-14 11:14:59 +00:00
|
|
|
const char *password = "";
|
2017-05-19 23:32:31 +00:00
|
|
|
|
2017-10-19 11:46:47 +00:00
|
|
|
long oldTime = 0;
|
2017-11-13 15:11:42 +00:00
|
|
|
bool switchi = false;
|
2017-10-19 11:46:47 +00:00
|
|
|
|
2018-11-26 17:25:10 +00:00
|
|
|
void numberCall(Control sender, int type) { Serial.println(sender.value); }
|
|
|
|
|
|
|
|
void textCall(Control sender, int type) { Serial.println(sender.value); }
|
|
|
|
|
2018-11-26 16:02:08 +00:00
|
|
|
void slider(Control sender, int type) { Serial.println(sender.value); }
|
2017-11-29 10:35:54 +00:00
|
|
|
|
2017-11-14 11:09:52 +00:00
|
|
|
void buttonCallback(Control sender, int type) {
|
2017-10-19 11:46:47 +00:00
|
|
|
switch (type) {
|
2018-11-26 16:02:08 +00:00
|
|
|
case B_DOWN:
|
|
|
|
Serial.println("Button DOWN");
|
|
|
|
break;
|
|
|
|
case B_UP:
|
|
|
|
Serial.println("Button UP");
|
|
|
|
break;
|
2017-10-19 11:46:47 +00:00
|
|
|
}
|
2017-10-17 09:55:25 +00:00
|
|
|
}
|
2017-10-19 11:46:47 +00:00
|
|
|
|
2017-11-14 11:09:52 +00:00
|
|
|
void buttonExample(Control sender, int type) {
|
2017-10-19 11:46:47 +00:00
|
|
|
switch (type) {
|
2018-11-26 16:02:08 +00:00
|
|
|
case B_DOWN:
|
|
|
|
Serial.println("Status: Start");
|
|
|
|
ESPUI.print(0, "Status: Start");
|
|
|
|
break;
|
|
|
|
case B_UP:
|
|
|
|
Serial.println("Status: Stop");
|
|
|
|
ESPUI.print(0, "Status: Stop");
|
|
|
|
break;
|
2017-10-19 11:46:47 +00:00
|
|
|
}
|
2017-10-17 09:55:25 +00:00
|
|
|
}
|
2017-11-14 11:09:52 +00:00
|
|
|
void padExample(Control sender, int value) {
|
2017-10-19 11:46:47 +00:00
|
|
|
switch (value) {
|
2018-11-26 16:02:08 +00:00
|
|
|
case P_LEFT_DOWN:
|
|
|
|
Serial.print("left down");
|
|
|
|
break;
|
|
|
|
case P_LEFT_UP:
|
|
|
|
Serial.print("left up");
|
|
|
|
break;
|
|
|
|
case P_RIGHT_DOWN:
|
|
|
|
Serial.print("right down");
|
|
|
|
break;
|
|
|
|
case P_RIGHT_UP:
|
|
|
|
Serial.print("right up");
|
|
|
|
break;
|
|
|
|
case P_FOR_DOWN:
|
|
|
|
Serial.print("for down");
|
|
|
|
break;
|
|
|
|
case P_FOR_UP:
|
|
|
|
Serial.print("for up");
|
|
|
|
break;
|
|
|
|
case P_BACK_DOWN:
|
|
|
|
Serial.print("back down");
|
|
|
|
break;
|
|
|
|
case P_BACK_UP:
|
|
|
|
Serial.print("back up");
|
|
|
|
break;
|
|
|
|
case P_CENTER_DOWN:
|
|
|
|
Serial.print("center down");
|
|
|
|
break;
|
|
|
|
case P_CENTER_UP:
|
|
|
|
Serial.print("center up");
|
|
|
|
break;
|
2017-10-19 15:39:31 +00:00
|
|
|
}
|
|
|
|
Serial.print(" ");
|
2017-11-14 11:09:52 +00:00
|
|
|
Serial.println(sender.id);
|
2017-10-19 15:39:31 +00:00
|
|
|
}
|
|
|
|
|
2017-11-14 11:09:52 +00:00
|
|
|
void switchExample(Control sender, int value) {
|
2017-10-19 15:39:31 +00:00
|
|
|
switch (value) {
|
2018-11-26 16:02:08 +00:00
|
|
|
case S_ACTIVE:
|
|
|
|
Serial.print("Active:");
|
|
|
|
break;
|
|
|
|
case S_INACTIVE:
|
|
|
|
Serial.print("Inactive");
|
|
|
|
break;
|
2017-10-19 15:39:31 +00:00
|
|
|
}
|
|
|
|
Serial.print(" ");
|
2017-11-14 11:09:52 +00:00
|
|
|
Serial.println(sender.id);
|
2017-10-19 15:39:31 +00:00
|
|
|
}
|
|
|
|
|
2017-11-14 11:09:52 +00:00
|
|
|
void otherSwitchExample(Control sender, int value) {
|
2017-10-19 15:39:31 +00:00
|
|
|
switch (value) {
|
2018-11-26 16:02:08 +00:00
|
|
|
case S_ACTIVE:
|
|
|
|
Serial.print("Active:");
|
|
|
|
break;
|
|
|
|
case S_INACTIVE:
|
|
|
|
Serial.print("Inactive");
|
|
|
|
break;
|
2017-10-19 11:46:47 +00:00
|
|
|
}
|
2017-10-19 15:39:31 +00:00
|
|
|
Serial.print(" ");
|
2017-11-14 11:09:52 +00:00
|
|
|
Serial.println(sender.id);
|
2017-05-19 23:32:31 +00:00
|
|
|
}
|
2018-01-08 11:25:36 +00:00
|
|
|
|
|
|
|
void setup(void) {
|
|
|
|
Serial.begin(115200);
|
|
|
|
WiFi.mode(WIFI_AP);
|
2018-11-26 16:02:08 +00:00
|
|
|
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
|
|
|
|
/*
|
2018-01-08 11:25:36 +00:00
|
|
|
#if defined(ESP32)
|
2018-11-26 16:02:08 +00:00
|
|
|
WiFi.setHostname(ssid);
|
2018-01-08 11:25:36 +00:00
|
|
|
#else
|
2018-11-26 16:02:08 +00:00
|
|
|
WiFi.hostname(ssid);
|
2018-01-08 11:25:36 +00:00
|
|
|
#endif
|
2018-11-26 16:02:08 +00:00
|
|
|
*/
|
2018-01-08 11:25:36 +00:00
|
|
|
|
|
|
|
WiFi.softAP(ssid);
|
|
|
|
// WiFi.softAP(ssid, password);
|
|
|
|
Serial.println("");
|
|
|
|
Serial.print("IP address: ");
|
|
|
|
Serial.println(WiFi.softAPIP());
|
|
|
|
|
|
|
|
// change the beginning to this if you want to join an existing network
|
|
|
|
/*
|
2018-05-27 08:43:47 +00:00
|
|
|
Serial.begin(115200);
|
|
|
|
WiFi.begin(ssid, password);
|
|
|
|
Serial.println("");
|
|
|
|
// Wait for connection
|
|
|
|
while (WiFi.status() != WL_CONNECTED) {
|
|
|
|
delay(500);
|
|
|
|
Serial.print(".");
|
|
|
|
}
|
|
|
|
Serial.println("");
|
|
|
|
Serial.print("IP address: ");
|
|
|
|
Serial.println(WiFi.localIP());
|
|
|
|
*/
|
2018-01-08 11:25:36 +00:00
|
|
|
|
|
|
|
ESPUI.label("Status:", COLOR_TURQUOISE, "Stop");
|
|
|
|
ESPUI.label("Millis:", COLOR_EMERALD, "0");
|
|
|
|
ESPUI.button("Push Button", &buttonCallback, COLOR_PETERRIVER);
|
|
|
|
ESPUI.button("Other Button", &buttonExample, COLOR_WETASPHALT, "Press");
|
|
|
|
ESPUI.pad("Pad with center", true, &padExample, COLOR_SUNFLOWER);
|
|
|
|
ESPUI.pad("Pad without center", false, &padExample, COLOR_CARROT);
|
|
|
|
ESPUI.switcher("Switch one", false, &switchExample, COLOR_ALIZARIN);
|
|
|
|
ESPUI.switcher("Switch two", true, &otherSwitchExample, COLOR_NONE);
|
|
|
|
ESPUI.slider("Slider one", &slider, COLOR_ALIZARIN, "30");
|
|
|
|
ESPUI.slider("Slider two", &slider, COLOR_NONE, "100");
|
2018-11-26 17:25:10 +00:00
|
|
|
ESPUI.text("Text Test:", &textCall, COLOR_ALIZARIN, "a Text Field");
|
|
|
|
ESPUI.number("Numbertest", &numberCall, COLOR_ALIZARIN, 5, 0, 10);
|
2018-01-08 11:25:36 +00:00
|
|
|
|
2018-05-27 09:47:53 +00:00
|
|
|
/*
|
|
|
|
.begin loads and serves all files from PROGMEM directly.
|
2018-12-26 12:38:38 +00:00
|
|
|
If you want to serve the files from SPIFFS use ESPUI.beginSPIFFS
|
2018-11-26 16:02:08 +00:00
|
|
|
(.prepareFileSystem has to be run in an empty sketch before)
|
2018-05-27 09:47:53 +00:00
|
|
|
*/
|
2018-11-26 17:25:10 +00:00
|
|
|
|
2018-11-26 16:02:08 +00:00
|
|
|
dnsServer.start(DNS_PORT, "*", apIP);
|
2018-12-26 12:38:38 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Optionally you can use HTTP BasicAuth. Keep in mind that this is NOT a
|
|
|
|
SECURE way of limiting access.
|
|
|
|
* Anyone who is able to sniff traffic will be able to intercept your password
|
|
|
|
since it is transmitted in cleartext ESPUI.begin("ESPUI Control", "myuser",
|
|
|
|
"mypassword");
|
|
|
|
*/
|
2018-05-27 08:43:47 +00:00
|
|
|
ESPUI.begin("ESPUI Control");
|
2018-01-08 11:25:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void loop(void) {
|
2018-11-26 16:02:08 +00:00
|
|
|
dnsServer.processNextRequest();
|
|
|
|
|
2018-01-08 11:25:36 +00:00
|
|
|
if (millis() - oldTime > 5000) {
|
|
|
|
ESPUI.print("Millis:", String(millis()));
|
|
|
|
switchi = !switchi;
|
|
|
|
ESPUI.updateSwitcher("Switch one", switchi);
|
|
|
|
oldTime = millis();
|
|
|
|
}
|
2018-11-26 16:02:08 +00:00
|
|
|
}
|