Bezprzewodowy wyłącznik wi-link

Bezprzewodowy wyłącznik wi-link

Projekt ten, jak to często bywa, powstał z potrzeby chwili. Otóż okazało się, iż w moim domu został zamontowany wyłącznik oświetlenia w nieodpowiednim miejscu, zaś wszystkie prace wykończeniowe zostały już dawno zakończone. Nie było więc mowy o kuciu ścian i modyfikacji bieżącej instalacji elektrycznej. Po krótkim namyśle i na bazie swoich doświadczeń z systemami bezprzewodowego sterowania i akwizycji postanowiłem zbudować bezprzewodowy link sterujący, który nazwałem wi-link.

Podstawowe parametry:
  • moduł nadawczy jest zasilany baterią CR2032 i podłączamy do niego wyłącznik oświetlenia koniecznie tzw. dzwonkowy, czyli chwilowy,
  • moduł odbiorczy steruje źródłem światła 230 V i jest zasilany z tego napięcia,
  • maksymalny prąd styków: 5 A, 250 VAC,
  • moduł nadawczy zaprojektowany na okrągłej płytce o średnicy zaledwie 40 mm,
  • moduł odbiorczy zaprojektowany na okrągłej płytce o średnicy 60 mm,
  • moduły są powiązane ze sobą za pomocą ustawianego adresu, liczba adresów: 32,
  • częstotliwość pracy transceivera: 868 MHz,
  • zasięg w terenie otwartym: ok. 100 m.
Uwaga! Na płytce modułu odbiornika zamontowano kompletny zasilacz łącznie z transformatorem zasilanym napięciem sieciowym 230 V AC oraz zamontowano elementy będące na potencjale tegoż napięcia. Istnieje niebezpieczeństwo porażenia prądem elektrycznym o napięciu 230 V AC, co może stanowić zagrożenie dla życia i zdrowia użytkowników. W związku z tym, montaż układu w tym zakresie powierzyć należy osobie posiadającej uprawnienia elektryczne w zakresie eksploatacji urządzeń o napięciu do 1 kV oraz niezbędną wiedzę i doświadczenie.

Zależało mi na tym by nadajnik tego systemu pracował na zasilaniu bateryjnym i charakteryzował się minimalnym poborem mocy zapewniającym długą pracę urządzenia. W jednym z moich poprzednich projektów – energooszczędnym systemie pomiaru temperatury z EP8/2018 i EP9/2018 zdobyłem duże doświadczenie w zakresie obsługi bardzo ciekawych modułów RFM-12B pracujących w paśmie 433, 868 lub 915 MHz (w zależności od wersji). Są one przedstawicielami całej rodziny modułów radiowych produkowanych przez firmę HopeRF. Dlatego zdecydowałem się na ich zastosowanie również w tym projekcie.

Moduły, o których mowa stanowią kompletne rozwiązanie toru radiowego nadawczo-odbiorczego dostarczając wygodny interfejs komunikacyjny SPI pozwalający na przeprowadzenie pełnej konfiguracji elementu w ramach dostępnej szerokiej palety ustawień jak i sterowanie komunikacją radiową. W tym miejscu 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 w związku z czym zainteresowanych tymi szczegółami Czytelników odsyłam do pozycji powyżej.

Specyfikacja systemu

Zanim przejdę do schematów urządzenia kilka słów napiszę na temat specyfikacji całego systemu. Tak, jak wspomniano, system wi-link składa się z dwóch modułów komunikacyjnych: nadawczego (wi-link-tx), do którego podłączamy obsługiwany wyłącznik oświetlenia (koniecznie tzw. dzwonkowy, czyli chwilowy) i odbiorczego (wi-link-rx), który steruje źródłem światła 230 V (zasilany sieciowo). Moduł nadawczy pracuje na zasilaniu bateryjnym w postaci pastylki CR2032 i większość swojego czasu „spędza” w uśpieniu (dla ograniczenia poboru mocy) czekając na zmianę stanu obsługiwanego wyłącznika. Wspomnianej zmianie stanu towarzyszy wybudzenie układu (mikrokontrolera i modułu RF), wysłanie komunikatu do adresowalnego odbiornika 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 CR2032 przeznaczona jest do zasilania urządzeń (3 V) 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 RFM-12B, który w czasie transmisji pobiera prąd rzędu 23 mA, co stanowi bardzo duże obciążenie dla niewielkiej baterii zasilającej. Na szczęście transmisja trwa około 10 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. Warto zajrzeć na stronę https://bit.ly/3Ol42zY, gdzie inżynierowie firmy Energizer i Nordic Semiconductor bardzo drobiazgowo omówili 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 będzie pracował na pojedynczej baterii CR2032 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śpienia), 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 przez moduł RFM-12B (po wybudzeniu), który trwa średnio 10 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łączonego wyłącznika instalacyjnego następuje 15 razy na dobę. Przy tych założeniach otrzymano teoretyczny, ponad 62 letni czas pracy na pojedynczej baterii CR2032 (o zredukowanej o 25% pojemności) co wydaje się wartością niespotykaną i grubo przekraczającą czas życia samej baterii.

