28 lut 2016

RFLink Gateway, cz. 3 - lutowanie, konfiguracja i działanie

Jakiś czas temu zacząłem przygodę z RFLinkiem. Najpierw kupiłem moduł nadawczo-odbiorczy, który w wyniku mojej pomyłki okazał się wyłącznie modułem jednofunkcyjnym. Na szczęście udało się go odesłać do Conrad Electronics ze stratą jedynie na przesyłkę - szczegóły w jednym z poprzednich postów.
W konsekwencji, po sprawdzeniu cen właściwego Aurela, zdecydowałem się na zakup komponentów RFLink-a - opis w kolejnym poście.

Przesyłka z nodo-shopu dotarła praktycznie w obiecywanym terminie 6 dni (obecują 3-30 dni, poczta holenderska, bez śledzenia), ale niestety z uwagi na Chiński Nowy Rok, przesyłka z Arduino Mega 2560 szła nieco dłużej i dotarła tydzień po komponentach z Holandii. Do tego trzeba dodać wyjazd służbowy i mamy efekt - montaż RFLinka zdołałem przeprowadzić dopiero dzisiaj.


Lutowanie


Zamówione komponenty z nodo-shopu, to gotowa płytka drukowana w kolorze zielonym, moduł nadawczo-odbiorczy Aurela, ten właściwy :) oraz gniazdo SMA anteny, kilka pinów oraz gniazd. Całość przygotowana do lutowania, na stronie jest nawet instrukcja lutowania. Należy jedynie zwrócić uwagę, iż instrukcja opisuje wersję płytki przed dodaniem wyprowadzeń pinów RX/TX, stąd należy dolutować jeszcze 2 piny, których nie widać na zdjęciu poniżej, ale są oznaczone w sposób oczywisty na płytce.
Po zlutowaniu całości, gotową płytkę, z przykręconą anteną, o której wspominałem wcześniej, można założyć na Arduino, ale najpierw to ostatnie należy zaprogramować.

Konfiguracja


Konfiguracja RFLinka składa się z dwóch etapów. Etap 1 to wgranie oprogramowania RFLink Gateway do Arduino. W tym celu należy pobrać aplikację wraz z loaderem z http://sourceforge.net/projects/rflink/files/, podłączyć Arduino do portu USB w komputerze, odnotować adres portu COM, a następnie załadować plik rflink.cpp.hex, korzystając z instrukcji przedstawionej na blogu producenta: http://www.nemcon.nl/blog2/, ustawiając odnotowany wcześniej adres portu COM.

Po wgraniu oprogramowania otrzymamy komunikat o zakończeniu wgrywania i możemy przejść do Etapu 2.

Na tym etapie należy odłączyć Arduino od komputera, nałożyć na nie płytkę RFLinka i całość podłączyć do Raspberry Pi (w moim przypadku Pi2).

Sprawdzając zawartość pliku /var/log/messages odnajdziemy wpisy podobne do poniższych, z których najistotniejszy jest fakt przypisania urządzenia do portu /dev/ttyUSB0 w systemie. Informacja ta jest niezbędna do skonfigurowania RFLinka w Domoticzu.

Feb 28 18:30:17 pi kernel: [1542715.127244] usb 1-1.2: new full-speed USB device number 9 using dwc_otg
Feb 28 18:30:17 pi kernel: [1542715.230334] usb 1-1.2: New USB device found, idVendor=1a86, idProduct=7523
Feb 28 18:30:17 pi kernel: [1542715.230356] usb 1-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
Feb 28 18:30:17 pi kernel: [1542715.230367] usb 1-1.2: Product: USB2.0-Serial
Feb 28 18:30:18 pi kernel: [1542715.278823] usbcore: registered new interface driver usbserial
Feb 28 18:30:18 pi kernel: [1542715.278928] usbcore: registered new interface driver usbserial_generic
Feb 28 18:30:18 pi kernel: [1542715.279006] usbserial: USB Serial support registered for generic
Feb 28 18:30:18 pi kernel: [1542715.282096] usbcore: registered new interface driver ch341
Feb 28 18:30:18 pi kernel: [1542715.282270] usbserial: USB Serial support registered for ch341-uart
Feb 28 18:30:18 pi kernel: [1542715.282381] ch341 1-1.2:1.0: ch341-uart converter detected
Feb 28 18:30:18 pi kernel: [1542715.287808] usb 1-1.2: ch341-uart converter now attached to ttyUSB0

