Domoticz – Komunikacja bezprzewodowa

Domoticz – Komunikacja bezprzewodowa

Witam wszystkich Majsterkowiczów!

Chciałbym przedstawić wam sposób na komunikację bezprzewodową do Domoticza z modułami NRF24l01. Jest to przydatne, gdy chcemy mieć np. sterowanie przekaźnikami w miejscu gdzie nie mamy możliwości zastosowania komunikacji przewodowej.

Do dzieła!

Będziemy potrzebować:

Bramka podłączana do RaspberryPi:

Na początku podłączamy wg. zamieszczonego schematu moduły NRF24l01 do naszego Arduino nr1:

Schemat

Gdy podłączyliśmy wszystko jak na zamieszczonym obrazku, możemy przejść to wgrywania programu.

Wchodzimy do pobranej paczki z bibliotekami MySensors i przerzucamy folder libraries do C:\Users\Nazwa użytkownika\Documents\Arduino nadpisując folder. Następnie uruchamiamy środowisko Arduino IDE i po kolej klikamy Plik>Przykłady>MySensors>SerialGateway i wgrywamy do naszego Arduino nr1.Po wgraniu kodu, możemy odłączyć Arduino od komputera i podłączyć do naszego Raspberry. Następnie logujemy się do Domoticza, wchodzimy w Ustawienia>Sprzęt i dodajemy naszą bramkę MySensors tak jak w przykładzie:

Domoticz 1

Po wejściu w Ustawienia>Logi niebieskim kolorem powinniśmy mieć odpowiednią informację, że nasza bramka została dodana i korzysta z portu /dev/ttyUSB0.

Bramka do komunikacji z resztą czujników gotowa, teraz należy zająć się drugim Arduino.

Bezprzewodowe moduły:

Do naszego drugiego Arduino podłączamy moduł NRF24l01 tak samo jak w przypadku bramki, z tym, że dodajemy np. moduł przekaźników jak w moim przypadku, piny łączymy następująco:

GND – GND Arduino

IN1 – Pin 3 Arduino

IN2 – Pin 4 Arduino

VCC – 3,3V Arduino

Podłączamy Arduino do komputera i w Arduino IDE przechodzimy do Plik>Przykłady>MySensors>RelayActuator. W przypadku gdy chcemy wysterować więcej niż jeden przekaźnik musimy lekko zmodyfikować kod. W zaznaczonej na niebiesko linii wpisujemy liczbę przekaźników, które podłączyliśmy. Każdy następny przekaźnik podłączamy po kolej od pinu numer 3.

Po wgraniu kodu możemy przejść do konfiguracji Domoticza. Na początku przechodzimy do logów, powinien pojawić się nasz moduł:

Domoticz 2

Jeśli wszystko idzie zgodnie z planem to przechodzimy do Ustawienia>Urządzenia i szukamy naszych modułów:

Zrzut ekranu (20)

Klikamy zieloną strzałkę w prawo, nadajemy nazwę naszemu przełącznikowi i klikamy Dodaj Urządzenie:

Zrzut ekranu (21)

Jeśli zrobiliśmy wszystko zgodnie z planem to w zakładce Przełączniki powinniśmy ujrzeć to:

Domoticz 3

Jeśli chcemy dodać przełączniki do głównego pulpitu klikamy na gwiazdkę przy logach przycisku :)

Sterowanie z telefonu z Androidem:

Screenshot_2015-12-13-11-20-28

Jest też możliwość sterowania Domoticzem z telefonu. Przechodzimy do sklepu Play i pobieramy aplikację Dromotica. W aplikacji przechodzimy do Menu>Domoticz i konfigurujemy nazwę użytkownika, hasło, adres URL  domoticza, port, rodzaj zabezpieczenia i logowania – oczywiście z poza lokalnej sieci będzie to działac tylko wtedy, kiedy mamy przekierowane porty na adres lokalny naszego Raspberry.

 

 

 

Przykład zastosowania, u mnie:

Tutaj przykład zastosowania dzisiejszego poradnika:

Klika słów na koniec:

