2015년 1월 22일 목요일

Edison을 iBeacon으로 사용하기

인텔 에디슨 보드에는 블루투스 모듈이 기본으로 들어있기 때문에 에디슨을 iBeacon 발신기로 사용할 수 있다.

디폴트로 에디슨에는 블루투스가 비활성화 되어 있다.

# rfkill list
0: phy0: wlan
        Soft blocked: no
        Hard blocked: no
1: brcmfmac-wifi: wlan
        Soft blocked: no
        Hard blocked: no
2: bcm43xx Bluetooth: bluetooth
        Soft blocked: yes
        Hard blocked: no

그러므로 먼저 블루투스를 활성화 시켜줘야 한다.

# rfkill unblock bluetooth
# hciconfig hci0 up
# rfkill list
0: phy0: wlan
        Soft blocked: no
        Hard blocked: no
1: brcmfmac-wifi: wlan
        Soft blocked: no
        Hard blocked: no
2: bcm43xx Bluetooth: bluetooth
        Soft blocked: no
        Hard blocked: no
3: hci0: bluetooth
        Soft blocked: no
        Hard blocked: no

블루투스가 활성화 되고 hci0 인터페이스가 만들어진걸 볼 수 있다.

이제 패키지를 추가 설치 해 줘야 한다. 먼저 /etc/opkg/base-feeds.conf 파일을 에디터에서 오픈한 다음 아래 내용을 추가한 다음 저장해준다.

src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison
src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32

추가한 내용을 저장했으면 아래 명령으로 opkg를 업데이트 한 후 필요한 패키지를 설치해 준다.

# opkg update
# opkg install bluez5-dev
# npm install -g async
# npm install noble
# npm install bleno

여기까지 진행했으면 에디슨을 iBeacon 발신기로 설정하는데 필요한 모든 준비가 끝난 것이다.

이제 실제 iBeacon으로 동작시켜 보겠다.

# node
> bleno = require('bleno')
{ state: 'unknown',
...
        rssiUpdate: [Function] } } }
> bleno.startAdvertisingIBeacon('e2c56db5dffb48d2b060d0f5a71096e0', 0, 0, -59);
undefined
>

에디슨은 UUID e2c56db5-dffb-48d2-b060-d0f5a71096e0, Major 0, Minor 0인 iBeacon 으로 동작하고 있다.

실제 동작하고 있는지 확인해 보도록 하겠다. 여기서는 아이폰에서 Locate 라는 앱을 사용하지만 iBeacon을 검색할 수 있는 앱이면 아무거나 상관 없다.


Locate 앱을 실행했을 때 초기화면이다.


여기서 Locate iBeacons 를 선택한다.


위의 화면은 이미 iBeacon UUID를 설정해 놓았기 때문에 Apple AirLocate .... 라는 항목이 보이지만 기본적으로는 보이는 beacon이 없을 것이다. 먼저 에디슨 beacon 정보를 설정해줘야 하기 때문에 Tap here to configure visible iBeacon UUIDs. 를 선택한다.


이런 목록이 나오면 우측 상단의 '+' 버튼을 눌러 새 항목을 추가한다. (위의 화면은 이미 설정을 해 놓은 상태라 Edison beacon 같은 항목이 보이고 있다)


여기에 자신의 에디슨 beacon 정보를 넣어주면 된다.

bleno.startAdvertisingIBeacon('e2c56db5dffb48d2b060d0f5a71096e0', 0, 0, -59); 에서 파라미터는 순서대로 UUID, Major, Minor, RSSI이므로 각각의 값을 제 위치에 넣어주면 된다. 저장하고 나와서 확인해 보면 이제 자신의 에디슨 iBeacon이 목록에 보일 것이다.


목록에서 Apple AirLocate E2C56DB5 를 선택하면 그에 대한 상세한 정보를 확인할 수 있다.



댓글 없음:

댓글 쓰기