ESP8266 Primary GUI v2

piotrekk
Posty: 31
Rejestracja: czw wrz 19, 2019 7:12 am

czw lut 06, 2020 12:31 pm

witam, a jest wersja ESP8266 Primary GUI v2 bez oleda? nie posiadam takiego a chciał bym sobie coś skompilować na tym przykładzie
krycha88
Posty: 646
Rejestracja: pt lis 16, 2018 7:25 am

czw lut 06, 2020 12:57 pm

piotrekk pisze:
czw lut 06, 2020 12:31 pm
witam, a jest wersja ESP8266 Primary GUI v2 bez oleda? nie posiadam takiego a chciał bym sobie coś skompilować na tym przykładzie
Jak nie chcesz OLEDa to nie dodawaj add_Oled();
Darkman
Posty: 34
Rejestracja: pt kwie 26, 2019 11:34 am

pt lut 14, 2020 1:52 pm

krycha88 pisze:
pt lis 22, 2019 12:55 pm
Darkman pisze:
pt lis 22, 2019 12:38 pm
mam moduł: QOLTEC 51791 - coś jak Sonoff Basic
przycisk monostabilny PIN 12
przekaźnik PIN 4
LEDred na PIN 13
LEDblue na PIN 14
add_Relay_Button(4, 12, CHOICE_TYPE);

Nie mam diody LED na tym samym wyjściu co przekaźnik, a chciałbym widzieć stan przekaźnika.
LED_CONFIG_PIN ustawiłem na 13

Co ciekawe LEDblue zawsze się świeci od momentu włączenia.
Jak ustawić LEDblue (PIN 14) by pokazywał stan przekaźnika?
musisz sobie to napisać, używając supla_DigitalWrite, coś w stylu:

Kod: Zaznacz cały

void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {

if (pin == RELAY_PIN) {
	val ? digitalWrite(LED_RED, 1) : digitalWrite(LED_BLUE, 1);
}
  
  digitalWrite(pin, val);
}
niestety nie działa zaproponowany kod albo w złe miejsce go zaimplentowałem
wkleiłem go do istniejącej już funkcji "supla_DigitalWrite"
Cała ta funkcja wygląda teraz następująco:

Kod: Zaznacz cały

void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
  if (pin == VIRTUAL_PIN_LOCK && state_lock != val) {
    state_lock = 1;
    SuplaDevice.channelValueChanged(channelNumber, val);
    val ? SuplaDevice.relayOn(0, 0) : SuplaDevice.relayOff(0);
    state_lock = val;
  }

  if (pin == RELAY_PIN && state_lock == 1) {
    digitalWrite(LED_CONFIG_PIN, !val);
    digitalWrite(RELAY_PIN, val);
  }

  if (pin == RELAY_PIN) {
  val ? digitalWrite(LED_RED, 1) : digitalWrite(LED_BLUE, 1);
}

  if (pin == BUTTON_PIN) digitalWrite(BUTTON_PIN, val);
}
w hardware.h zdefiniowałem:

Kod: Zaznacz cały

#define LED_RED               13
#define LED_BLUE              14
@krycha88
pomożesz?
oSuplowane:
11x MiniTiger RF 2gang -N [czekają kolejne sztuki]
3x MiniTiger RF 1gang -N
1x Sonoff Touch 1gang +N
3x SmartDGM DSG-W162 gniazdko z pomiarem
2x GreenBlue GB155 gniazdko
1x MediaTech MT3105 gniazdko
1x Yunshan (brama)
krycha88
Posty: 646
Rejestracja: pt lis 16, 2018 7:25 am

pt lut 14, 2020 5:41 pm

Darkman pisze:
pt lut 14, 2020 1:52 pm
niestety nie działa zaproponowany kod albo w złe miejsce go zaimplentowałem
wkleiłem go do istniejącej już funkcji "supla_DigitalWrite"
Cała ta funkcja wygląda teraz następująco:

Kod: Zaznacz cały

void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
  if (pin == VIRTUAL_PIN_LOCK && state_lock != val) {
    state_lock = 1;
    SuplaDevice.channelValueChanged(channelNumber, val);
    val ? SuplaDevice.relayOn(0, 0) : SuplaDevice.relayOff(0);
    state_lock = val;
  }

  if (pin == RELAY_PIN && state_lock == 1) {
    digitalWrite(LED_CONFIG_PIN, !val);
    digitalWrite(RELAY_PIN, val);
  }

  if (pin == RELAY_PIN) {
  val ? digitalWrite(LED_RED, 1) : digitalWrite(LED_BLUE, 1);
}

  if (pin == BUTTON_PIN) digitalWrite(BUTTON_PIN, val);
}
w hardware.h zdefiniowałem:

Kod: Zaznacz cały

