W trzy minuty
…możemy zabezpieczyć sie przed zalaniem.
Gdy tylko pojawi się woda BBMagic FLOOD zaalarmuje.
Potrzebujemy:
- moduł BBMagic FLOOD
- bateria CR2032
- holder dla baterii
- dwa przewody
Jak to składamy:
- jeden z przewodów lutujemy do pinu 25 – zielony
- drugi z przewodów lutujemy do masy – dowolny pin oznaczony na niebiesko
- do pinów 21 (+) i 22 (-) lutujemy holder na baterię CR2032
- wciskamy baterię do holdera
- jeśli połączymy piny 1 i 2 dioda LED będzie błyskać podczas transmisji Bluetooth (oczywiście powoduje to większe zużycie energii)
Jeśli zależy nam na zwiększeniu pojemności źródła zasilania moduł możemy podłączyć do pakietu 2xAA lub 2xAAA o pojemności nawet 2500mAh.
Jak odbieramy dane z BBmagic FLOOD
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. Aby odbierać informacje:
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_FLOOD)
{
if((bbm_buf[BBM_FLOOD_ALERT_FLAGS] & BBM_FLOOD_ALERT_MASK) == 0)
wylacz_pompe-juz_po_krzyku() ;
else
wlacz_pompe-ratuj_przed_zalaniem() ;
}
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_FLOOD |
bbm_buf[BBM_FLOOD_ALERT_FLAGS] | flagi informujące o detekcji zalania ; ustawiona flaga BBM_FLOOD_ALERT_MASK oznacza alarm zalaniowy |
bbm_buf[BBM_FLOOD_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_FLOOD_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_FLOOD_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_FLOOD_WORKTIME_0] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – najmłodszy bajt 0 |
bbm_buf[BBM_FLOOD_WORKTIME_1] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – kolejny bajt 1 |
bbm_buf[BBM_FLOOD_WORKTIME_2] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – kolejny bajt 2 |
bbm_buf[BBM_FLOOD_WORKTIME_3] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – najstarszy bajt 3 |
bbm_buf[BBM_FLOOD_FIRM_0] | numer wersji firmwareu modułu, młodszy bajt |
bbm_buf[BBM_FLOOD_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 |
I gotowe:
Gdy elektrody BBMagic FLOOD znajdą się w wodzie moduł co 6 sekund wysyła informację alarmującą.
W stanie czuwania (gdy pomiędzy elektrodami jest sucho) wysyłana jest informacja potwierdzająca czuwanie.
Okres wysyłania tej informacji można skonfigurować – jak to zrobić opisano poniżej.
Tryby pracy BBMagic FLOOD
BBMagic FLOOD może działać w jednym z czterech trybów wysyłając informację
Tryb pracy | Okres przesyłania danych OBECNY | Okres przesyłania danych ALARM |
---|---|---|
1 | 30 sekund | 6 sekund |
2 | 60 sekund | 6 sekund |
3 | 3 minuty | 6 sekund |
4 | 5 minut | 6 sekund |
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 'OBECNY’ przesyłana co 30 sekund
- 2 razy – moduł pracuje w trybie 2 – informacja 'OBECNY’ przesyłana co 1 minutę
- 3 razy – moduł pracuje w trybie 3 – informacja 'OBECNY’ przesyłana co 3 minuty
- 4 razy – moduł pracuje w trybie 4 – informacja 'OBECNY’ przesyłana co 5 minut
Dodatkowe funkcje BBMagic FLOOD
- 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 (posiadają chip BLE)
- 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