Domoticz - Arduino ...
 
Powiadomienia
Wyczyść wszystko

Domoticz - Arduino - MySensors - konfiguracja

14 Wpisów
5 Użytkownicy
0 Likes
4,196 Wyświetleń
(@ombre)
Wpisów: 14
Bywalec
Autor tematu
 

Nawiązując do postu @isom, otworzyłem oddzielny wątek dla początkujących, którzy chcą obsługiwać sporo wejść poprzez Domoticz korzystając z Arduino jako urządzenia zwiększającego liczbę GPIO. Arduino ma być podłączone poprzez USB z wykorzystaniem biblioteki MySensors. 

 

Tutaj zwracam się z prośbą do wszystkich, którzy korzystają z takiej konfiguracji: proszę o wskazówki jak to skonfigurować oraz przykłady kodów (algorytmy) obsługujących np włączniki i przekaźniki do światła, włączniki i przekaźniki do rolet, ciekawe sterowanie zaworami do podłogówki.

 

 
Dodane : 30/09/2020 8:45 am
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@ombre przeniosłem Twój wpis do domoticz bo tu znajdzie go więcej użytkowników tego systemu.

Poniżej masz kod do dowolnego arduino, ale najlepiej takie które bezpośrednio podłączysz przez USB z maliną . Kod pracuje jako bramka USB i jednocześnie obsługuje x przycisków i przekaźników . Przyciski sterują przekaźnikami autonomicznie czyli bez udziału domoticza.

Rozbudowa to zwiększenie ilości przekaźników Piny Cyfrowe , przycisków piny analog i powielenie funkcji ( łatwo się zorientować)

Po dodaniu tego arduino , kolejne już mogą pracować jako nody komunikujące się z bramką 

 
Dla zachęty dla zupełnie zielonych poniżej kod obsługujący same czujniki , np kontaktrony albo PIR
Tu wystarczy tylko zdefiniować pierwszy pin i podać ilość czujników oczywiście biorąc pod uwagę możliwości arduino
to co trzeba zmienić 
 
#define FIRST_PIN 2 // Arduino Digital I/O pin for button/reed switch
#define noButtons 6
 
Powyżej mamy start od pinu 2 i w sumie 6 czujników  
 
 
 
Dodane : 30/09/2020 11:13 am
(@ombre)
Wpisów: 14
Bywalec
Autor tematu
 

@isom dziękuje za przesłanie przykładów. Zaimplementuje je w niedziele wieczorem zapewne. Nie znam jeszcze struktury forum i dlatego umieściłem wątek w początkujących. Dziękuję za przełożenie do właściwego działu.

 

 

 
Dodane : 30/09/2020 11:31 am
(@krzysztofch)
Wpisów: 490
Ekspert Donator 2K20 Zasłużony dla Forum, Donator 2K19
 

@isom tez chce podziekowac za kod. Nigdy nie bawilem sie arduinem. Po za jednym razem . Wlasciwie juz nie pamietam jak to robilem. Czy ktos by podpowiedzial na szybkiego jak ten kod tam wrzucic. 

A moze powinienem zamowic arduino mega aby miec wiecej wyjsc? 

Z gory dziekuje. 

 image
 
Dodane : 01/10/2020 12:47 am
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@krzysztofch na początek wystarczy to co masz . Pobierz sobie Arduino IDE https://www.arduino.cc/en/main/software

Zaktualizuj biblioteki w tym Mysensors , otwierasz nowy sketch i wklejasz kod , obejrzyj kilka filmików w sieci jak nigdy tego nie robiłeś

 
Dodane : 01/10/2020 3:14 pm
(@upiter81)
Wpisów: 34
Praktykant
 

Witam, po pierwsze wielkie dzięki za udostępnienie kodów, zastosowałem w 2 arduino mega podłączonych do maliny 🙂 wszystko działa pięknie za wyjątkiem stanów urządzeń w domoticzu - są odwrócone, tj. gdy przekaźnik włączony, urządzenie w domoticz wyłączone / gdy przekaźnik wyłączony, urządzenie w domoticz włączone ..., istnieje możliwość odwrócenia tych stanów (najlepiej z poziomu arduino, nie stosując trików w domoticz, typu wirtualne urządzenia)?

Wskazówka dla tych którzy chcieli by podłączyć 2 arduino do domoticza, wykorzystując powyższe kody (potrzeba dużej ilości wejść / wyjść): a więc, kody muszą mieć różne, wszystkie zmienne (nazwy przekaźników, przycisków, stanów, wiadomości itd.). Być może jest na to łatwiejszy sposób, ale ja poradziłem sobie z tym w taki 🙂

 
Dodane : 27/04/2021 11:19 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@upiter81 Stany przekaźników zależą od sposobu wyzwalania twoich modułów przekaźnikowych, w kodzie dla 32 przekaźników bardzo łatwo odwrócić stan dla wszystkich przekaźników i nie potrzeba nic kombinować w domoticz . Zmiana fragmentu kodu poniżej odwraca działanie przekaźników

