iFLine-코딩으로 뽀샤버리기

10강. Bluetooth로 원격 디버깅하기

Posted by INDIFROG on 2020-07-02
Words 237 and Reading Time 1 Minutes
Viewed Times

10강. Bluetooth로 원격 디버깅하기

iFLine_btserial_01
iFLine_btserial_02

먼저 해당 PC나 Mac북에서 iFLine의 iFZero_BTSerial 이름처럼 해당 이름으로 먼저 페어링을 합니다.
그리고 나서 그림과 같이 시리얼 포트 뷰어 프로그램으로 데이터를 읽으면 됩니다.

iFZero(ESP32) 보드를 사용하여 소프트웨적으로 WiFi와 Bluetooth( Classic, Smart) 코드를 추가할 수 있습니다.

예를 들면, Bluetooth 기능을 추가하기 위해서 해더파일과 코드를 입력하고 빌드를 하게 되면 소프트웨어적으로 결합이 되어 빌드시에 BT스택에 관련된 바이너리 코드가 대략 60 KBytes 정도 추가됩니다.

따라서 플래쉬 롬의 크기가 4M 바이트라고 해도 내부적으로 기본 동작을 위해 차지하고 있는 메모리 용량이 있다보니 유저가 사용할 수 있는 프로그램의 바이너리 크기가 대략 1.7M 정도가 최대인데 WiFi와 Bluetooth를 동시에 사용은 하지 않지만, 코드가 주석처리 되지 않고 살아 있을 경우 이 크기를 넘을 가능성이 있습니다. 이때는 다운로드가 되지 않을 수 있습니다.

따라서 ESP32로 솔루션을 개발할 때 주로 WiFi 기능을 구현하고 있고 동시에 Bluetooth의 SPP(Serial Port Profile) 시리얼 디버그 기능을 사용하고 싶다면… 실제로는 메모리 용량의 제한때문에 하나를 포기해야 하는 경우가 종종 있습니다.

그래서 프로그램을 개발할 때, 대부분 Bluetooth 원격 시리얼 디버그 기능을 사용하면서 모듈별 코드 테스트를 먼저 진행합니다.

Bluetooth의 시리얼 디버그를 구현하기 위해서 해야할 일은 매우 간단합니다.

BluetoothSerial.h 헤더파일을 추가하고 BluetoothSerial 객체를 선언한 다음 기존 Serial 디버그 메시지를 사용할 때와 동일하게 printf 함수를 사용하면 됩니다.

btSerial.begin(“iFZero_BTSerial”);

iFLine_btserial_03

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <BluetoothSerial.h>

BluetoothSerial btSerial;
int count = 0;

void setup()
{
btSerial.begin("iFZero_BTSerial");

}

void loop()
{
btSerial.printf("count = %d\n", count++);

delay(1000);
}