mirror of
https://github.com/s00500/ESPUI.git
synced 2024-11-24 17:30:55 +00:00
Reformat examples
Signed-off-by: Lukas Bachschwell <lukas@lbsfilm.at>
This commit is contained in:
parent
232ca3ead4
commit
3cbae2ff1b
@ -11,252 +11,278 @@ DNSServer dnsServer;
|
|||||||
#include <ESP8266WiFi.h>
|
#include <ESP8266WiFi.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *ssid = "ESPUI";
|
const char* ssid = "ESPUI";
|
||||||
const char *password = "espui";
|
const char* password = "espui";
|
||||||
const char *hostname = "espui";
|
const char* hostname = "espui";
|
||||||
|
|
||||||
uint16_t status;
|
uint16_t status;
|
||||||
uint16_t button1;
|
uint16_t button1;
|
||||||
uint16_t millisLabelId;
|
uint16_t millisLabelId;
|
||||||
uint16_t switchOne;
|
uint16_t switchOne;
|
||||||
|
|
||||||
void numberCall( Control* sender, int type ) {
|
void numberCall(Control* sender, int type)
|
||||||
Serial.println( sender->value );
|
{
|
||||||
|
Serial.println(sender->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void textCall(Control *sender, int type) {
|
void textCall(Control* sender, int type)
|
||||||
Serial.print("Text: ID: ");
|
{
|
||||||
Serial.print(sender->id);
|
Serial.print("Text: ID: ");
|
||||||
Serial.print(", Value: ");
|
Serial.print(sender->id);
|
||||||
Serial.println(sender->value);
|
Serial.print(", Value: ");
|
||||||
|
Serial.println(sender->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void slider(Control *sender, int type) {
|
void slider(Control* sender, int type)
|
||||||
Serial.print("Slider: ID: ");
|
{
|
||||||
Serial.print(sender->id);
|
Serial.print("Slider: ID: ");
|
||||||
Serial.print(", Value: ");
|
Serial.print(sender->id);
|
||||||
Serial.println(sender->value);
|
Serial.print(", Value: ");
|
||||||
|
Serial.println(sender->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void buttonCallback(Control *sender, int type) {
|
void buttonCallback(Control* sender, int type)
|
||||||
switch (type) {
|
{
|
||||||
case B_DOWN:
|
switch (type)
|
||||||
Serial.println("Button DOWN");
|
{
|
||||||
break;
|
case B_DOWN:
|
||||||
|
Serial.println("Button DOWN");
|
||||||
|
break;
|
||||||
|
|
||||||
case B_UP:
|
case B_UP:
|
||||||
Serial.println("Button UP");
|
Serial.println("Button UP");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void buttonExample(Control *sender, int type) {
|
void buttonExample(Control* sender, int type)
|
||||||
switch (type) {
|
{
|
||||||
case B_DOWN:
|
switch (type)
|
||||||
Serial.println("Status: Start");
|
{
|
||||||
ESPUI.updateControlValue(status, "Start");
|
case B_DOWN:
|
||||||
|
Serial.println("Status: Start");
|
||||||
|
ESPUI.updateControlValue(status, "Start");
|
||||||
|
|
||||||
ESPUI.getControl(button1)->color = ControlColor::Carrot;
|
ESPUI.getControl(button1)->color = ControlColor::Carrot;
|
||||||
ESPUI.updateControl(button1);
|
ESPUI.updateControl(button1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case B_UP:
|
case B_UP:
|
||||||
Serial.println("Status: Stop");
|
Serial.println("Status: Stop");
|
||||||
ESPUI.updateControlValue(status, "Stop");
|
ESPUI.updateControlValue(status, "Stop");
|
||||||
|
|
||||||
ESPUI.getControl(button1)->color = ControlColor::Peterriver;
|
ESPUI.getControl(button1)->color = ControlColor::Peterriver;
|
||||||
ESPUI.updateControl(button1);
|
ESPUI.updateControl(button1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void padExample(Control *sender, int value) {
|
void padExample(Control* sender, int value)
|
||||||
switch (value) {
|
{
|
||||||
case P_LEFT_DOWN:
|
switch (value)
|
||||||
Serial.print("left down");
|
{
|
||||||
break;
|
case P_LEFT_DOWN:
|
||||||
|
Serial.print("left down");
|
||||||
|
break;
|
||||||
|
|
||||||
case P_LEFT_UP:
|
case P_LEFT_UP:
|
||||||
Serial.print("left up");
|
Serial.print("left up");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_RIGHT_DOWN:
|
case P_RIGHT_DOWN:
|
||||||
Serial.print("right down");
|
Serial.print("right down");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_RIGHT_UP:
|
case P_RIGHT_UP:
|
||||||
Serial.print("right up");
|
Serial.print("right up");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_FOR_DOWN:
|
case P_FOR_DOWN:
|
||||||
Serial.print("for down");
|
Serial.print("for down");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_FOR_UP:
|
case P_FOR_UP:
|
||||||
Serial.print("for up");
|
Serial.print("for up");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_BACK_DOWN:
|
case P_BACK_DOWN:
|
||||||
Serial.print("back down");
|
Serial.print("back down");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_BACK_UP:
|
case P_BACK_UP:
|
||||||
Serial.print("back up");
|
Serial.print("back up");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_CENTER_DOWN:
|
case P_CENTER_DOWN:
|
||||||
Serial.print("center down");
|
Serial.print("center down");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_CENTER_UP:
|
case P_CENTER_UP:
|
||||||
Serial.print("center up");
|
Serial.print("center up");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Serial.print(" ");
|
Serial.print(" ");
|
||||||
Serial.println(sender->id);
|
Serial.println(sender->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void switchExample(Control *sender, int value) {
|
void switchExample(Control* sender, int value)
|
||||||
switch (value) {
|
{
|
||||||
case S_ACTIVE:
|
switch (value)
|
||||||
Serial.print("Active:");
|
{
|
||||||
break;
|
case S_ACTIVE:
|
||||||
|
Serial.print("Active:");
|
||||||
|
break;
|
||||||
|
|
||||||
case S_INACTIVE:
|
case S_INACTIVE:
|
||||||
Serial.print("Inactive");
|
Serial.print("Inactive");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Serial.print(" ");
|
Serial.print(" ");
|
||||||
Serial.println(sender->id);
|
Serial.println(sender->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void selectExample(Control *sender, int value) {
|
void selectExample(Control* sender, int value)
|
||||||
Serial.print("Select: ID: ");
|
{
|
||||||
Serial.print(sender->id);
|
Serial.print("Select: ID: ");
|
||||||
Serial.print(", Value: ");
|
Serial.print(sender->id);
|
||||||
Serial.println(sender->value);
|
Serial.print(", Value: ");
|
||||||
|
Serial.println(sender->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void otherSwitchExample(Control *sender, int value) {
|
void otherSwitchExample(Control* sender, int value)
|
||||||
switch (value) {
|
{
|
||||||
case S_ACTIVE:
|
switch (value)
|
||||||
Serial.print("Active:");
|
{
|
||||||
break;
|
case S_ACTIVE:
|
||||||
|
Serial.print("Active:");
|
||||||
|
break;
|
||||||
|
|
||||||
case S_INACTIVE:
|
case S_INACTIVE:
|
||||||
Serial.print("Inactive");
|
Serial.print("Inactive");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Serial.print(" ");
|
Serial.print(" ");
|
||||||
Serial.println(sender->id);
|
Serial.println(sender->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup(void) {
|
void setup(void)
|
||||||
ESPUI.setVerbosity(Verbosity::VerboseJSON);
|
{
|
||||||
Serial.begin(115200);
|
ESPUI.setVerbosity(Verbosity::VerboseJSON);
|
||||||
|
Serial.begin(115200);
|
||||||
|
|
||||||
#if defined(ESP32)
|
#if defined(ESP32)
|
||||||
WiFi.setHostname(hostname);
|
WiFi.setHostname(hostname);
|
||||||
#else
|
#else
|
||||||
WiFi.hostname(hostname);
|
WiFi.hostname(hostname);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// try to connect to existing network
|
// try to connect to existing network
|
||||||
WiFi.begin(ssid, password);
|
WiFi.begin(ssid, password);
|
||||||
Serial.print("\n\nTry to connect to existing network");
|
Serial.print("\n\nTry to connect to existing network");
|
||||||
|
|
||||||
{
|
{
|
||||||
uint8_t timeout = 10;
|
uint8_t timeout = 10;
|
||||||
|
|
||||||
// Wait for connection, 5s timeout
|
// Wait for connection, 5s timeout
|
||||||
do {
|
do
|
||||||
delay(500);
|
{
|
||||||
Serial.print(".");
|
delay(500);
|
||||||
timeout--;
|
Serial.print(".");
|
||||||
} while (timeout && WiFi.status() != WL_CONNECTED);
|
timeout--;
|
||||||
|
} while (timeout && WiFi.status() != WL_CONNECTED);
|
||||||
|
|
||||||
// not connected -> create hotspot
|
// not connected -> create hotspot
|
||||||
if (WiFi.status() != WL_CONNECTED) {
|
if (WiFi.status() != WL_CONNECTED)
|
||||||
Serial.print("\n\nCreating hotspot");
|
{
|
||||||
|
Serial.print("\n\nCreating hotspot");
|
||||||
|
|
||||||
WiFi.mode(WIFI_AP);
|
WiFi.mode(WIFI_AP);
|
||||||
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
|
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
|
||||||
WiFi.softAP(ssid);
|
WiFi.softAP(ssid);
|
||||||
|
|
||||||
timeout = 5;
|
timeout = 5;
|
||||||
|
|
||||||
do {
|
do
|
||||||
delay(500);
|
{
|
||||||
Serial.print(".");
|
delay(500);
|
||||||
timeout--;
|
Serial.print(".");
|
||||||
} while (timeout);
|
timeout--;
|
||||||
|
} while (timeout);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
dnsServer.start(DNS_PORT, "*", apIP);
|
dnsServer.start(DNS_PORT, "*", apIP);
|
||||||
|
|
||||||
Serial.println("\n\nWiFi parameters:");
|
Serial.println("\n\nWiFi parameters:");
|
||||||
Serial.print("Mode: ");
|
Serial.print("Mode: ");
|
||||||
Serial.println(WiFi.getMode() == WIFI_AP ? "Station" : "Client");
|
Serial.println(WiFi.getMode() == WIFI_AP ? "Station" : "Client");
|
||||||
Serial.print("IP address: ");
|
Serial.print("IP address: ");
|
||||||
Serial.println(WiFi.getMode() == WIFI_AP ? WiFi.softAPIP() : WiFi.localIP());
|
Serial.println(WiFi.getMode() == WIFI_AP ? WiFi.softAPIP() : WiFi.localIP());
|
||||||
|
|
||||||
status = ESPUI.addControl(ControlType::Label, "Status:", "Stop", ControlColor::Turquoise);
|
status = ESPUI.addControl(ControlType::Label, "Status:", "Stop", ControlColor::Turquoise);
|
||||||
|
|
||||||
uint16_t select1 = ESPUI.addControl(ControlType::Select, "Select:", "", ControlColor::Alizarin, Control::noParent, &selectExample);
|
uint16_t select1 = ESPUI.addControl(
|
||||||
|
ControlType::Select, "Select:", "", ControlColor::Alizarin, Control::noParent, &selectExample);
|
||||||
|
|
||||||
ESPUI.addControl(ControlType::Option, "Option1", "Opt1", ControlColor::Alizarin, select1);
|
ESPUI.addControl(ControlType::Option, "Option1", "Opt1", ControlColor::Alizarin, select1);
|
||||||
ESPUI.addControl(ControlType::Option, "Option2", "Opt2", ControlColor::Alizarin, select1);
|
ESPUI.addControl(ControlType::Option, "Option2", "Opt2", ControlColor::Alizarin, select1);
|
||||||
ESPUI.addControl(ControlType::Option, "Option3", "Opt3", ControlColor::Alizarin, select1);
|
ESPUI.addControl(ControlType::Option, "Option3", "Opt3", ControlColor::Alizarin, select1);
|
||||||
|
|
||||||
ESPUI.addControl(ControlType::Text, "Text Test:", "a Text Field", ControlColor::Alizarin, Control::noParent, &textCall);
|
ESPUI.addControl(
|
||||||
|
ControlType::Text, "Text Test:", "a Text Field", ControlColor::Alizarin, Control::noParent, &textCall);
|
||||||
|
|
||||||
millisLabelId = ESPUI.addControl(ControlType::Label, "Millis:", "0", ControlColor::Emerald, Control::noParent);
|
millisLabelId = ESPUI.addControl(ControlType::Label, "Millis:", "0", ControlColor::Emerald, Control::noParent);
|
||||||
button1 = ESPUI.addControl(ControlType::Button, "Push Button", "Press", ControlColor::Peterriver, Control::noParent, &buttonCallback);
|
button1 = ESPUI.addControl(
|
||||||
ESPUI.addControl(ControlType::Button, "Other Button", "Press", ControlColor::Wetasphalt, Control::noParent, &buttonExample);
|
ControlType::Button, "Push Button", "Press", ControlColor::Peterriver, Control::noParent, &buttonCallback);
|
||||||
ESPUI.addControl(ControlType::PadWithCenter, "Pad with center", "", ControlColor::Sunflower, Control::noParent, &padExample);
|
ESPUI.addControl(
|
||||||
ESPUI.addControl(ControlType::Pad, "Pad without center", "", ControlColor::Carrot, Control::noParent, &padExample);
|
ControlType::Button, "Other Button", "Press", ControlColor::Wetasphalt, Control::noParent, &buttonExample);
|
||||||
switchOne = ESPUI.addControl(ControlType::Switcher, "Switch one", "", ControlColor::Alizarin, Control::noParent, &switchExample);
|
ESPUI.addControl(
|
||||||
ESPUI.addControl(ControlType::Switcher, "Switch two", "", ControlColor::None, Control::noParent, &otherSwitchExample);
|
ControlType::PadWithCenter, "Pad with center", "", ControlColor::Sunflower, Control::noParent, &padExample);
|
||||||
ESPUI.addControl(ControlType::Slider, "Slider one", "30", ControlColor::Alizarin, Control::noParent, &slider);
|
ESPUI.addControl(ControlType::Pad, "Pad without center", "", ControlColor::Carrot, Control::noParent, &padExample);
|
||||||
ESPUI.addControl(ControlType::Slider, "Slider two", "100", ControlColor::Alizarin, Control::noParent, &slider);
|
switchOne = ESPUI.addControl(
|
||||||
ESPUI.addControl(ControlType::Number, "Number:", "50", ControlColor::Alizarin, Control::noParent, &numberCall);
|
ControlType::Switcher, "Switch one", "", ControlColor::Alizarin, Control::noParent, &switchExample);
|
||||||
|
ESPUI.addControl(
|
||||||
|
ControlType::Switcher, "Switch two", "", ControlColor::None, Control::noParent, &otherSwitchExample);
|
||||||
|
ESPUI.addControl(ControlType::Slider, "Slider one", "30", ControlColor::Alizarin, Control::noParent, &slider);
|
||||||
|
ESPUI.addControl(ControlType::Slider, "Slider two", "100", ControlColor::Alizarin, Control::noParent, &slider);
|
||||||
|
ESPUI.addControl(ControlType::Number, "Number:", "50", ControlColor::Alizarin, Control::noParent, &numberCall);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* .begin loads and serves all files from PROGMEM directly.
|
* .begin loads and serves all files from PROGMEM directly.
|
||||||
* If you want to serve the files from SPIFFS use ESPUI.beginSPIFFS
|
* If you want to serve the files from LITTLEFS use ESPUI.beginLITTLEFS
|
||||||
* (.prepareFileSystem has to be run in an empty sketch before)
|
* (.prepareFileSystem has to be run in an empty sketch before)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Enable this option if you want sliders to be continuous (update during move) and not discrete (update on stop)
|
// Enable this option if you want sliders to be continuous (update during move) and not discrete (update on stop)
|
||||||
// ESPUI.sliderContinuous = true;
|
// ESPUI.sliderContinuous = true;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Optionally you can use HTTP BasicAuth. Keep in mind that this is NOT a
|
* Optionally you can use HTTP BasicAuth. Keep in mind that this is NOT a
|
||||||
* SECURE way of limiting access.
|
* SECURE way of limiting access.
|
||||||
* Anyone who is able to sniff traffic will be able to intercept your password
|
* Anyone who is able to sniff traffic will be able to intercept your password
|
||||||
* since it is transmitted in cleartext. Just add a string as username and
|
* since it is transmitted in cleartext. Just add a string as username and
|
||||||
* password, for example begin("ESPUI Control", "username", "password")
|
* password, for example begin("ESPUI Control", "username", "password")
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
ESPUI.begin("ESPUI Control");
|
||||||
ESPUI.begin("ESPUI Control");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop(void) {
|
void loop(void)
|
||||||
dnsServer.processNextRequest();
|
{
|
||||||
|
dnsServer.processNextRequest();
|
||||||
|
|
||||||
static long oldTime = 0;
|
static long oldTime = 0;
|
||||||
static bool testSwitchState = false;
|
static bool testSwitchState = false;
|
||||||
|
|
||||||
if (millis() - oldTime > 5000) {
|
if (millis() - oldTime > 5000)
|
||||||
ESPUI.updateControlValue(millisLabelId, String(millis()));
|
{
|
||||||
testSwitchState = !testSwitchState;
|
ESPUI.updateControlValue(millisLabelId, String(millis()));
|
||||||
ESPUI.updateControlValue(switchOne, testSwitchState ? "1" : "0");
|
testSwitchState = !testSwitchState;
|
||||||
|
ESPUI.updateControlValue(switchOne, testSwitchState ? "1" : "0");
|
||||||
|
|
||||||
oldTime = millis();
|
oldTime = millis();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,238 +11,258 @@ DNSServer dnsServer;
|
|||||||
#include <ESP8266WiFi.h>
|
#include <ESP8266WiFi.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *ssid = "ESPUI";
|
const char* ssid = "ESPUI";
|
||||||
const char *password = "espui";
|
const char* password = "espui";
|
||||||
|
|
||||||
const char *hostname = "espui";
|
const char* hostname = "espui";
|
||||||
|
|
||||||
int statusLabelId;
|
int statusLabelId;
|
||||||
int graphId;
|
int graphId;
|
||||||
int millisLabelId;
|
int millisLabelId;
|
||||||
int testSwitchId;
|
int testSwitchId;
|
||||||
|
|
||||||
void numberCall(Control *sender, int type) { Serial.println(sender->value); }
|
void numberCall(Control* sender, int type)
|
||||||
|
{
|
||||||
void textCall(Control *sender, int type) {
|
Serial.println(sender->value);
|
||||||
Serial.print("Text: ID: ");
|
|
||||||
Serial.print(sender->id);
|
|
||||||
Serial.print(", Value: ");
|
|
||||||
Serial.println(sender->value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void slider(Control *sender, int type) {
|
void textCall(Control* sender, int type)
|
||||||
Serial.print("Slider: ID: ");
|
{
|
||||||
Serial.print(sender->id);
|
Serial.print("Text: ID: ");
|
||||||
Serial.print(", Value: ");
|
Serial.print(sender->id);
|
||||||
Serial.println(sender->value);
|
Serial.print(", Value: ");
|
||||||
// Like all Control Values in ESPUI slider values are Strings. To use them as int simply do this:
|
Serial.println(sender->value);
|
||||||
int sliderValueWithOffset = sender->value.toInt() + 100;
|
|
||||||
Serial.print("SliderValue with offset");
|
|
||||||
Serial.println(sliderValueWithOffset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void buttonCallback(Control *sender, int type) {
|
void slider(Control* sender, int type)
|
||||||
switch (type) {
|
{
|
||||||
case B_DOWN:
|
Serial.print("Slider: ID: ");
|
||||||
Serial.println("Button DOWN");
|
Serial.print(sender->id);
|
||||||
break;
|
Serial.print(", Value: ");
|
||||||
|
Serial.println(sender->value);
|
||||||
case B_UP:
|
// Like all Control Values in ESPUI slider values are Strings. To use them as int simply do this:
|
||||||
Serial.println("Button UP");
|
int sliderValueWithOffset = sender->value.toInt() + 100;
|
||||||
break;
|
Serial.print("SliderValue with offset");
|
||||||
}
|
Serial.println(sliderValueWithOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
void buttonExample(Control *sender, int type) {
|
void buttonCallback(Control* sender, int type)
|
||||||
switch (type) {
|
{
|
||||||
case B_DOWN:
|
switch (type)
|
||||||
Serial.println("Status: Start");
|
{
|
||||||
ESPUI.print(statusLabelId, "Start");
|
case B_DOWN:
|
||||||
break;
|
Serial.println("Button DOWN");
|
||||||
|
break;
|
||||||
|
|
||||||
case B_UP:
|
case B_UP:
|
||||||
Serial.println("Status: Stop");
|
Serial.println("Button UP");
|
||||||
ESPUI.print(statusLabelId, "Stop");
|
break;
|
||||||
break;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
void padExample(Control *sender, int value) {
|
|
||||||
switch (value) {
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
Serial.print(" ");
|
|
||||||
Serial.println(sender->id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void switchExample(Control *sender, int value) {
|
void buttonExample(Control* sender, int type)
|
||||||
switch (value) {
|
{
|
||||||
case S_ACTIVE:
|
switch (type)
|
||||||
Serial.print("Active:");
|
{
|
||||||
break;
|
case B_DOWN:
|
||||||
|
Serial.println("Status: Start");
|
||||||
|
ESPUI.print(statusLabelId, "Start");
|
||||||
|
break;
|
||||||
|
|
||||||
case S_INACTIVE:
|
case B_UP:
|
||||||
Serial.print("Inactive");
|
Serial.println("Status: Stop");
|
||||||
break;
|
ESPUI.print(statusLabelId, "Stop");
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void padExample(Control* sender, int value)
|
||||||
|
{
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
case P_LEFT_DOWN:
|
||||||
|
Serial.print("left down");
|
||||||
|
break;
|
||||||
|
|
||||||
Serial.print(" ");
|
case P_LEFT_UP:
|
||||||
Serial.println(sender->id);
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.print(" ");
|
||||||
|
Serial.println(sender->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void otherSwitchExample(Control *sender, int value) {
|
void switchExample(Control* sender, int value)
|
||||||
switch (value) {
|
{
|
||||||
case S_ACTIVE:
|
switch (value)
|
||||||
Serial.print("Active:");
|
{
|
||||||
break;
|
case S_ACTIVE:
|
||||||
|
Serial.print("Active:");
|
||||||
|
break;
|
||||||
|
|
||||||
case S_INACTIVE:
|
case S_INACTIVE:
|
||||||
Serial.print("Inactive");
|
Serial.print("Inactive");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Serial.print(" ");
|
Serial.print(" ");
|
||||||
Serial.println(sender->id);
|
Serial.println(sender->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup(void) {
|
void otherSwitchExample(Control* sender, int value)
|
||||||
ESPUI.setVerbosity(Verbosity::VerboseJSON);
|
{
|
||||||
Serial.begin(115200);
|
switch (value)
|
||||||
|
{
|
||||||
|
case S_ACTIVE:
|
||||||
|
Serial.print("Active:");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case S_INACTIVE:
|
||||||
|
Serial.print("Inactive");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.print(" ");
|
||||||
|
Serial.println(sender->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup(void)
|
||||||
|
{
|
||||||
|
ESPUI.setVerbosity(Verbosity::VerboseJSON);
|
||||||
|
Serial.begin(115200);
|
||||||
|
|
||||||
#if defined(ESP32)
|
#if defined(ESP32)
|
||||||
WiFi.setHostname(hostname);
|
WiFi.setHostname(hostname);
|
||||||
#else
|
#else
|
||||||
WiFi.hostname(hostname);
|
WiFi.hostname(hostname);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// try to connect to existing network
|
// try to connect to existing network
|
||||||
WiFi.begin(ssid, password);
|
WiFi.begin(ssid, password);
|
||||||
Serial.print("\n\nTry to connect to existing network");
|
Serial.print("\n\nTry to connect to existing network");
|
||||||
|
|
||||||
{
|
{
|
||||||
uint8_t timeout = 10;
|
uint8_t timeout = 10;
|
||||||
|
|
||||||
// Wait for connection, 5s timeout
|
// Wait for connection, 5s timeout
|
||||||
do {
|
do
|
||||||
delay(500);
|
{
|
||||||
Serial.print(".");
|
delay(500);
|
||||||
timeout--;
|
Serial.print(".");
|
||||||
} while (timeout && WiFi.status() != WL_CONNECTED);
|
timeout--;
|
||||||
|
} while (timeout && WiFi.status() != WL_CONNECTED);
|
||||||
|
|
||||||
// not connected -> create hotspot
|
// not connected -> create hotspot
|
||||||
if (WiFi.status() != WL_CONNECTED) {
|
if (WiFi.status() != WL_CONNECTED)
|
||||||
Serial.print("\n\nCreating hotspot");
|
{
|
||||||
|
Serial.print("\n\nCreating hotspot");
|
||||||
|
|
||||||
WiFi.mode(WIFI_AP);
|
WiFi.mode(WIFI_AP);
|
||||||
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
|
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
|
||||||
WiFi.softAP(ssid);
|
WiFi.softAP(ssid);
|
||||||
|
|
||||||
timeout = 5;
|
timeout = 5;
|
||||||
|
|
||||||
do {
|
do
|
||||||
delay(500);
|
{
|
||||||
Serial.print(".");
|
delay(500);
|
||||||
timeout--;
|
Serial.print(".");
|
||||||
} while (timeout);
|
timeout--;
|
||||||
|
} while (timeout);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
dnsServer.start(DNS_PORT, "*", apIP);
|
dnsServer.start(DNS_PORT, "*", apIP);
|
||||||
|
|
||||||
Serial.println("\n\nWiFi parameters:");
|
Serial.println("\n\nWiFi parameters:");
|
||||||
Serial.print("Mode: ");
|
Serial.print("Mode: ");
|
||||||
Serial.println(WiFi.getMode() == WIFI_AP ? "Station" : "Client");
|
Serial.println(WiFi.getMode() == WIFI_AP ? "Station" : "Client");
|
||||||
Serial.print("IP address: ");
|
Serial.print("IP address: ");
|
||||||
Serial.println(WiFi.getMode() == WIFI_AP ? WiFi.softAPIP() : WiFi.localIP());
|
Serial.println(WiFi.getMode() == WIFI_AP ? WiFi.softAPIP() : WiFi.localIP());
|
||||||
|
|
||||||
statusLabelId = ESPUI.label("Status:", ControlColor::Turquoise, "Stop");
|
statusLabelId = ESPUI.label("Status:", ControlColor::Turquoise, "Stop");
|
||||||
millisLabelId = ESPUI.label("Millis:", ControlColor::Emerald, "0");
|
millisLabelId = ESPUI.label("Millis:", ControlColor::Emerald, "0");
|
||||||
ESPUI.button("Push Button", &buttonCallback, ControlColor::Peterriver, "Press");
|
ESPUI.button("Push Button", &buttonCallback, ControlColor::Peterriver, "Press");
|
||||||
ESPUI.button("Other Button", &buttonExample, ControlColor::Wetasphalt, "Press");
|
ESPUI.button("Other Button", &buttonExample, ControlColor::Wetasphalt, "Press");
|
||||||
ESPUI.padWithCenter("Pad with center", &padExample, ControlColor::Sunflower);
|
ESPUI.padWithCenter("Pad with center", &padExample, ControlColor::Sunflower);
|
||||||
ESPUI.pad("Pad without center", &padExample, ControlColor::Carrot);
|
ESPUI.pad("Pad without center", &padExample, ControlColor::Carrot);
|
||||||
testSwitchId = ESPUI.switcher("Switch one", &switchExample, ControlColor::Alizarin, false);
|
testSwitchId = ESPUI.switcher("Switch one", &switchExample, ControlColor::Alizarin, false);
|
||||||
ESPUI.switcher("Switch two", &otherSwitchExample, ControlColor::None, true);
|
ESPUI.switcher("Switch two", &otherSwitchExample, ControlColor::None, true);
|
||||||
ESPUI.slider("Slider one", &slider, ControlColor::Alizarin, 30);
|
ESPUI.slider("Slider one", &slider, ControlColor::Alizarin, 30);
|
||||||
ESPUI.slider("Slider two", &slider, ControlColor::None, 100);
|
ESPUI.slider("Slider two", &slider, ControlColor::None, 100);
|
||||||
ESPUI.text("Text Test:", &textCall, ControlColor::Alizarin, "a Text Field");
|
ESPUI.text("Text Test:", &textCall, ControlColor::Alizarin, "a Text Field");
|
||||||
ESPUI.number("Numbertest", &numberCall, ControlColor::Alizarin, 5, 0, 10);
|
ESPUI.number("Numbertest", &numberCall, ControlColor::Alizarin, 5, 0, 10);
|
||||||
|
|
||||||
graphId = ESPUI.graph("Graph Test", ControlColor::Wetasphalt);
|
graphId = ESPUI.graph("Graph Test", ControlColor::Wetasphalt);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* .begin loads and serves all files from PROGMEM directly.
|
* .begin loads and serves all files from PROGMEM directly.
|
||||||
* If you want to serve the files from SPIFFS use ESPUI.beginSPIFFS
|
* If you want to serve the files from LITTLEFS use ESPUI.beginLITTLEFS
|
||||||
* (.prepareFileSystem has to be run in an empty sketch before)
|
* (.prepareFileSystem has to be run in an empty sketch before)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Enable this option if you want sliders to be continuous (update during move) and not discrete (update on stop)
|
|
||||||
// ESPUI.sliderContinuous = true;
|
|
||||||
|
|
||||||
/*
|
// Enable this option if you want sliders to be continuous (update during move) and not discrete (update on stop)
|
||||||
* Optionally you can use HTTP BasicAuth. Keep in mind that this is NOT a
|
// ESPUI.sliderContinuous = true;
|
||||||
* 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. Just add a string as username and
|
|
||||||
* password, for example begin("ESPUI Control", "username", "password")
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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. Just add a string as username and
|
||||||
|
* password, for example begin("ESPUI Control", "username", "password")
|
||||||
|
*/
|
||||||
|
|
||||||
ESPUI.begin("ESPUI Control");
|
ESPUI.begin("ESPUI Control");
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop(void) {
|
void loop(void)
|
||||||
dnsServer.processNextRequest();
|
{
|
||||||
|
dnsServer.processNextRequest();
|
||||||
|
|
||||||
static long oldTime = 0;
|
static long oldTime = 0;
|
||||||
static bool testSwitchState = false;
|
static bool testSwitchState = false;
|
||||||
|
|
||||||
if (millis() - oldTime > 5000) {
|
if (millis() - oldTime > 5000)
|
||||||
ESPUI.print(millisLabelId, String(millis()));
|
{
|
||||||
|
ESPUI.print(millisLabelId, String(millis()));
|
||||||
|
|
||||||
ESPUI.addGraphPoint(graphId, random(1, 50));
|
ESPUI.addGraphPoint(graphId, random(1, 50));
|
||||||
|
|
||||||
testSwitchState = !testSwitchState;
|
testSwitchState = !testSwitchState;
|
||||||
ESPUI.updateSwitcher(testSwitchId, testSwitchState);
|
ESPUI.updateSwitcher(testSwitchId, testSwitchState);
|
||||||
|
|
||||||
oldTime = millis();
|
oldTime = millis();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include <ESPUI.h>
|
#include <ESPUI.h>
|
||||||
|
|
||||||
const byte DNS_PORT = 53;
|
const byte DNS_PORT = 53;
|
||||||
IPAddress apIP( 192, 168, 1, 1 );
|
IPAddress apIP(192, 168, 1, 1);
|
||||||
DNSServer dnsServer;
|
DNSServer dnsServer;
|
||||||
|
|
||||||
#if defined(ESP32)
|
#if defined(ESP32)
|
||||||
@ -19,244 +19,267 @@ uint16_t button1;
|
|||||||
uint16_t switchOne;
|
uint16_t switchOne;
|
||||||
uint16_t status;
|
uint16_t status;
|
||||||
|
|
||||||
void numberCall( Control* sender, int type ) {
|
void numberCall(Control* sender, int type)
|
||||||
Serial.println( sender->value );
|
{
|
||||||
|
Serial.println(sender->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void textCall( Control* sender, int type ) {
|
void textCall(Control* sender, int type)
|
||||||
Serial.print("Text: ID: ");
|
{
|
||||||
Serial.print(sender->id);
|
Serial.print("Text: ID: ");
|
||||||
Serial.print(", Value: ");
|
Serial.print(sender->id);
|
||||||
Serial.println( sender->value );}
|
Serial.print(", Value: ");
|
||||||
|
Serial.println(sender->value);
|
||||||
|
}
|
||||||
|
|
||||||
void slider( Control* sender, int type ) {
|
void slider(Control* sender, int type)
|
||||||
Serial.print("Slider: ID: ");
|
{
|
||||||
Serial.print(sender->id);
|
Serial.print("Slider: ID: ");
|
||||||
Serial.print(", Value: ");
|
Serial.print(sender->id);
|
||||||
Serial.println( sender->value );}
|
Serial.print(", Value: ");
|
||||||
|
Serial.println(sender->value);
|
||||||
|
}
|
||||||
|
|
||||||
void buttonCallback( Control* sender, int type ) {
|
void buttonCallback(Control* sender, int type)
|
||||||
switch ( type ) {
|
{
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
case B_DOWN:
|
case B_DOWN:
|
||||||
Serial.println( "Button DOWN" );
|
Serial.println("Button DOWN");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case B_UP:
|
case B_UP:
|
||||||
Serial.println( "Button UP" );
|
Serial.println("Button UP");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void buttonExample( Control* sender, int type ) {
|
void buttonExample(Control* sender, int type)
|
||||||
switch ( type ) {
|
{
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
case B_DOWN:
|
case B_DOWN:
|
||||||
Serial.println( "Status: Start" );
|
Serial.println("Status: Start");
|
||||||
ESPUI.updateControlValue( status, "Start" );
|
ESPUI.updateControlValue(status, "Start");
|
||||||
|
|
||||||
ESPUI.getControl( button1 )->color = ControlColor::Carrot;
|
ESPUI.getControl(button1)->color = ControlColor::Carrot;
|
||||||
ESPUI.updateControl( button1 );
|
ESPUI.updateControl(button1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case B_UP:
|
case B_UP:
|
||||||
Serial.println( "Status: Stop" );
|
Serial.println("Status: Stop");
|
||||||
ESPUI.updateControlValue( status, "Stop" );
|
ESPUI.updateControlValue(status, "Stop");
|
||||||
|
|
||||||
ESPUI.getControl( button1 )->color = ControlColor::Peterriver;
|
ESPUI.getControl(button1)->color = ControlColor::Peterriver;
|
||||||
ESPUI.updateControl( button1 );
|
ESPUI.updateControl(button1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void padExample( Control* sender, int value ) {
|
void padExample(Control* sender, int value)
|
||||||
switch ( value ) {
|
{
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
case P_LEFT_DOWN:
|
case P_LEFT_DOWN:
|
||||||
Serial.print( "left down" );
|
Serial.print("left down");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_LEFT_UP:
|
case P_LEFT_UP:
|
||||||
Serial.print( "left up" );
|
Serial.print("left up");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_RIGHT_DOWN:
|
case P_RIGHT_DOWN:
|
||||||
Serial.print( "right down" );
|
Serial.print("right down");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_RIGHT_UP:
|
case P_RIGHT_UP:
|
||||||
Serial.print( "right up" );
|
Serial.print("right up");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_FOR_DOWN:
|
case P_FOR_DOWN:
|
||||||
Serial.print( "for down" );
|
Serial.print("for down");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_FOR_UP:
|
case P_FOR_UP:
|
||||||
Serial.print( "for up" );
|
Serial.print("for up");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_BACK_DOWN:
|
case P_BACK_DOWN:
|
||||||
Serial.print( "back down" );
|
Serial.print("back down");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_BACK_UP:
|
case P_BACK_UP:
|
||||||
Serial.print( "back up" );
|
Serial.print("back up");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_CENTER_DOWN:
|
case P_CENTER_DOWN:
|
||||||
Serial.print( "center down" );
|
Serial.print("center down");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case P_CENTER_UP:
|
case P_CENTER_UP:
|
||||||
Serial.print( "center up" );
|
Serial.print("center up");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Serial.print( " " );
|
Serial.print(" ");
|
||||||
Serial.println( sender->id );
|
Serial.println(sender->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void switchExample( Control* sender, int value ) {
|
void switchExample(Control* sender, int value)
|
||||||
switch ( value ) {
|
{
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
case S_ACTIVE:
|
case S_ACTIVE:
|
||||||
Serial.print( "Active:" );
|
Serial.print("Active:");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case S_INACTIVE:
|
case S_INACTIVE:
|
||||||
Serial.print( "Inactive" );
|
Serial.print("Inactive");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Serial.print( " " );
|
Serial.print(" ");
|
||||||
Serial.println( sender->id );
|
Serial.println(sender->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void selectExample( Control* sender, int value ) {
|
void selectExample(Control* sender, int value)
|
||||||
Serial.print("Select: ID: ");
|
{
|
||||||
Serial.print(sender->id);
|
Serial.print("Select: ID: ");
|
||||||
Serial.print(", Value: ");
|
Serial.print(sender->id);
|
||||||
Serial.println( sender->value );
|
Serial.print(", Value: ");
|
||||||
|
Serial.println(sender->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void otherSwitchExample( Control* sender, int value ) {
|
void otherSwitchExample(Control* sender, int value)
|
||||||
switch ( value ) {
|
{
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
case S_ACTIVE:
|
case S_ACTIVE:
|
||||||
Serial.print( "Active:" );
|
Serial.print("Active:");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case S_INACTIVE:
|
case S_INACTIVE:
|
||||||
Serial.print( "Inactive" );
|
Serial.print("Inactive");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Serial.print( " " );
|
Serial.print(" ");
|
||||||
Serial.println( sender->id );
|
Serial.println(sender->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup( void ) {
|
void setup(void)
|
||||||
Serial.begin( 115200 );
|
{
|
||||||
|
Serial.begin(115200);
|
||||||
|
|
||||||
#if defined(ESP32)
|
#if defined(ESP32)
|
||||||
WiFi.setHostname( hostname );
|
WiFi.setHostname(hostname);
|
||||||
#else
|
#else
|
||||||
WiFi.hostname( hostname );
|
WiFi.hostname(hostname);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// try to connect to existing network
|
// try to connect to existing network
|
||||||
WiFi.begin( ssid, password );
|
WiFi.begin(ssid, password);
|
||||||
Serial.print( "\n\nTry to connect to existing network" );
|
Serial.print("\n\nTry to connect to existing network");
|
||||||
|
|
||||||
{
|
{
|
||||||
uint8_t timeout = 10;
|
uint8_t timeout = 10;
|
||||||
|
|
||||||
// Wait for connection, 5s timeout
|
// Wait for connection, 5s timeout
|
||||||
do {
|
do
|
||||||
delay( 500 );
|
{
|
||||||
Serial.print( "." );
|
delay(500);
|
||||||
timeout--;
|
Serial.print(".");
|
||||||
} while ( timeout && WiFi.status() != WL_CONNECTED );
|
timeout--;
|
||||||
|
} while (timeout && WiFi.status() != WL_CONNECTED);
|
||||||
|
|
||||||
// not connected -> create hotspot
|
// not connected -> create hotspot
|
||||||
if ( WiFi.status() != WL_CONNECTED ) {
|
if (WiFi.status() != WL_CONNECTED)
|
||||||
Serial.print( "\n\nCreating hotspot" );
|
{
|
||||||
|
Serial.print("\n\nCreating hotspot");
|
||||||
|
|
||||||
WiFi.mode( WIFI_AP );
|
WiFi.mode(WIFI_AP);
|
||||||
WiFi.softAPConfig( apIP, apIP, IPAddress( 255, 255, 255, 0 ) );
|
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
|
||||||
WiFi.softAP( ssid );
|
WiFi.softAP(ssid);
|
||||||
|
|
||||||
timeout = 5;
|
timeout = 5;
|
||||||
|
|
||||||
do {
|
do
|
||||||
delay( 500 );
|
{
|
||||||
Serial.print( "." );
|
delay(500);
|
||||||
timeout--;
|
Serial.print(".");
|
||||||
} while ( timeout );
|
timeout--;
|
||||||
|
} while (timeout);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
dnsServer.start( DNS_PORT, "*", apIP );
|
dnsServer.start(DNS_PORT, "*", apIP);
|
||||||
|
|
||||||
Serial.println( "\n\nWiFi parameters:" );
|
Serial.println("\n\nWiFi parameters:");
|
||||||
Serial.print( "Mode: " );
|
Serial.print("Mode: ");
|
||||||
Serial.println( WiFi.getMode() == WIFI_AP ? "Station" : "Client" );
|
Serial.println(WiFi.getMode() == WIFI_AP ? "Station" : "Client");
|
||||||
Serial.print( "IP address: " );
|
Serial.print("IP address: ");
|
||||||
Serial.println( WiFi.getMode() == WIFI_AP ? WiFi.softAPIP() : WiFi.localIP() );
|
Serial.println(WiFi.getMode() == WIFI_AP ? WiFi.softAPIP() : WiFi.localIP());
|
||||||
|
|
||||||
uint16_t tab1 = ESPUI.addControl( ControlType::Tab, "Settings 1", "Settings 1" );
|
uint16_t tab1 = ESPUI.addControl(ControlType::Tab, "Settings 1", "Settings 1");
|
||||||
uint16_t tab2 = ESPUI.addControl( ControlType::Tab, "Settings 2", "Settings 2" );
|
uint16_t tab2 = ESPUI.addControl(ControlType::Tab, "Settings 2", "Settings 2");
|
||||||
uint16_t tab3 = ESPUI.addControl( ControlType::Tab, "Settings 3", "Settings 3" );
|
uint16_t tab3 = ESPUI.addControl(ControlType::Tab, "Settings 3", "Settings 3");
|
||||||
|
|
||||||
// shown above all tabs
|
// shown above all tabs
|
||||||
status = ESPUI.addControl( ControlType::Label, "Status:", "Stop", ControlColor::Turquoise );
|
status = ESPUI.addControl(ControlType::Label, "Status:", "Stop", ControlColor::Turquoise);
|
||||||
|
|
||||||
uint16_t select1 = ESPUI.addControl( ControlType::Select, "Select:", "", ControlColor::Alizarin, tab1, &selectExample );
|
uint16_t select1
|
||||||
ESPUI.addControl( ControlType::Option, "Option1", "Opt1", ControlColor::Alizarin, select1 );
|
= ESPUI.addControl(ControlType::Select, "Select:", "", ControlColor::Alizarin, tab1, &selectExample);
|
||||||
ESPUI.addControl( ControlType::Option, "Option2", "Opt2", ControlColor::Alizarin, select1 );
|
ESPUI.addControl(ControlType::Option, "Option1", "Opt1", ControlColor::Alizarin, select1);
|
||||||
ESPUI.addControl( ControlType::Option, "Option3", "Opt3", ControlColor::Alizarin, select1 );
|
ESPUI.addControl(ControlType::Option, "Option2", "Opt2", ControlColor::Alizarin, select1);
|
||||||
|
ESPUI.addControl(ControlType::Option, "Option3", "Opt3", ControlColor::Alizarin, select1);
|
||||||
ESPUI.addControl( ControlType::Text, "Text Test:", "a Text Field", ControlColor::Alizarin, tab1, &textCall );
|
|
||||||
|
|
||||||
// tabbed controls
|
ESPUI.addControl(ControlType::Text, "Text Test:", "a Text Field", ControlColor::Alizarin, tab1, &textCall);
|
||||||
ESPUI.addControl( ControlType::Label, "Millis:", "0", ControlColor::Emerald, tab1 );
|
|
||||||
button1 = ESPUI.addControl( ControlType::Button, "Push Button", "Press", ControlColor::Peterriver, tab1, &buttonCallback );
|
|
||||||
ESPUI.addControl( ControlType::Button, "Other Button", "Press", ControlColor::Wetasphalt, tab1, &buttonExample );
|
|
||||||
ESPUI.addControl( ControlType::PadWithCenter, "Pad with center", "", ControlColor::Sunflower, tab2, &padExample );
|
|
||||||
ESPUI.addControl( ControlType::Pad, "Pad without center", "", ControlColor::Carrot, tab3, &padExample );
|
|
||||||
switchOne = ESPUI.addControl( ControlType::Switcher, "Switch one", "", ControlColor::Alizarin, tab3, &switchExample );
|
|
||||||
ESPUI.addControl( ControlType::Switcher, "Switch two", "", ControlColor::None, tab3, &otherSwitchExample );
|
|
||||||
ESPUI.addControl( ControlType::Slider, "Slider one", "30", ControlColor::Alizarin, tab1, &slider );
|
|
||||||
ESPUI.addControl( ControlType::Slider, "Slider two", "100", ControlColor::Alizarin, tab3, &slider );
|
|
||||||
ESPUI.addControl( ControlType::Number, "Number:", "50", ControlColor::Alizarin, tab3, &numberCall );
|
|
||||||
|
|
||||||
/*
|
// tabbed controls
|
||||||
* .begin loads and serves all files from PROGMEM directly.
|
ESPUI.addControl(ControlType::Label, "Millis:", "0", ControlColor::Emerald, tab1);
|
||||||
* If you want to serve the files from SPIFFS use ESPUI.beginSPIFFS
|
button1 = ESPUI.addControl(
|
||||||
* (.prepareFileSystem has to be run in an empty sketch before)
|
ControlType::Button, "Push Button", "Press", ControlColor::Peterriver, tab1, &buttonCallback);
|
||||||
*/
|
ESPUI.addControl(ControlType::Button, "Other Button", "Press", ControlColor::Wetasphalt, tab1, &buttonExample);
|
||||||
|
ESPUI.addControl(ControlType::PadWithCenter, "Pad with center", "", ControlColor::Sunflower, tab2, &padExample);
|
||||||
|
ESPUI.addControl(ControlType::Pad, "Pad without center", "", ControlColor::Carrot, tab3, &padExample);
|
||||||
|
switchOne = ESPUI.addControl(ControlType::Switcher, "Switch one", "", ControlColor::Alizarin, tab3, &switchExample);
|
||||||
|
ESPUI.addControl(ControlType::Switcher, "Switch two", "", ControlColor::None, tab3, &otherSwitchExample);
|
||||||
|
ESPUI.addControl(ControlType::Slider, "Slider one", "30", ControlColor::Alizarin, tab1, &slider);
|
||||||
|
ESPUI.addControl(ControlType::Slider, "Slider two", "100", ControlColor::Alizarin, tab3, &slider);
|
||||||
|
ESPUI.addControl(ControlType::Number, "Number:", "50", ControlColor::Alizarin, tab3, &numberCall);
|
||||||
|
|
||||||
// Enable this option if you want sliders to be continuous (update during move) and not discrete (update on stop)
|
/*
|
||||||
// ESPUI.sliderContinuous = true;
|
* .begin loads and serves all files from PROGMEM directly.
|
||||||
|
* If you want to serve the files from LITTLEFS use ESPUI.beginLITTLEFS
|
||||||
|
* (.prepareFileSystem has to be run in an empty sketch before)
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
// Enable this option if you want sliders to be continuous (update during move) and not discrete (update on stop)
|
||||||
* Optionally you can use HTTP BasicAuth. Keep in mind that this is NOT a
|
// ESPUI.sliderContinuous = true;
|
||||||
* 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. Just add a string as username and
|
|
||||||
* password, for example begin("ESPUI Control", "username", "password")
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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. Just add a string as username and
|
||||||
|
* password, for example begin("ESPUI Control", "username", "password")
|
||||||
|
*/
|
||||||
|
|
||||||
ESPUI.begin("ESPUI Control");
|
ESPUI.begin("ESPUI Control");
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop( void ) {
|
void loop(void)
|
||||||
dnsServer.processNextRequest();
|
{
|
||||||
|
dnsServer.processNextRequest();
|
||||||
|
|
||||||
static long oldTime = 0;
|
static long oldTime = 0;
|
||||||
static bool switchi = false;
|
static bool switchi = false;
|
||||||
|
|
||||||
if ( millis() - oldTime > 5000 ) {
|
if (millis() - oldTime > 5000)
|
||||||
switchi = !switchi;
|
{
|
||||||
ESPUI.updateControlValue( switchOne, switchi ? "1" : "0" );
|
switchi = !switchi;
|
||||||
|
ESPUI.updateControlValue(switchOne, switchi ? "1" : "0");
|
||||||
|
|
||||||
oldTime = millis();
|
oldTime = millis();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -220,7 +220,7 @@ void setup(void)
|
|||||||
ESPUI.pad("Pad without center", &padExample, ControlColor::Carrot);
|
ESPUI.pad("Pad without center", &padExample, ControlColor::Carrot);
|
||||||
testSwitchId = ESPUI.switcher("Switch one", &switchExample, ControlColor::Alizarin, false);
|
testSwitchId = ESPUI.switcher("Switch one", &switchExample, ControlColor::Alizarin, false);
|
||||||
ESPUI.switcher("Switch two", &otherSwitchExample, ControlColor::None, true);
|
ESPUI.switcher("Switch two", &otherSwitchExample, ControlColor::None, true);
|
||||||
ESPUI.slider("Slider one", &slider, ControlColor::Alizarin, 30);
|
ESPUI.slider("Slider one", &slider, ControlColor::Alizarin, 30, 0, 30);
|
||||||
ESPUI.slider("Slider two", &slider, ControlColor::None, 100);
|
ESPUI.slider("Slider two", &slider, ControlColor::None, 100);
|
||||||
ESPUI.text("Text Test:", &textCall, ControlColor::Alizarin, "a Text Field");
|
ESPUI.text("Text Test:", &textCall, ControlColor::Alizarin, "a Text Field");
|
||||||
ESPUI.number("Numbertest", &numberCall, ControlColor::Alizarin, 5, 0, 10);
|
ESPUI.number("Numbertest", &numberCall, ControlColor::Alizarin, 5, 0, 10);
|
||||||
@ -229,7 +229,7 @@ void setup(void)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* .begin loads and serves all files from PROGMEM directly.
|
* .begin loads and serves all files from PROGMEM directly.
|
||||||
* If you want to serve the files from SPIFFS use ESPUI.beginSPIFFS
|
* If you want to serve the files from LITTLEFS use ESPUI.beginLITTLEFS
|
||||||
* (.prepareFileSystem has to be run in an empty sketch before)
|
* (.prepareFileSystem has to be run in an empty sketch before)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user