ESP8266 Primary GUI v2

krycha88
Posts: 436
Joined: Fri Nov 16, 2018 7:25 am

Fri Oct 18, 2019 8:59 pm

dobo wrote:
Fri Oct 18, 2019 8:51 pm
Dzieje się cosik ciekawego :)
krycha88 wrote:
Fri Oct 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
Posts: 447
Joined: Mon Jan 07, 2019 7:51 pm

Fri Oct 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:

Code: Select all

  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:

Code: Select all

  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
Posts: 436
Joined: Fri Nov 16, 2018 7:25 am

Fri Oct 18, 2019 9:13 pm

Patryk wrote:
Fri Oct 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:

Code: Select all

  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:

Code: Select all

  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
Posts: 447
Joined: Mon Jan 07, 2019 7:51 pm

Fri Oct 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
Posts: 96
Joined: Sun Apr 07, 2019 8:14 pm

Sat Oct 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 :)
Last edited by dobo on Sat Oct 19, 2019 7:15 am, edited 1 time in total.
Patryk
Posts: 447
Joined: Mon Jan 07, 2019 7:51 pm

Sat Oct 19, 2019 7:06 am

Dzięki. :D
Zmieniłem z 50 na 100 i teraz ( jak dla mnie ) jest ok.
krycha88
Posts: 436
Joined: Fri Nov 16, 2018 7:25 am

Sat Oct 19, 2019 5:58 pm

bme.JPG
bme.JPG (24.14 KiB) Viewed 114 times
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
Posts: 96
Joined: Sun Apr 07, 2019 8:14 pm

Sat Oct 19, 2019 7:01 pm

krycha88 wrote:
Sat Oct 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
User avatar
Robert Błaszczak
Posts: 491
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Contact:

Sat Oct 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
https://www.blaszczak.pl
Ryrzy
Posts: 132
Joined: Tue Nov 07, 2017 10:40 am

Sat Oct 19, 2019 7:26 pm

Robert Błaszczak wrote:
Sat Oct 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.
Post Reply