BBMagic BUTTON wykrywa:
- pojedymcze i podwójne kliknięcie guzika znajdującego się na PCB,
- przytrzymanie guzika znajdującego się na PCB,
- pojedymcze i podwójne kliknięcie przycisku podłączonego do pinów 24 i 25,
- przytrzymanie przycisku podłączonego do pinów 24 i 25,
Może zatem relizować conajmniej trzy różne funkcje dla każdego z dwóch przycisków.
Programowanie z BBMagic BUTTON
Dzięki bibliotece bbmagic_lib odbieranie i przetwarzanie danych przez Raspberry Pi jest bardzo proste. Wiele przykładów możesz pobrać z działu Download.
Aby odbierać informacje (poniższy kod pisany jest dla biblioteki bbmagic_lib_1.4):
Tworzymy bufor na dane i zmienne pomocnicze
unsigned char bbm_buf[100] ; int len, ret ;
Otwieramy komunikację
ret = bbm_bt_open(0) ; if(ret) exit(1) ;
Sprawdzamy czy nadeszły dane
len = bbm_bt_read(bbm_buf) ;
Jeśli tak to mamy je w buforze
if(len > 0) if(bbm_buf[BBMAGIC_DEVICE_TYPE] == BBMAGIC_M_BUTTON) { if(bbm_buf[BBM_BUTTON_BUTTON_FUNCTION] == BBM_BUTTON_FN_SINGLE_CLICK) wlacz_swiatlo() ; if(bbm_buf[BBM_BUTTON_BUTTON_FUNCTION] == BBM_BUTTON_FN_DOUBLE_CLICK) wylacz_swiatlo() ; if(bbm_buf[BBM_BUTTON_BUTTON_FUNCTION] == BBM_BUTTON_FN_HOLDING) wylacz_wszystko() ; }
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_BUTTON |
bbm_buf[BBM_BUTTON_BUTTON_FUNCTION] | funkcja wywołana przez użytkownika: 1 – pojedyncze kliknięcie guzika PCB, 2 – podwójne kliknięcie guzika PCB, 3 – przytrzymanie guzika PCB, 11 – pojedyncze kliknięcie przycisku na pinach 24 i 25, 12 – podwójne kliknięcie przycisku na pinach 24 i 25, 13 – przytrzymanie przycisku na pinach 24 i 25. |
bbm_buf[BBM_METEO_V_SUP] | aktualne napięcie zasilania modułu ; należy podzielic przez 71 (BBMAGIC_VCC_DIVIDER) aby otrzymać napięcie w woltach. |
bbm_buf[BBM_BUTTON_INPUT_PINS] | stan wejść cyfrowych modułu |
bbm_buf[BBM_BUTTON_CHIP_TEMP] | temperatura chipu w stopniach Celsjusza (kodowanie U2). Po skalibrowaniu może być interpretowana jako temperatura otoczenia. |
bbm_buf[BBM_BUTTON_LIGHT] | poziom natężenia światła |
bbm_buf[BBM_BUTTON_FIRM_0] | numer wersji firmwareu modułu, młodszy bajt |
bbm_buf[BBM_BUTTON_FIRM_1] | numer wersji firmwareu modułu, starszy bajt |
bbm_buf[BBMAGIC_DEVICE_ADDR_0] | adres modułu najmłodszy bajt 0 |
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 |
bbm_buf[BBMAGIC_DEVICE_RSSI] | moc odbieranego sygnału radiowego w dBm |
Wyprowadzenia
Numer pinu | Opis |
---|---|
1,8,20,22,23,24 | Masa |
2 | Konfiguracja sygnalizacji naciśnięcia guzika didą LED. Podłączony do masy – sygnalizacji błyskami czerwonej diody LED wbudowanej w moduł. Niepodłączenie – sygnał pojawia się na pinach 15 i 16. |
3,4,5,6 | Aktywne masą wejścia cyfrowe próbkowane każdorazowo tuż po naciśnięciu guzika. |
7,21 | Napięcie zasilania 1,8V – 3,6V |
21,22 | Pady do wlutowania uchwytu dla baterii pastylkowej CR2032: 21 (+) i 22 (-) |
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. 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. Pomiar poziomu oświetlenia dokonywany jest tuż po naciśnięciu guzika. |
13, 14, 17, 18, 19 | Nie używane |
15, 16 | Pady do podłączenia alternatywnej diody LED wraz z szeregowym rezystorem. Pad 15 – anoda LED z szeregowym rezystorem, Pad 16 – katoda LED. Impulsy sterujace diodą pojawią się gdy pin 2 pozostanie niepodłączony do masy. |
24, 25 | Pady do podłączenia drugiego przycisku |
Jak działa BBMagic BUTTON?
Każde naciśnięcie któregokolwiek z guzików powoduje wysłanie wiadomości poprzez radiowy link BBMagic over Bluetooth SMART.
- Moduł wykrywa:
- pojedymcze i podwójne kliknięcie guzika znajdującego się na PCB
- przytrzymanie na pół sekundy guzika znajdującego się na PCB
- pojedymcze i podwójne kliknięcie przycisku podłączonego do pinów 24 i 25
- przytrzymanie na pół sekundy przycisku podłączonego do pinów 24 i 25
wysyłając sześć różnych komunikatów.
Dodatkowe funkcje BBMagic BUTTON
Detektor światła
- Fotorezystor 10k
- Zakres wartości 0 do 255
Cztery wejścia cyfrowe IN_0 – IN_3
- Aktywne stanem niskim
- Próbkowane tuż po wykryciu aktywności guzika
Monitorowanie stanu baterii
- Pomiar napięcia zasilania przy każdej aktywności guzika
Pomiar temperatury chipu
- Po skalibrowaniu wartość ta może być interpretowana jako temperatura otoczenia.
Komunikacja
- BBMagic over Bluetooth Smart
- Komunikacja szyfrowana i podpisywana cyfrowo AES-128
- Bezpośrednia komunikacja z Raspberry Pi posiadającym chip Bluetooth SMART
- Prosta obsługa programowa z wykorzystaniem biblioteki bbmagic_lib
Zasilanie
- bateria 3V CR2032 – pady do wlutowania uchwytu: 21 (+) i 22 (-)
- 2 x bateria 1,5V AA lub AAA – pady do wlutowania przewodów: 7 (+) and 8 (-)
- 2 x akumulator 1,2V NiCd lub NiMH – pady do wlutowania przewodów: 7 (+) and 8 (-)
- 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