Skocz do zawartości

Monitory HMI w użytku domowym.


SOYER

Pomocna odpowiedź

1 godzinę temu, SOYER napisał:

Pytając o próg wejścia w własny layout, byłem ciekaw czy dam radę sam to zrobić. Ja, bez zdolności programistycznych. Może faktycznie @H1M4W4R1 coś doradzi.

Ja tam się nie znam... tylko kopiuję z dokumentacji 😄 Bez zdolności programistycznych raczej polecam wersję, którą proponuje kolega @_LM_, bo z palca jest to dość skomplikowane dla niewtajemniczonych.

  • Lubię! 1
Link do komentarza
Share on other sites

I słowo na temat użycia biblioteki, pierwszy przykład przycisk https://docs.lvgl.io/8.3/examples.html#a-button-with-a-label-and-react-on-click-event

wygeneruje kod

#include "../lv_examples.h"
#if LV_BUILD_EXAMPLES && LV_USE_BTN

static void btn_event_cb(lv_event_t * e)
{
    lv_event_code_t code = lv_event_get_code(e);
    lv_obj_t * btn = lv_event_get_target(e);
    if(code == LV_EVENT_CLICKED) {
        static uint8_t cnt = 0;
        cnt++;

        /*Get the first child of the button which is the label and change its text*/
        lv_obj_t * label = lv_obj_get_child(btn, 0);
        lv_label_set_text_fmt(label, "Button: %d", cnt);
    }
}

/**
 * Create a button with a label and react on click event.
 */
void lv_example_get_started_1(void)
{
    lv_obj_t * btn = lv_btn_create(lv_scr_act());     /*Add a button the current screen*/
    lv_obj_set_pos(btn, 10, 10);                            /*Set its position*/
    lv_obj_set_size(btn, 120, 50);                          /*Set its size*/
    lv_obj_add_event_cb(btn, btn_event_cb, LV_EVENT_ALL, NULL);           /*Assign a callback to the button*/

    lv_obj_t * label = lv_label_create(btn);          /*Add a label to the button*/
    lv_label_set_text(label, "Button");                     /*Set the labels text*/
    lv_obj_center(label);
}

#endif

gdzie 

void lv_example_get_started_1(void)

może zostać wygenerowane automatycznie przez eez, ty zaś jako user dostajesz funkcję zdarzeniową:
 

static void btn_event_cb(lv_event_t * e)

i to chyba najbardziej podoba mi się w tym generatorze, fajna zabawa. Polecam Magda Gejzer xD

Link do komentarza
Share on other sites

1 minutę temu, H1M4W4R1 napisał:

tylko kopiuję z dokumentacj

O właśnie, dokumentacja tego libsa to też jest coś z czego można brać przykład

Link do komentarza
Share on other sites

3 godziny temu, _LM_ napisał:

Gabarytowo mieści się do puszki ∅60

Jak to montujesz? Masz jakieś zdjęcie? Pasuje do jakiej ramki z osprzętu elektrycznego czy jeszcze inaczej?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Trochę popatrzyłem na to EEZ Studio. Bardzo dobra dokumentacja wydaje się, ale przebrnąć przez to to będzie męka;).

@_LM_ powiedz mi jeszcze jak robimy integrację z np. tym sterowaniem przez MQTT, czy też pobieraniem danych z serwera. Czy to robimy w szkicu dla esp32, a potem to jakoś łączymy(wartości ze zmiennych itd.) z wygenerowanym szkicem dla wyświetlacza w EEZ? Czy wszystko generujemy w EEZ, bo widzę tam tego typu rzeczy w dokumentacji.

Może krótki tutorial np. dla przycisku wysyłającego "1". 🙂

Link do komentarza
Share on other sites

2 godziny temu, SOYER napisał:

Jak to montujesz? Masz jakieś zdjęcie? Pasuje do jakiej ramki z osprzętu elektrycznego czy jeszcze inaczej?

Nie montuję, po prostu gabarytowo wydaje się być to pasowne, ramkę zawsze można wydrukować dla własnych potrzeb. 

 

1 godzinę temu, SOYER napisał:

Czy wszystko generujemy w EEZ, bo widzę tam tego typu rzeczy w dokumentacji.

Lepiej rozdzielić zadania GUI od interfejsu wymiany danych. 

1 godzinę temu, SOYER napisał:

Może krótki tutorial np. dla przycisku wysyłającego "1". 🙂

Robisz to dokładnie tak samo jak gdybyś chciał coś wysłać po naciśnięciu fizycznego buttona, jak pokazałem tutaj 

Masz zdarzenie naciśnięcia i pod nim wywołujesz już swoją funkcję. Np: sprawdzasz czy masz połączenie z serwerem, jeśli tak przesyłasz aktualny stan jakiejś tam zmiennej.

I pamiętaj eez studio (jak i squareline) jest tylko narzędziem, wszystko inne dzieje się za pomocą twojej inwencji ze wsparciem biblioteki LVGL. BTW chcąc to przetestować wcale nie musisz kupować akurat tego modułu który pokazałem

 

  • Pomogłeś! 1
Link do komentarza
Share on other sites

