2014-07-20 25 views
10

Używam RPi z kluczem USB Bluetooth. Kiedy używam hcitool, mogę odkryć urządzenie SmartTag. Ale kiedy używam gatttool, nie mogę się połączyć. Mówi "Host jest wyłączony (112)". Oto moje polecenia:BLE gatttool nie może się połączyć, mimo że urządzenie jest wykrywalne dzięki hcitool lescan

$ sudo hcitool lescan 
LE Scan ... 
BC:6A:29:AB:DE:2B (unknown) 
BC:6A:29:AB:DE:2B SensorTag 

Sprawdzanie adaptery bluetooth na moim RPI uzyskać:

$ hcitool dev 
Devices: 
     hci0 5C:F3:70:60:E6:1B 

Potem, kiedy używam gatttool tak, otrzymuję:

$ sudo gatttool -i hci0 -b BC:6A:29:AB:DE:2B -I 
[ ][BC:6A:29:AB:DE:2B][LE]> 

Kiedy Łączę, otrzymuję:

[ ][BC:6A:29:AB:DE:2B][LE]> connect 
Connecting... connect error: Host is down (112) 
[ ][BC:6A:29:AB:DE:2B][LE]> 

Znalazłem w sieci informację, że "Host jest wyłączony" oznacza, że ​​czujnik Bluetooth nie znajduje się w trybie wykrywalnym. Ale nie jest to poprawne, jeśli chodzi o SmartTag, odkąd naciskam przycisk (przycisk boczny) na czujniku, który TI wypycha, aby umożliwić wykrycie. I ten sam jest używany przez hcitool lescan do znalezienia urządzenia. Jest też aplikacja na Androida, która uruchamia telefon i skanuje, łączy i odczytuje czujnik SmartTag po naciśnięciu tego samego przycisku.

Czy ktoś wie, jaki może być problem? Dzięki z góry

Odpowiedz

13

miałem ten sam problem, ta metoda działa dla mnie:

Wyjmij moduł USB i uruchom ponownie RPI:

sudo shutdown -r now 

( Edit: może chcesz aby edytować /etc/apt/sources.list, aby pomyślnie zainstalować wymienione poniżej biblioteki,

nano /etc/apt/sources.list 

deb http://archive.raspbian.org/raspbian wheezy main contrib non-free 
deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free 

W przeciwnym razie, można natknąć się następujący błąd

checking for GLIB... no 
configure: error: GLib >= 2.28 is required 

Nie zapomnij zaktualizować, aby zmiany odniosły skutek.

sudo apt-get update 

)

Usuń instalację bluez i wykonać aktualizację:

sudo apt-get --purge remove bluez 
sudo apt-get update 

Możesz edytować /etc/apt/sources.list aby zapewnić będzie można zainstalować niezbędne biblioteki:

Producent masz niezbędne biblioteki:

sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev 

Pobierz i wypakuj najnowszą wersję Bluez (w tym momencie jest 5.21):

sudo wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.21.tar.xz 
sudo tar xvf bluez-5.21.tar.xz 

Przejdź do folderu bluez, skonfigurować i zainstalować (Linia sudo make zajmuje trochę czasu na przetworzenie):

cd bluez-5.21 
sudo ./configure --disable-systemd 
sudo make 
sudo make install 

Włączyć RPI off, dzięki czemu można podłączyć adapter Bluetooth niż włącz go ponownie

sudo shutdown -h now 

Być może trzeba zasilić dongle USB:

sudo hciconfig hci0 up 

Następnie można spróbować Lescan ponownie:

sudo hcitool lescan 

I zakładając, że działało poprawnie będzie Albe połączyć z:

sudo hcitool lecc BC:6A:29:AB:DE:2B 
sudo gatttool -b BC:6A:29:AB:DE:2B --interactive 

[ ][BC:6A:29:AB:DE:2B][LE]> connect 
[CON][BC:6A:29:AB:DE:2B][LE]> 

Jeśli to trwa długo, aby pokazać podłączony „[CON ] "linii, spróbuj nacisnąć boczny przycisk na znaczniku czujnika, aby był znowu widoczny.


To była mieszanka informacji z tych dwóch linków:

http://mike.saunby.net/2013/04/raspberry-pi-and-ti-cc2541-sensortag.html https://learn.adafruit.com/pibeacon-ibeacon-with-a-raspberry-pi/setting-up-the-pi

+7

Dzięki za wielką odpowiedź. Po instalacji i ponownym uruchomieniu na mojej RPi brakowało gatttool, więc musiałem zrobić "sudo cp attrib/gatttool/usr/bin /", a teraz łączy się! –

+1

Up-votes, dziękuję. W chwili komentowania istnieje bluez-5.30. Tylko "apt-get ..." i "make install" wymagają sudo. "gatttool ...", "wget ​​...", "tar ...", "configure ..." i "make" nie wymagają korzenia. – niry