Obsługa urządzeń 433MHz

Pragnienie stworzenia systemu kontroli nad tym co się dzieje w mieszkaniu skierował mnie jakiś czas temu do wspaniałego projektu Domoticz. O ile kilka czujników na bazie mysensors badających temperaturę i wilgotność zapewniało zaplecze informacyjne to brakowało mi elementów wykonawczych. Krótki research u wujka Google potwierdził moje tezy – istnieje ogromna ilość urządzeń pracujących na magicznym paśmie 433MHz. No i właśnie w tym miejscu postanowiłem wszczepić swoje kabelki.

Analiza i transkrypcja sygnałów radiowych wymagałaby dość sporego nakładu pracy, a dodatkowo metod realizacji sterowania 433MHz jest conajmniej kilka. Zakładając że mam kilka urządzeń z którymi chcę się skomunikować muszę je posortować w kategoriach odbiornik/nadajnik sygnału. Dla odbiorników trzeba rozważyć kolejne warianty – gdy urządzenie zostało wyposażone w opcję „uczenia się” sygnału sterującego i gdy oczekiwało ono konkretnego, z góry określonego ciągu bitów do poprawnej realizacji tego co realizować powinno. Urządzenia będące nadajnikami wyglądały na prostsze do ogarnięcia (wyglądały, serio tylko wyglądały). Gdy dotarło do mnie że musiałbym każdy sygnał z takiego urządzenia poddać analizie w dziedzinie czasu (np. używając oscyloskopu), a następnie domyślić się co inżynierowie-konstruktorzy ukryli pod poszczególnym bitem to dopadła mnie pewna niemoc (i znów kilka dni przestoju).

Ostatnią nadzieją dla mnie była internetowa społeczność majsterkowiczów i ogromnym fartem trafiłem na projekt o nazwie RFLink. Projekt ten zakłada użycie Arduino Mega z transceiverem 433MHz, a w dodatku posiada on ogromną bazę rozkodowanych sygnałów co bezpośrednio przekłada się na mnóstwo wspieranych urządzeń. Niewiele myśląc wyciągnąłem megę z jakiegoś starego projektu i jedyne czego mi brakowało to właśnie tego nieszczęsngo transceivera. Wybór padł na polecany przez autora RFLink’a układ produkowany przez firmę Aurel, a konkretnie na AUREL 650201044G w wersji 5V. Na dzień pisania tego tekstu jest on dostępny w hurtowni TME pod tym linkiem i kosztuje dokładnie 63.82zł (bez wysyłki). Do tego tymczasowo przydała się też mała płytka prototypowa i kilka kabelków męsko-męskich. Instrukcja jest dość prosta, ściągamy firmware ze strony projektu, a następnie podłączamy kabelki zgodnie z tym opisem. Piny Aurel’a odczytujemy z dokumentacji technicznej udostępnionej przez firmę TME. Dla mojego układu pinout wygląda tak:

Pin 1 = Antenna
Pin 2 = Ground
Pin 3 = Not Connected
Pin 4 = MEGA tx3/Pin 14 (TX Data)
Pin 5 = MEGA rx3/Pin 15 (-RX/TX- toggle signal!)
Pin 6 = MEGA Pin 22 (TX Enable)
Pin 7 = Ground
Pin 8 = optional: 20k resistor to ground
Pin 9 = MEGA rx1/Pin 19 (RX Data)
Pin 10= MEGA VCC (Also connect here a 100nf to ground)

Odpalamy program zawarty w firmware, podłączamy złożoną płytkę przez USB i instalujemy na niej oprogramowanie RFLink. Pozostało już tylko podpiąć megę po USB do… no właśnie, moje RPi w wersji B miało pewne problemy z jednoczesnym zachowaniem wymaganej wydajności prądowej na złączach USB i zmuszony byłem do zakupu aktywnego HUBa z zewnętrznym zasilaczem. Następnie otwieramy Domoticza i w zakładce „Setup -> Hardware” dodajemy nowe urządzenie:
Enabled: zaznacz
Name: RFLink (w sumie jest tu pełna dowolność)
Type: RFLink Gateway USB (bez ethernet adapter!)
Data Timeout: disabled (koniecznie!)
Serial Port: wybierz ścieżkę odpowiadającą podłączonemu arduino

Zatwierdzamy nowe urządzenie i o ile wszystko jest w porządku to przechodząc do zakładki „Setup -> Devices” ujrzymy jedne z wielu obsługiwanych przez RFLinka urządzeń (o ile takie w naszej okolicy się znajdują). W następnym odcinku już bezpośrednio o dodawaniu zewnętrznych elementów pracujących w torze radiowym.