<원문 : http://cafe.naver.com/wirelessdev/433>
- BLE iBeacon을 제작 및 APP 연동 관련 TEST를 진행하며 정리한 내용 올립니다
아직 학습하는 과정으로 정보의 오류가 있을 수 있습니다.오류 부분은 지적해 주시기 바랍니다.정리한 내용은 4개 과정으로 나누어 정리했습니다.1. Beacon 개요 및 Arduino Beacon 제작2. Cross Platform을 지원하는 Beacon APP 제작 및 연동 Test3. Beacon Packet 분석을 통한 iBeacon 이해4. Beacon의 설정에 따라 동작하는 Beacon APP 제작1. Beacon 개요 및 Arduino Beacon 제작- iBeacon 이란 ?.
- 비콘은 주기적으로 신호를 발생시키는 장치를 의미
- iBeacon은 애플에서 정의한 것으로 Find me profile과 Proximity Profile을 이용한다
- UUID, Major, Minor ID를 Beacon 식별 정보로 활용
- 등대와 같이 단 방향으로 식별 정보를 전송하는 용도로 이용하며, Advertising mode 만을 사용
- 예) UUID – 도시 , Major ID – 상가, Minor ID – 상품
- iBeacon Packet format
- Beacon 제작하기.
- 준비 물
- RBL nRF51822, iPhone, Android Phone - Arduino 소스 분석
#include <BLE_API.h>
- 준비 물
BLEDevice ble; // BLE radio driver
const static uint8_t beaconPayload[] = {0x4C, 0x00, // Company identifier code (0x004C == Apple)0x02, // ID0x15, // length of the remaining payload0xA4, 0x95, 0x00, 0x01, 0xC5, 0xB1, 0x4B, 0x44, // location UUID0xB5, 0x12, 0x13, 0x70, 0xF0, 0x2D, 0x74, 0xDE,0x00, 0x01, // the major value to differentiate a location0x00, 0x01, // the minor value to differentiate a location0xC8 // 2의 보수 : Tx power (-56dB)};void setup(){uint32_t err_code = 0;uint8_t val = 0;//Close peripheral power – 저전력 Mode로 변경NRF_POWER->DCDCEN = 0x00000001;NRF_TIMER1->POWER = 0;NRF_TIMER2->POWER = 0;NRF_WDT->POWER = 0;NRF_TEMP->POWER = 0;NRF_UART0->POWER = 0;pinMode(LED, OUTPUT);digitalWrite(LED, HIGH);err_code = ble.init();ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED);ble.accumulateAdvertisingPayload(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, beaconPayload, sizeof(beaconPayload));ble.setAdvertisingType(GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED);ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */ble.startAdvertising();}void loop(){ble.waitForEvent();}위의 Code를 RBL nRF51822에 Load하면 Beacon 제작 마무리된다.다음 내용은 iBeacon APP을 제작하여 통신하는 부분에 대해 설명합니다.
댓글 없음:
댓글 쓰기