Czy znajdę podstawowy projekt
-
Adamo28
- Posts: 223
- Joined: Sun Nov 08, 2020 2:54 pm
Witam, czy znajdę gdzieś na forum czysty projekt na nowej bibliotece z samym logowaniem do konta supli i serwerem http do wprowadzania późniejszych zmian (zmiana wifi/konta supli) gdzie mógłbym sam dopisać swoje oprzyrządowanie? Próbowałem okroić GUI Generic ale strasznie tam tego dużo i żmudnie to idzie.
Tu masz GUI generic ale sam generujesz co chcesz. Może to ci się przyda. A wszystkie aktualne biblioteki są u krycha88 i u Espablo na GitHub-ie.Adamo28 wrote: Thu Mar 04, 2021 9:07 pm Witam, czy znajdę gdzieś na forum czysty projekt na nowej bibliotece z samym logowaniem do konta supli i serwerem http do wprowadzania późniejszych zmian (zmiana wifi/konta supli) gdzie mógłbym sam dopisać swoje oprzyrządowanie? Próbowałem okroić GUI Generic ale strasznie tam tego dużo i żmudnie to idzie.
viewtopic.php?f=11&t=8142
Zapraszam na Facebook do wspólnej pomocy mniej zawansowanym użytkownikom Supla.
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplaauraton
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplaauraton
-
klew
- Posts: 13911
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 136 times
- Been thanked: 137 times
Nie widziałem nigdzie takiego projektu. Ale jeśli aktualny GUI Generic jest zbyt duży do prostej analizy, to może jakiś pierwszy commit do tego projektu będzie prostszy? Tylko nie wiem czy to się nadal kompiluje i czy działa:
https://github.com/Espablo/GUI-Generic/ ... 50d16f5e2c
https://github.com/Espablo/GUI-Generic/ ... 50d16f5e2c
Najlepsze suple dla Twojego domu 
-
dobo
- Posts: 1051
- Joined: Sun Apr 07, 2019 8:14 pm
- Location: Nadarzyn
Też o tym myślałem, że przydała by się taka podstawa.
Bo robię sterownik schodowy na PWM program został napisany w arduino na ATMega328
I może w prosty sposób dało by się to przenieść do ESP z możliwością ustawień czasów załączania przez przeglądarkę.
Bo robię sterownik schodowy na PWM program został napisany w arduino na ATMega328
I może w prosty sposób dało by się to przenieść do ESP z możliwością ustawień czasów załączania przez przeglądarkę.
-
Adamo28
- Posts: 223
- Joined: Sun Nov 08, 2020 2:54 pm
Fajne fajne ale generuje samą binarke. Ten komit GUI Generic jest jeszcze z trigerami więc nie skompiluje się na aktualnych bibliotekach. Jutro kawa z rana i siadam do tego twardo może się człowiek czegoś nauczy przy okazji.Mmof wrote: Fri Mar 05, 2021 8:04 am Tu masz GUI generic ale sam generujesz co chcesz. Może to ci się przyda. A wszystkie aktualne biblioteki są u krycha88 i u Espablo na GitHub-ie.
viewtopic.php?f=11&t=8142
-
krycha88
- Posts: 5575
- Joined: Fri Nov 16, 2018 7:25 am
- Been thanked: 5 times
Tu masz podstawowy projekt na którym zbudowaliśmy GUI-Generic
https://github.com/krycha88/Primary_GUI_nexo
https://github.com/krycha88/Primary_GUI_nexo
https://gui-generic-builder.supla.io/
-
Adamo28
- Posts: 223
- Joined: Sun Nov 08, 2020 2:54 pm
A gdybym chciał w zakladce np config wyświetlić bieżącą wartość z A0 tylko w aby plynnie sie zmieniała. Rozumiem że muszę użyć XlmHttpRequesta ale nie chciał bym calej strony odswierzac tylko sam span z tą wartością. Kombinuje że może zrobic pod stronę z samym A0 gdzie ladnie to pracuje i to wstawiać do podstrony config ale czy mozna to jakos inaczej wykombinować?
-
Adamo28
- Posts: 223
- Joined: Sun Nov 08, 2020 2:54 pm
Ok więc tak, na podstawie wyżej zamieszczonej jednej z pierwszych wersji GUI Generic wykomentowałem wszystko co najlepsze i w SuplaWebServer.cpp dodałem
W supla_webpage_config() zrobiłem trochę htmla i na podstawie tego co było polepiłem kalibrację min/max
Używam NodeMcu V3 który wejście A0 ma już w przedziale 0-3.3V (0-1023 punkty, na płytce jest już dzielnik samo esp ma wejście do 1V) do tego podłączam bocznik na rezystorach dla pętli 4-20mA z mojej sondy poziomu gdzie odkłada mi się napięcie w ww. przedziale. Do tego kanał na termometrze gdzie skaluje ilość tych punktów od 0-100 z odczytanego A0. W CONFIG mam bieżącą wartość raw aby można było poprawnie skalibrować odczyt. A no i zastosowałem duble reset detector do robienia factory reset bo nie potrafię (jeszcze) wymusić GUI wejścia w tryb config
Całkiem pouczające doświadczenie dla kogoś kto uczy się dopiero języka. Chciał bym jeszcze zamiast factory reset wchodzić w tryb config oraz jakoś po ludzku odwoływać się do tej wartości odczytanej z A0 w głównym loopie, na tą chwile stworzyłem dodatkowy plik.h gdzie tworze zmienna a0_raw która jest przekazywana do pliku cpp webservera ale jestem prawie pewien że da się to jakoś inaczej tam wstawić przy pomocy wskaźników których nie ogarniam (jeszcze) można poprosić o jakąś podpowiedź jak przekazać z głównego loopa zmienną do plików cpp webservera ?
Code: Select all
void SuplaWebServer::createWebServer() {
...
path = PATH_START;
path += PATH_A0; // /A0raw
httpServer.on(path, std::bind(&SuplaWebServer::handleA0, this));
}
void SuplaWebServer::handleA0() {
String opt(a0_raw);
httpServer.send(200, "text/html", opt.c_str());
}
String SuplaWebServer::SuplaJavaScriptA0() {
String java_script2 = F("<script>myTimer(); var myVar = setInterval(myTimer, 1000);function myTimer() {");
java_script2 += F("var xhttp = new XMLHttpRequest();xhttp.onreadystatechange = function() { ");
java_script2 += F("if (this.readyState == 4 && this.status == 200) {document.getElementById(\"aaa\").innerHTML = this.responseText;}};");
java_script2 += F("xhttp.open('GET', '/A0raw' , true); xhttp.send();}</script>");
return java_script2;
}
Code: Select all
int A0min, A0max;
String page = "";
page += SuplaMetas();
page += SuplaStyle();
// page += SuplaJavaScriptA0();
page += SuplaSaveResult(save);
page += SuplaJavaScript(PATH_CONFIG);
page += F("<div class='s'>");
page += SuplaLogo();
page += SuplaSummary();
page += F("<form method='post' action='");
page += PATH_SAVE_CONFIG;
page += F("'><div class='w'><h3>Ustawienia kalibracji A0</h3>");
page += F("<div class='dA0con'> <div class='dA0opi'>Wartość RAW A0: </div> <div class='dA0war' id=\"aaa\">");
page += a0_raw;
page += F("</div></div>");
A0min = ConfigManager->get(KEY_A0_MIN)->getValueInt();
A0max = ConfigManager->get(KEY_A0_MAX)->getValueInt();
page += F("<i><label>");
page += F("Ustawienie MIN</label>");
page += F("<input name='");
page+= INPUT_A0_MIN;
page+= F("' type='number' min='0' max='1023' value='");
page += A0min;
page += F("'></i>");
page += F("<i><label>");
page += F("Ustawienie MAX</label>");
page += F("<input name='");
page+= INPUT_A0_MAX;
page+= F("' type='number' min='0' max='1023' value='");
page += A0max;
page += F("'>");
page += F("</i>");
page += F("</div><button type='submit'>Zapisz</button></form>");
page += F("<br>");
page += F("<a href='/'><button>Powrót</button></a></div>");
page += SuplaJavaScriptA0();
return page;
Code: Select all
...
double getValue() {
//map(value, fromLow, fromHigh, toLow, toHigh)
a0_value = map(analogRead(pin), tA0Min ,tA0Max, 0, 100);
return a0_value;
}
...
You do not have the required permissions to view the files attached to this post.
