본문 바로가기
.NET

Bluetooth Low Energy(BT LE) Sample Code

by leo21c 2025. 2. 20.

Bluetooth 통신 요청을 받아서 개발을 검토 했고 초기 개발을 완료해서 테스트 해보니 장치가 내가 생각했던 것이 아니었다. 내가 개발한 것은 Bluetooth Classic 방식 이었던 것이다.

 

요즘 스마트폰이나 이어폰 등에서 사용하는 Bluetooth 통신 방식은 BT LE이다.

Bluetooth Low Energy(BLE)

  • BLE는 종종 Bluetooth Smart 로도 불리며 classic Bluetooth의 경량화 버전을 목표로 블루투스 4.0의 일부로 발표되었습니다. Classic Bluetooth와 겹치는 부분이 존재하지만 BLE는 완전히 다른 표준으로 블루투스 표준화 그룹인 Bluetooth SIG에 의해서 개발되기 전까지 Nokia의 사내 프로젝트(Wibree)로 시작하였습니다.
    BLE를 지원하는 디바이스들은 기본적으로 Advertise(Broadcast) 과 Connection 이라는 방법으로 외부와 통신한다.

자료를 찾아 보니 위와 같이 정의가 되어 있었다.

C++ 샘플 소스를 검색을 해서 찾아 봤지만 쉽게 찾을 수가 없었다. 스마트폰에서 사용을 많이 해서 그런지 Java나 C#, Android 코드들이 대부분이었다.

 

https://learn.microsoft.com/en-us/samples/microsoft/windows-universal-samples/bluetoothle/

 

Bluetooth Low Energy sample - Code Samples

Shows how to use the Windows Bluetooth LE APIs to act either as a BLE client or server.

learn.microsoft.com

 

다행히 MS에서 제공하는 샘플이 있다. 제공하는 버전은 Universal 윈도우 플랫폼(UWP) Sample이다. 

내가 사용하고 있는 C# WPF, WinForm 코드가 아니기 때문에 바로 사용할 수는 없다.

BluetoothLE.zip
10.19MB

 

 

 

윈도우10 이상 버전에서만 사용이 가능하고 MSVS를 설치 되어 있다면 UWP 확장 SDK를 추가로 설치해야만 빌드가 가능하다.

 

WPF에선 UWP 함수를 사용할 수 없기 때문에 참조를 통해 Windows.winmd를 추가해야 한다.

Windows.winmd는 SDK 폴더에 포함되어 있고 내 PC 같은 경우 아래 폴더의 파일을 이용했다.

C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.17763.0\Windows.winmd

 

그리고 아래 두 라이브러리도 추가를 한다.

System.Runtime.InteropServices.WindowsRuntime
System.Runtime.WindowsRuntime

 

정상적으로 빌드가 되면 UWP와 달리 설치 없이 디버깅 폴더의 실행 파일을 실행 할 수가 있다.

LIST