ESP8266 Primary GUI v2

kosa24
Posty: 9
Rejestracja: sob mar 16, 2019 8:47 pm

sob wrz 19, 2020 8:45 am

krycha88 pisze:
czw wrz 17, 2020 10:07 am
kosa24 pisze:
czw wrz 17, 2020 9:37 am
Witam. Mam pytanie, czy byłby duży kłopot z dołożeniem możliwości obsługi expandera mcp23017? Próbowałem samemu, dołączyłem bibioteki:

Kod: Zaznacz cały

#include <io.h>
#include <Adafruit_MCP23017.h>
#include <SPI.h>
#include <FS.h>
Później wg rozwiązania @elmaya, poza setup:

Kod: Zaznacz cały

Adafruit_MCP23017 mcp;

class MyMcp23017 : public Supla::Io {
  public:
    void customDigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
            if ((pin >= 100)&& (pin <= 115)){
        mcp.digitalWrite(pin - 100, val);  
         return;
      }
      if (pin <= 99) {
        return ::digitalWrite(pin,val);  
      }
   }
   
   int customDigitalRead(int channelNumber, uint8_t pin) {
      if ((pin >= 100)&& (pin <= 115)){
        return mcp.digitalRead(pin - 100);     
      }     
      if (pin <= 99){
        return ::digitalRead(pin);  
      }
    }   
}MyMcp23017; 
i w setup():

Kod: Zaznacz cały

  mcp.begin();
  mcp.pinMode(0, OUTPUT);
  mcp.pinMode(1, OUTPUT);
  mcp.pinMode(2, OUTPUT);
  mcp.pinMode(3, OUTPUT);
  mcp.pinMode(4, OUTPUT);
  mcp.pinMode(5, OUTPUT);
  mcp.pinMode(6, OUTPUT);
  mcp.pinMode(7, OUTPUT);
  mcp.pinMode(8, OUTPUT);
  mcp.pinMode(9, OUTPUT);
  mcp.pinMode(10, OUTPUT);
  mcp.pinMode(11, OUTPUT);
  mcp.pinMode(12, OUTPUT);
  mcp.pinMode(13, OUTPUT);
  mcp.pinMode(14, OUTPUT);
  mcp.pinMode(15, OUTPUT); 
I w sumie expander działa, np:

Kod: Zaznacz cały

mcp.digitalWrite(1, HIGH);
załącza przekaźnik na starcie, ale nie wiem dlaczego nie działa przypisanie pinów 100-115 do pinów mcp. Nie mogę np dodać:

Kod: Zaznacz cały

add_Relay_Invert(101);
Kompiluje się, ale brak reakcji na zmianę stanu, w logu też. Co robię nie tak? Może jest jakiś inny sposób przypisania tych pinów?
Rozwiązanie @elmaya jest oparte na nowej bibliotece a ten projekt Primary_GUI jest oparty na starej bibliotece SuplaDevice.

Musisz zbudować projekt na nowej wersji:
https://github.com/krycha88/Primary_GUI_nexo

Na nexo tym sposobem działa, ale tylko OUTPUT, relay działa na każdym pinie, coś nie mogę uruchomić INPUT, próbuję różnymi sposobami, ale mi nie działa. Szkoda. Nexo i nowe biblioteki działają super. Dla tych co chcą się przesiąść z Primary GUI v2- na wemosie mini- trzeba kompilować na nowej wersji płytki ESP8266 i na Generic ESP8266 Module, na LELIN(WEMOS) D1 nie działa zapis ustawień, może to komuś oszczędzić sporo czasu :)
krycha88
Posty: 797
Rejestracja: pt lis 16, 2018 7:25 am

sob wrz 19, 2020 8:55 am

kosa24 pisze:
sob wrz 19, 2020 8:45 am
Na nexo tym sposobem działa, ale tylko OUTPUT, relay działa na każdym pinie, coś nie mogę uruchomić INPUT, próbuję różnymi sposobami, ale mi nie działa. Szkoda. Nexo i nowe biblioteki działają super. Dla tych co chcą się przesiąść z Primary GUI v2- na wemosie mini- trzeba kompilować na nowej wersji płytki ESP8266 i na Generic ESP8266 Module, na LELIN(WEMOS) D1 nie działa zapis ustawień, może to komuś oszczędzić sporo czasu :)
To nie ma znaczenia, przy kompilacji projekty musisz wskazać aby utworzyło partycje spiffs.
petione
Posty: 8
Rejestracja: sob lip 21, 2018 4:26 pm

śr wrz 23, 2020 10:22 am

Co zmienić w kodzie aby aby przycisk był wykrywany poprzez podanie stanu wysokiego a nie niskiego?
ODPOWIEDZ

Wróć do „Nowości”