반응형
저는 아두이노 33 ble nano sense의 기본적인 설명보다는, 제가 알고싶은 특별한 부분들만 정리하고자 합니다. 아두이노에 대해 전체적으로 궁금하시다면 아래 잘 정리된 글이 있으니 참고해주세요
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
서비스, 특성 및 설명자를 식별하는 데 사용되는 고유 번호.
- 16-bit UUID: 에너지 및 메모리 효율적인 짧은 UUID로, 미리 정의된 번호들이 있다. 'nRF Connect'와 같은 BLE 애플리케이션에서는 정의된 UUID를 기준으로 데이터들을 구분한다.
- 128-bit UUID: 공급 업체별 UUID라고도 하며, 사용자 정의 서비스 및 특성을 만들때 사용한다.
미리 정의된 번호는 아래 링크에서 확인할 수 있다.
랜덤 128비트 UUID는 아래 링크에서 생성할 수 있다.
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));
... 기타 설정코드
}
참고자료
메인
서브
반응형
'하드웨어 > 아두이노' 카테고리의 다른 글
Nano33BLESensor 라이브러리 (0) | 2021.04.13 |
---|