Bezprzewodowy przekaźnik BBMagic RELAY


BBMagic RELAY relays pins
BBMagic RELAY to moduł zdalnego cztero-kanałowego przekaźnika z komunikacją Bluetooth Low Energy (BLE) – Bluetooth Smart.

Funkcje BBMagic RELAY

  • Sterowanie czterema przekaźnikami
  • Funkcja automatycznego włączenia wyjścia RELAY_0 na 15 minut po uruchomieniu modułu – konfigurowana pinem 17
  • Monitorowanie stanu napięcia zasilania
  • Detektor światła – pady do wlutowania fotorezystora 10k – zakres wartości 0 do 255
  • Dwa kanały ADC o zakresie napięć od 0 do 1,8V i rozdzielczości 1mV
  • Pomiar temperatury chipu, który może być interpretowany jako temperatura otoczenia o niskiej dokładnośći.
  • Sygnalizacja komunikacji Bluetooth diodą LED – konfigurowana pinem 2
  • Komunikacja: szyfrowane i podpisane cyfrowo wiadomości Bluetooth Smart
  • Proste sterowanie z Raspberry Pi 3 lub zero W przy użyciu biblioteki bbmagic_lib od wersji 1.4

Jak działa BBMagic RELAY

Po włączeniu zasilania co 60 sekund BBMagic RELAY wysyła informację ‚ALIVE’.
Jeśli odbierze wiadomość z żądaniem włączenia lub wyłączenia przekaźnika/przekaźników to po zmianie ich stanu niezwłocznie wyśle wiadomość ‚ALIVE’ potwierdzając tym wykonanie zadania.

Aby wysterować BBMagic RELAY

Wystarczy znać adres modułu:
unsigned char
rel_bd_addr[BBM_BT_ADDR_SIZE] = {0xE7, 0xBA, 0x08, 0x93, 0xC9, 0xD2} ;

…i użyć jednej z funkcji zawartych w bibliotece bbmagic_lib_1.4. Poniższa komenda włącza przekaźniki na pinach RELAY_0 i RELAY_3 modułu:
bbm_bt_relay_on(rel_bd_addr, BBM_RELAY_0 | BBM_RELAY_3) ;
A teraz wyłączmy przekaźnik na pinie RELAY_3:
bbm_bt_relay_off(rel_bd_addr, BBM_RELAY_3) ;
W sumie dziecinnie proste. 🙂

Aby odbierać informacje ‚ALIVE’

Tworzymy bufor na dane i zmienne pomocnicze
unsigned char bbm_buf[BBLIB_FRAME_SIZE] ;
int i, data_length ;

Otwieramy komunikację
i = bbm_bt_open(0, 0, 0, 0) ;
if(i) exit(1) ;

Sprawdzamy czy nadeszły dane
data_length = bbm_bt_read(bbm_buf) ;
Jeśli tak to mamy je w buforze

if(data_length > 0)
{
    if(bbm_buf[BBMAGIC_DEVICE_TYPE] == BBMAGIC_M_RELAY)
    {
        if(bbm_buf[BBMAGIC_RELAYS_STATE] & BBM_RELAY_0)
            printf(" PRZEKAZNIK 0 jest ON") ;
        else printf(" PRZEKAZNIK 0 jest OFF") ;
        if(bbm_buf[BBMAGIC_RELAYS_STATE] & BBM_RELAY_1)
            printf(" PRZEKAZNIK 1 jest ON") ;
        else printf(" PRZEKAZNIK 1 jest OFF") ;
    }
}

Jakie dane zawiera wiadomość ‚ALIVE’?

Zawartość bufora zdefiniowano w pliku bbmagic_lib.h