Podłączonego RFLinka należy jeszcze skonifgurować w Domoticzu. W tym celu należy przejść do zakładki Sprzęt, a następnie dodać sprzęt RFLink Gateway USB, wskazać odnotowany wcześniej port, u mnie /dev/ttyUSB0, jako Serial Port i oczywiście nadać własną nazwę dodanemu komponentowi.
Po dodaniu sprzętu, w logu odnajdziemy wpisy zbliżone do poniższych:

2016-02-28 18:33:26.512 RFLink: Using serial port: /dev/ttyUSB0
2016-02-28 18:33:27.433 RFLink: Controller Initialized!...
2016-02-28 18:33:27.508 RFLink Detected, Version: 1.1 Revision: 37 Build: 5

W tym momencie, Domoticz rozpocznie dodawanie rozpoznanych urządzeń.

Działanie


Nie dysponuję na razie dużą liczbą urządzeń działających na częstotliwości 433MHz, ale pierwszym czujnikiem, który rozpoznał mój Domoticz dzięki nowemu modułowi była czujka zewnętrzna od stacji pogody firmy Oregon Scientific, która została rozpoznana jak poniżej:
2016-02-28 18:34:38.318 (RFLink) Temp + Humidity (Eurochron)
dzięki czemu mogłem ją dodać do systemu jako normalny czujnik temperatury (wilgotność jest raportowana jako 0).

Jest to czujka bardzo podobna, jeśli nie identyczna z zaprezentowaną na obrazku powyżej.

Kolejnym urządzeniem, które dodałem do systemu, a właściwie samo się rozpoznało dzięki RFLink Gateway jest dzwonek do drzwi, który niedawno był do kupienia w Biedronce.

Dzwonek bezprzewodowy z Biedronki

Napisałem dzwonek, choć powinienem napisać przycisk wyzwalający dzwonek. Z niewiadomych przyczyn, system rozpoznał naciśnięcie dzwonka jako przełącznik typu On/Off i nawet przestawienie sposobu pracy na Dzwonek (Doorbell) nie dało oczekiwanych rezultatów. Tzn. naciśnięcie przycisku jest rozpoznawane poprawnie, ale niestety wywołanie zdarzenia w Domoticzu, mimo sygnalizacji wyzwolenia przycisku nie powoduje aktywacji samego odbiornika, czyli dzwonek nie dzwoni. Może wrócę do tego później.

Ostatnim na dzień dzisiejszy urządzeniem, które udało mi się rozpoznać przy pomocy RFLink Gateway'a jest zestaw bezprzewodowych gniazdek Anslut z marketu dla majsterkowiczów Jula, dostępny w bardzo sensownej cenie 50 PLN (ja kupiłem dawno i do tej pory używałem pilota z zestawu). Zestaw ten jest o tyle ciekawy, że korzysta z niestandardowego kodowania klucza oraz umożliwia generowanie indywidualnego klucza poprzez naciśnięcie przycisku na odbiornikach.
Jula - Anslut

Zestaw składa się z 3 gniazdek oraz pilota trójkanałowego i naciśnięcie każdego z przycisków zostało bez problemu zarejestrowane przez Domoticza. Tym razem nie było żadnego problemu z aktywacją odpowiedniego odbiornika i z poziomu kontrolera mogę włączać i wyłączać dowolny z odbiorników, a także otrzymywać stan odbiornika, nawet w przypadku sterowania dołączonym do zestawu pilotem.

Podsumowanie


Finalnie mój zestaw RFLink Gateway składa się z:
  • komponentów RFLink Gateway ze sklepu nodo-shop w cenie 28 EUR z przesyłką
  • Arduino Mega 2560 z Aliexpress w cenie USD 5,98
  • Anteny 433MHz na kablu 1,5m z Aliexpress w cenie USD 1,89
  • kabla USB między RPi, a Arduino (nie było w komplecie z Arduino, co sprzedawca lojalnie zaznaczył, choć na przykład do znanych mi Uno są zawsze dodawane)
Całość kosztowała więc ~150 PLN, a RFXtrx433E kosztuje na dzień dzisiejszy 110 EUR + przesyłka.
Być może RFLink Gateway nie ma wszystkich funkcji tego rozwiązania, ale jest także stale rozwijany i z informacji od innych użytkowników wynika, iż autor dodaje obsługę nawet egzotycznego sprzętu na życzenie.
W moim przypadku, zasięg nadajnika i odbiornika jest bardzo duży - sterowanie odbiornikiem umieszczonym w kotłowni odbywa się z poziomu nadajnika RFLink umieszczonego 3 piętra nad kotłownią.

Jeżeli macie pytania dot. modułu, piszcie w komentarzach.