BBMagic MAGNETO to bezprzewodowy, ultra-energooszczędny, zasilany z baterii moduł z komunikacją Bluetooth Low Energy (BLE).
Wykrywa pojawienie się lub zanik pola magnetycznego przy pomocy kontaktronu. Może także mierzyć poziom oświetlenia oraz monitorować dwa sygnały analogowe oraz cztery cyfrowe.
Jak odbieramy dane od BBmagic MAGNETO
Dzięki bibliotece bbmagic_lib odbieranie i przetwarzanie danych przez Raspberry Pi zero W oraz Raspberry Pi 3 jest bardzo proste. Bibliotekę możesz pobrać z działu Download.
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_MAGNETO)
{
if(bbm_buf[BBM_MAGNETO_FLAGS] & BBM_MAGNETO_MAGNET_MASK)
printf("DRZWI ZAMKNIETE") ;
else printf("DRZWI OTWARTE") ;
}
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_MAGNETO |
bbm_buf[BBM_MAGNETO_FLAGS] | flagi informujące o detekcji pola magnetycznego (najstarszy bit) oraz stanie czterech wejść cyfrowych (cztery młodsze bity) ; ustawiona flaga BBM_MAGNETO_MAGNET_MASK oznacza wykrycie pola magnetycznego |
bbm_buf[BBM_MAGNETO_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_MAGNETO_ADV_TIME] | okres do nadejścia kolejnej wiadomości od modułu ; należy pomnożyć razy dwa aby otrzymać czas w sekundach |
bbm_buf[BBM_MAGNETO_CHIP_TEMP] | temperatura chipu w stopniach Celsjusza (kodowanie U2). Noże być interpretowana jako temperatura otoczenia o niskiej dokładności 3*C |
bbm_buf[BBM_MAGNETO_LIGHT] | poziom oświetlenia ; zakres 0-255 |
bbm_buf[BBM_MAGNETO_ADC_1_MSB] bbm_buf[BBM_MAGNETO_ADC_1_LSB] | poziom napięcia na wejściu ADC_1 w mV ; starszy i młodszy bajt |
bbm_buf[BBM_MAGNETO_ADC_2_MSB] bbm_buf[BBM_MAGNETO_ADC_2_LSB] | poziom napięcia na wejściu ADC_2 w mV; starszy i młodszy bajt |
bbm_buf[BBM_MAGNETO_WORKTIME_0] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – najmłodszy bajt 0 |
bbm_buf[BBM_MAGNETO_WORKTIME_1] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – kolejny bajt 1 |
bbm_buf[BBM_MAGNETO_WORKTIME_2] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – kolejny bajt 2 |
bbm_buf[BBM_MAGNETO_WORKTIME_3] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – najstarszy bajt 3 |
bbm_buf[BBM_MAGNETO_FIRM_0] | numer wersji firmwareu modułu, młodszy bajt |
bbm_buf[BBM_MAGNETO_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
Numer pinu | Opis |
---|---|
1,8,20,22,23,24 | Masa |
2 | Podłączenie do masy powoduje włączenie sygnalizacji transmisji Bluetooth błyskami diody LED |
3-6 | Aktywne masą wejścia cyfrowe próbkowane każdorazowo tuż przed wysłaniem danych. |
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 |
13,14 | Wejścia przetwornika analogowo-cyfrowego ADC_1 i ADC_2. Zakres dopuszczalnych napięć: 0V-1,8V ; Rozdzielczość: 1mV |
18,19 | Linie UARTa odpowiednio nadawanie i odbiór. Zakres dopuszczalnych napięć: 0V-5V |
24,25 | Pady do wlutowania kontaktronu wykrywającego pole magnetyczne – wariant 1 |
23,25 | Pady do wlutowania kontaktronu wykrywającego pole magnetyczne – wariant 2 |
Jak działa BBMagic MAGNETO?
Za każdym razem gdy pole magnatyczne pojawi się lub zniknie BBMagic MAGNETO wyśle informację przez łącze Bluetooth Low Energy.
Gdy nie występują zmiany pola magnetycznego wysyłana jest informacja potwierdzająca czuwanie 'ALIVE’.
Okres wysyłania tej informacji można skonfigurować – jak to zrobić opisano poniżej.
Tryby pracy BBMagic MAGNETO
Tryb pracy | Okres przesyłania danych 'ALIVE’ |
---|---|
1 | 30 sekund |
2 | 60 sekund |
3 | 3 minuty |
4 | 5 minut |
Jak ustawić tryb pracy
- wyłącz zasilanie modułu
- naciśnij przycisk
- włącz zasilanie modułu trzymając przycisk wciśniętym
- trzymaj przycisk wciśniętym odliczając błyski diody: 1 błysk – tryb pracy 1, 2 błyski – tryb pracy 2, itd.
- zwolnij przycisk
- dioda zgaśnie na ok. 2 sekundy po czym rozbłyśnie kilkukrotnie, w zależności od ustawionego trybu pracy: 1 błysk – ustawiono tryb 1, 2 błyski – ustawiono tryb 2, itd.
Po każdym włączeniu zasilania dioda modułu rozbłyśnie:
- 1 raz – moduł pracuje w trybie 1 – informacja 'ALIVE’ przesyłana co 30 sekund
- 2 razy – moduł pracuje w trybie 2 – informacja 'ALIVE’ przesyłana co 1 minutę
- 3 razy – moduł pracuje w trybie 3 – informacja 'ALIVE’ przesyłana co 3 minuty
- 4 razy – moduł pracuje w trybie 4 – informacja 'ALIVE’ przesyłana co 5 minut
Dodatkowe funkcje BBMagic MAGNETO
- Detektor światła – za pomocą fotorezystora 10k – zakres wartości 0 do 255
- Dwa kanały ADC o zakresie napięć od 0 do 1,8V
- Cztery, aktywne stanem niskim wejścia cyfrowe – podciągane do zasilania na 10ms przed chwilą próbkowania
- Monitorowanie stanu baterii poprzez ciągły pomiar napięcia zasilania
- Pomiar temperatury chipu. Po skalibrowaniu wartość ta może być interpretowana jako temperatura otoczenia
- Sygnalizacja wysyłania danych poprzez błysk diody LED – konfigurowalna pinem 2
Komunikacja
- Bluetooth Smart zwany również Bluetooth Low Energy
- Komunikacja szyfrowana i podpisywana cyfrowo AES-128
- Bezpośrednia komunikacja z Raspberry Pi Zero W i Raspberry Pi 3 poprzez Bluetooth 4.0
- Prosta obsługa programowa z wykorzystaniem bibliotek
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