Skocz do zawartości

Monitory HMI w użytku domowym.


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

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

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

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?

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". 🙂

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

@_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?

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

 

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ł😁

(edytowany)

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

 

Edytowano przez _LM_
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.

(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

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?

 

(edytowany)

@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_

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...