#define PIN 2
#define NUMPIXELS 8
#include <GyverPortal.h>
#include <Adafruit_NeoPixel.h>
GyverPortal ui;
byte n,r,g,b;
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void build() {
GP.BUILD_BEGIN();
GP.THEME(GP_DARK);
GP.BLOCK_TAB_BEGIN("WS2812B REMOTE");
M_BOX(GP.LABEL("Num.LED"); GP.SELECT("num_led", "0,1,2,3,4,5,6,7"); );
M_BOX(GP.LABEL("R"); GP.SLIDER_C("red",0,0,255,1,0,GP_RED_B); );
M_BOX(GP.LABEL("G"); GP.SLIDER_C("green",0,0,255,1,0,GP_GREEN_B););
M_BOX(GP.LABEL("B"); GP.SLIDER_C("blue",0,0,255,1,0,GP_BLUE_B); );
Serial.print("RED ");
GP.BUILD_END();
}
void action() {
if (ui.click("num_led")) {
ui.copyInt("num_led", n);
}
if (ui.click("red")) {
ui.copyInt("red", r);
}
if (ui.click("green")) {
ui.copyInt("green", g);
}
if (ui.click("blue")) {
ui.copyInt("blue", b);
}
pixels.setPixelColor(n, pixels.Color(r, g, b));
pixels.show();
};
void setup() {
pixels.begin();
Serial.begin(115200);
pixels.clear();
pixels.setBrightness(255);
WiFi.mode(WIFI_AP);
WiFi.softAP("8266");
ui.attachBuild(build);
ui.attach(action);
ui.start("");
}
void loop() {
ui.tick();
}
// иконки из файлов
GP.ICON_FILE_BUTTON(имя, uri_иконки);
GP.ICON_FILE_BUTTON(имя, uri_иконки, размер);
GP.ICON_FILE_BUTTON(имя, uri_иконки, размер, цвет);
Можно поподробнее.Подключи файловый менеджер и посмотри.
Можно поподробнее.
GP.BUTTON("btn", "Button");
GP.ICON_FILE_BUTTON("icon", "/icon.svg", 24, PSTR("#bbbbbb"));
void action()
{
if (portal.hold())
{
if (portal.clickDown("icon")) Serial.println("Press icon");
if (portal.clickUp("icon")) Serial.println("Release icon");
if (portal.clickDown("btn")) Serial.println("Press btn");
if (portal.clickUp("btn")) Serial.println("Release btn");
}
if (portal.click()) { }
}
void setup() {
WiFi.mode(WIFI_AP);
WiFi.softAP("esp32", "12345678");
GyverPortal portal;
if (!LittleFS.begin()) Serial2.println("FS Error");
portal.uploadAuto(true); //не уверен что здесь это нужно
portal.downloadAuto(true); //но и так пробовал
portal.enableAuth("admin", "12345678");
portal.attachBuild(build);
portal.start("point");
}
void build(GyverPortal &p) {
GP.BUILD_BEGIN();
GP.THEME(GP_DARK);
GP.ICON_SUPPORT(); //вроде тоже не нужно, но попробовал
GP.UI_MENU("Configurator", GP_ORANGE);
String a = GP.ICON_FILE("/wum-color.svg"); // хотел вставить в боковом
GP.LABEL(a); // меню сверху списка вкладок, не вышло
GP.BREAK();
GP.LABEL("some text");
GP.UI_LINK("/", "Home");
GP.UI_LINK("/serial1", "Serial port 1");
GP.UI_LINK("/gsm", "GPRS/LTE");
GP.UI_LINK("/terminal", "Terminal");
GP.UI_LINK("/service", "Service");
GP.UI_LINK("/upgrade", "Upgrade");
GP.BREAK();
GP.BREAK();
GP.LABEL("1.0.0");
GP.UI_BODY();
GP.LABEL("some text");
String b = GP.ICON_FILE("/icons/wum-color.svg"); // просто на странице вкладки
GP.LABEL(b); // не вышло
GP.LABEL(GP.ICON_FILE("/gp_data/gear.svg") + "Text"); // подумал что мой svg какой то не такой, взял из примера, не вышло
GP.BREAK();
GP.LABEL(GP.ICON_FILE("/gp_data/gear.svg", 30) + "Text"); // менял размеры
GP.BREAK();
GP.LABEL(GP.ICON_FILE("/gp_data/gear.svg", 50, GP_RED) + "Text");
GP.BREAK();
GP.ICON_FILE_BUTTON("icnf", "/gp_data/gear.svg", 70, GP_RED); //пробовал кнопку сделать
GP.BREAK();
GP.UI_END();
GP.BUILD_END();
}