본문 바로가기

하드웨어/아두이노

아두이노 33 BLE nano sense BLECharacteristic

반응형

저는 아두이노 33 ble nano sense의 기본적인 설명보다는, 제가 알고싶은 특별한 부분들만 정리하고자 합니다. 아두이노에 대해 전체적으로 궁금하시다면 아래 잘 정리된 글이 있으니 참고해주세요

 

 

 

 

Arduino NANO 33 BLE Sense 사용법 알아보기, 라이브러리 설치

안녕하세요, 메카솔루션입니다. 이름도 긴 Arduino NANO 33 BLE Sense는 최근 출시한 새로운 NA...

blog.naver.com

 


 

BLECharacteristic

1. 기본 메뉴얼

설명

새로운 BLE 특성을 생성한다

문법

BLECharacteristic(uuid, properties, value, valueSize)

BLECharacteristic(uuid, properties, stringValue)

  • BLEBoolCharacteristic(uuid, properties)
  • BLEBooleanCharacteristic(uuid, properties)
  • BLECharCharacteristic(uuid, properties)
  • BLEUnsignedCharCharacteristic(uuid, properties)
  • BLEByteCharacteristic(uuid, properties)
  • BLEShortCharacteristic(uuid, properties)
  • BLEUnsignedShortCharacteristic(uuid, properties)
  • BLEWordCharacteristic(uuid, properties)
  • BLEIntCharacteristic(uuid, properties)
  • BLEUnsignedIntCharacteristic(uuid, properties)
  • BLELongCharacteristic(uuid, properties)
  • BLEUnsignedLongCharacteristic(uuid, properties)
  • BLEFloatCharacteristic(uuid, properties)
  • BLEDoubleCharacteristic(uuid, properties)

파라매터

uuid: 스트링 포맷의 16-bit 또는 128-bit UUID

properties: 특성의 비트마스크값(BLEBroadcast, BLERead, BLEWriteWithoutResponse, BLEWrite, BLENotify, BLEIndicate)

valueSize: (최대) 특성 값의 크기

stringValue: 문자열로 된 값

리턴값

지정된 UUID와 값을 가진 새 BLE 특성

예제

// BLE Battery Level Characteristic
BLEUnsignedCharCharacteristic batteryLevelChar("2A19",  // standard 16-bit characteristic UUID
    BLERead | BLENotify); // remote clients will be able to get notifications if this characteristic changes

 

 

 

 

 

 

 

2. 추가설명

UUID

서비스, 특성 및 설명자를 식별하는 데 사용되는 고유 번호.

  1. 16-bit UUID: 에너지 및 메모리 효율적인 짧은 UUID로, 미리 정의된 번호들이 있다. 'nRF Connect'와 같은 BLE 애플리케이션에서는 정의된 UUID를 기준으로 데이터들을 구분한다.
  2. 128-bit UUID: 공급 업체별 UUID라고도 하며, 사용자 정의 서비스 및 특성을 만들때 사용한다.

미리 정의된 번호는 아래 링크에서 확인할 수 있다.

 

Assigned Numbers | Bluetooth® Technology Website

Bluetooth® devices must comply with the Bluetooth specification and be compatible with the subset of Bluetooth profiles necessary to use desired services. Bluetooth profiles reside on top of the…

www.bluetooth.com

랜덤 128비트 UUID는 아래 링크에서 생성할 수 있다.

 

Universally Unique Identifiers (UUIDs)

​​A URN (see IETF RFC 2141) formed using a UUID shall be the string "urn:uuid:" followed by the hexadecimal representation of a UUID. Example: The following is an example of the string representation of a UUID as a URN: urn:uuid:f81d4fae-7dec-11d0-a765

www.itu.int

16비트 UUID를 128비트 UUID로 바꾸는 방법은 아래 예시에서 x를 16비트 UUID로 대체하면 된다.

예시: 0000xxxx-0000-1000-8000-00805F9B34FB

 

properties

  • BLEBroadcast – 특성이 광고되도록 합니다.
  • BLERead – 원격 장치가 특성 값을 읽을 수 있도록 합니다.
  • BLEWriteWithoutResponse – 원격 장치가 승인을 기대하지 않고 장치에 쓸 수 있습니다.
  • BLEWrite – 쓰기 성공 확인을 예상하면서 원격 장치에 쓰기 허용
  • BLENotify – 특성 값이 업데이트될 때마다 원격 장치에 알림을 보낼 수 있습니다.
  • BLEIndicate – BLENotify와 동일하지만 원격 장치에서 값을 읽었음을 나타내는 응답을 기대합니다.

3.예시

BLECharacteristic 예시특성(
	"936b6a25-e587-4f7c-9349-bcc76c22bfff",    // 커스텀 UUID
	BLERead | BLENotify, 24);                  // Remote clients can read and get updates

void setup() {
	... 기타 설정코드
	BLE.setAdvertisedService(environmentService);   // Advertise environment service
	environmentService.addCharacteristic(예시특성); //특성추가
	BLE.addService(environmentService);             // Add environment service
	예시특성.setValue("");                          // 초기값 설정
	... 기타 설정코드
}

void loop(){
	... 기타 설정코드
	String 보낼데이터 ="문자열";
	byte bytes[보낼데이터.length()+1];
	예시특성.writeValue(bytes, sizeof(bytes));
	... 기타 설정코드
}

 

 

 

 

 

 


참고자료

메인

 

Arduino - ArduinoBLEBLECharacteristicBLECharacteristic

… // BLE Battery Level Characteristic BLEUnsignedCharCharacteristic batteryLevelChar("2A19",  // standard 16-bit characteristic UUID     BLERead | BLENotify); // remote clients will be able to get notifications if this characteristic changes …

www.arduino.cc

서브

 

Bluetooth low energy Services, a beginner's tutorial

Before we begin Scope Topics that will be covered include: Before we begin Necessary equipment and software Necessary prior knowledge Some basic theory The Generic Attribute Profile (GATT) Services Characteristics Universally Unique ID (UUID) ...

devzone.nordicsemi.com

 

How can I convert a Bluetooth 16 bit service UUID into a 128 bit UUID?

All assigned services only state the 16 bit UUID. How can I determine the 128 bit counterpart if I have to specify the service in that format? From Service Discovery Protocol Overview I know that ...

stackoverflow.com

 

Arduino Nano 33 BLE Sense 에서 Bluetooth LE 시작하기

본 문서는 Bluetooth Low Energy를 사용하기 위해 Arduino Nano 33 BLE Sense 보드를 프로그래밍하는 방법을 보여줍니다. 다음 포스팅은 Bluetooth LE를 사용하여 PC와 Nano 33 BLE Sense와 데이터를 전송하는 방..

fishpoint.tistory.com

 

반응형

'하드웨어 > 아두이노' 카테고리의 다른 글

Nano33BLESensor 라이브러리  (0) 2021.04.13