Wemos d1 mini skrzynka na listy

L0L3K
Posty: 103
Rejestracja: czw lut 22, 2018 2:34 pm

pn kwie 13, 2020 8:10 pm

klew pisze:
pn kwie 13, 2020 8:03 pm
L0L3K pisze:
pn kwie 13, 2020 4:32 pm

Nie wiesz czy gdzieś na forum jest opisany ten sposób na dwa kontraktony i soft do tego
Rozwiązanie z przekaźnikiem i dwoma kontaktronami/przełącznikami jest "sprzętowe" i da sygnał na dowolne wejście cyfrowe (najlepiej przez optoizolację).
Można też to zrobić softowo bez przekaźnika. Na nowej bibliotece wystarczy kilka linijek kodu, tylko musiałabym dorzucić "wirtualny sensor" którego stan zmienia się w programie.

Które rozwiązanie wolisz?
No właśnie raczej byłbym za rozwiązaniem softowym :geek:
alankedzior
Posty: 111
Rejestracja: pn cze 18, 2018 5:38 pm

pn kwie 13, 2020 8:20 pm

klew pisze:
pn kwie 13, 2020 8:03 pm
L0L3K pisze:
pn kwie 13, 2020 4:32 pm

Nie wiesz czy gdzieś na forum jest opisany ten sposób na dwa kontraktony i soft do tego
Rozwiązanie z przekaźnikiem i dwoma kontaktronami/przełącznikami jest "sprzętowe" i da sygnał na dowolne wejście cyfrowe (najlepiej przez optoizolację).
Można też to zrobić softowo bez przekaźnika. Na nowej bibliotece wystarczy kilka linijek kodu, tylko musiałabym dorzucić "wirtualny sensor" którego stan zmienia się w programie.

Które rozwiązanie wolisz?
O jakiej optoizolacji mowa ? Możesz podać jakiś przykład ?
Awatar użytkownika
klew
Posty: 2017
Rejestracja: czw cze 27, 2019 12:16 pm

pn kwie 13, 2020 9:09 pm

L0L3K pisze:
pn kwie 13, 2020 8:10 pm
No właśnie raczej byłbym za rozwiązaniem softowym :geek:
Na https://github.com/klew/arduino wrzuciłem przed chwilą wirtualny sensor. Przykładowy kod na ESP8266:

Kod: Zaznacz cały

#include <SuplaDevice.h>
#include <supla/network/esp_wifi.h>

#include <supla/control/button.h>
#include <supla/sensor/virtual_binary.h>

const char* ssid     = "wifissid";
const char* password = "wifipassword";

Supla::ESPWifi wifiInterface;

void setup() {
  Serial.begin(460800);
  wifiInterface.setSsid(ssid);
  wifiInterface.setPassword(password);

  char GUID[SUPLA_GUID_SIZE] = {...};
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {...};
  
  Supla::Sensor::VirtualBinary *sensor = new Supla::Sensor::VirtualBinary;

  Supla::Control::Button *buttonSet = new Supla::Control::Button(5, true, true);
  Supla::Control::Button *buttonClear = new Supla::Control::Button(6, true, true);

  buttonSet->willTrigger(*sensor, Supla::Control::Button::ON_PRESS, Supla::Sensor::VirtualBinary::SET);
  buttonClear->willTrigger(*sensor, Supla::Control::Button::ON_PRESS, Supla::Sensor::VirtualBinary::CLEAR);
  
  SuplaDevice.begin(GUID,                    // Global Unique Identifier 
                    "svrXX.supla.org",//      //"svr23.supla.org",  // SUPLA server address
                    "email@mail.com",
                    AUTHKEY);                // Authorization key
}

void loop() {
  SuplaDevice.iterate();
}
Przyciski na pinach 5 i 6 odpowiednio ustawiają lub czyszczą flagę w sensorze. Jest ustawiony tam pullup, więc wystarczy je zwierać do GND, aby było widać efekt.
Przyciskiem może być kontaktron, mikroprzełącznik, ...
Awatar użytkownika
klew
Posty: 2017
Rejestracja: czw cze 27, 2019 12:16 pm

pn kwie 13, 2020 9:35 pm

alankedzior pisze:
pn kwie 13, 2020 8:20 pm
O jakiej optoizolacji mowa ? Możesz podać jakiś przykład ?
Przy rozwiązaniu sprzętowym, zasilanie przekaźnika i wyjście sygnałowe są ze sobą połączone. Tam pracuje jakaś cewka, więc warto chronić układ przed jakimś niepowołanym skokiem napięcia.
Screenshot from 2020-04-13 23-32-28.png
Screenshot from 2020-04-13 23-32-28.png (20.14 KiB) Przejrzano 1298 razy
Nie znam się na "rodzajach" optoizolacji. Kupuję gotowce o odpowiednich napięciach po obu stronach.
Awatar użytkownika
pzygmunt
Posty: 10515
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

pn kwie 13, 2020 10:03 pm

Na zasilaniu cewki przekaźnika powinna też być dioda.
L0L3K
Posty: 103
Rejestracja: czw lut 22, 2018 2:34 pm

wt kwie 14, 2020 9:41 am

klew pisze:
pn kwie 13, 2020 9:09 pm
L0L3K pisze:
pn kwie 13, 2020 8:10 pm
No właśnie raczej byłbym za rozwiązaniem softowym :geek:
Na https://github.com/klew/arduino wrzuciłem przed chwilą wirtualny sensor. Przykładowy kod na ESP8266:

Kod: Zaznacz cały

#include <SuplaDevice.h>
#include <supla/network/esp_wifi.h>

