Wirtualne GPIO

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Duch__
Posty: 704
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

śr lip 25, 2018 7:39 pm

Witam.

Czy istnieje możliwość stworzenia wersji softwaru pod Arduino która obsługiwała by wirtualne wyjścia / wejścia, reprezenowane tylko w formie stanów 0 i 1, mogą to być w formie bitów, bajtów etc. Myślę o urządzeniu wielowyjściowym / wielowejściowym gdzie rzeczywiste przekaźniki i stan wejść sterowane by były przez magistralę RS485 / I2C. Coś w stylu jeden ESP8266 i zestaw np. modułów opartych na PCF8574 https://pl.aliexpress.com/item/PCF8574- ... 04744.html
Aktualnie w domu: 8xSRW-01, 1xROW-02, SUPLA BUTTON V3.4, 16xDS na ESP (GUI), Sonoff S20 jako kontroler CWU

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
Awatar użytkownika
pzygmunt
Posty: 8479
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

czw lip 26, 2018 7:19 am

Kod: Zaznacz cały

int supla_DigitalRead(int channelNumber, uint8_t pin) {
   if (pin > 100) {
      // I2C
      return 0;
   }
    return digitalRead(pin);
}

void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
   if (pin > 100) {
      // I2C
      return;
    }
    digitalWrite(pin, val);
}

void setup() {
   SuplaDevice.setDigitalReadFuncImpl(&supla_DigitalRead);
   SuplaDevice.setDigitalWriteFuncImpl(&supla_DigitalWrite);
}
Duch__
Posty: 704
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

czw lip 26, 2018 5:08 pm

Nie za bardzo rozumiem jak tego użyć w ESP.
Aktualnie w domu: 8xSRW-01, 1xROW-02, SUPLA BUTTON V3.4, 16xDS na ESP (GUI), Sonoff S20 jako kontroler CWU

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
Awatar użytkownika
shimano73
Posty: 1096
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze

czw wrz 20, 2018 10:28 pm

Udało mi się rozszerzyć ilość gpio w esp12 nawet do 32 przy pomocy pcf8574 i gdy ustawie je jako przekaźniki czy sterowanie roletami to działa super. Problem mam z przyciskami lokalnym bo nie mam pojęcia jak „przerobić” funkcje natywna aby sterować lokalnie roletami
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Jak się dziś oddycha https://schimano73.aqi.eco/
https://github.com/shimano73
Awatar użytkownika
Espablo
Posty: 1465
Rejestracja: śr cze 29, 2016 5:04 pm
Lokalizacja: Oświęcim
Kontaktowanie:

pt wrz 21, 2018 6:01 am

Nie wiem jak jest w arduino ale w supla esspressif przyciski lokalne działają na przerwaniach. Miałem podobny problem z GPIO16 w moim inCan bo ten pin jako jedyny nie obsługuje przerwań. @pzygmunt doradził mi, żeby zrobić odczyt na timerach i tak też zrobiłem. Sprawdzam sobie ten pin co jakiś czas. Może tutaj też tak powinieneś
Każde urządzenie elektryczne działa o wiele lepiej jeśli podłączysz je do prądu. :? :roll:
https://github.com/Espablo
Awatar użytkownika
pzygmunt
Posty: 8479
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

pt wrz 21, 2018 7:06 am

shimano73 pisze:
czw wrz 20, 2018 10:28 pm
Udało mi się rozszerzyć ilość gpio w esp12 nawet do 32 przy pomocy pcf8574 i gdy ustawie je jako przekaźniki czy sterowanie roletami to działa super. Problem mam z przyciskami lokalnym bo nie mam pojęcia jak „przerobić” funkcje natywna aby sterować lokalnie roletami
Albo sprawdzasz co jakiś czas, albo musisz włączyć obsługę przerwań.
Duch__
Posty: 704
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

pt wrz 21, 2018 8:49 pm

shimano73 pisze:
czw wrz 20, 2018 10:28 pm
Udało mi się rozszerzyć ilość gpio w esp12 nawet do 32 przy pomocy pcf8574 i gdy ustawie je jako przekaźniki czy sterowanie roletami to działa super. Problem mam z przyciskami lokalnym bo nie mam pojęcia jak „przerobić” funkcje natywna aby sterować lokalnie roletami
Może kolega podzielić się kodem?
Aktualnie w domu: 8xSRW-01, 1xROW-02, SUPLA BUTTON V3.4, 16xDS na ESP (GUI), Sonoff S20 jako kontroler CWU

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
Awatar użytkownika
shimano73
Posty: 1096
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze

sob wrz 22, 2018 6:21 am

Jak tylko dokonam przelewu schematu z komórek mózgowych do bitowych pochwale się w osobnym wątku moim projektem
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Jak się dziś oddycha https://schimano73.aqi.eco/
https://github.com/shimano73
MMarcin
Posty: 92
Rejestracja: pt wrz 08, 2017 6:38 am

pt lip 26, 2019 8:38 am

Mam taki problem.
Program pisany w arduino.
Dodałem sobie sensor NO na pinie 4 w wemos D1 mini.
Wszystko działa prawidłowo.
Ale chciałbym aby ten czujnik był na pinie wirtualnym np. 20 i zmieniać jego stan programowo.
Zmieniłem więc pin 4 na 20:
SuplaDevice.addSensorNO(20);

digitalWrite(20, LOW); nie działa.
Jakim poleceniem zmieniać ten pin wirtualny?
vajera
Posty: 179
Rejestracja: śr paź 31, 2018 7:58 am

pt lip 26, 2019 11:58 am

DigitalWrite nie zadziała z nieistniejącym pinem.
Musisz wykorzystać funkcje setDigitalWriteFuncImpl/setDigitalReadFuncImpl do zapisu/odczytu stanu wirtualnego przekaźnika i sterowania przy jego pomocy fizycznym pinem.
ODPOWIEDZ

Wróć do „Pomysły i koncepcje”