아두이노와 스마트폰간 블루투스 연결 테스트를 위해 CC2541 BLE 4.0 호환 모듈을 구매 했습니다.

https://www.coupang.com/vp/products/4691675249

 

판매자는 상품 상세에 간단한 샘플 소스 하나 올려 놓고 데이터 시트 따위는 알아서 하라는 배짱이네요

 

기본적인 BLE 연결 작업을 한 내용을 정리 했습니다.

 

1. 배선

  • VCC -> 아두이노 5V
  • GND -> 아두이노 GND
  • TXD -> 아두이노 D4
  • RXD -> 아두이노 D5

2. 소스코드

시리얼 모니터로 입력된 값을 BLE로 전달하고

BLE의 값을 읽어서 시리얼 모니터에 출력하는 단순한 프로그램

#include <SoftwareSerial.h> // Serial 통신을 하기 위해 선언

SoftwareSerial BLE (4, 5); // BLE 모듈 4=TXD, 5=RXD 핀 선언

void setup() {
    Serial.begin(9600); // 시리얼 통신 선언 (보드레이트 9600)
    BLE.begin(9600); // BLE 모듈 통신 선언 (보드레이트 9600)
}

void loop() {
    if(BLE.available()) // BLE에 입력이 되면
      Serial.write(BLE.read()); // BLE에 입력된 값을 시리얼 모니터에 출력

    if(Serial.available()) // 시리얼 모니터에 입력이 되면
      BLE.write(Serial.read()); // 그 값을 BLE에 출력
}

 

3. 업로드 및 시리얼 통신 설정

 

아두이노에 USB를 연결 하면 전원이 들어오고 BLE 보드에 붉은 LED가 깜빡 거립니다.

드라이버는 자동으로 설치 됩니다.

 

아두이노 스튜디오를 실행하고 보드 및 통신 설정을 합니다.

설치 하신 보드를 선택 하시면 됩니다.

시리얼 통신의 방식은 Both NL & CR, 속도는 9600으로 선택 합니다.

 

업로드 버튼을 클릭 하면 소스 컴파일 후 아두이노로 보드로 업로드 됩니다.

 

이때 아두이노 보드의 RX LED가 깜빡 거립니다.

 

 

소스에 오류가 없이 정상적으로 업로드 되면 Output 텝에 아래와 같은 메시지가 표시 됩니다.

 

4. BLE 동작 테스트

Serial Monitor 텝의 Message 에 명령어를 입력 하면 BLE 보드로 메시지를 전달 합니다.

AT
AT+NAME

두개 명령에 대한 응답 값 화면입니다.

 

BLE 보드 페어링에 나오는 이름은 BL05 로 되어 있음을 알 수 있습니다.

같은 제조사에서 나온 보드는 같은 이름으로 나오기 때문에 내가 알 수 있는 이름으로 바꿔 보겠습니다.

BASSCRAFT_BLE 로 바꾸겠습니다.

AT+NAMEBASSCRAFT_BLE

 

정상적으로 이름이 바뀐 것을 확인 했습니다.

 

AT 명령어 참고.

출처 : https://blog.naver.com/hahnhongmihn/221321772579

 

 

6. 스마트폰과 페어링

BLE 보드는 스마트폰 설정에서 블루투스 목록에 보여지긴 하지만 정상적으로 페어링이 되지는 않습니다.

 

BLE를 지원하는 앱이 필요 합니다.

구글 플레이에서 Serial Bluetooth Terminal 이라는 앱을 검색 해서 설치 했습니다.

 

앱을 실행하고 Devices 메뉴에서 Bluetooth LE 텝을 선택 하고 SCAN 을 클릭하면 우리가 설정한 이름의 BLE 장치가 검색 됩니다.

 

장치를 클릭 하면 아래 그림 처럼 터미널 화면으로 진입 하면서 블루투스 모듈과 연결이 됩니다.

 

메시지 창에 메시지를 입력하면 아두이노와 연결되어 있는 PC의 아두이노 IDE와 메시지를 주고 받을 수 있습니다.

 

 

스마트폰과 통신은 문자열로 전송 되기 때문에 스마트폰에서 전송하는 AT 명령은 단순 메시지로 표시 됨을 참고 하시기 바랍니다.

 

끝.

+ Recent posts