Polecam przejrzeć przykłady wykorzystania bibliotek MySensors, bo jest tego sporo, a ja pokazałem zastosowanie tylko na jednym przykładzie. Jedna bramka MySensors może obsługiwać kilka bezprzewodowych modułów w różnych miejscach, oczywiście jeśli mamy zasięg, bo miedzy ścianami nieraz bywa, że tego zasięgu nie ma. Jeśli ktoś ma jakieś pytania, lub chce się dowiedzieć czegoś więcej, to proszę pytać w komentarzach. Jeśli się spodoba, to w wolnych chwilach postaram się pokazać coś więcej. :)

Ocena: 4.58/5 (głosów: 55)

Podobne posty

59 komentarzy do “Domoticz – Komunikacja bezprzewodowa

  • Mogę potwierdzić że to działa. Sam korzystam od dłuższego czasu i mam trochę nodów. W zasadzie prosto jest łączyć różne ze sobą. Ja na przykład mam w jednym miejscu czunik pir razem z DHT22, w innym pir, 3 ds1b20 i wyświetlacz jeszcze. W sumie jak to arduino, trudno nie jest. Dorobiłem sobie jeszcze sterowanie gniazdkami z biedronki na 433MHz.

    Odpowiedz
    • Dzięki! Bramka jedna, kwestia, żeby tylko połączyć przykłady i tyle. Ja na razie za wiele nie mam podłączone. Jedyne co jeszcze chcę dodać to w zasadzie tylko światło w swoim pokoju i tyle. Temperaturę w środku i na zewnątrz już mam, a do tego powiadamianie przy pomocy aplikacji Pushbullet i fajnie to wszystko działa :D

      Odpowiedz
      • Jak widać ja światło też mam. Miałem trochę zabawy z upchnięciem tego w ścianie, ale jakoś się udało. Pewnie zdajesz sobie sprawę, ale nody mogą działać jako repeatery. Wystarczy dodać jeden parametr przy gw.begin.

        Odpowiedz
        • Nie bardzo, możesz coś więcej powiedzieć? :) A powiedz mi, masz jakiś sposób, żeby dało się włączać swiatło normalnie włącznikiem i przez Domoticza?

          Chodzi o to, żeby zmienić gw.begin na “gw.begin(NULL, AUTO, true);”, dodać “gw.process();” w pętli i tyle? Mogę zrobić zwykłego noda, który już coś robi jako repeater? :)

          Odpowiedz
        • Cześć,
          Napisz więcej jak upchałeś to w ścianie?
          NRF, arduino (nawet pro mini), relay i ac-dc troche zajmują.
          Mi z trudnością udaje się zmieścić dosyć kompaktowego switcha fibaro pod wlacznikiem – mam niestety puszki o standardowych głębokościach

          Odpowiedz
      • No więc zerknij sobie na ten screen, opisałem co robią poszczególne paremetry http://screenshooter.net/1288732/qtfncwn . Normalnie działa automatyczny routing, jednakże okazało się u mnie że lepiej jak wybieram ręcznie jak ma pakiet lecieć. Co do światła to z tego co pamiętam to jest to praktycznie przykład od mysensors relay % button. Zastosowałem włącznik monostabilny.

        Odpowiedz
        • Czyli muszę sobie zobaczyć jakie ID ma każde urządzenie i mogę zrobić, że np. od końca jest 3, potem 2 i bramka, to 3 wysyła do 2, a 2 wysyła cały sygnał do bramki? :D

          Odpowiedz
        • Kurde, nie wiem jak tu komentować by się bałagan nie zrobił. No więc arduino mini pro razem z nrfem wlutowałem do płytki która wytrawiłem sobie bo kabelki więcej zajmowały. Przekaźnik i zasilacz są w puszce wyżej, to znaczy tam gdzie są rozdzielane przewody. Do jednej puszki nie dało się zbytnio tego u mnie zmieścić.

          Odpowiedz
      • Za słabe jest tu zagnieżdżanie komentarzy, muszę odpisywać na Twoje starsze wiadomości. Jest tak jak myślisz. Ja mam np. tak: nod z komórki(tam za nią w zacienionym miejscu w osłonie antyradiacyjnej mam czujnik temperatury i wilgtoności) wysyła mi dane do czujnika przy liczniku energii(jest najbliżej), ten wysyła do repeatera który mam 0,5 piętra wyżej, a z kolei on wysyła do bramki która jest kolejne piętro wyżej. Id noda sprawdzisz jak go zrestartujesz i zerkniesz na logi w Domoticzu(w prawym górny rogu Setup/Log).

        Odpowiedz
        • @jendrush, faktycznie jest misz-masz z komentarzami. To jest 1 czy 2 warstwowe PCB? Czy możesz ją udostępnić? Te które znalazłem na MySensors są duże bo autorzy chcą aby były uniwersalne. Aż się prosi aby Chinczycy to podłapali i zaczęli sprzedawać płytki z arduino pro mini, NRF w jednym w kompaktowym rozmiarze. Sądzę, że by się sprzedawały jak ciepłe bułeczki

          Odpowiedz
      • No więc tak, mam dwa rodzaje gniazdek z Biedronki. Jedne takie czarne odporne na zachlapania(były 2 sztuki), oraz białe normalne(były 3 sztuki). Na początek czytamy kod na jaki reaguje dane gniazdko, robimy to wciskając przyciski na pilocie i jednocześnie mając uruchomiony przykład arduino ShowReceivedCode z biblioteki RemoteSwitch, oraz oczywiście podłączony odbiornik 433Mhz(ten tani). Pokaże się coś takiego: http://screenshooter.net/1288732/koudrbn . Jak już mamy odczytane wszystkie kody które nas interesują to bierzemy normalny przykład mysensors z przekaźnikiem(Relay node) i go modyfikujemy tak aby podawał nam że jest podłączone do niego więcej przekaźników, wtedy normalnie się pojawią w Domoticzu. W kodzie tego noda ustawiamy wysyłanie odpowiednich wiadomości funkcją sendCode, np. tak: RemoteTransmitter::sendCode(2, 58998, 175, 5); 2 to pin do którego podłączony jest nadajnik 433Mhz, dwie kolejne cyfry to dane które odczytaliśmy wcześniej, a ostatnia to ilość powtórzeń wysyłania(tu można poeksperymentować).

        Odpowiedz
      • No nie zupełnie:) Musisz mieć oczywiście bramkę podpięta do Raspberry. Tak jak w tym artykule powyżej jest opisane. Na RPi siedzi sobie Domoticz. Do RPi masz podpięte po usb arduino na którym masz sketch gateway. Następnie robisz sobie noda takiego jak masz w mysensors, tylko tyle że wgrywasz do niego ten kod, oraz podłączasz nadajnik 433Mhz. Jeżeli nic nie zmienisz to w Domoticzu pojawi Ci się 6 przekaźników. Ja u siebie mam jeden normalny i 5 bezprzewodowych sterowanych z tego jednego noda. Jeżeli będziesz miał odczytane kody i je wprowadzisz to będziesz mógł wtedy sterować swoimi gniazdkami. Aby jakikolwiek node się w Domoticzu pokazał to musisz mieć bramkę, to jest taki punkt dostępowy dla nodów.

        Odpowiedz
    • @jendrush: hej, mógłbyś mnie wesprzeć w kwestii sterowania gwiazdkami clarus z biedronki? Mam zapytane już kody ale codesend nic nie zmienia:-( czytałem żeby kwestia protokołu i długości pulsu ale nie bardzo chce działać:-( sprzęt RPO B+ domoticz i 433 utils. Z góry dziękuję.

      Odpowiedz
    • W sumie chyba dałoby rade, Domoticz jest w wersji na PC, a do tego akurat bramka MySensors nie potrzebuje GPIO. Jak masz mozliwosc to pobierz odpowoedniego Domoticza i spróbuj, powinno dzialac :)

      Odpowiedz
    • Dzięki za udostępnienie. Ja chyba narysuję coś prostego w Eagle. Od momentu jak przesiadłem się z Fritzinga jestem pod wrażeniem, jak pięknie się projektuje tam płytki.

      Ps. Możesz użyć gotowe Pro mini działające na 3.3V z obniżonym taktowaniem zegara (działają na wbudowanym kwarcu) i zrezygnować z regulatora napięcia i zaoszczędzić trochę miejsca na płytce. Takie 3.3V pro mini są do dostania na ebayu.

      Napisz jeszcze jak zasilasz ten układ. Masz jakiś AC-DC? Ja cały czas kminię jak to zmieścić do puszki w ścianie bo moje testowe relaye działają lepiej niż fibarowskie switche :-)

      Pozdrawiam zapaleńców! :)

      Odpowiedz
  • Panowie może wy jesteście mi w stanie pomóc. Mam RaspberryPi z modułem RaZberry do kontroli urządzeń w technologii z-wave (np. fibaro). Płytka wpięta w port GPIO w praktyce wykluczyła w prosty, bez kosztowy sposób podpięcia czegoś więcej. Ponieważ apetyt rośnie w miarę jedzenia ;-) pomyślałem o sterowaniu przez Domoticz swojego systemu alarmowego (poprzez magistralę X10 i RF 433MHz, tak uogólniając). Najszybciej i najprościej okazało się, że da się to zrobić na Arduino Mega. Tak więc do portów D16 i D19 mam podpięty receiver a do portów D14 i D15 transmitter, plus obydwa porty GND. Arduino i Raspberry spięte kabelkiem USB wszystko śmiga jak powinno. Trochę przydługo ale chciałem naświetlić sprawę. O ile z Raspberry jestem za pan brat i przerobiłem na nim kilkanaście projektów o tyle Arduino Mega używam od wczoraj. Moje pytanie brzmi, jak podpiąć (do których pinów) do niego jeszcze moduł PIR, czujnik temperatury i wilgotności DHT11 (ten z wbudowanym rezystorem i zdaje się kondensatorem) oraz czujnik ciśnienia BMP 180? Oraz jak doinstalować odpowiednie biblioteki MySensors.

    Odpowiedz
    • Zdefiniuj najpierw pytanie, bo w sumie nie ma Ci na co odpowiedzieć

      Jeśli MySensors to nie RF 433Mhz – to nie ta technologia. MySensors dziala z modułami NRF24L01 na 2,4 Ghz
      Zapraszam na stronę projektu http://www.mysensors.org/build/ – chyba prościej się tego nie da wytłumaczyć. Są tam przykłady jak podłączyć wszystkie te moduły które wymieniłeś i jak wgrać na nie sketche. Więcej pracy kolego – samo nie przyjdzie

      Odpowiedz
  • Usystematyzujmy zatem. Po pierwsze znam stronę MySensors i znam te projekty ale wszystkie opierają się na Mini Arduino Pro a ja chcę podpiąć wszystko do jednej płytki Arduino MEGA. Ponieważ nie znam się zupełnie na Arduino to nie mam pojęcia, do których pinów. Po drugie napisałem, że Arduino mam spięte kablem USB z Raspberry, na którym stoi serwer Domoticz, dodatkowo nie mam potrzeby aby te czujniki działały bezprzewodowo więc moduł NRF24L01 jest mi zbędny. O RF433 wspomniałem tylko aby wiadomo było, które piny mam już zajęte, używam go do systemu alarmowego i wkładek dopuszkowych do sterowania światłem w domu, wygląd i zasada działania podobna do tych od np. Fibaro ale za ułamek ceny. Kupowanie kolejnych Mini Pro wydaje mi się zbędne skoro mam niewykorzystane 90% pinów w Mega. Wiem, że samo nie przyjdzie ale wydawało mi się, że strony tego typu są po to aby osoby z większym doświadczeniem pomagały tym z mniejszym, jeśli się myliłem to przepraszam nie było tematu.

    Odpowiedz
    • Witam ja również poszukuję podobnego rozwiązania ponieważ mam podobny problem jak ty, a po co stosować nie wiadomo ile nodów jak 90 % portów w arduino jest nie wykorzystanych. Wolał bym wykorzystać komunikację po kablu ponieważ posiadam centralny punkt gdzie schodzą się wszystkie skrętki a dodatkowo wiele z nich jest nie wykorzystanych. Może ktoś ma jakiś pomysł ?

      Odpowiedz
      • Michał jeżeli wiesz powiedz mi dlaczego w Domoticz w sprzęcie :
        MySensors Gateway USB Version: 1.5.1 Ustawienia ale port /dev/ttyACM0 a nie USB a jak już wgram coś na drugie arudino czy atmege328 to albo wogole domoticz nie widzi albo tylko przy jednym przykladzie cos pokazuje jak 2015-12-21 21:17:27.227 MySensors: Gateway Ready…
        2015-12-21 21:17:27.303 MySensors: Gateway Version: 1.5.1
        2015-12-21 22:11:03.533 MySensors: Node: 1, Sketch Name: AIQ Sensor CO2 MH-Z14
        2015-12-21 22:11:03.541 MySensors: Node: 1, Sketch Version: 1.0
        2015-12-21 22:11:03.557 Error: MySensors: Unknown/Invalid sensor type (43)

        Odpowiedz
  • Witam, zainteresowało mnie to na tyle, że na gorąco zamówiłem cały “sprzęt” do tego eksperymentu.
    Mam już jednak pytanko, o którą “niebieska linie” chodzi w temacie zmiany ilości podłączonych przekazników ?
    linia 38 ?

    Odpowiedz
  • Ja mam inne pytanie w opisie jest, VCC – 5V Arduino, czy nrf nie działa na zasilaniu 3,3V (wiem że toleruje sygnały 5V)?
    Pytanie 2, ktoś w komentarzach upchnął to w całości, z gniazdkiem elektrycznym do puszki, i ewentualnie czym zasilił?
    Dobrze rozumiem, że do każdego realizującego funkcję wykonawczą (odbiornika) konieczne jest arduino z nrf?
    Co do jakości odbioru można zastosować jako nadajnik NRF z zewnętrzną anteną kosztuje jakieś 40-50 PLN i wtedy naprawdę ostro zwiększa się zasięg jako odbiorniki mogą być już wtedy zwykłe małe NRF’y. Sprawdziłem to w prostym systemie pagerowym i sprawdza się.

    Odpowiedz
    • 1. Tutaj nastąpił mały błąd w czasie redagowania – zaraz poprawiam :)

      1. Nano + nrf24l01 + przekaźnik, jakoś się da upchać jeśli nie mamy za dużo kabli, tylko jest problem, bo zasilacz 5v juz się nie bardzo chce zmieścić, a jeśli mamy płytkie puszki to raczej się nie uda. Najlepiej było by wytrawić/kupić płytkę jak ktoś niżej podlinkował :)
      Odpowiedz
  • ad1) Arduino ma stabilizator napięcia 3,3V. Można też kupić sporo tansze i mniejsze Arduino pro mini ktore nie ma regulatora, ale mozna go zasilac nawet 3,3V. Co prawda atmega w nim dziala na 8Mhz ale nie potrzeba więcej “mocy” w pojedyńczym node
    ad 2) Pytanie nie do mnie ale sie tym nieco interesowałem. Koledzy z forum MySensors działają w temacie. Rzuciły mi się w oczy takie dwa tematy:
    http://forum.mysensors.org/topic/2488/in-wall-pcb/37
    Dodatkowo na Dirty pcb mozna zamowic gotowe plytki dwustronne
    http://dirtypcbs.com/view.php?share=11495&accesskey=9a4200ea5d04f2725b5bf0a93925ed8c

    Jak dla mnie te elementy są jeszcze za duże. Ja mam problem upchnąć sporo mniejsze przekaźniki fibaro w niektórych gniazdkach :(

    ad 3) Nie ma co przepłacać, gotowy NRF z anteną to koszt nieco ponad 3USD na ebay: http://www.ebay.com/itm/NRF24L01-PA-LNA-SMA-Antenna-Wireless-Transceiver-communication-module-2-4G-1100m-/310651702557
    Używam taki z zewnętrzną anteną jako gateway a do tego nody z wbudowana antena i nie mam problemu z zasięgiem w domu wolnostojącym

    Pozdrawiam i życzę wszystkiego dobrego w Nowym Roku

    Odpowiedz
  • Michałe napisz jak wplynales na kod Serial Getaway i Relay acuator bo u mnie na dokladnie takim sprzecie (leonardo i nano z Twoich linkow) nie chce zadzialac.
    Te programy od mypsensors sa przeciez napisane pod atmege 328 a leonadro i nano, ktore podales sa na atmedze 32U4.

    Odpowiedz
  • Przeczytałem kolejny raz i nasunęło mi się pytanie, a nawet cztery. 1. Czy sprawdzał ktoś działanie wersji przewodowej z Windows w domu mam jeden komputer robiący za serwer. 2. Czy jako stacja bazowa musi być używane Arduino, czy może to być atmega z konwerterem USB->UART, lub w ogóle atmega z konwerterem napięć i port RS (taniej). 3. Czy MySensors ma opcje pomiaru temperatury????. 4. Czy ma ktoś schemat, MySensors LAN, bo w domoticzu jest taka opcja byłoby to o tyle wygodne, że serwer mam na strychy, a mój dom jest jak klatka Faradaya więc może być problem z zasięgiem.
    Wiem, że obszernie, ale po próbach z VirtualWire i kilkoma termometrami muszę znaleźć alternatywę

    Odpowiedz
  • ad2) Nie bardzo rozumiem pytanie, ale odniose sie do tego czy taniej czy drożej – na ebayu arduino nano z konwerterem USB kupisz za mniej niz 2.5 USD http://www.ebay.com/itm/MINI-USB-Nano-V3-0-ATmega328P-CH340G-5V-16M-Micro-controller-board-Arduino-/161403910939?hash=item25946c3b1b:g:kEYAAOSwq7JT-wVU
    Szkoda na dyskusje co byłoby lepsze i tańsze ;-)
    ad3) Myślę ze w 90% MySensors jest używane do pomiaru temperatury: Tu masz jak zbudować termometr https://www.mysensors.org/build/temp
    ad4) Nie jest to schemat ale masz opisane niemalże łopatologicznie jak to podłączyć https://www.mysensors.org/build/ethernet_gateway

    Ps. Czy zaglądałeś na stronę i forum MySensors? Tam naprawdę jest chyba wszystko wyjaśnione

    Odpowiedz
    • A mogę się nie przyznawać? Tak postąpiłem jak małolat i najpierw zapytałem na forum a potem zajrzałem na stronę wybaczycie? Na swoje usprawiedliwienie mam tylko to, że przeglądałem to na telefonie.

      Odpowiedz
  • Udało się komuś odpalić ethernet gateway na ENC28J60. Po wgraniu szkicu nie mam żadnej komunikacji z modułem. Zmieniłem ip i mac tak, żeby pasowały do reszty sieci. Inne programy na UIPEthernet z tymi ustawieniami IPi Mac działają poprawnie. Czy brak czujników/przekaźników może miec na to wpływ?

    Odpowiedz
  • Ja nie, ale na stronie pisza cos takiego:

    For ENC28J60 you have to enable correct Ethernet library as illustrated below (in your sketch code):

    #include // Use this if you have attached a Ethernet ENC28J60 shields
    //#include // Use this for WizNET module and Arduino Ethernet Shield

    Note that the ENC28J60 mdoule uses much more memory than W5100. You probably have to disable DEBUG in MyConfig.h to make it compile.

    Zastosowales sie do tego?

    Odpowiedz
    • Biblioteki zmienione, debugowanie w MyConfig wyłączone, (bez tego się nie mieści w pamięci) adresacja w mojej sieci poprawna, mac adres unikalny, podłączenie poprawne (sprawdziłem, na innym programie działa i ładuje do DOMOTICZA temp)
      Ciekawostką jest to, że na W5100 działa bez problomu (jeżeli nie liczyć tego że w domoticzu nie widać czujników). Coś nie lubi mnie MySensors
      Czy do domoticza potrzebne jest jakieś openhardware

      Odpowiedz
  • A jak to zrobić bez modułów radiowych ?
    Czyli Arduino tak naprawdę byłoby ekspanderem portów do maliny. Albo jak softwarowo emulowac w malinie czujniki Domoticza ?

    Odpowiedz

Odpowiedz

anuluj

Masz uwagi?