@_LM_załóżmy, że mam coś takiego:

image.thumb.png.cc733a3158524b8bde0f79a6183675c1.png

Co muszę zaznaczyć tu(?):

image.thumb.png.42b3bc561a10ae1cd99254b481360386.png

żeby to działało jako przyciski w szkicu.

Pytanie drugie, jak dołożyć polskie litery, skąd wziąć plik do fontów.

Pytanie trzecie, klikam build i co?

Mam coś kopiować stąd:

image.thumb.png.f4e30b9dfe4cd43ea02412e9cc87bfcc.png

do arduIDE?

Link do komentarza
Share on other sites

Nieno toż nie będę tutaj tutoriala prowadził ... musisz dodać zdarzenie do przycisku
EEZ_Studio_6orEuqDyye.thumb.png.d22ae401e06137b00901170c83dc9709.png

EEZ_Studio_krEI7hoRZW.thumb.png.a832753e0a3aa4f35dcc22fda3531e60.png

EEZ_Studio_7evnuBRHzG.thumb.png.170433b13efbee001220a2925dca1632.png

Nową nazwę akcji

EEZ_Studio_VQo2QB51Yp.thumb.png.6a333df804dd2720612df5eb8348968f.png

1 godzinę temu, SOYER napisał:

Pytanie drugie, jak dołożyć polskie litery, skąd wziąć plik do fontów.

Co prawda nie testowałem pl fontów ale LVGL udostępnia narzędzia do konwersji, musisz poszukać na ich stronie. 

1 godzinę temu, SOYER napisał:

Pytanie trzecie, klikam build i co?

I masz wygenerowany folder z elementami UI 

możesz wskazać miejsce gdzie mają być zapisywane pliki

EEZ_Studio_lDDTdvEh94.thumb.png.c80c29c645db915aaba4f1666d35a685.png

 

Link do komentarza
Share on other sites

Uczę się, czytam i oglądam. Niesamowite narzędzie. Dziękuję.

Zapaliłem się do tego niesamowicie:). 

Dajcie mi kilka dni.

Oczywiście @_LM_ tych kilku dni wolnych ode mnie nie będzie miał😁

Link do komentarza
Share on other sites

To zacznij od rzeczy prostych, po co Ci Polskie czcionki zrób jeden ekran z jednym przyciskiem na początek

 

Edytowano przez _LM_
Link do komentarza
Share on other sites

12 godzin temu, _LM_ napisał:

To zacznij od rzeczy prostych, po co Ci Polskie czcionki zrób jeden ekran z jednym przyciskiem na początek

 

Już to wczoraj widziałem… filmów nie ma zbyt wiele ale pokazują potencjał narzędzia.

Link do komentarza
Share on other sites

(edytowany)

@_LM_ Czy taki zapis w EEZ przy buttonie, utworzy mi w szkicu głównym zmienną brama1 i każdorazowe kliknięcie spowoduje zmianę stanu zmiennej na przeciwną?

image.thumb.png.83dee63fb0e8f5adc305458690145a9f.png

Edytowano przez SOYER
Link do komentarza
Share on other sites

To jak Ty to robisz? Mam ekran z działającym buttonem... Jak sprawić by naciśnięcie buttona na ekranie zmusiło esp32 do wysłania JSONa na serwer i przełączenia przekaźnika:

serverPath = https://svrxx.supla.org/direct/xx/xx/toggle?format=json";
jsonBuffer = httpGET(serverPath.c_str());

String httpGET(const char* serverName) {
  WiFiClientSecure client1;
  HTTPClient http1;
  client1.setInsecure();
  http1.begin(client1, serverName);
  int httpResponseCode = http1.GET();
  String payload = "{}"; 
  
  if (httpResponseCode>0) {
    Serial.print("HTTP Response code: ");
    Serial.println(httpResponseCode);
    payload = http1.getString();
  }
  else {
    Serial.print("Response code: ");
    Serial.println(httpResponseCode);
  }
  
  http1.end();
  return payload;
}

albo podobna funkcja pobiera mi wartość z JSONa i chcę ją wysłać np do LABELa na wyświetlacz.

Czyli wysyłka info(zmienna) z wyświetlacza do esp o kliknięciu buttona i wysyłka zmiennej z esp na wyświetlacz do widgetu...

Jak?

 

Link do komentarza
Share on other sites

@SOYER masz to już uruchomione na swojej płycie? 

11 minut temu, SOYER napisał:

To jak Ty to robisz?

Po prostu nie generuję zbędnych elementów z flow. A przecież pokazywałem wcześniej jak zareagować na zdarzenie? Dostajesz funkcję eventową od danego widoku i tam sobie robisz czego dusza zapragnie - to na co pozwoli system. 

11 minut temu, SOYER napisał:

Jak?

Nie będę się powtarzał, poza tym chcę ten widok widzieć na którymś działającym panelu, bez tego nie ruszymy dalej. Nie wspomnę że coś tam męczyłem bułę o prostszych rzeczach na początek niż ładowanie layoutu suppli. Z resztą, po co? Robić im reklamę za free lol

Edytowano przez _LM_
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.