Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bezprzewodowy czujnik temperatury Bluetooth LE oparty na nRFL01

kmmepl 13 Paź 2015 16:14 4173 5
  • Bezprzewodowy czujnik temperatury Bluetooth LE oparty na nRFL01 NRF24L01 to tani moduł radiowy używany przez hobbystów do komunikacji. Był on dość popularny przed pojawieniem się ESP8266. Za pomocą tego ultra taniego transmitera udało się nawiązać połączenie poprzez Bluetooth LE z telefonami obsługującymi androida oraz iOS, tym samym zastępując drogie moduły Bluetooth Low Energy (ulepszona wersja Bluetooth) używane do tego celu.

    Protokoły Bluetooth LE

    Istnieją trzy główne protokoły w BTLE: iBeacon (firmy Apple), Eddystone (Google), AltBeacon (Radius Networks) i chociaż żadnego z nich nie da się emulować za pomocą nRF24L01 to znaleziono inne rozwiązanie. Firma Nordic Semiconductors oprócz taniego nRF24L01 wyprodukowała także inne moduły (nRF8001 i nRF51822), które korzystają z własnych protokołów Bluetooth do przesyłania danych tj. temperatura, stan naładowania baterii czy identyfikator urządzenia. Okazało się, że możliwe jest zaadaptowanie tych protokołów do taniego nRF24L01.

    Darmowe aplikacje

    Oprócz tego Nordic Semiconductors wydało aplikacje dedykowane na telefony z androidem i iOS, które współpracują z tymi protokołami. Najbardziej istotnymi aplikacjami są: nRF Master Control Panel (przydatna do debugowania urządzeń z BTLE) oraz nRF Temp 2.0 (służąca do pomiarów temperatury). Ponadto firma udostępniła kod źródłowy z tych aplikacji.

    Budowa nadajnika

    Od strony sprzętowej budowa bezprzewodowego nadajnika temperatury jest bardzo prosta. Wystarczy podłączyć nRF24L01 do mikrokontrolera wraz z wybranym czujnikiem temperatury (tutaj użyto DHT11).

    Bezprzewodowy czujnik temperatury Bluetooth LE oparty na nRFL01


    Podłączenie pinów pomiędzy nRF a arduino jest następujące:
    1. GND -> GND
    2. VCC -> 3.3v
    3. CE -> PIN 9
    4. CSN -> PIN 10
    5. SCK -> PIN 13
    6. MOSI -> PIN 11
    7. MISO -> PIN 12
    8. IRQ -> nie używany

    Należy zwrócić szczególną uwagę na pin zasilający. Mimo, iż nRF24L01 akceptuje 5V. Kluczowe jest żeby zasilać go z 3.3V. Także, jeśli protokół SPI jest konieczny do innych celów niż transmisja danych. Należy CE i CSN podłączyć do dowolnych wejść w Arduino.

    Łączenie czujnika temperatury DHT11 jest trywialne ponieważ wystarczy podłączyć jego wyjście do pinu A0 i zasilić go przez za pomocą 5V.

    Software

    Od strony programowej, wystarczy ściągnąć bibliotekę BTLE i wgrać poniższy program do arduino.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Gotowy nadajnik

    Po wgraniu programu i podłączeniu potrzebnych elementów, układ powinien połączyć się z aplikacją mobilną i nadawać temperaturę.

    Bezprzewodowy czujnik temperatury Bluetooth LE oparty na nRFL01 Bezprzewodowy czujnik temperatury Bluetooth LE oparty na nRFL01


    źródło: http://simonebaracchi.eu/posts/temperature-beacon/

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    kmmepl
    Poziom 12  
    Offline 
    kmmepl napisał 73 postów o ocenie 305, pomógł 7 razy. Jest z nami od 2013 roku.
  • #3
    simonebaracchi
    Poziom 2  
    Hi, I'm the author of this article! Thanks for your interest!

    Follow me on twitter (twitter.com/simonebaracchi), I will be posting more Arduino projects!

    Regarding the range, I can assure you it works up to 20 meters, but I didn't try to go any further than that... it should be 100 meters according to datasheet, but I agree it looks like a long stretch :D
  • #4
    Karol966
    Poziom 30  
    20 meters is too short for me, so I have to use BTM-222 still (it works well even from second floor to basement). I made test for nRF24L01 - it was terrible :P
  • #5
    simonebaracchi
    Poziom 2  
    according to the internets the nrf24l01 can reach 30 or 50 meters according to the exact model... probably not as much as the btm222 but that's what you get for 1/10 of the price I guess :D
  • #6
    pop71
    Poziom 1  
    Witam,

    Potrzebuje stworzyć jakiś system, układ który będzie się składał z czujnika temperatury na podczerwień i będzie te dane przekazywał na jakiś wyświetlacz ( np. tablet , bądź inny) , następnie za pomocą prostej tabeli zależności będzie wyświetlał dwie informacje,
    1. temperaturę odczytaną z czujnika
    2. wartość z tabeli odpowiadająca temperaturze.

    Potrzebuję informacji jak to stworzyć a najlepiej kogoś kto by to wykonał , oczywiście $$$