ESP8266 Primary GUI v2

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

pt paź 18, 2019 8:59 pm

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ć 😀
Patryk
Posty: 776
Rejestracja: pn sty 07, 2019 7:51 pm

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ął.
krycha88
Posty: 703
Rejestracja: pt lis 16, 2018 7:25 am

pt paź 18, 2019 9:13 pm

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.
Patryk
Posty: 776
Rejestracja: pn sty 07, 2019 7:51 pm

pt paź 18, 2019 10:21 pm

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: 250
Rejestracja: ndz kwie 07, 2019 8:14 pm

sob paź 19, 2019 6:51 am

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: 776
Rejestracja: pn sty 07, 2019 7:51 pm

sob paź 19, 2019 7:06 am

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

sob paź 19, 2019 5:58 pm

bme.JPG
bme.JPG (24.14 KiB) Przejrzano 359 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
dobo
Posty: 250
Rejestracja: ndz kwie 07, 2019 8:14 pm

sob paź 19, 2019 7:01 pm

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: 1117
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontaktowanie:

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.
Pozdrawiam
Robert Błaszczak

Strona prywatna: https://www.blaszczak.pl
Jakość powietrza: https://robert.aqi.eco
Ryrzy
Posty: 147
Rejestracja: wt lis 07, 2017 10:40 am

sob paź 19, 2019 7:26 pm

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