Arduino IDE에서 ESP32 Bluetooth Classic 사용하기

Arduino Ideeseo Esp32 Bluetooth Classic Sayonghagi



ESP32는 Wi-Fi 및 Bluetooth 지원과 함께 제공되는 마이크로컨트롤러 기반 보드입니다. 여러 센서와 통합하여 명령을 실행할 수 있는 IoT 기반 보드입니다. ESP32 보드는 무선 통신이 필요한 광범위한 응용 분야를 가지고 있습니다. ESP32 Bluetooth를 구성하고 이를 사용하여 정보를 전송하는 방법에 대해 논의해 보겠습니다.

Arduino IDE가 포함된 ESP32 Bluetooth Classic

ESP32 보드는 듀얼 블루투스를 지원하며 하나는 블루투스 클래식이고 두 번째는 BLE(Bluetooth Low Energy)입니다. 오늘 우리는 블루투스 클래식에 대해서만 논의할 것입니다. 둘 사이에 존재하는 유일한 차이점은 Bluetooth Classic은 많은 데이터 전송을 처리할 수 있지만 더 높은 속도로 배터리를 소모하지만 Bluetooth Low Energy는 단거리 통신에 사용되는 절전 변형입니다. BLE는 데이터 전송을 위해 초기화될 때까지 절전 모드를 유지합니다.







ESP32 클래식 블루투스 직렬 통신

ESP32 블루투스 작동은 외부 블루투스 센서가 HC-05와 같이 사용되기 때문에 Arduino에서 했던 것처럼 어떻게든 Arduino와 유사합니다. Arduino 및 HC-05 센서는 모두 직렬 통신을 통해 통신합니다. ESP32의 경우도 마찬가지지만 차이점은 ESP32에는 먼저 데이터를 수신한 다음 Xtensa 프로세서로 전달하는 내장형 Bluetooth 모듈이 있다는 것입니다.



따라서 이 통신을 설정하려면 ' 블루투스시리얼 ” 라이브러리는 Arduino 직렬 라이브러리와 유사하지만 ESP32 내에만 사용됩니다. 다음은 Bluetooth 직렬 라이브러리에서 제공하는 몇 가지 기능입니다.



  • 시작하다()
  • 사용 가능()
  • 쓰다()
  • 읽다()

ESP32를 사용한 블루투스 제어 LED

블루투스 무선 통신을 통해 모바일 블루투스를 이용하여 LED를 제어할 수 있는 간단한 코드를 작성해 봅시다. 다음은 Bluetooth 직렬 통신을 사용하여 LED를 제어하는 ​​데 필요한 하드웨어입니다.





  • ESP32
  • 주도의
  • 브레드보드
  • 안드로이드 기기
  • 직렬 블루투스 단말 응용

회로

ESP32 보드의 GND에 연결된 음극 단자와 ESP32의 디지털 핀 15에 LED를 연결합니다. 안전한 전류 제한을 위해 저항(220옴)을 연결할 수도 있습니다.

암호

Arduino IDE를 열고 보드 관리자에서 ESP32 보드를 선택하여 Arduino IDE 클릭에 ESP32 보드를 설치하는 방법을 확인하십시오. 여기 . 보드를 선택한 후 편집기 창에서 아래 코드를 작성하십시오.



#include   /*블루투스 직렬 통신 라이브러리*/

#define LED_PIN 15  /*LED 핀 초기화*/

블루투스직렬 직렬BT;

바이트 BT_INP;

#if !정의(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)/*SDK에서 블루투스 확인*/

#error 블루투스 끄기 -- `make menuconfig`를 실행하여 활성화

#endif

무효 설정 ( )

{

  pinMode ( LED_PIN, 출력 ) ; /* 주도 핀 세트 ~처럼 산출 */
Serial.begin ( 115200 ) ; /* 전송 속도 ~을 위한 직렬 통신 */
SerialBT.begin ( ) ; /* 블루투스 통신 시작 */
Serial.println ( 'Bluetooth를 페어링할 준비가 되었습니다...' ) ; /* 블루투스가 켜지면 */
}
무효 루프 ( )
{
만약에 ( 직렬BT.사용 가능 ( ) ) /* 확인하다 ~을 위한 블루투스 데이터 가용성 */
{
BT_INP = 직렬BT.read ( ) ; /* 읽다 장치의 블루투스 데이터 */
직렬.쓰기 ( BT_INP ) ; /* 인쇄하다 읽다 데이터 */
}
만약에 ( BT_INP == '1' ) /* 만약에 상태 ~을 위한 주도 상태 */
{
디지털 쓰기 ( LED_PIN, 높음 ) ; /* 주도 켜기 만약에 1 입력이 수신됩니다 */
}
만약에 ( BT_INP == '0' )
{
디지털 쓰기 ( LED_PIN, 낮음 ) ; /* 주도 끄기 만약에 0 입력이 수신됩니다 */
}

}

여기 위의 코드에서 ESP32용 Bluetooth 직렬 라이브러리를 포함하는 것으로 시작했습니다. 다음으로 ESP32 Bluetooth를 활성화하는 Bluetooth 직렬 라이브러리 기능을 포함했습니다.

다음 LED 핀 15가 초기화되고 pinMode() 기능 LED 핀이 출력으로 설정됩니다.

코드의 루프 부분에서 프로그램은 직렬 Bluetooth 데이터 가용성을 확인합니다. 입력 데이터가 1이면 LED가 켜지고 수신 데이터가 0이면 LED가 꺼집니다.

코드가 업로드되면. ESP32 보드의 블루투스가 켜지고 직렬 모니터에 다음 메시지가 나타납니다.

직렬 블루투스 터미널 설치

ESP32에 지침을 보낼 수 있는 Bluetooth 장치가 필요하므로 Android 스마트폰을 사용하여 ESP32 Bluetooth와 인터페이스합니다. 먼저 안드로이드 폰에 시리얼 터미널을 설치해야 합니다. ESP32와 Android 전화를 인터페이스하려면 아래 단계를 따르십시오.

1 단계 : 스마트폰에서 구글 플레이 스토어를 열고 검색 직렬 블루투스 터미널 . 아래 표시된 응용 프로그램을 설치하십시오.

2 단계 : 휴대폰 설치 후 블루투스 설정을 엽니다. ESP32 Bluetooth를 검색하고 클릭하여 스마트폰과 페어링을 시작합니다. :

3단계 : 탭한 후 , 휴대 전화가 ESP32 Bluetooth와 페어링을 시작합니다.

4단계 : 이제 직렬 Bluetooth 터미널 응용 프로그램을 열고 사이드 메뉴에서 장치로 이동합니다.

5단계 : 장치 옵션이 열리면 일부 권한을 요청하거나 새로 고치다 오른쪽 상단 모서리에 있는 버튼:

6단계 : 클릭하면 다음 팝업이 뜹니다. 설정 요청하는 권한을 허용합니다.

7단계 : 이제 ESP32 보드가 블루투스를 통해 명령을 받을 준비가 되었습니다. Bluetooth Classic 옵션에서 ESP32 보드를 선택합니다.

8단계 : ESP32가 선택되면 연결이 시작되고 성공하면 연결됨 메시지가 나타납니다.

9단계 : 이제 여기에 입력하여 명령을 보낼 수 있습니다. 1을 입력하고 보내기 버튼을 클릭하고, ESP32의 LED 보드가 켜집니다. 마찬가지로 0을 입력하면 LED가 꺼집니다.

마찬가지로 Arduino IDE의 직렬 모니터에서 수신 중인 출력을 볼 수 있습니다.

산출:

1을 보낸 후 LED가 켜집니다.

0을 보낸 후 LED가 꺼집니다.

메모 : 아래 이미지와 같이 특정 명령에 대한 버튼을 구성할 수도 있습니다. 이렇게 하려면 버튼을 클릭하고 원하는 값을 설정합니다. 여기에서 하나는 HIGH용이고 다른 하나는 LOW 상태용으로 두 개의 버튼을 설정했습니다. 16진수 값으로 이러한 바로 가기를 구성할 수도 있습니다.

결론

ESP32 보드에는 온보드 WiFi가 있으며 Classic Bluetooth 및 Low Energy Bluetooth를 통한 이중 Bluetooth 지원이 있습니다. Classic은 높은 데이터 전송에 사용되는 반면 BLE(Bluetooth Low Energy)는 전력 요구 사항이 적은 단거리에 사용됩니다. 이 기사에서는 Classic Bluetooth 데이터 전송을 다루고 ESP32 보드를 사용하여 Bluetooth 통신을 수행하는 방법에 대한 아이디어를 제공합니다.