Wirtualne GPIO

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
User avatar
Duch__
Posts: 506
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Wed Jul 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 na budowie: 8x SRW-01, 1x ROW-02, SUPLA BUTTON V2.0, 16 x DS na ESP (GUI), Sonoff S20 jak kontroler CWU, Ping IP Socket.

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
User avatar
pzygmunt
Posts: 6892
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Thu Jul 26, 2018 7:19 am

Code: Select all

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);
}
User avatar
Duch__
Posts: 506
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Thu Jul 26, 2018 5:08 pm

Nie za bardzo rozumiem jak tego użyć w ESP.
Aktualnie na budowie: 8x SRW-01, 1x ROW-02, SUPLA BUTTON V2.0, 16 x DS na ESP (GUI), Sonoff S20 jak kontroler CWU, Ping IP Socket.

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
User avatar
shimano73
Posts: 915
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Thu Sep 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
User avatar
Espablo
Posts: 1458
Joined: Wed Jun 29, 2016 5:04 pm
Location: Oświęcim
Contact:

Fri Sep 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
User avatar
pzygmunt
Posts: 6892
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Fri Sep 21, 2018 7:06 am

shimano73 wrote:
Thu Sep 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ń.
User avatar
Duch__
Posts: 506
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Fri Sep 21, 2018 8:49 pm

shimano73 wrote:
Thu Sep 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 na budowie: 8x SRW-01, 1x ROW-02, SUPLA BUTTON V2.0, 16 x DS na ESP (GUI), Sonoff S20 jak kontroler CWU, Ping IP Socket.

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
User avatar
shimano73
Posts: 915
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Sat Sep 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
MMarcin
Posts: 83
Joined: Fri Sep 08, 2017 6:38 am

Fri Jul 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
Posts: 179
Joined: Wed Oct 31, 2018 7:58 am

Fri Jul 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.
Post Reply