본문 바로가기

Nordic/nRF52

[nRF52 xBee EVM] Arduino BLE HID Keyboard Test

BLE테스트를 위한 기본 설정은 [nRF52 xBee EVM] Arduino BLE UART Test 를 참고로 해서 설정해 주면 되고

BLE 라이브러리는 BLEPeripheral 을 사용 할 수 있다.

 

BLE HID Keyboard 예제를 이용해서 키 입력에 따른 Key값이 전송 되도록 했다.

#include <BLEHIDPeripheral.h>
#include <BLEKeyboard.h>

// define pins (varies per shield/board)
#define BLE_REQ   6
#define BLE_RDY   7
#define BLE_RST   4

//#define ANDROID_CENTRAL

// create peripheral instance, see pinouts above
BLEHIDPeripheral bleHIDPeripheral = BLEHIDPeripheral(BLE_REQ, BLE_RDY, BLE_RST);
BLEKeyboard bleKeyboard;

void setup() {
  Serial.begin(115200);
#if defined (__AVR_ATmega32U4__)
  while(!Serial);
#endif

  // clear bond store data
  bleHIDPeripheral.clearBondStoreData();

#ifdef ANDROID_CENTRAL
  bleHIDPeripheral.setReportIdOffset(1);
#endif

  bleHIDPeripheral.setLocalName("HID Keyboard");
  bleHIDPeripheral.addHID(bleKeyboard);

  bleHIDPeripheral.begin();

  Serial.println(F("BLE HID Keyboard"));
}

void loop() {
  BLECentral central = bleHIDPeripheral.central();

  if (central) {
    // central connected to peripheral
    Serial.print(F("Connected to central: "));
    Serial.println(central.address());

    while (central.connected()) {
      if (Serial.available() > 0) {
        // read in character
        char c = Serial.read();

        Serial.print(F("c = "));
        Serial.println(c);

        bleKeyboard.print(c);
      }
    }

    // central disconnected
    Serial.print(F("Disconnected from central: "));
    Serial.println(central.address());
  }
}

 

 

프로그램 다운로드 후 폰에서 키보드 동작을 테스트 해 볼 수 있다.

반응형