디폴트로 에디슨에는 블루투스가 비활성화 되어 있다.
# 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 앱을 실행했을 때 초기화면이다.
이런 목록이 나오면 우측 상단의 '+' 버튼을 눌러 새 항목을 추가한다. (위의 화면은 이미 설정을 해 놓은 상태라 Edison beacon 같은 항목이 보이고 있다)
여기에 자신의 에디슨 beacon 정보를 넣어주면 된다.
bleno.startAdvertisingIBeacon('e2c56db5dffb48d2b060d0f5a71096e0', 0, 0, -59); 에서 파라미터는 순서대로 UUID, Major, Minor, RSSI이므로 각각의 값을 제 위치에 넣어주면 된다. 저장하고 나와서 확인해 보면 이제 자신의 에디슨 iBeacon이 목록에 보일 것이다.
목록에서 Apple AirLocate E2C56DB5 를 선택하면 그에 대한 상세한 정보를 확인할 수 있다.
댓글 없음:
댓글 쓰기