#define LED_RED               13
#define LED_BLUE              14
@krycha88
pomożesz?
a w setup dodałeś??

Kod: Zaznacz cały

SuplaDevice.setDigitalReadFuncImpl(&supla_DigitalRead);
SuplaDevice.setDigitalWriteFuncImpl(&supla_DigitalWrite);
Darkman
Posty: 34
Rejestracja: pt kwie 26, 2019 11:34 am

pn lut 17, 2020 7:35 am

@krycha88

po zdefiniowaniu w "supla_board_settings.cpp" kodu

Kod: Zaznacz cały

#elif defined(QOLTEC51791)

  add_Relay_Button(RELAY1_PIN, BUTTON1_PIN, 1);
  add_Led_Config(LED_CONFIG_PIN);
  add_Config(CONFIG_PIN);
  SuplaDevice.setDigitalReadFuncImpl(&supla_DigitalRead);
  SuplaDevice.setDigitalWriteFuncImpl(&supla_DigitalWrite);
przy próbie kompilacji, wyskakuje błąd:

Kod: Zaznacz cały

sketch\supla_board_settings.cpp.o:(.text._Z25supla_board_configurationv+0x0): undefined reference to `supla_DigitalRead(int, unsigned char)'
sketch\supla_board_settings.cpp.o:(.text._Z25supla_board_configurationv+0x4): undefined reference to `supla_DigitalWrite(int, unsigned char, unsigned char)'
oSuplowane:
11x MiniTiger RF 2gang -N [czekają kolejne sztuki]
3x MiniTiger RF 1gang -N
1x Sonoff Touch 1gang +N
3x SmartDGM DSG-W162 gniazdko z pomiarem
2x GreenBlue GB155 gniazdko
1x MediaTech MT3105 gniazdko
1x Yunshan (brama)
krycha88
Posty: 646
Rejestracja: pt lis 16, 2018 7:25 am

pn lut 17, 2020 8:05 am

Darkman pisze:
pn lut 17, 2020 7:35 am
@krycha88

po zdefiniowaniu w "supla_board_settings.cpp" kodu

Kod: Zaznacz cały

#elif defined(QOLTEC51791)

  add_Relay_Button(RELAY1_PIN, BUTTON1_PIN, 1);
  add_Led_Config(LED_CONFIG_PIN);
  add_Config(CONFIG_PIN);
  SuplaDevice.setDigitalReadFuncImpl(&supla_DigitalRead);
  SuplaDevice.setDigitalWriteFuncImpl(&supla_DigitalWrite);
przy próbie kompilacji, wyskakuje błąd:

Kod: Zaznacz cały

sketch\supla_board_settings.cpp.o:(.text._Z25supla_board_configurationv+0x0): undefined reference to `supla_DigitalRead(int, unsigned char)'
sketch\supla_board_settings.cpp.o:(.text._Z25supla_board_configurationv+0x4): undefined reference to `supla_DigitalWrite(int, unsigned char, unsigned char)'
dodaj tak jak to zrobiłem
https://github.com/krycha88/Primary_GUI ... gs.cpp#L60
https://github.com/krycha88/Primary_GUI ... s.cpp#L160
Darkman
Posty: 34
Rejestracja: pt kwie 26, 2019 11:34 am

pn lut 17, 2020 9:26 am

@krycha88
zrobiłem na wzór tak jak zrobiłeś przy CWU tylko bez Virtual PIN (bo wcześniej go nie użyłeś jak mi proponowałeś rozwiązanie), lecz bez rezultatu

hardware.h

Kod: Zaznacz cały

//QOLTEC 51791 brązowy moduł *************************************************************************
#elif defined(QOLTEC51791)

#define DEFAULT_HOSTNAME      "QOLTEC51791"
#define LED_CONFIG_PIN        15
#define RELAY1_PIN            4
#define BUTTON1_PIN           12
#define CONFIG_PIN            12
#define LED_RED               13
supla_board_settings.cpp

Kod: Zaznacz cały

  //QOLTEC 51791 *********************************************************************************
#elif defined(QOLTEC51791)

  add_Relay_Button(RELAY1_PIN, BUTTON1_PIN, 1);
  add_Led_Config(LED_CONFIG_PIN);
  add_Config(CONFIG_PIN);
  SuplaDevice.setDigitalReadFuncImpl(&supla_DigitalRead);
  SuplaDevice.setDigitalWriteFuncImpl(&supla_DigitalWrite);
  
kod poniżej który jest zamiast dodatkowych opcji zamiast CWU

Kod: Zaznacz cały

//QOLTEC51791 *******************************************************************************
#if defined(QOLTEC51791)