Budowa i działanie

Zaprojektowano bardzo prosty system mikroprocesorowy (rysunek 1), którego „sercem” jest niewielki mikrokontroler ATtiny24A (niskonapięciowy) taktowany wewnętrznym oscylatorem 1 MHz. Steruje on pracą modułu transceivera dzięki realizacji programowej obsługi interfejsu SPI oraz obsłudze przerwania zewnętrznego Pin Change Interrupt 1 (wyprowadzenie PCINT9) odpowiedzialnego za mechanizm wysyłania danych. Ponadto mikrokontroler obsługuje przełącznik DIP-SWITCH, za pomocą którego ustawiamy adres nadajnika, który powinien się pokrywać z adresem powiązanego odbiornika oraz wyłącznik instalacyjny podłączany do złącza SW (koniecznie tzw. dzwonkowy, czyli chwilowy), którego obsługa realizowana jest z użyciem przerwania zewnętrznego Pin Change Interrupt 0 (wyprowadzenie PCINT5) inicjującego wybudzanie mikrokontrolera (i modułu RF).

Rysunek 1. Schemat ideowy nadajnika systemu wi-link

Zgodnie z tym, co napisano wcześniej, nasz nadajnik powinien charakteryzować się minimalnym zapotrzebowaniem na energię elektryczną, jako że jest zasilany niewielką baterią CR2032. W związku z powyższym zastosowano poniższe mechanizmy programowo-sprzętowe:

  • wyłączono wszystkie nieużywane peryferia mikrokontrolera (komparator analogowy, TIMER1, TIMER0, USI, ADC);
  • wprowadzono mikrokontroler w tryb niskiego poboru mocy Power-down, z którego wybudzany jest wyłącznie poprzez zmianę stanu wyłącznika SW. Wybudzony mikrokontroler inicjuje transmisję danych, po czym przechodzi ponownie w tryb Power-down;
  • nieużywany transceiver RFM-12B wprowadzany jest każdorazowo w tryb niskiego poboru mocy.
Listing 1 Funkcja main programu obsługi aplikacji nadajnika systemu wi-link

int main(void){
char Data, Address, Switch = 0;

//Podciągnięcie portu adresu do VCC
ADDRESS_PORT |= ((1<<PA4)|(1<<PA3)|(1<<PA2)|(1<<PA1)|(1<<PA0));
_delay_ms(1);
//Odczytanie adresu urządzenia
Address = READ_ADDRESS;
//Wyłączenie podciągania portu adresu do VCC z uwagi na redukcję poboru mocy
ADDRESS_PORT &= ~((1<<PA4)|(1<<PA3)|(1<<PA2)|(1<<PA1)|(1<<PA0));
//Wyłączenie komparatora analogowego dla zmniejszenia poboru mocy
ACSR = (1<<ACD);
//Redukcja poboru mocy przez wyłączenie modułów (lub ich zegarów):
//TIMER1, TIMER0, USI, ADC
PRR = (1<<PRTIM1)|(1<<PRTIM0)|(1<<PRUSI)|(1<<PRADC);
//Konfiguracja i uruchomienie przerwania zewnętrznego obsługującego
//switch SW wybudzający procesor
GIMSK |= (1<<PCIE0); //Uruchomienie przerwania od switcha SW
PCMSK0 = (1<<PA5); //Zmiana stanu na PA5 generuje przerwanie
//Uruchomienie i konfiguracja RFM12B, w tym interfejsu SPI
RFM12bInit(0xFF);
//Wprowadzmy moduł RFM12B w tryb powerDown
RFM12bPowerDown();

while(1){
cli();
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sei();
sleep_cpu();
//--------------------------------------------------------------
//W tym miejscu śpimy i czekamy na wybudzenie
//przez zmianę stanu przycisku SW
//--------------------------------------------------------------
sleep_disable();

_delay_ms(40);

//Tylko dla załączonego wyłącznika SW
if(!READ_SWITCH){
if(Switch) Data = 0b10100000; else Data = 0b10101111;
Switch ^= 0x01;
//Wychodzimy z trybu powerDown modułu RFM12b
RFM12bPowerUp();

//Uruchomienie przerwania odpowiedzialnego za nadawanie
GIFR |= (1<<PCIF1);
GIMSK |= (1<<PCIE1);

//Wysyłamy ramkę danych do odbiornika
RFM12bStartTx(&Data, 1, Address);
//Czekamy na zakończenie transmisji
while(RFM12B.Status != PACKET_SENT);

//Wyłączenie przerwania odpowiedzialnego za nadawanie
GIMSK &= ~(1<<PCIE1);

//Wprowadzmy moduł RFM12B w tryb powerDown
RFM12bPowerDown();
}

//Uruchomienie przerwania od switcha SW
GIFR |= (1<<PCIF0);
GIMSK |= (1<<PCIE0);
}
}

