lunedì 28 aprile 2014

iBeacon con Linux, Yun e Raspberry


Trasformare un dispositivo basato su Linux in un IBeacon e' piuttosto semplice
Per prima cosa si deve avere un dongle USB Bluetooth LTE 4.0
La preparazione e' differente per i dispositivi ma una volta che sono installate le librerie BT i comandi successivi sono comunu

Preparazione Arduino YUN
Per trasformare Arduino Yun in un IBeacon si possono seguire le istruzioni a questo link
Una volta collegati in shell SSH con Yun si digitano i seguenti comandi per installare lo stack bluetooth

opkg update 
opkg install kmod-bluetooth
(Yun non ha abilitato SFTP e quindi e' meglio scaricare il file direttamente su Yun)
wget http://fibasile.github.io/images/arduino-yun-ibeacon/bluez_5.13-1_ar71xx.ipk
opkg install bluez_5.13-1_ar71xx.ipk



Preparazione Linux (Ubuntu 12.04) e Raspberry PI

In questo caso si deve aggiornare la libreria BT si default scaricando i sorgenti 
Si scarica quindi la libreria da qui (o versione successiva)

wget www.kernel.org/pub/linux/bluetooth/bluez-5.11.tar.gz (attualmente la piu' recente e' 5.18)

si compila con il classico 
configure --disable-systemd
make
make install 
soddisfacendo le dipendenze. Io ho dovuto eseguire 
apt-get  install libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev





Parte Comune

da qui in poi i comandi sono comuni

hciconfig hci0 up
hciconfig hci0 leadv
hciconfig hci0 noscan
hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A 
FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 00 00 00 00 C8 00


dove la sintassi dell'ultimo comando e' la seguente 
hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 <UUID> <MAJOR> <MINOR> <POWER> 00

a questo punto il beacon e' rilevabile