#define NUMBER_OF_RELAYS 32 // Total number of attached relays
#define RELAY_ON 0 // GPIO value to write to turn on attached relay
#define RELAY_OFF 1 // GPIO value to write to turn off attached relay

Co do reszty, to moim zdaniem zmiana prezentacji kodu wystarczy żeby rozróżnić przekaźniki w dwóch arduino, w drugim można zmienić na 

void presentation()
{
// Send the sketch version information to the gateway and Controller
sendSketchInfo("Relay1", "1.0");

 

 
Dodane : 28/04/2021 7:37 am
(@upiter81)
Wpisów: 34
Praktykant
 

@isom dzięki za wskazówkę, właśnie od tego zamierzałem zacząć przy kolejnych próbach 🙂 - wieczorkiem przetestuję i tak czy inaczej dam znać dla potomnych 😉

Co do rozróżnienia płytek o którym wspomniałeś, to niestety nie zadziałała sama zmiana w presentation (to była moja pierwsza próba :)), musiałem nawet zmienić nazwy stanów tj. Relay_ON i Relay_OFF, dopiero po tych zmianach wszystko zaczęło działać bez zakłóceń (dosłownie wszystkie zmienne należy zmienić ... - myślę że to kwestia budowy bibliotek, jeszcze nie miałem czasu przejrzeć).

 
Dodane : 28/04/2021 5:12 pm
(@upiter81)
Wpisów: 34
Praktykant
 

@isom wygląda na to że miałeś jednak rację również co do zmiany jedynie prezentacji kodu, zmyliło mnie zakłócenie polegające na zapętleniu się jednego z wyjść, co pojawiło się w końcu również po zmianie nazw wszystkich zmiennych, obecnie 2 arduino mega współpracują z maliną bez zarzutów, z identycznymi kodami a różnicą jedynie w sekcji presentation. Obawiam się jednak, że zakłócenie może wrócić (poprzednio również nie pojawiło się od razu, tylko po pewnym czasie oraz pewnej sekwencji wysterowania wejść / wyjść - niestety nie udało mi się zaobserwować jakiej), jeśli jednak się powtórzy, to zastanawiam się nad dodanie opóźnienia np. 100ms do części loop, po każdej funkcji aktywacji wyjścia, co o tym myślisz?

 
Dodane : 29/04/2021 9:05 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@upiter81 o prawda przy mniejszej ilości przekaźników i przycisków nigdy nie miałem zakłóceń pracy , ale tak krótkie opóźnienie nie wpłynie zbytnio na szybkość reakcji więc możesz spróbować 

 
Dodane : 30/04/2021 12:16 pm
(@belwe)
Wpisów: 3
Bywalec
 

Witam podepnę się pod temat: mam problem po zmianie smarticza na nowszą wersję z komunikacja z przekażnikami:Error sending switch command, check device/hardware (idx=18)!. Problem w tym że raz przekaźnik zaskoczy a juz wylaczyć się nie chce dopiero po np 3 bledach nastepuje wyłączenie. Dotyczy to różnych przekażnikó podpietych do ardiuno mega po usb.

 Załączam skryp z githuba którego używam jest dość rozbudowany ma dużo fajnych opcji a w konfiguracji jest chyba nawet łatwiejszy niż powyższe.
Zmieniłem przewód usb zmniejszyłem band rate w domoticzu bezskutecznie. 🙁 jakieś pomysły?

 
Dodane : 25/05/2021 9:14 pm
isom
 isom
(@isom)
Wpisów: 5084
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Skrypt ze stronki EasySwitch powinien działać , testowałem go przez chwilę na nowej wersji . Może sprawdz port w ustawieniach ( usuń i dodaj  bramkę USB ) jeszcze raz 

 
Dodane : 25/05/2021 9:49 pm
(@upiter81)
Wpisów: 34
Praktykant
 

Cześć, wracam z tematem po rozszerzeniu zasięg swojego Arduino Mega do kolejnej listwy przekaźników 😀  jednak druga listwa sterowana jest stanem wysokim w przeciwieństwie do pierwszej, oczywiście wszystko działa, ale prezentacja stanu przekaźników (ON / OFF), jest nieprawidłowa 😑 , tj. włączenie powoduje wyłączenie przekaźnika i odwrotnie (wyłączenie -> włączenie), co jest dla mnie oczywiście zrozumiałe, ale moja słaba znajomość kodu nie pozwala mi go poskładać jak należy ...

Będę wdzięczny za wszelkie wskazówki dla modyfikacji mojego kodu:

 
Dodane : 11/07/2022 4:39 pm
(@upiter81)
Wpisów: 34
Praktykant
 

Poskładałem 😀  załączam kod gdyby ktoś potrzebował takiego rozwiązania, dodatkowo dorzuciłem obsługę czujnika DHT22 - pewnie nie jest to optymalne rozwiązanie, ale moje umiejętności na więcej niestety na chwilę obecną nie pozwalają 🤔, ważne że działa bez błędnie 😊 

 

 
Dodane : 09/08/2022 6:47 pm
Udostępnij: