ESP32 블루투스 튜토리얼 DIYables 블루투스 앱으로 클래식 블루투스 및 BLE 사용하기

개요

이 튜토리얼은 클래식 블루투스 또는 블루투스 저에너지(BLE)를 사용하여 ESP32DIYables 블루투스 앱 간에 무선 통신을 구현하는 방법을 보여줍니다. ESP32에는 통합된 블루투스 기능이 탑재되어 있어 외부 블루투스 모듈이 필요 없습니다.

ESP32는 클래식 블루투스와 BLE 프로토콜 모두를 기본으로 지원하여, 추가 하드웨어 없이도 Android 및 iOS 기기의 DIYables 블루투스 앱에 직접 연결할 수 있습니다.

주요 정보: ESP32는 이중 블루투스 모드를 지원합니다 — 클래식 블루투스와 BLE(블루투스 저에너지) 모두 지원합니다. DIYables 블루투스 앱은 Android 플랫폼에서 클래식 블루투스와 BLE를 모두 지원하며, iOS에서는 BLE를 지원합니다. 사용자는 플랫폼 요구사항과 프로젝트 사양에 따라 적절한 프로토콜을 선택할 수 있습니다.

ESP32 블루투스 튜토리얼 - diyaBLEs 블루투스 앱으로 클래식 블루투스 및 BLE 사용하기

기능

  • 이중 프로토콜 지원: 최대 호환성을 위해 클래식 블루투스와 BLE 프로토콜 모두 구현
  • 무선 범위: 최대 10미터의 무선 통신 제공
  • 멀티 플랫폼 호환성: Android 및 iOS 운영 체제 모두 지원
  • 유연한 연결 방식: 클래식 블루투스는 전통적인 페어링 사용; BLE는 자동 연결 제공
  • 포괄적인 위젯 라이브러리: 슬라이더, 조이스틱, 모니터, 플로터, 게이지, 온도 디스플레이, 채팅, 테이블, 로테이터 및 추가 인터페이스 구성 요소 포함
  • 전력 효율 옵션: BLE 모드는 저전력 애플리케이션에 최적화; 클래식 블루투스는 더 넓은 기기 호환성 제공
  • 간편한 통합: 단일 라이브러리 설치로 모든 통신 프로토콜 관리

필요한 하드웨어

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow 쿠팡 | 아마존
1×(또는) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide 쿠팡 | 아마존
1×(또는) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide 아마존
1×(또는) ESP32 Uno-form board 아마존
1×(또는) ESP32 S3 Uno-form board 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) Breakout Expansion Board for ESP32 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

소프트웨어 설정

빠른 시작

개발 환경을 구성하려면 다음 절차를 따르세요:

  • 초기 ESP32 설정은 ESP32 시작 가이드를 참조하세요.
  • USB 케이블로 ESP32 보드를 컴퓨터에 연결합니다.
  • Arduino IDE를 실행합니다.
  • ESP32 보드와 해당 COM 포트를 선택합니다.

보드 코어 설치

  • 도구 보드 보드 관리자...로 이동합니다.
  • "esp32"를 검색합니다.
  • Espressif Systems의 esp32를 설치합니다.

DIYables 블루투스 라이브러리 설치

  • Arduino IDE 왼쪽 사이드바의 라이브러리 아이콘에 접근합니다.
  • "DIYables Bluetooth"를 검색하여 DIYables의 DIYables Bluetooth 라이브러리를 찾습니다.
  • 설치를 클릭하여 라이브러리를 추가합니다.
ESP32 diyaBLEs 블루투스 라이브러리
  • 필요한 라이브러리 종속성 설치 여부를 묻는 메시지가 나타납니다.
  • 모두 설치를 클릭하여 설치를 완료합니다.
ESP32 diyaBLEs 블루투스 종속 라이브러리

모바일 앱

