Linki bezpośrednie odczytywanie: temperatury, wilgotności, ciśnienia, licznika energii

dobo
Posty: 1042
Rejestracja: ndz kwie 07, 2019 8:14 pm
Lokalizacja: Nadarzyn

Dzięki teraz wygląda to w wiele lepiej.
Natomiast zauważyłem dopiero dodając opisy do okienek, że wyświetlany pomiar jest niżej niż pozostałe pomiary. Czy wyświetlanie pomiarów jest też w jakiś sposób "wyśrodkowywane" czy ręcznie podawany jest początek wyświetlania pomiaru? ponieważ przy każdej wartości jest inaczej. To takie moje zboczenie asymetryczności :D

P.S. Dopatrzyłem się, że opis "SZAMBO" również jest inaczej spozycjonowany patrząc na opisy "GABINET", które są wyśrodkowane ;)
.
T,W,C,G.jpg
T,W,C,G.jpg (273.8 KiB) Przejrzano 558 razy
Pietras81
Posty: 1702
Rejestracja: ndz lut 17, 2019 6:56 am
Lokalizacja: Osielsko

Panowie mam pytanie czy jak w gui wygeneruje sobie linki plus np. ds-a to będę mógł mieć na wyświetlaczu np. dwa pomiary z linków bezpośrednich oraz 1 z ds18b20 podpiętego do wemosa. Czy albo pomiar z linków albo z bezpośrednio podpiętych czujników.
https://pietras-81.aqi.eco/
Awatar użytkownika
Hrumque
Posty: 275
Rejestracja: pn cze 27, 2022 10:11 am
Lokalizacja: Opole

Pietras81 pisze: wt paź 11, 2022 8:52 pm Panowie mam pytanie czy jak w gui wygeneruje sobie linki plus np. ds-a to będę mógł mieć na wyświetlaczu np. dwa pomiary z linków bezpośrednich oraz 1 z ds18b20 podpiętego do wemosa. Czy albo pomiar z linków albo z bezpośrednio podpiętych czujników.
(Niestety - na razie nie ma żadnego konfiguratora "co ma być na LCD/OLED")- wyświetla po kolei wszystko, co posiada w systemie:
- wszystkie czujniki lokalne (w tym DSa)
- wszystkie odczyty z linków bezpośrednich

Także - tak - jak podłączysz DSa (lub DS-y) lokalnie oraz dodasz linki - to wszystko pokolei ci się będzie na jednym OLEDzie na kolejnych ekranach wyświetlało.
Ostatnio zmieniony śr paź 12, 2022 5:27 pm przez Hrumque, łącznie zmieniany 1 raz.
Pietras81
Posty: 1702
Rejestracja: ndz lut 17, 2019 6:56 am
Lokalizacja: Osielsko

Hrumque pisze: śr paź 12, 2022 4:47 pm
Pietras81 pisze: wt paź 11, 2022 8:52 pm Panowie mam pytanie czy jak w gui wygeneruje sobie linki plus np. ds-a to będę mógł mieć na wyświetlaczu np. dwa pomiary z linków bezpośrednich oraz 1 z ds18b20 podpiętego do wemosa. Czy albo pomiar z linków albo z bezpośrednio podpiętych czujników.
(Niestety - na razie nie ma żadnego konfiguratora "co ma być na LCD/OLED")- wyświetla po kolei wszystko, co posiada w systemie:
- wszystkie czujniki lokalne (w tym DSa)
- wszystkie odczyty z linków bezpośrednich
Czyli dobrze rozumiem ze jak do tego samego wemosa co jest podłączony oled podłącze DSa to będę miał odczyt z linków jak i z DSa lokalnie
https://pietras-81.aqi.eco/
Awatar użytkownika
Hrumque
Posty: 275
Rejestracja: pn cze 27, 2022 10:11 am
Lokalizacja: Opole

dobo pisze: pn paź 03, 2022 8:27 pm P.S. Dopatrzyłem się, że opis "SZAMBO" również jest inaczej spozycjonowany patrząc na opisy "GABINET", które są wyśrodkowane ;)
No to chyba normalne, że szambo jest niżej od gabinetu ;)


A tak na serio: zobacz w źródła:
funkcja wyświetlająca np temperaturę (pozostałe są tak samo zbudowane) https://github.com/krycha88/GUI-Generic ... d.cpp#L335 :

