ESP8266 Primary GUI v2

krycha88
Posty: 5187
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

dobo pisze: pt paź 18, 2019 8:51 pm Dzieje się cosik ciekawego :)
krycha88 pisze: pt paź 18, 2019 8:34 pm Na oledzie oraz do clouda będzie się wysyłała wartość ciśnienia czyli ta po korekcie.
Czy działa to tak, że jak nie poda się wysokości to ciśnienie wysyłane na OLED i cloud będzie bezwzględne, a jak podamy wysokość to będzie to wartości ciśnienia względnego?

2 wersja tak jak opisał @George2002

A będzie może korekta do temperatury i ciśnienia? Bo ta z cloud nie ma wpływu na to co jest wyświetlane na wyświetlaczu OLED.
Zrobiłem tak, że jeżeli wysokość będzie 0 to działa tak jak obecnie, jeżeli podasz wysokość to po nowemu.

Nie mogę zrobić GUI tak jak opisał @George2002 bo pole wysokości to input a pozostałe to labelki i nie chce mi się tego przerabiać 😀
https://gui-generic-builder.supla.io/
Patryk
Posty: 2677
Rejestracja: pn sty 07, 2019 7:51 pm
Lokalizacja: Rybnik

Chyba znalazłem mój problem z ds-ami
Zrobiłem to metodą "prób i błędów"
@krycha88 chciał bym, abyś to zweryfikował (ja nie jestem programistą )
W pliku Primary_GUI zmieniłem to:

Kod: Zaznacz cały

  int i = channelNumber - ds18b20_channel_first;
  if ( sensor[i].getDeviceCount() > 0 ) {
    if ( ds18b20_channel[i].address == "FFFFFFFFFFFFFFFF" ) return -275;
    if ( millis() - ds18b20_channel[i].lastTemperatureRequest < 0) {
      ds18b20_channel[i].lastTemperatureRequest = millis();
    }

na to:

Kod: Zaznacz cały

  int i = channelNumber - ds18b20_channel_first;
  if ( sensor[i].getDeviceCount() >= 0 ) {
    if ( ds18b20_channel[i].address == "FFFFFFFFFFFFFFFF" ) return -275;
    if ( millis() - ds18b20_channel[i].lastTemperatureRequest < 0) {
      ds18b20_channel[i].lastTemperatureRequest = millis();
    }

czyli dodałem znak "=" w 2 linijce i problem zniknął.
krycha88
Posty: 5187
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

Patryk pisze: pt paź 18, 2019 9:07 pm Chyba znalazłem mój problem z ds-ami
Zrobiłem to metodą "prób i błędów"
@krycha88 chciał bym, abyś to zweryfikował (ja nie jestem programistą )
W pliku Primary_GUI zmieniłem to:

Kod: Zaznacz cały

  int i = channelNumber - ds18b20_channel_first;
  if ( sensor[i].getDeviceCount() > 0 ) {
    if ( ds18b20_channel[i].address == "FFFFFFFFFFFFFFFF" ) return -275;
    if ( millis() - ds18b20_channel[i].lastTemperatureRequest < 0) {
      ds18b20_channel[i].lastTemperatureRequest = millis();
    }

na to:

Kod: Zaznacz cały

  int i = channelNumber - ds18b20_channel_first;
  if ( sensor[i].getDeviceCount() >= 0 ) {
    if ( ds18b20_channel[i].address == "FFFFFFFFFFFFFFFF" ) return -275;
    if ( millis() - ds18b20_channel[i].lastTemperatureRequest < 0) {
      ds18b20_channel[i].lastTemperatureRequest = millis();
    }

czyli dodałem znak "=" w 2 linijce i problem zniknął.
Myślę, że można wywalić całkiem ten warunek. Zrobię to w najbliższej wersji.
https://gui-generic-builder.supla.io/
Patryk
Posty: 2677
Rejestracja: pn sty 07, 2019 7:51 pm
Lokalizacja: Rybnik

Chciałbym "trochę" rozjaśnić OLED-a SH1106, jeżeli jest w trybie "przyciemnionym".
Który "parametr" za to odpowiada ?

Do tej pory używałem SDD1306 i tam "przyciemnienie" było dla mnie ok.
Teraz mam SH1106 i w trybie "przyciemnionym" jest dla mnie trochę "za ciemny".
dobo
Posty: 1042
Rejestracja: ndz kwie 07, 2019 8:14 pm
Lokalizacja: Nadarzyn

w supla_oled.cpp

if ((millis() - time_last_oled_change) > (max_frames * 5000) && oled_state == 0) {
display.setBrightness(50); <--- Wydaje mi się, że tu. Zmień 50 na większą wartość max to 255
//display.displayOff();
oled_state = 1;




PS. Wcześniej wkradł mi się błąd chodziło mi o korektę temperatury i wilgotności bo ta w cloud nie ma wpływu na wyświetlacz.

W cloud korekta jest dobra dla urządzeń bez wyświetlacza chyba, że korekty z cloud można wysyłać (są wysyłane ) do ESP.
Wtedy takie rozwiązanie było by najlepsze.

Ale nie mieszam już co by nie było i tak jest zajefajnie :)
Ostatnio zmieniony sob paź 19, 2019 7:15 am przez dobo, łącznie zmieniany 1 raz.
Patryk
Posty: 2677
Rejestracja: pn sty 07, 2019 7:51 pm
Lokalizacja: Rybnik

Dzięki. :D
Zmieniłem z 50 na 100 i teraz ( jak dla mnie ) jest ok.
krycha88
Posty: 5187
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

bme.JPG
bme.JPG (24.14 KiB) Przejrzano 2276 razy
Wrzuciłem nową wersję do której dodałem:
-możliwość kalibracji czujnika BME280, do clouda oraz na OLEDzie wyświetlana będzie zawsze wartość po korekcie
-usunąłem polskie znaki ze statusów aby wyświetlały się poprawnie na OLEDzie
-poprawiłem błąd zgłaszany przez @Patryka dotyczący DSów
https://gui-generic-builder.supla.io/
dobo
Posty: 1042
Rejestracja: ndz kwie 07, 2019 8:14 pm
Lokalizacja: Nadarzyn

krycha88 pisze: sob paź 19, 2019 5:58 pm bme.JPG
Wrzuciłem nową wersję do której dodałem:
-możliwość kalibracji czujnika BME280, do clouda oraz na OLEDzie wyświetlana będzie zawsze wartość po korekcie
-usunąłem polskie znaki ze statusów aby wyświetlały się poprawnie na OLEDzie
-poprawiłem błąd zgłaszany przez @Patryka dotyczący DSów

Chwilowo nie mogę przetestować czy kalibracja dotyczy tylko ciśnienia? Jeśli tak to czy można też liczyć na korektę temperatury i wilgotności :D
Awatar użytkownika
Robert Błaszczak
Posty: 3970
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontakt:

Korektę temperatury i wilgotności możesz zrobić w Cloud. Nie ma potrzeby dopisywania funkcji korekty tych wartości w firmware.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
Ryrzy
Posty: 148
Rejestracja: wt lis 07, 2017 10:40 am

Robert Błaszczak pisze: sob paź 19, 2019 7:14 pm Korektę temperatury i wilgotności możesz zrobić w Cloud. Nie ma potrzeby dopisywania funkcji korekty tych wartości w firmware.
W sumie to jest potrzeba jeśli używa się oleda ;) "wstecz " korekta nie działa.
Zablokowany

Wróć do „Nowości”