#include <supla/control/button.h>
#include <supla/sensor/virtual_binary.h>

const char* ssid     = "wifissid";
const char* password = "wifipassword";

Supla::ESPWifi wifiInterface;

void setup() {
  Serial.begin(460800);
  wifiInterface.setSsid(ssid);
  wifiInterface.setPassword(password);

  char GUID[SUPLA_GUID_SIZE] = {...};
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {...};
  
  Supla::Sensor::VirtualBinary *sensor = new Supla::Sensor::VirtualBinary;

  Supla::Control::Button *buttonSet = new Supla::Control::Button(5, true, true);
  Supla::Control::Button *buttonClear = new Supla::Control::Button(6, true, true);

  buttonSet->willTrigger(*sensor, Supla::Control::Button::ON_PRESS, Supla::Sensor::VirtualBinary::SET);
  buttonClear->willTrigger(*sensor, Supla::Control::Button::ON_PRESS, Supla::Sensor::VirtualBinary::CLEAR);
  
  SuplaDevice.begin(GUID,                    // Global Unique Identifier 
                    "svrXX.supla.org",//      //"svr23.supla.org",  // SUPLA server address
                    "email@mail.com",
                    AUTHKEY);                // Authorization key
}

void loop() {
  SuplaDevice.iterate();
}
Przyciski na pinach 5 i 6 odpowiednio ustawiają lub czyszczą flagę w sensorze. Jest ustawiony tam pullup, więc wystarczy je zwierać do GND, aby było widać efekt.
Przyciskiem może być kontaktron, mikroprzełącznik, ...

Pod który port podłączyć Kontaktron? Jestem troche zielony w temacie, soft chcualbym wgrac przez flash tools
Awatar użytkownika
klew
Posty: 2017
Rejestracja: czw cze 27, 2019 12:16 pm

wt kwie 14, 2020 10:54 am

L0L3K pisze:
wt kwie 14, 2020 9:41 am
Pod który port podłączyć Kontaktron? Jestem troche zielony w temacie, soft chcualbym wgrac przez flash tools
Pierwszy parametr konstruktora dla tej klasy określa GPIO: Supla::Control::Button
W przykładowym kodzie to GPIO 5 i 6. Muszą być dwa kontaktrony/przyciski - załaczenie jednego (np. podniesieni klapki) ustawia flagę "jest poczta", a załącznie drugiego (np. otwarcie drzwiczek) czyści flagę.
GPIO możesz sobie dowolnie ustawić pod swoją płytkę (ten kod wymaga internal pullup, jak chcesz inaczej, to też się da, ale trzeba coś zmienić).

To jest program do Arduino IDE, więc musisz go sobie sam skompilować. Nie jest to trudne, ale jakieś podstawowy programowania by się przydały. Do samej kompilacji i wgrania przez Arduino IDE, nie potrzebujesz nic programować, tylko trzeba wszystko poinstalować. Jak już raz Tobie ruszy, to później będzie łatwiej ;)
L0L3K
Posty: 103
Rejestracja: czw lut 22, 2018 2:34 pm

wt kwie 14, 2020 4:59 pm

klew pisze:
wt kwie 14, 2020 10:54 am
L0L3K pisze:
wt kwie 14, 2020 9:41 am
Pod który port podłączyć Kontaktron? Jestem troche zielony w temacie, soft chcualbym wgrac przez flash tools
Pierwszy parametr konstruktora dla tej klasy określa GPIO: Supla::Control::Button
W przykładowym kodzie to GPIO 5 i 6. Muszą być dwa kontaktrony/przyciski - załaczenie jednego (np. podniesieni klapki) ustawia flagę "jest poczta", a załącznie drugiego (np. otwarcie drzwiczek) czyści flagę.
GPIO możesz sobie dowolnie ustawić pod swoją płytkę (ten kod wymaga internal pullup, jak chcesz inaczej, to też się da, ale trzeba coś zmienić).

To jest program do Arduino IDE, więc musisz go sobie sam skompilować. Nie jest to trudne, ale jakieś podstawowy programowania by się przydały. Do samej kompilacji i wgrania przez Arduino IDE, nie potrzebujesz nic programować, tylko trzeba wszystko poinstalować. Jak już raz Tobie ruszy, to później będzie łatwiej ;)

Jeszcze jedno ;) nie ma poprostu takiego softu w którym sam bym mógł resetować stan jest list? wtedy wystarczył by mi zwykły kontrakton jak do okien czy drzwi
Awatar użytkownika
klew
Posty: 2017
Rejestracja: czw cze 27, 2019 12:16 pm

wt kwie 14, 2020 6:31 pm

L0L3K pisze:
wt kwie 14, 2020 4:59 pm
Jeszcze jedno ;) nie ma poprostu takiego softu w którym sam bym mógł resetować stan jest list? wtedy wystarczył by mi zwykły kontrakton jak do okien czy drzwi
Tutaj możesz drugim przyciskiem resetować.
Kanał czujnika nie pozwala na zmianę jego stanu z poziomu aplikacji. Można to obejść używając np kanału przekaźnika
Awatar użytkownika
Xoggo
Posty: 179
Rejestracja: ndz mar 29, 2020 10:03 pm
Lokalizacja: Zbąszynek

śr kwie 15, 2020 3:49 pm

klew pisze:
wt kwie 14, 2020 6:31 pm
Kanał czujnika nie pozwala na zmianę jego stanu z poziomu aplikacji.
Znaczy, że wirtualnego sensora nie można aktywować lub dezaktywować wirtualnym przyciskiem?
ODPOWIEDZ

Wróć do „Ogólna dyskusja”