funkcja wyświetlająca dystans https://github.com/krycha88/GUI-Generic ... d.cpp#L386 :

Różnice w funkcjach dispayUITemperature i displayUIGeneral są takie:

Kod: Zaznacz cały

display->setFont(ArialMT_Win1250_Plain_10);
display->drawString(x + TEMP_WIDTH + 20, y + display->getHeight() / 2 - 15, name);
display->setFont(ArialMT_Win1250_Plain_24);
display->drawString(x + temp_width, y + drawStringIcon, getTempString(temp));
display->setFont(ArialMT_Win1250_Plain_16);
display->drawString(x + temp_width + (getTempString(temp).length() * 12), y + drawStringIcon, "°C");
a w drugim:

Kod: Zaznacz cały

display->setFont(ArialMT_Win1250_Plain_10);
display->drawString(x + ((display->getWidth() - String(name).length()) / 2), y + display->getHeight() / 2 - 15, name);
display->setFont(ArialMT_Win1250_Plain_24);
display->drawString(x + getWidthValue(display, value.toDouble()), y + display->getHeight() / 2, String(value));
display->setFont(ArialMT_Win1250_Plain_16);
display->drawString(x + getWidthUnit(display, value.toDouble()), y + display->getHeight() / 2 + 7, unit);
W jednym przypadku określamy pozycje wyświetlanej wartości na wysokości "y+drawstringicon", a w drugim - miejsce na wysokość jest ustalane jako "rozmiar wyswietlacza/2" oraz dla jednostki - "rozmiarwyświetlacza/2 + 7)" - co daje całkiem inne wyniki, są przesunięcia - dodałem issue na githubie - chyba wypadało by to znormalizować jakoś w którąś stronę
krycha88
Posty: 5186
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

dobo pisze: pn paź 03, 2022 8:27 pm Dzięki teraz wygląda to w wiele lepiej.
Natomiast zauważyłem dopiero dodając opisy do okienek, że wyświetlany pomiar jest niżej niż pozostałe pomiary. Czy wyświetlanie pomiarów jest też w jakiś sposób "wyśrodkowywane" czy ręcznie podawany jest początek wyświetlania pomiaru? ponieważ przy każdej wartości jest inaczej. To takie moje zboczenie asymetryczności :D

P.S. Dopatrzyłem się, że opis "SZAMBO" również jest inaczej spozycjonowany patrząc na opisy "GABINET", które są wyśrodkowane ;)
.
T,W,C,G.jpg
Zrobiłem refraktor OLEDa i ujednoliciłem wszystkie ekrany:
https://gui-generic-builder.supla.io/test.php

Zobacz czy teraz jest chociaż trochę lepiej ;)
https://gui-generic-builder.supla.io/
dobo
Posty: 1042
Rejestracja: ndz kwie 07, 2019 8:14 pm
Lokalizacja: Nadarzyn

Wygląda lepiej ;)
Ale :D
Na fotce zaznaczyłem co moje "zboczone asymetrycznością oko" dopatrzyło.
Białymi kółkami zaznaczyłem różne odległości jednostki miary od wyświetlanej wartości oraz niby ta sama długość wartości przy ciśnieniu i głębokości, a lokalizacja względem kropki wyświetlanego ekranu-podstrony inna. Możliwe, że czcionka jednostek miary mogła by być tej samej wysokości co jej wartość bo teraz te jednostka miary stopni celsjusza i wilgotność jakoś tak dziwnie wyglądają ale może to kwestia przyzwyczajenia bo wcześniej było inaczej i jakoś tak może się do tego przyzwyczaiłem :)

