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를 제어 할수 있다
반응형