- komunikacja z potwierdzaniem poprawności transmisji,
- moduł nadawczy zasilany z baterii CR2016 (teoretyczny czas pracy na jednej baterii: 10 lat),
- maksymalny prąd obciążenia (tryb uśpienia/nadawanie): 0,2 μA / 22,6 mA,
- zasilanie odbiornika: 230 V AC, ok. 2 W,
- 12 wyjść przekaźnikowych,
- maksymalne obciążenie wyjść: 5 A/250 VAC
- częstotliwość pracy transceivera: 868 MHz
- zasięg w terenie otwartym: ok. 100 m
Kompletny system składa się z nadajnika i odbiornika rozkazów sterujących. Głównym problemem implementacyjnym było znalezienie sprawdzonego i energooszczędnego modułu do bezprzewodowej transmisji danych. Co oczywiste, zależało mi na tym, aby nadajnik tego systemu pracował na zasilaniu bateryjnym i charakteryzował się minimalnym poborem mocy zapewniającym długą pracę urządzenia. Ponieważ w moim poprzednim projekcie energooszczędnego systemu pomiaru temperatury z EP 8/2018 [1] i EP 9/2018 [2] zdobyłem duże doświadczenie w zakresie obsługi bardzo ciekawych modułów RFM12B pracujących w paśmie 433, 868 lub 915 MHz (w zależności od wersji), należących do bogatej oferty modułów radiowych produkowanych przez firmę HopeRF, zdecydowałem się na ich zastosowanie również w tej konstrukcji. Moduły, o których mowa stanowią kompletne rozwiązanie toru radiowego nadawczo-odbiorczego. Dostarczają wygodny interfejs komunikacyjny SPI pozwalający na przeprowadzenie pełnej konfiguracji elementu w ramach dostępnej szerokiej palety ustawień jak i sterowanie komunikacją radiową. Nie będę powtarzał informacji dotyczących specyfikacji i obsługi tych peryferiów, gdyż takowe zamieściłem w ramach wspomnianych wcześniej artykułów. Zainteresowanych tymi szczegółami Czytelników odsyłam do wskazanych wcześniej materiałów. Zanim jednak przejdę do schematów urządzenia kilka słów napiszę na temat specyfikacji całego systemu.
Tak, jak wspomniano powyżej, system wiRelay składa się z dwóch modułów komunikacyjnych: nadawczego (pilota), który obsługuje klawiaturę sterującą i odbiorczego (karty przekaźników), który steruje wbudowanymi przekaźnikami dużej mocy. Moduł nadawczy pracuje na zasilaniu bateryjnym w postaci pastylki CR2016 i większość swojego czasu spędza w trybie uśpienia (dla ograniczenia poboru mocy) czekając na zmianę stanu obsługiwanej klawiatury matrycowej. Wspomnianej zmianie stanu towarzyszy wybudzenie układu (mikrokontrolera i modułu RF), wysłanie komunikatu do karty przekaźników, odbiór odpowiedzi i ponowne uśpienie urządzenia. W ten prosty sposób ograniczamy do minimum pobór energii ze źródła zasilania pozwalając na wieloletnią pracę urządzenia.
Uważny Czytelnik dostrzeże pewne ograniczenia i sformułuje związane z nimi zapytania. Otóż bateria CR2016 (3 V) zastosowana w urządzeniu przeznaczona jest do zasilania urządzeń cechujących się bardzo niskim poborem prądu – rzędu ułamków mA, do pojedynczych mA. Nasz układ po wybudzeniu aktywuje nadajnik modułu RFM12B, który w czasie transmisji pobiera prąd rzędu 22,6 mA, co stanowi bardzo duże obciążenie dla niewielkiej baterii zasilającej. Na szczęście transmisja trwa około 20 ms, w związku z czym pobrana energia jest bardzo mała, niemniej jednak takie obciążenie skromnej baterii ma pewne reperkusje. Po pierwsze – z czasem spada jej znamionowa pojemność, napięcie znamionowe oraz wzrasta rezystancja wewnętrzna. Spadek pojemności nie jest jakiś drastycznie wielki, ale można go szacować na 25%, przy spadku napięcia baterii do 2,2 V. Zagadnienie jest naprawdę bardzo ciekawe, w związku z czym zachęcam ambitnych Czytelników do zgłębienia tematu, który został omówiony na stronie [3], gdzie inżynierowie firmy Energizer i Nordic Semiconductor bardzo drobiazgowo wyjaśnili ten interesujący temat w dokumencie o nazwie „High pulse drain impact on CR2032 coin cell battery capacity”. Na szczęście główne podzespoły nadajnika pracują już przy niewielkich napięciach zasilających (moduł RF: 2,2 V, mikrokontroler: 1,8 V) i nawet przy 25% spadku pojemności, tego typu aplikacja powinna zapewnić wieloletnią pracę urządzenia.
Aby ocenić jak długo nadajnik pracował będzie na pojedynczej baterii CR2016 należy zastanowić się z jakich etapów składa się jego praca i jakie są wtedy prądy pobierane ze źródła napięcia zasilającego. Przystępując do obliczeń przyjąłem następujący podział cyklu pracy urządzenia:
- etap trybu power-down (uśpienie), który trwa z dużym przybliżeniem 24 h/dobę i podczas którego pobierany jest prąd rzędu 0,2 μA,
- etap transmisji modułu RFM12B (po wybudzeniu), który trwa średnio 20 ms i podczas którego pobierany jest prąd rzędu 22,6 mA.
Założono ponadto, iż wybudzanie nadajnika, a więc zmiana stanu podłączonej klawiatury następuje 15 razy na dobę. Przy tych założeniach otrzymano teoretyczny, ponad 62-letni czas pracy na pojedynczej baterii CR2016 (o zredukowanej o 25% pojemności) co wydaje się wartością niespotykaną i grubo przekraczającą czas życia samej baterii, standardowo przyjmowany, jako 10 lat.
Uważny Czytelnik dostrzeże pewną subtelność w opisie sposobu działania nadajnika (pilota) systemu wiRelay. Otóż napisałem, że pilot, oprócz nadania rozkazu, odbiera również odpowiedź wysłaną przez kartę przekaźników. Tak, to prawda. Oba moduły w istocie przeprowadzają dwustronną komunikację wyłącznie po to, aby po stronie pilota sterującego pozyskać informację na temat wykonania rozkazu sterującego (zmiany stanu sterowanego przekaźnika). Do tego rodzaju potwierdzenia służą diody LED zamontowane na obwodzie drukowanym nadajnika (pilota). Oczywiście tego rodzaju rozwiązanie nie daje 100% pewności co do faktu wykonania rozkazu sterującego, gdyż nie trudno wyobrazić sobie sytuację, gdzie rozkaz wysłany przez nadajnik został w istocie wykonany, zaś stosowne potwierdzenie wysłane przez odbiornik nie dotarło do nadajnika przez co zasygnalizował on (zupełnie błędnie) niewykonanie tegoż rozkazu sterującego, lecz moim zdaniem lepsze jest tego rodzaju rozwiązanie, niż brak jakiegokolwiek potwierdzania po stronie nadajnika. Z resztą mechanizm ten jest niezbędny wyłącznie wtedy, gdy naocznie nie jesteśmy w stanie przekonać się o tym, iż sterowany przez nas przekaźnik (a więc podłączony do niego odbiornik) nie zmienił stanu pracy.
Sama karta przekaźników pozostaje, co oczywiste, w nasłuchu i po otrzymaniu rozkazu sterującego zmienia stan związanego z nim przekaźnika (w przypadku braku błędów) po czym odsyła potwierdzenie do odbiornika (pilota). Warto również podkreślić, iż transmisja pakietów danych pomiędzy stronami komunikacji opatrzona jest stosowną sumą kontrolną CRC8 minimalizując ryzyko potencjalnych błędów. Tyle w kwestii funkcjonowania systemu.