플랫폼 호환성: DIYables 블루투스 앱은 Android 플랫폼에서 클래식 블루투스와 BLE를 모두 지원하며, iOS에서는 BLE를 지원합니다. ESP32의 이중 모드 기능으로 플랫폼 요구사항에 따라 프로토콜을 선택할 수 있습니다. Android 기기는 클래식 블루투스와 BLE 모드를 모두 지원합니다. iOS 기기는 BLE 모드가 필요합니다. BLE 연결은 수동 페어링 없이 자동으로 이루어집니다.

  • DIYables 블루투스 앱을 실행합니다.
  • 다음 권한을 요청받으면 허용합니다:
    • 주변 기기 권한 (Android 12+) / 블루투스 권한 (iOS) - 블루투스 기기 검색 및 연결에 필요
    • 위치 권한 (Android 11 이하만 해당) - 블루투스 기기 검색을 위해 Android 시스템에서 요구
  • 기기 설정에서 블루투스가 활성화되어 있는지 확인합니다.
  • 홈 화면에서 연결 버튼을 탭하여 기기 검색을 시작합니다.
diyaBLEs 블루투스 앱 - 검색 버튼이 있는 홈 화면
  • 검색 결과에서 ESP32 기기를 선택하여 연결합니다.

예제

ESP32는 클래식 블루투스와 BLE 프로토콜을 모두 지원합니다. 프로젝트 요구사항에 따라 적절한 구현을 선택하세요. 모든 예제는 ESP32 하드웨어와 호환됩니다.

클래식 블루투스 예제 (Android 전용) 및 BLE 예제 (Android & iOS)

문제 해결

증상예상 원인해결 방법
앱 검색 시 기기가 보이지 않음잘못된 블루투스 모드 또는 펌웨어가 실행되지 않음코드가 올바른 블루투스 모드(클래식 또는 BLE)를 사용하는지 확인하고 ESP32가 실행 중인지 확인
SerialBT.begin() 또는 BLE.begin() 실패보드 코어 또는 라이브러리 비호환성보드 관리자를 통해 Espressif Systems의 ESP32 보드 코어 설치
연결은 되었지만 데이터 전송 없음오래된 DIYables 라이브러리라이브러리 관리자를 통해 DIYables 블루투스 라이브러리를 최신 버전으로 업데이트
컴파일 오류 BluetoothSerial.h 또는 BLEDevice.h를 찾을 수 없음DIYables 블루투스 라이브러리가 설치되지 않음라이브러리 관리자를 통해 DIYables 블루투스 라이브러리 설치
보드 선택 관련 컴파일 오류잘못된 보드 선택 또는 코어 누락ESP32 보드를 선택하고 Espressif Systems의 esp32 코어 설치
연결 후 즉시 끊김간섭 또는 전원 공급 문제안정적인 USB 전원 공급 확인 및 10미터 이내로 기기 근접 유지
iOS에서 클래식 블루투스 작동 안 함iOS는 클래식 블루투스 프로파일을 지원하지 않음iOS 기기 호환성을 위해 BLE 모드 사용

참고 사항

  • ESP32 구현의 경우, 클래식 블루투스에는 Esp32Bluetooth_ 예제를, BLE에는 Esp32BLE_ 예제를 사용하세요. ArduinoBLE_ 예제는 다른 하드웨어 플랫폼(예: Arduino Uno R4)용으로 설계되었습니다.
  • 클래식 블루투스는 앱 연결 전에 기기 블루투스 설정을 통해 수동 페어링이 필요합니다(Android 전용).
  • BLE는 수동 페어링 없이 자동으로 연결되며 Android와 iOS 플랫폼을 모두 지원합니다.
  • 지속적인 블루투스 광고와 기기 검색 가능성을 보장하기 위해 지속적인 전원 공급(USB 또는 외부)을 유지하세요.
  • IOS 호환성은 iOS가 액세서리 기기에 대한 클래식 블루투스를 지원하지 않으므로 BLE 모드가 필요합니다.