bbm_buf[BBMAGIC_DEVICE_TYPE] typ modułu, który nadesłał dane ; w tym przypadku będzie to BBMAGIC_M_RELAY
bbm_buf[BBM_RELAY_V_SUP] aktualne napięcie zasilania modułu ; należy podzielic przez 71 (BBMAGIC_VCC_DIVIDER) aby otrzymać napięcie w woltach.
bbm_buf[BBMAGIC_RELAY_ADV_TIME] czas po jakim wysłana zostanie kolejna wiadomość ‚ALIVE’. Należy pomnożyć przez dwa aby otrzymać czas w sekundach.
bbm_buf[BBMAGIC_RELAYS_STATE] cztery najmłodsze bity kodują aktualny stan przekaźników:. Bit ustawiony = przekaźnik włączony, bit wyzerowany = przekaźnik wyłączony. Bit0 – RELAY_0…Bit3-RELAY_3 (zobacz rysunek pinout)
bbm_buf[BBM_RELAY_CHIP_TEMP] temperatura chipu w stopniach Celsjusza (kodowanie U2). Noże być interpretowana jako temperatura otoczenia o niskiej dokładności
bbm_buf[BBM_RELAY_LIGHT] poziom oświetlenia ; zakres 0-255
bbm_buf[BBM_RELAY_ADC_1_MSB] i bbm_buf[BBM_RELAY_ADC_1_LSB] poziom napięcia na wejściu ADC_1 w mV ; starszy i młodszy bajt
bbm_buf[BBM_RELAY_ADC_2_MSB] i bbm_buf[BBM_RELAY_ADC_2_LSB] poziom napięcia na wejściu ADC_2 w mV; starszy i młodszy bajt
bbm_buf[BBMAGIC_RELAY_WORKTIME_0] czas pracy modułu od ostatniego włączenia zasilania w sekundach – najmłodszy bajt 0
bbm_buf[BBMAGIC_RELAY_WORKTIME_1] czas pracy modułu od ostatniego włączenia zasilania w sekundach – kolejny bajt 1
bbm_buf[BBMAGIC_RELAY_WORKTIME_2] czas pracy modułu od ostatniego włączenia zasilania w sekundach – kolejny bajt 2
bbm_buf[BBMAGIC_RELAY_WORKTIME_3] czas pracy modułu od ostatniego włączenia zasilania w sekundach – najstarszy bajt 3
bbm_buf[BBM_RELAY_FIRM_0] numer wersji firmwareu modułu, młodszy bajt
bbm_buf[BBM_RELAY_FIRM_1] numer wersji firmwareu modułu, starszy bajt
bbm_buf[BBMAGIC_DEVICE_ADDR_0] adres modułu najmłodszy bajt 0 – LSB
bbm_buf[BBMAGIC_DEVICE_ADDR_1] adres modułu bajt 1
bbm_buf[BBMAGIC_DEVICE_ADDR_2] adres modułu bajt 2
bbm_buf[BBMAGIC_DEVICE_ADDR_3] adres modułu bajt 3
bbm_buf[BBMAGIC_DEVICE_ADDR_4] adres modułu bajt 4
bbm_buf[BBMAGIC_DEVICE_ADDR_5] adres modułu najstarszy bajt 5 – MSB
bbm_buf[BBMAGIC_DEVICE_RSSI] moc odbieranego sygnału radiowego w dBm

Wyprowadzenia

BBMagic RELAY pinout

Numer pinu Opis
1,8,20,22,23,24 Masa
2 Konfiguracja sygnalizacji transmisji radiowej:

  • podłączenie do masy: Czerwona dioda LED będąca na pokładzie BBMagic RELAY sygnalizuje transmisję radiową
  • niepodłączony: Czerwona LED wyłączona. Impulsy sygnalizujące pojawiają się na pinie numer 15. Możliwe podłączenie alternatywnej diody LED wraz z szeregowym rezystorem do pinów 15 i 16. Proponowana wartość rezystora: 4k7
3-6 Cztery wyścia sterujące przekaźnikami RELAY_0…RELAY_3 (potrzebne tranzystory sterujące)
7,21 Napięcie zasilania 1,8V – 3,6V
7,8,9 Pady dla wlutowania stabilizatora w przypadku chęci zasilania z wyższego napięcia. Ten sposób zasilania jest identyczny jak dla BBMagic METEO opisany tutaj: Jak zasilić BBMagic METEO moduł z Bluetooth Low Energy
10 Wejście napięcia zasilania dla stabilizatora z zabezpieczeniem przed odwrotną polaryzacją. Ten sposób zasilania jest identyczny jak dla BBMagic METEO opisany tutaj: Jak zasilić BBMagic METEO moduł z Bluetooth Low Energy
11,12 Pady dla wlutowania fotorezystora 10k
13,14 Wejścia przetwornika analogowo-cyfrowego ADC_1 i ADC_2. Zakres dopuszczalnych napięć: 0V-1,8V ; Rozdzielczość: 1mV
15,16 Pady do podłączenia alternatywnej diody LED wraz z szeregowym rezystorem. Pad 15 – anoda LED z rezystorem, Pad 16 – katoda LED
17 Jeśli podłączony do masy (lub pinu 16) to po włączeniu zasilania modułu wyjście RELAY_0 zostanie wysterowane na okres 15 minut
18,19 Linie UARTa odpowiednio nadawanie i odbiór. Zakres dopuszczalnych napięć: 0V-5V

Komunikacja

  • Bluetooth Smart – Bluetooth Low Energy
  • Komunikacja szyfrowana i podpisywana cyfrowo AES-128
  • Bezpośrednia komunikacja z Raspberry Pi Zero W i Raspberry Pi 3 poprzez Bluetooth Smart
  • Prosta obsługa programowa z wykorzystaniem biblioteki bbmagic_lib od wersji 1.4

Zasilanie

Moduł BBMagic RELAY pobiera prąd o natężeniu ok. 12mA. Możliwe sposoby zasilania:

  • Z jakiegokolwiek źródła o napięciu z przedziału: 1,8V do 3,6V – pady do wlutowania przewodów: 7 (+) i 8 (-)
  • Poprzez stabilizator – Podłącz ‘+’ do 10, a ‘-‘ do 22, 23 lub 24. Pady do wlutowania stabilizatora w obudowie TO-92 – 7,8,9 (np.:L78L33, TS2950CT-3.3, LP2950CZ-3.3RAG, MCP1702-3302E, LM2936Z-3.3, LT1121CZ-3.3). Jak dobrać stabilizator: Jak zasilić BBMagic METEO moduł z Bluetooth Low Energy
Tagi , , .Dodaj do zakładek Link.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *