본문 바로가기

Nordic/nRF51

[nRF51822 xBee EVM] Arduino BLE UART Test

nRF51822의 BLE기능을 Arduino에서 사용하기 위해 소프트디바이스 설정과 BLE 라이브러리 설치를 해야 한다.

소프트디바이스 설정은 [nRF51822 xBee EVM] BLE 테스트 - BLE UART(IAR) 를 참고 해서 설정하고 Arduino IDE에서 사용여부를 설정해 주면 된다.

 

 

BLE 라이브러리는 BLEPeripheral 을 설치 해 주면 된다.

 

 

기본 으로 제공되는 BLE UART 예제를 수정해서 앱에서 전송되는 UART 값에  따라 LED On/Off 하는 예제를 작성해 보았다.

#define PIN_LED1      13
// create ble serial instance, see pinouts above
BLESerial BLESerial(BLE_REQ, BLE_RDY, BLE_RST);
void setup() {
  // custom services and characteristics can be added as well
  pinMode(PIN_LED1, OUTPUT);
  digitalWrite(PIN_LED1, 1);
  BLESerial.setLocalName("nRF5x_UART");
  Serial.begin(115200);
  Serial.println("nRF5x_UART");
  BLESerial.begin();
}
void loop() {
  BLESerial.poll();
  forward();
  // loopback();
  // spam();
}
// forward received from Serial to BLESerial and vice versa
void forward() {
  if (BLESerial && Serial) {
    int byte;
    while ((byte = BLESerial.read()) > 0)
    {
      Serial.write((char)byte);
      if((char)byte == 'a')digitalWrite(PIN_LED1, 0);
      else if((char)byte == 'b')digitalWrite(PIN_LED1, 1);      
    } 
    while ((byte = Serial.read()) > 0) BLESerial.write((char)byte);
  }
}

 

 

 

노르딕사에서 제공하는 nRF Toolbox for Bluetooth LE 툴의 UART 를 이용해서 테스트 할 수 있다.

 

nRF5x BLE UART 장치를 검색하여 연결한다.

 

 

입력에 따라 UART로 전송할 수 있도록 해서 [nRF51822 xBee EVM]의 LED를 제어 할수 있다

반응형