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 2.0
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.
Co zawiera wiadomość 'ALIVE’
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). Po skalibrowaniu wartość ta może być interpretowana jako temperatura otoczenia |
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 |
Aby wysterować BBMagic RELAY
Wystarczy znać adres bluetooth i klucz, a następnie dodać moduł do bazy aktorów:
bbm_relay_add("my_rel", "3B5D6868AA98", "2DFDA5070CD284A107A24F7e53572A7B38") ;
…i użyć funkcji zawartych w bibliotece bbmagic_lib_2.0. Poniższa komenda włącza wyjścia RELAY_0 i RELAY_3 modułu:
bbm_relay_on("my_rel", REL_CH0 | REL_CH3) ;
A teraz wyłączmy przekaźnik na pinie RELAY_3:
bbm_relay_off("my_rel", REL_CH3) ;
W sumie dziecinnie proste. 🙂
Wyprowadzenia
Numer pinu | Opis |
---|---|
1,8,20,22,23,24 | Masa |
2 | Konfiguracja sygnalizacji transmisji radiowej:
|
3-6 | Cztery wyjś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