Na listingu 1 zaprezentowano kompletną funkcję main programu obsługi aplikacji nadajnika systemu wi-link. Prawda, że prosta? Dzięki takim mechanizmom otrzymano wspomniane wcześniej wartości zapotrzebowania na energię dla całego urządzenia.

Tyle w kwestii nadajnika, przejdźmy do schematu ideowego odbiornika, który pokazano na rysunku 2. Tak jak poprzednio, zaprojektowano bardzo prosty system mikroprocesorowy, którego „sercem” jest ten sam niewielki mikrokontroler ATtiny24 sterujący pracą modułu transceivera dzięki realizacji programowej obsługi interfejsu SPI oraz obsłudze przerwania zewnętrznego Pin Change Interrupt 1 (wyprowadzenie PCINT9) odpowiedzialnego za mechanizm odbierania danych. Ponadto mikrokontroler obsługuje przełącznik DIP-SWITCH, za pomocą którego ustawiamy adres odbiornika oraz przekaźnik REL, który steruje pracą podłączonego źródła światła (lub innego odbiornika).

Rysunek 2. Schemat ideowy odbiornika systemu wi-link

W odróżnieniu od układu nadajnika, w ramach aplikacji odbiornika zaprojektowano niewielki, kompletny układ zasilający przeznaczony do podłączenia do sieci 230 V. Było to niezbędne z uwagi na fakt, iż moduł odbiornika steruje pracą przekaźnika, który w czasie załączenia pobiera prąd rzędu 50 mA. Pomimo tego sumaryczny pobór mocy urządzenia w czasie załączenia przekaźnika nie przekracza 0,25 W.

Co oczywiste, aby komplet urządzeń typu nadajnik-odbiornik pracował ze sobą stanowiąc bezprzewodowy link oba moduły muszą mieć skonfigurowany ten sam adres (przełączniki DIP-SWITCH). Zastosowany rodzaj przełącznika umożliwia implementację 32 kompletów typu nadajnik-odbiornik/odbiorniki, przy czym jeden nadajnik sterować może pracą kilku odbiorników.

Ustawienia Fuse-bitów obu modułów:
CKSEL3...0: 0010
SUT1...0: 10
CKDIV8: 0
CKOUT: 1
Listing 2. Funkcja main programu obsługi aplikacji odbiornika systemu wi-link

int main(void){
//Podciągnięcie portu adresu do VCC
ADDRESS_PORT |= (1<<PA4)|(1<<PA3)|(1<<PA2)|(1<<PA1)|(1<<PA0);
//Wyłączenie komparatora analogowego dla zmniejszenia poboru mocy
ACSR = (1<<ACD);
//Redukcja poboru mocy przez wyłączenie modułów (lub ich zegarów):
//TIMER1, USI, ADC
PRR = (1<<PRTIM1)|(1<<PRUSI)|(1<<PRADC);
//Port przekaźnika, jako wyjściowy i wyłączony
RELAY_PORT_AS_OUTPUT;
//Inicjalizacja RFM12B w trybie odbiornika
RFM12bInit(READ_ADDRESS);

sei();
while(1){
//Odebrano poprawną ramkę danych: Size|Payload|CRC8
if(dataReady){
dataReady = 0;
if(Payload == COMMAND_ON) RELAY_ON;
else if(Payload == COMMAND_OFF) RELAY_OFF;
}
}
}

Na listingu 2 zaprezentowano kompletną funkcję main programu obsługi aplikacji odbiornika systemu wi-link. Banalna, nieprawdaż?

Montaż i uruchomienie

Schematu montażowy nadajnika pokazano na rysunku 3. Jak widać, zaprojektowano bardzo niewielki obwód drukowany (średnica jedynie 40 mm) z przewagą elementów SMD, który w zamyśle przeznaczony jest do umieszczenia w puszcze połączeniowej obsługiwanego wyłącznika instalacyjnego.

Rysunek 3. Schemat płytki PCB nadajnika systemu wi-link

Montaż obwodu drukowanego nadajnika rozpoczynamy od warstwy TOP, na której przylutowujemy mikrokontroler, następnie lutujemy moduł RFM-12B, dalej elementy bierne a na końcu elementy mechaniczne. Dalej, przechodzimy na warstwę BOTTOM, gdzie przylutowujemy koszyczek baterii zasilającej. Do tak przygotowanej płytki przylutowujemy antenę nadawczą w postaci kawałka przewodu o długości około 17 cm (może być odpowiednio zwinięty). Wygląd zmontowanego nadajnika od strony warstwy TOP pokazano na fotografii tytułowej.

Przejdźmy zatem do schematu montażowego odbiornika, który pokazano na rysunku 4. Tym razem zaprojektowano nieco większy obwód drukowany (o średnicy 60 mm), który integruje w sobie kompletny, transformatorowy zasilacz sieciowy i zbudowany jest w zdecydowanej większości z elementów przewlekanych. Miejscem podłączenia tego modułu będzie zazwyczaj połączeniowa puszka instalacyjna o nieco większej średnicy aniżeli puszka wyłącznika instalacyjnego, przez co możliwa stała się integracja niezbędnego, z uwagi na obecność przekaźnika, zasilacza.

Rysunek 4. Schemat płytki PCB odbiornika systemu wi-link

Montaż obwodu drukowanego odbiornika rozpoczynamy od przylutowania modułu RFM-12B, następnie lutujemy pozostałe elementy półprzewodnikowe, dalej elementy bierne, zaś na samym końcu elementy mechaniczne oraz transformator do druku. Do tak przygotowanej płytki przylutowujemy antenę odbiorczą w postaci kawałka przewodu o długości około 17 cm (może być odpowiednio zwinięty). Wygląd zmontowanego odbiornika od strony warstwy TOP pokazano na fotografii tytułowej.

Warto zaznaczyć, iż zarówno w przypadku nadajnika, jak i odbiornika odczytanie adresu urządzenia odbywa się wyłącznie podczas włączania zasilania, także jeśli zmieniliśmy adres urządzenia za pomocą przełącznika DIP-switch należy wyłączyć i ponownie włączyć zasilanie modułu.

Robert Wołgajew, EP

Wykaz elementów: Moduł nadajnika
Rezystory: (SMD0805)
  • R1, R2, R3: 100 kΩ
Kondensatory: (obudowy SMD0805)
  • C1, C2, C3: 100 nF
Półprzewodniki:
  • U1: ATtiny24A (SOIC14)
  • U2: RFM12B-866MHz (SMD)
Pozostałe:
  • SW: złącze śrubowe AK500/2 (raster 0,1”)
  • BATT: koszyczek baterii CR2032 typu CONNFLY DS1092-11-N8S
  • ADDR: dip-switch SMD 5-polowy typu A6S-5101-H OMRON lub podobny
Moduł odbiornika
Rezystory: (obudowy miniaturowe 1/8 W, raster 0,2”)
  • R1, R2: 100 kΩ
  • R3: 2,2 kΩ
Kondensatory:
  • C1, C4: 100 nF (raster 0,1”)
  • C2, C3: 100 μF/16 V (raster 0,1”)
Półprzewodniki:
  • U1: ATtiny24 (DIL14)
  • U2: RFM12B-866MHz (SMD)
  • U3: LP2950ACZ-3.3 (TO92)
  • T1: BC548 (TO92)
  • B1: mostek prostowniczy 1 A (raster 0,2”)
  • D1: 1N4148 (DO35)
Pozostałe:
  • TR1: transformator do druku typu BV 202 0154 (6 V, 0,5 VA)
  • PK1: przekaźnik FTR-F3AA005E-HA FUJITSU
  • AC, LOAD: złącze śrubowe AK500/2 (raster 0,1”)
  • ADDR: przełącznik DIP-SWITCH 5-polowy THT typu A6T-5104 lub podobny
Artykuł ukazał się w
Elektronika Praktyczna
lipiec 2022
DO POBRANIA
Materiały dodatkowe
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik grudzień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje listopad - grudzień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna grudzień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich grudzień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów