5주차_참고 : 블루투스 기초 - dhryu60/SmartDevice_2025-1 GitHub Wiki
ESP32 블루투스 기초 이론
1. 개요
ESP32는 Wi-Fi와 Bluetooth 기능을 모두 내장한 강력한 마이크로컨트롤러로, 다양한 IoT(사물인터넷) 프로젝트에 활용되고 있다. 특히, Bluetooth 기능은 저전력 무선 통신을 필요로 하는 애플리케이션에서 유용하게 사용된다.
2. ESP32의 Bluetooth 기능
ESP32는 두 가지 Bluetooth 모드를 지원한다:
- Bluetooth Classic (BR/EDR): 주로 오디오 전송, 데이터 통신 등에 사용되며, 비교적 높은 대역폭을 제공한다.
- Bluetooth Low Energy (BLE): 저전력 소비가 중요한 센서 네트워크, 비콘(Beacon) 등에서 사용되며, 간헐적인 소량의 데이터 전송에 최적화되어 있다.
3. Bluetooth Classic과 BLE의 차이점
특성 | Bluetooth Classic | BLE |
---|---|---|
데이터 전송 속도 | 최대 3 Mbps | 최대 1 Mbps |
전력 소비 | 비교적 높음 | 매우 낮음 |
연결 지연 시간 | 수 초 | 수 밀리초 |
애플리케이션 | 오디오 스트리밍, 파일 전송 | 센서 데이터 전송, 비콘, IoT |
4. ESP32에서의 Bluetooth 프로그래밍
ESP32에서 Bluetooth 기능을 활용하기 위해서는 다음과 같은 개발 환경과 라이브러리를 사용할 수 있다:
- Arduino IDE: 친숙한 개발 환경으로, ESP32용 Bluetooth 라이브러리를 제공한다.
- ESP-IDF (Espressif IoT Development Framework): Espressif에서 제공하는 공식 개발 프레임워크로, 더 세밀한 제어와 다양한 기능을 지원한다.
5. Bluetooth 통신의 기본 개념
- 프로파일(Profile): 특정 애플리케이션에 필요한 Bluetooth 기능 집합을 정의한 것. 예를 들어, 오디오 전송을 위한 A2DP, 파일 전송을 위한 FTP 등이 있다.
- 서비스(Service): Bluetooth 장치가 제공하는 기능이나 데이터를 의미하며, 여러 특성(Characteristics)으로 구성된다.
- 특성(Characteristic): 서비스 내에서 실제 데이터를 나타내는 단위로, 읽기, 쓰기, 알림 등의 동작을 수행할 수 있다.
6. ESP32의 BLE 아키텍처
ESP32의 BLE 스택은 다음과 같은 계층으로 구성되어 있다:
- 컨트롤러 레이어: 물리적 RF 트랜시버와 베이스밴드 프로세서를 포함하며, BLE의 물리적 계층과 링크 계층을 담당한다.
- 호스트 레이어: L2CAP, ATT, GATT, SMP, GAP 등의 프로토콜을 포함하며, BLE의 논리적 연결과 데이터 전송을 관리한다.
- 애플리케이션 레이어: 사용자 애플리케이션이 위치하며, BLE 서비스를 정의하고 활용한다.
7. ESP32에서의 BLE 프로그래밍 기본 흐름
- 초기화: BLE 환경을 초기화하고, 장치의 역할(예: 서버 또는 클라이언트)을 설정한다.
- 서비스 및 특성 정의: BLE 서버로서 제공할 서비스와 특성을 정의한다.
- 광고 시작: 다른 BLE 장치가 이 장치를 발견할 수 있도록 광고를 시작한다.
- 광고(Advertising)
https://github.com/dhryu60/SmartDevice_2025-1/wiki/5%EC%A3%BC%EC%B0%A8_%EC%B0%B8%EA%B3%A0-:-BLE-%EA%B4%91%EA%B3%A0(Advertising)
- 연결 처리: 클라이언트 장치와의 연결 요청을 처리하고, 데이터 통신을 수행한다.
8. BLE의 주요 개념
- GAP (Generic Access Profile): BLE 장치 간의 연결 및 광고를 관리하는 프로파일로, 장치의 역할(중앙 또는 주변), 광고 패킷 형식 등을 정의한다.
- GATT (Generic Attribute Profile): BLE 장치 간의 데이터 교환을 위한 프로파일로, 서비스와 특성의 구조를 정의한다.
9. ESP32 BLE의 활용 예시
- 환경 모니터링: 센서를 통해 수집한 데이터를 BLE를 통해 스마트폰으로 전송.
- 스마트 홈: BLE를 이용한 조명 제어, 도어락 제어 등.
- 헬스케어: BLE 기반의 심박수 모니터링, 활동량 측정 등.
10. 결론
ESP32의 Bluetooth 기능은 다양한 IoT 애플리케이션에서 무선 통신을 가능하게 하며, 특히 BLE는 저전력 특성으로 인해 센서 네트워크 등에서 널리 사용된다. 이러한 기능을 활용하여 다양한 프로젝트를 구현할 수 있다.
참고 자료