Odczytywanie sygnału RF433
Jak odczytać sygnał z pilota radiowego (np. do sterowania otwierania drzwiami auta) – i wysłać go dowolnie później pewnie niektórych ciekawiło i zapewne ciekawi. Ostatnio zainteresowałem się tym, myśląc o tym, że moje oświetlenie RGB sterowane radiowo mogłoby mnie obudzić rano nastawiając barwę i temperaturę światła zbliżoną do wschodu słońca – na początku ciemna czerwień przez pomarańcz, żółć, aż do bieli i na dodatek przed budzikiem. Przydałoby się to szczególnie zimą. Dlatego zaciekawiłem się jak za pomocą komputera sterować tym co mam.
Krótka historia
Mój przykład dostępny jest na bitbucket – projekt rf-clone. Jest tam dostępny projekt dla Arduino pozwalający na odczytywanie sygnału z urządzenia oraz inny projekt pozwalający wysłać go w dowolnej chwili. Dodatkowo dostępny jest projekt w .NET Core 2 pozwalający na wysłanie z komputera (na razie z systemem Windows) sygnału przez USB na Arduino, a dalej na urządzenie. Wszystko raczej powinno być opisane na bitbucket – i tyle w temacie.
Biblioteki i moje urządzenia
Jest kilka gotowych bibliotek na Arduino pozwalających odczytać i wysłać sygnał RF433. Niestety moje urządzenia nie współgrały z nimi, mają o wiele dłuższe sygnały, a może raczej nie potrafiłem ich zintegrować z bibliotekami? Jedynym rozwiązaniem było rozgryzienie tego samemu. Dzięki temu moje piloty sterujące taśmą RGB (jakiejś chińskiej firmy 无名) jak i włącznikami (MacLean) przestały być tajemnicze i nawet mogą być zbędne.
Odkrywanie – jak to działa
Wszystko nabrało rozpędu przez projekt 433 MHz RF module with Arduino. Dzięki niemu zrozumiałem jak są wysyłane/odczytywane sygnały i jak można je analizować. Bardzo dobrze wyjaśnił mi podstawy odczytywania sygnałów bez użycia oscyloskopu, czy innego cuda wykorzystującego do tego Audacity. Mój projekt na bitbucket w dużej mierze bazuje na nim – ma jednak kilka usprawnień, może i udziwnień – jedno jest pewne – fajnie jest zrozumieć jak wygląda taki sygnał, odczytać go, potem eksperymentować, a na koniec z komputera sterować oświetleniem. Do wykorzystania potrzeba jedynie – nadajnika i odbiornika RF433, Arduino Uno, parę kabelków, jakiegoś arkusza kalkulacyjnego, który pozwala na manualną analizę i poprawkę sygnału, a również czasu i trochę cierpliwości :)