Natomiast zastanawiam się czy nie było by dobrym choć pewnie bardzo pracochłonnym rozwiązaniem (gdzieś widziałem coś podobnego kiedyś) podzielenie ekranu na strefy-obszary tak jak zaprezentowałem to na zdjęciu "wilgotności" tj. konkretny obszar przykładowo czerwony ma 16*128 pikseli (lub 16x100 dla przekaźników i 16x28 dla sygnału WIFI wcześniej przy MCP przekaźniki nakładały się na siłę sygnału), niebieski 32x32 piksele, zielony 10x96 pikseli, żółty 22x96 pikseli, fioletowy 16x32 piksele i szary 16x96 pikseli. Po czym danym wartościom, opisom czy ikonom nadać funkcję wyśrodkowywania w danym obszarze.
A biorąc powyższe pod uwagę, że kiedyś nastąpi ta wiekopomna chwila i doczekamy się kanału ogólnego przeznaczenia (tak wiem klew znowu poruszam drażliwy temat :D ) byłby na to już gotowy szablon OLED na kolejne dane np. nasłonecznienia, siły wiatru, opadów deszczu, napięcia, prądu, stanu naładowania, impulsów itp. itd. :D

Tylko mnie nie zastrzel za moje wymysły.
.
TWCG_v2.jpg
TWCG_v2.jpg (2.28 MiB) Przejrzano 391 razy
Awatar użytkownika
Robert Błaszczak
Posty: 3970
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontakt:

Popieram pomysł z podziałem wyświetlacza na obszary. Będzie to wtedy spójnie wizualnie.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
krycha88
Posty: 5186
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

dobo pisze: sob paź 15, 2022 11:54 am Wygląda lepiej ;)
Ale :D
Na fotce zaznaczyłem co moje "zboczone asymetrycznością oko" dopatrzyło.
Białymi kółkami zaznaczyłem różne odległości jednostki miary od wyświetlanej wartości oraz niby ta sama długość wartości przy ciśnieniu i głębokości, a lokalizacja względem kropki wyświetlanego ekranu-podstrony inna. Możliwe, że czcionka jednostek miary mogła by być tej samej wysokości co jej wartość bo teraz te jednostka miary stopni celsjusza i wilgotność jakoś tak dziwnie wyglądają ale może to kwestia przyzwyczajenia bo wcześniej było inaczej i jakoś tak może się do tego przyzwyczaiłem :)

Natomiast zastanawiam się czy nie było by dobrym choć pewnie bardzo pracochłonnym rozwiązaniem (gdzieś widziałem coś podobnego kiedyś) podzielenie ekranu na strefy-obszary tak jak zaprezentowałem to na zdjęciu "wilgotności" tj. konkretny obszar przykładowo czerwony ma 16*128 pikseli (lub 16x100 dla przekaźników i 16x28 dla sygnału WIFI wcześniej przy MCP przekaźniki nakładały się na siłę sygnału), niebieski 32x32 piksele, zielony 10x96 pikseli, żółty 22x96 pikseli, fioletowy 16x32 piksele i szary 16x96 pikseli. Po czym danym wartościom, opisom czy ikonom nadać funkcję wyśrodkowywania w danym obszarze.
A biorąc powyższe pod uwagę, że kiedyś nastąpi ta wiekopomna chwila i doczekamy się kanału ogólnego przeznaczenia (tak wiem klew znowu poruszam drażliwy temat :D ) byłby na to już gotowy szablon OLED na kolejne dane np. nasłonecznienia, siły wiatru, opadów deszczu, napięcia, prądu, stanu naładowania, impulsów itp. itd. :D

Tylko mnie nie zastrzel za moje wymysły.
.
TWCG_v2.jpg
Zrobiłem kolejne poprawki medycyny estetycznej dla OLEDa, proszę o ocenę :)
https://gui-generic-builder.supla.io/
dobo
Posty: 1042
Rejestracja: ndz kwie 07, 2019 8:14 pm
Lokalizacja: Nadarzyn

Jest fajnie wszystko ładnie wyrównane do lewej.
Ale :D
Czy dało by radę wstawić funkcję jak pisałem wcześniej tak aby opis kanału, wartość czy wskaźnik strony było wyśrodkowane w swoim obszarze - fajniej by się to prezentowało może trzeba tam wstawić WORDa do konfiguracji ;)

Zauważyłem straszne przymulenie OLEDa po załączeniu fizycznie podłączonego HC-SR04 do Wemosa możliwe, że jest to spowodowane pomiarami i dlatego tak zamula OLEDa filmik poniżej.
https://youtube.com/shorts/8H3_qXwOD_s

.
TWCG_v3.jpg
TWCG_v3.jpg (484.39 KiB) Przejrzano 352 razy
ODPOWIEDZ

Wróć do „GUI Generic”