Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Zdalny pomiar natężenia światła dla Raspberry Pi z Bluetooth 4.0 i BleMagic

mario_ka 12 Maj 2017 11:02 6612 24
  • Zdalny pomiar natężenia światła dla Raspberry Pi z Bluetooth 4.0 i BleMagic Standard Bluetooth jest bardzo powszechny w świecie elektroniki. Jednak od wersji 4.0 (Bluetooth Low Energy / Bluetooth Smart) dokonał się fantastyczny przełom, który otwiera zupełnie nowe możliwości. Wiecie co mam na myśli - układy zgodne z Bluetooth Low Energy (BLE) potrzebują do pracy znikome ilości energii dzięki czemu możliwe jest ich wykorzystanie w niemal wiecznych aplikacjach bateryjnych.
    Przedstawiam zatem sposób na bezprzewodowy pomiar natężenia światła z wykorzystaniem standardu BLE. Dane odbierane będą przez mikrokomputer Raspberry Pi3.
    Jak?
    1. Pomiar wykonywać będzie moduł BleMagic.
    2. Zasilany jest z baterii pastylkowej CR2032.
    3. Jako detektor natężenia światła przylutowany został fotorezystor 5-10k GL5616.

    Zdalny pomiar natężenia światła dla Raspberry Pi z Bluetooth 4.0 i BleMagic

    3. Konfiguracja Raspberry Pi3.
    Dopiero wersja 3 komputerka posiada wbudowany moduł Bluetooth 4.0. Aby możliwe było odbieranie danych z urządzeń Bluetooth Low Energy za pomocą wcześniejszych wersji Raspberry konieczne jest wyposażenie ich w Dongla USB obsługującego BLE.
    Na początek zainstalujemy potrzebne pakiety do obsługi BLE.
    Code:
    sudo apt-get update
    
    sudo apt-get install pi-bluetooth
    sudo apt-get install bluetooth bluez bluez-hcidump blueman
    4. Skrypt odbierający dane
    W ostatnim kroku piszemy krótki skrypt korzystający z zainstalowanych pakietów, który odbierze dane z będących w zasięgu modułów BleMagic - skompresowany plik BleMagicScan.sh jest w załączniku.
    5. Gotowe.
    Moduł BleMagic wysyła informację o natężeniu światła jako wartość z przedziału od 0-255. Pomiar wykonywany jest co 10 sekund.
    Pozostało przejść do katalogu w którym znajduje się napisany skrypt i wywołać go poleceniem:
    Code:
    ./BleMagicScan.sh
    Jeśli w zasięgu Raspberry Pi znajduje się jakiś moduł BleMagic to w oknie ujrzymy:
    Zdalny pomiar natężenia światła dla Raspberry Pi z Bluetooth 4.0 i BleMagic

    Kolejno wyświetlane są:
    - w nawiasach kwadratowych: adres modułu BleMagic i numer trybu pracy,
    - pwr to napięcie zasilania modułu, które obliczamy: 211:71=2,97V,
    - light to poziom natężenia światła,
    - work_time to czas pracy modułu od włączenia zasilania w sekundach.
    - RSSI to moc sygnału odbieranego z modułu BleMagic - reprezentacja dziesiętna liczby U2.
    Średni pobierany przez moduł prąd wynosi 2 uA przy napięciu 3V. Podczas pomiaru i transmisji danych moduł pobiera średnio 4,5 mA przez 0,03 sekundy. Dla baterii litowej CR2032 o pojemności 210mAh daje to przybliżony czas pracy wynoszący 565 dni. Gdyby dla kogoś było to niewystarczające to po zastosowaniu pakietu baterii 2xAA o pojemności 2000mAh teoretyczny czas pracy wzrasta aż do 5376 dni.
    W przypadku włączenia sygnalizacji pomiaru błyskiem diody LED teoretyczne czasy pracy skracają się odpowiednio do: 291 i 2777 dni.
    Poniżej przedstawiony jest odczyt z dwóch będących w zasięgu Raspberry Pi modułów BleMagic.
    Zdalny pomiar natężenia światła dla Raspberry Pi z Bluetooth 4.0 i BleMagic

    Jak widać w zasięgu znalazł się nowy moduł o adresie 0x02, który:
    - wysyła dane co jedną sekundę,
    - znajduje się w miejscu bardziej zacienionym niż moduł o adresie 0x0B,
    - zasilany jest napięciem: 165 : 71 = 2,32V,
    - pracuje dopiero pół minuty.
    Mam nadzieję, że w miarę zrozumiale przedstawiłem tą ideę.
    Projekt jest w wersji rozwojowej, Aby wykorzystać potencjał trzeba wyposażyć go w większą liczbę czujników i rozszerzyć możliwości komunikacji ze światem zewnętrznym.
    Jeśli ktoś chciałby pomóc przy pracy nad projektem (programowanie Arduino, Raspberry Pi lub Androida) - śmiało - zapraszam do kontaktu. Na pewno powstanie coś ciekawego !!

    Więcej informacji o Raspberry Pi: raspberrypi.org
    Popularny Adapter USB z Bluetooth 4.0 to np. Bluetooth USB CSR4.0.
    Strona modułu BleMagic: BleMagic.com
    A dla wzrokowców dodatkowo kilka klatek

    Pozdrawiam
    mario

    PS. Załącznik gdzieś wyleciał - już dodane.


    Fajne!
  • #2 12 Maj 2017 16:55
    k9mil
    Poziom 11  

    Jak wygląda programowanie tego nRF?
    Tzn. jaka platforma, czym wgrywamy soft.

  • #4 12 Maj 2017 18:43
    TvWidget
    Poziom 29  

    mario_ka napisał:
    Moduł BleMagic wysyła informację o natężeniu światła jako wartość z przedziału od 0-255.

    Czy zdajesz sobie sprawę, ze natężenie oświetlenia może się zmieniać w bardzo szerokim zakresie. W wielu przypadkach nawet 23-bitowa dynamika przetwornika nie jest wystarczająca.

  • #5 12 Maj 2017 19:25
    mario_ka
    Poziom 10  

    Witaj TvWidget

    Cieszę się, że zwróciłeś na to uwagę bo nie o luxomierz tu chodzi - duże piwo dla Ciebie... bezalkoholowe ;-).
    W tej aplikacji pomiar natężenia światła robiony jest po to aby np.:
    - odróżnić dzień od nocy,
    - stwierdzić czy świeci słońce czy jest pochmurno,
    - zrobić detekcję oświetlenia w pomieszczeniu - włączone/wyłączone,
    - zapamiętać konkretny moment "szarówki" podczas zapadania zmierzchu... itp.

    Sądzisz, że do tego typu zadań wystarczy rozdzielczość 8 bitów?

    Pozdrawiam

  • #6 12 Maj 2017 19:38
    TvWidget
    Poziom 29  

    mario_ka napisał:
    Sądzisz, że do tego typu zadań wystarczy rozdzielczość 8 bitów?

    Poużywaj to się przekonasz.
    Jeśli zakres pomiarowy pozwoli rozróżnić dzień słoneczny od pochmurnego to może być problem z wykryciem czy w pomieszczeniu jest włączone oświetlenie.
    Jednym rozwiązań tego problemu jest wprowadzenie nieliniowej (logarytmicznej) charakterystyki.
    Chyba masz źle oszacowany średni pobór prądu. Napisałeś, że układ w czasie nadawania pobiera 4500uA. Trwa to 0.03 sek. i jest powtarzane co 10 sek. Tak więc średni prąd raczej nie będzie mniejszy niż 4500uA*(0.03/10)=13.5uA
    Czy ten fotorezystor zasilasz ze stabilizowanego napięcia ? W czasie pracy napięcie baterii będzie sukcesywnie malało od 3V do 2V.

  • #7 12 Maj 2017 20:52
    mario_ka
    Poziom 10  

    TvWidget napisał:

    Jeśli zakres pomiarowy pozwoli rozróżnić dzień słoneczny od pochmurnego to może być problem z wykryciem czy w pomieszczeniu jest włączone oświetlenie.
    Jednym rozwiązań tego problemu jest wprowadzenie nieliniowej (logarytmicznej) charakterystyki.

    To wydaje się być dobrym sposobem w drugim rzucie.
    Przy detekcji stanu oświetlenia wewnątrz pomieszczenia (włączone/wyłączone) najpierw należy zadbać o odpowiednie ustawienie detektora względem źródła i to daje zadziwiająco dobry efekt niemal zerowym kosztem.

    TvWidget napisał:

    Chyba masz źle oszacowany średni pobór prądu. Napisałeś, że układ w czasie nadawania pobiera 4500uA. Trwa to 0.03 sek. i jest powtarzane co 10 sek. Tak więc średni prąd raczej nie będzie mniejszy niż 4500uA*(0.03/10)=13.5uA
    Czy ten fotorezystor zasilasz ze stabilizowanego napięcia ? W czasie pracy napięcie baterii będzie sukcesywnie malało od 3V do 2V.

    Rozumiem Twoje wątpliwości. Rozwieję je w punktach:
    1. Aby zminimalizować pobór energii fotorezystor jest zasilany tylko w chwili pomiaru.
    2. Ten zmierzony pobór prądu to całkowity prąd pobierany przez moduł wraz z zasilaniem fotorezystora.
    3. Napięcie baterii spada, ale zasila ono fotorezystor jak również jest napięciem odniesienia ADC - pomiar zatem cały czas jest wiarygodny niezależnie od użytego źródła energii.

  • #9 13 Maj 2017 09:02
    mario_ka
    Poziom 10  

    Witaj piotrva,

    piotrva napisał:
    Witaj,
    Kody programów polecam trzymać na repozytorium ;)

    Dzięki za propozycję. Jak tylko znajdę czas to "obczaję" tę sprawę :-)

    piotrva napisał:
    Jak rozumiem moduł BLEMagic to Twoje dzieło?

    Tak. Obecnie wersja zalążkowa :-)

    piotrva napisał:
    Dodam, że najnowsze R-Pi Zero W ma tez BLE4.0 ;)

    Dzięki.
    Wiem o tym i mam nadzieję, że wkrótce wystąpi w roli głównej z modułami BleMagic :-).

    Pozdrawiam

  • #11 14 Maj 2017 10:34
    TvWidget
    Poziom 29  

    Z tymi 2uA autor trochę przesadził (zapewne nie miał urządzeń pozwalających to prawidłowo zmierzyć). Jednak średni prąd na poziomie kilkunastu uA jest jak najbardziej realny.
    Zasięg tego typu urządzeń zależy od
    - mocy nadajnika (większa moc to oczywiście większy pobór prądu)
    - czułości odbiornika
    - precyzyjnego ustawienia częstotliwości nośnej
    - temperatury otoczenia (mniejsza temperatura to zwykle większy zasięg)
    - poziomu zakłóceń w paśmie 2.4GHz
    - wysokości umieszczenia anten
    - przeszkód jakie znajdują się pomiędzy antenami
    W przypadku pomieszczeń to może być jeden pokój lub jedno piętro.
    Tzw. widzialność optyczna anten, maksymalna dopuszczalna prawem moc nadajnika i odbiornik o dużej czułości pozwalają osiągnąć nawet 200m. Zwykle jednak zasięg określa się na max. 50m.

  • #13 14 Maj 2017 15:41
    maliniak80
    Poziom 16  

    Jak wyglada dogadanie sie z samym modulem nrf51, jest tam cortex-m0 ale czesc jego zasobow jest przeznaczonych na obsluge radia, przykladowo piszac jakis swoj wsad musisz dogadac sie z czescia soft device czy obsluge samego radia tez sam robiles? Jesli to nie tajemnica to moglbys troche opisac jak to wyglada :D Jak dla mnie wykorzystanie tego nrf to bombowa sprawa tym bardziej ze mozna go miec za pare $

  • #14 14 Maj 2017 19:00
    mario_ka
    Poziom 10  

    Wow Panowie myślałem, że opalacie się przy tak pięknej pogodzie...a tu merytoryczna dyskusja trwa...

    leonow32 napisał:
    Nikła prądożerność tego układu robi wrażenie, ale jaki to ma zasięg?
    Witaj leonow32,
    Trudno jest jednoznacznie odpowiedzieć na tak postawione pytanie ponieważ zasięg zależy od wielu czynników m.in. tych o których wspomniał TvWidget.
    Konkretem jest to, że przy tak małej antenie (jak w prototypie na zdjęciach) można za pomocą RPi 3 odbierać użyteczne informacje z odległości 25m gdy urządzenia "się widzą". Większa odległość nie była na razie testowana....
    TvWidget napisał:
    Z tymi 2uA autor trochę przesadził (zapewne nie miał urządzeń pozwalających to prawidłowo zmierzyć). Jednak średni prąd na poziomie kilkunastu uA jest jak najbardziej realny.

    Nie ma tu przesady.:
    1. Autor miał urządzenia pozwalające z zadowalającą precyzją dokonać pomiaru - oscyloskop, miernik uniwersalny średniej klasy, zasilacz regulowany i kilka rezystorów - to wszystko co było potrzebne.
    2. Zmierzone parametry pokrywają się z deklarowanymi przez producenta nRFa.
    3. Średni prąd na poziomie kilkunastu uA zabiłby raczej ideę.
    4. TvWidget zapewne ma szklana kulę w której widzi "jakich urządzeń zapewne nie miał" autor. :-)

    TvWidget napisał:
    Tzw. widzialność optyczna anten, maksymalna dopuszczalna prawem moc nadajnika i odbiornik o dużej czułości pozwalają osiągnąć nawet 200m. Zwykle jednak zasięg określa się na max. 50m.
    W tym temacie jesteśmy już nieco dalej:

    Link


    TvWidget napisał:
    Natomiast przy rozsądnym poborze prądu i w realnych warunkach to około +-10 metrów

    Udaje się więcej... :-)

    Pozdrawiam Panowie.

    Dodano po 7 [minuty]:

    maliniak80 napisał:
    Jak wyglada dogadanie sie z samym modulem nrf51, jest tam cortex-m0 ale czesc jego zasobow jest przeznaczonych na obsluge radia, przykladowo piszac jakis swoj wsad musisz dogadac sie z czescia soft device czy obsluge samego radia tez sam robiles? Jesli to nie tajemnica to moglbys troche opisac jak to wyglada :D Jak dla mnie wykorzystanie tego nrf to bombowa sprawa tym bardziej ze mozna go miec za pare $

    Witaj maliniak80,
    Nie ma tu żadnych tajemnic. Obsługę radia możesz pisać samodzielnie, ale możesz skorzystać z gotowych funkcjonalności napisanych przez producenta - ja tak zrobiłem.
    Temat jest dość obszerny dlatego zachęcam do przeglądnięcia strony producenta: Nordic Semi - jest tam wszystko co niezbędne do zabawy z układami nRF.

    Pozdrawiam

  • #15 14 Maj 2017 19:06
    TvWidget
    Poziom 29  

    mario_ka napisał:
    Średni prąd na poziomie kilkunastu uA zabiłby raczej ideę.
    4. TvWidget zapewne ma szklana kulę w której widzi "jakich urządzeń zapewne nie miał" autor. :-)

    Opierałem się jedynie na informacjach jakie podałeś. Określiłeś jaki prąd pobiera układ w czasie nadawania, ile trwa ta operacja i jak często jest wywoływana. Proste obliczenie wskazuje, że układ średnio pobiera nie mniej niż kilkanaście uA.
    Oczywiście mogłem się pomylić w rachunkach.
    W praktyce pomiar średniego prądu kiedy jego dynamika sięga tysięcy razy nie jest prostą sprawą.

    W filmie reklamującym zasięg to stworzono idealne warunki. Czyli
    - odludna okolica (brak zakłóceń)
    - niską temperatura (małe szumy odbiornika, suche powietrze)
    - anteny wysoko umieszczone
    - brak przeszkód pomiędzy antenami
    W praktycznych zastosowaniach takie warunki nie występują. Zwykle jedną ze stron komunikujących się ze sobą jest smartfon/tablet/PC. One niestety mają odbiorniki o mniejszej czułości niż ten nRF. Anteny w nich też nie są też idealnie umieszczone. Zasięgi będą więc zdecydowanie mniejsze.

  • #16 15 Maj 2017 09:59
    mario_ka
    Poziom 10  

    TvWidget napisał:
    mario_ka napisał:
    Średni prąd na poziomie kilkunastu uA zabiłby raczej ideę.
    4. TvWidget zapewne ma szklana kulę w której widzi "jakich urządzeń zapewne nie miał" autor. :-)

    Opierałem się jedynie na informacjach jakie podałeś. Określiłeś jaki prąd pobiera układ w czasie nadawania, ile trwa ta operacja i jak często jest wywoływana. Proste obliczenie wskazuje, że układ średnio pobiera nie mniej niż kilkanaście uA.
    Oczywiście mogłem się pomylić w rachunkach.
    W praktyce pomiar średniego prądu kiedy jego dynamika sięga tysięcy razy nie jest prostą sprawą.

    Aaa... teraz zauważyłem, że mój opis można dwuznacznie interpretować.
    Skonkretyzuję zatem:
    1. Układ w trybie uśpienia pobiera 2uA.
    2. W trybie nadawania co 10 sekund pobiera 4,5mA przez 0,03s co dodaje się do średniego prądu: 4500uAx0,03s/10s = 13,5uA - na okrągło.
    3. Całkowity średni prąd to zatem: 2uA + 13,5uA = 15,5uA.
    4. Dla baterii litowej 210mAh daje to teoretyczny czas: 210000uAh/15,5uA = 13548h => 565 dni.
    5. Analogicznie dla 2000mAh

    Przepraszam wszystkich za niejednoznaczność textu.
    Pozdrawiam

    Dodano po 14 [godziny] 22 [minuty]:

    TvWidget napisał:
    W filmie reklamującym zasięg to stworzono idealne warunki. Czyli
    - odludna okolica (brak zakłóceń)
    - niską temperatura (małe szumy odbiornika, suche powietrze)
    - anteny wysoko umieszczone
    - brak przeszkód pomiędzy antenami
    W praktycznych zastosowaniach takie warunki nie występują. Zwykle jedną ze stron komunikujących się ze sobą jest smartfon/tablet/PC. One niestety mają odbiorniki o mniejszej czułości niż ten nRF. Anteny w nich też nie są też idealnie umieszczone. Zasięgi będą więc zdecydowanie mniejsze.

    Oczywiście masz bardzo dużo racji.
    Ja jestem niezmiernie ciekaw ile z tych deklarowanych 600-700 metrów można by uzyskać w warunkach operacyjnych....

    Pozdrawiam

  • #17 15 Maj 2017 11:42
    TvWidget
    Poziom 29  

    Film dotyczy nRF52840. To jest zupełnie inny układ niż ten jaki zastosowałeś.

  • #18 15 Maj 2017 12:52
    Freddy
    Poziom 43  

    mario_ka napisał:
    Jako detektor natężenia światła przylutowany został fotorezystor 5-10k GL5616
    Dlaczego nie zastosowałeś innego czujnika oświetlenia, np. któregoś z TSL, albo ISL?

  • #19 15 Maj 2017 19:29
    mario_ka
    Poziom 10  

    TvWidget napisał:
    Film dotyczy nRF52840. To jest zupełnie inny układ niż ten jaki zastosowałeś.

    Tak to prawda. Raczej nigdzie nie pisałem, że zastosowałem 840...

    Dodano po 1 [minuty]:

    Freddy napisał:
    mario_ka napisał:
    Jako detektor natężenia światła przylutowany został fotorezystor 5-10k GL5616
    Dlaczego nie zastosowałeś innego czujnika oświetlenia, np. któregoś z TSL, albo ISL?

    Witaj Freddy,
    Z kilku powodów:
    - niekompatybilne napięcia zasilania,
    - zbyt kosztowane,
    - niekonieczne w tej aplikacji.

    Pozdrawiam

  • #22 16 Maj 2017 09:40
    TvWidget
    Poziom 29  

    W podobnym komercyjnym czujniku użyty został OPT3002
    Bez dodatkowego filtru tłumiącego w jego dynamika (23-bit) jest zbyt mała do pracy w słoneczny dzień.
    Zdalny pomiar natężenia światła dla Raspberry Pi z Bluetooth 4.0 i BleMagic
    Przy wyborze sensora zwróć uwagę, że w zależności od zastosowania pomiar oświetlenia jest realizowany w różnych jednostkach (W/m² lub Lux).

  • #23 16 Maj 2017 21:42
    mario_ka
    Poziom 10  

    TvWidget napisał:
    W podobnym komercyjnym czujniku użyty został OPT3002
    Bez dodatkowego filtru tłumiącego w jego dynamika (23-bit) jest zbyt mała do pracy w słoneczny dzień.
    Zdalny pomiar natężenia światła dla Raspberry Pi z Bluetooth 4.0 i BleMagic
    Przy wyborze sensora zwróć uwagę, że w zależności od zastosowania pomiar oświetlenia jest realizowany w różnych jednostkach (W/m² lub Lux).

    Dzięki. Ten OPT3002 to już złożona maszyneria. Duże możliwości.

    Wiecie może gdzie PL można sensownie nabyć produkty Texasa?

    Pozdrawiam.

 
Promocja -20%
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
tme