본문 바로가기

Nordic/nRF52

[nRF52 xBee EVM] Arduino BLE UART Test

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

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

 

 

 

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

 

 

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

#include <BLEPeripheral.h>
#include "BLESerial.h"


// 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();
}

 

 

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로 전송할 수 있도록 해서 [nRF52 xBee EVM]의 LED를 제어 할수 있다

 

반응형