int supla_DigitalRead(int channelNumber, uint8_t pin) {
  if (pin == RELAY1_PIN) return digitalRead(pin);
  if (pin == BUTTON1_PIN) return digitalRead(pin);
}
void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
  if (pin == RELAY1_PIN) {
    val ? digitalWrite(LED_RED, 1) : digitalWrite(LED_RED, 0);
  }
  digitalWrite(pin, val);
}
oSuplowane:
11x MiniTiger RF 2gang -N [czekają kolejne sztuki]
3x MiniTiger RF 1gang -N
1x Sonoff Touch 1gang +N
3x SmartDGM DSG-W162 gniazdko z pomiarem
2x GreenBlue GB155 gniazdko
1x MediaTech MT3105 gniazdko
1x Yunshan (brama)
krycha88
Posty: 646
Rejestracja: pt lis 16, 2018 7:25 am

pn lut 17, 2020 2:49 pm

Darkman pisze:
pn lut 17, 2020 9:26 am
@krycha88
zrobiłem na wzór tak jak zrobiłeś przy CWU tylko bez Virtual PIN (bo wcześniej go nie użyłeś jak mi proponowałeś rozwiązanie), lecz bez rezultatu

hardware.h

Kod: Zaznacz cały

//QOLTEC 51791 brązowy moduł *************************************************************************
#elif defined(QOLTEC51791)

#define DEFAULT_HOSTNAME      "QOLTEC51791"
#define LED_CONFIG_PIN        15
#define RELAY1_PIN            4
#define BUTTON1_PIN           12
#define CONFIG_PIN            12
#define LED_RED               13
supla_board_settings.cpp

Kod: Zaznacz cały

  //QOLTEC 51791 *********************************************************************************
#elif defined(QOLTEC51791)

  add_Relay_Button(RELAY1_PIN, BUTTON1_PIN, 1);
  add_Led_Config(LED_CONFIG_PIN);
  add_Config(CONFIG_PIN);
  SuplaDevice.setDigitalReadFuncImpl(&supla_DigitalRead);
  SuplaDevice.setDigitalWriteFuncImpl(&supla_DigitalWrite);
  
kod poniżej który jest zamiast dodatkowych opcji zamiast CWU

Kod: Zaznacz cały

//QOLTEC51791 *******************************************************************************
#if defined(QOLTEC51791)

int supla_DigitalRead(int channelNumber, uint8_t pin) {
  if (pin == RELAY1_PIN) return digitalRead(pin);
  if (pin == BUTTON1_PIN) return digitalRead(pin);
}
void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
  if (pin == RELAY1_PIN) {
    val ? digitalWrite(LED_RED, 1) : digitalWrite(LED_RED, 0);
  }
  digitalWrite(pin, val);
}
Może zdefinowales kilkukrotnie
supla_DigitalRead
supla_DigitalWrite
??
Darkman
Posty: 34
Rejestracja: pt kwie 26, 2019 11:34 am

pn lut 17, 2020 3:05 pm

sprawdziłem cały kod i jedynie gdzie jeszcze znalazłem (poza tymi miejscami co pokazałem w poprzednim poście) to w "supla_board_settings.h":

Kod: Zaznacz cały

int supla_DigitalRead(int channelNumber, uint8_t pin);
void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val);
ale to raczej nie jest zdefiniowanie

P.S.
dioda LED_RED jest poprawnie zdefiniowana bo sprawdzałem to choćby zamieniając miejscami z LED_CONFIG_PIN
oSuplowane:
11x MiniTiger RF 2gang -N [czekają kolejne sztuki]
3x MiniTiger RF 1gang -N
1x Sonoff Touch 1gang +N
3x SmartDGM DSG-W162 gniazdko z pomiarem
2x GreenBlue GB155 gniazdko
1x MediaTech MT3105 gniazdko
1x Yunshan (brama)
krzysiek_bb
Posty: 27
Rejestracja: śr lut 05, 2020 1:17 pm

sob lut 22, 2020 9:42 am

krycha88 pisze:
pn sty 13, 2020 12:23 pm
odszukaj w pliku Primary_GUI.ino metodę get_temperature(int channelNumber, double last_val) i podmień ją na tą z linka:
https://github.com/krycha88/Primary_GUI ... I.ino#L591
Witam
Podpowiedzcie gdzie mam błąd, wszystko się pięknie, ładnie kompiluje ale brak odczytu z BME280 oraz brak sterowania przekaźnikiem.
Bez wyświetlacza.
SDA 4
SCL 5
przekaźnik na 12 przełacznik 0
DS18b20 13
co robię nie tak. W załączeniu pliki do kompilacji. Prośba o pomoc lub naprowadzenie.
Załączniki
brak_pomiaru_BME280.rar
(21.89 KiB) Pobrany 2 razy
ODPOWIEDZ