본문 바로가기
앱스킷(APPSKIT) 강좌

[앱스킷](BLUE-ON V1) 저전력 블루투스 모듈 사용방법 알아보기 - 1편

by 오마이엔지니어 2018. 11. 29.
반응형


[BLUE-ON V1 노드모듈-저전력 블루투스 모듈]

 

 

사물인터넷 기술 중 센서 데이터를 저전력 블루투스(BLE)로 무선 전송하고 싶다면?

 

이런 아이디어에서 출발해서 시리얼 통신을 사용하는 저전력 블루투스 모듈을 내장한 BLUE-ON V1 노드모듈을 출시했습니다.

 

본 포스팅에서는 펌테크사의 "FBL780BC" 저전력 블루투스 모듈을 장착한 BLUE-ON V1 노드모듈을 통해 AT-Command 부터 시리얼 데이터를 안드로이드 폰으로 전송하는 예제를 통해 기초적인 제품사용에 대해 수 회에 걸쳐 차근차근 알아보겠습니다.

 

 

 

먼저 저전력 블루투스, BLE(Bluetooth Low-Energy)에 대해 필요한 용어를 알아보겠습니다.

 

BLE, BLE는 Bluetooth Low-Energy의 줄임말로 종래 블루투스 기술(Bluetooth Class)과 달리 저전력 특성을 강화한 기술로 2010년 Bluetooth 4.0 이후의 버전을 의미합니다.

 

블루투스 기본 이론_하드카피월드(링크)

 

 

블루투스 규격에 의한 장치 구분은 BLE 규격의 등장으로 1) Bluetooth Classic, 2) Bluetooth Smart Ready,  3) Bluetooth Smart로 장치 카테고리를 나누고 있습니다.

 

Bluetooth Classic은 일반적인 블루투스 장치이며, Bluetooth Smart는 BLE 장치이고, Bluetooth Smart Ready는 Bluetooth Class + BLE 두 모드를 모두 지원하는 장치를 말합니다.

 

블루투스 장치 카테고리 이미지 (링크)

 

 

본 포스팅에서 언급하는 기술은 BLE라고 불리는  3)Bluetooth Smart 장치입니다.

 

이 BLE의 네트워크에 사용되는 장치 명칭은 Central, Observer, Peripheral, Broadcaster가 있습니다.

그리고 장치 명칭 뒤에 Role(역할)이라는 접미사가 붙습니다.

 

Central Role 장치는 Bluetooth Classic의 마스터로써, BLE 송/수신 기능을 모두 사용합니다. (일반적인 예로 스마트-폰을 들 수 있습니다.)

Observer Role 장치는 마스터이기는 하지만 Central Role과는 달리 BLE 수신 기능만을 사용합니다.

Peripheral Role 장치는 Bluetooth Classic의 슬레이브로써, BLE 송/수신 기능을 모두 사용합니다.

Broadcaster Role 장치는 슬리이브이기는 하지만, Peripheral과는 달리 BLE 송신 기능만을 사용합니다. (일반적인 예로 비콘을 들 수 있습니다.)

 

BLE 장치 카테고리 이미지 (링크)

 

BLUE-ON V1 노드모듈은 위 Role 중에서 Central Role과 Peripheral Role을 지원합니다. 

 

 

BLE 장치를 알아보았으니 이제 중요한 BLE 동작 컨셉을 살펴보겠습니다.

 

BLE 장치가 연결되는 방식을 이해하는 것만으로 앞으로 본 포스팅에서 다룰 내용 이해에 큰 도움이 됩니다.

 

BLE 동작 상태 스테이트 (링크)

 

위 링크에서 사용된 이미지를 바탕으로 연결 순서에 따른 내용을 다뤄 보겠습니다.

 

먼저 BLE 네트워크의 연결은 1) Standby, 2) Advertising, 3) Scanning, 4) Initiating, 5) Connection 으로 이루어 집니다.

 

Standby(대기) mode

Central(or Observer), Peripheral(or Broadcaster)이 전원 공급 후 서로 연결이 되지 않은 상태입니다.

Advertising(광고) mode,

Peripheral(or Broadcaster)이 주기적으로 자신의 정보를 무선으로 송출합니다.

Scanning(검색) mode,

Central(or Observer)가 Broadcasting 중인 Peripheral(or Broadcaster) 장치의 신호를 스캔합니다.

Initiating(시작) mode,

Central와 Peripheral 장치 간 연결을 위한 데이터를 교환합니다.

Connection(연결) mode,

Central와 Peripheral 장치 간 연결이 완료된 상태로 데이터를 송신 또는 수신할 수 있습니다.

 

우리가 주목할 부분은 Central과 Peripheral 장치 간 이루어지는 Adverting과 Connection입니다.

Peripheral이 Advertising 중, Central과 Connection이 이루어지고 나면 Peripheral은 Advertising을 멈추고 Connection이 끝날 때까지 Central로 데이터를 송신하거나 Central로 부터 데이터를 수신할 수 있습니다.

 

이상으로 BLUE-ON V1 노드모듈을 다루기 위한 기본적인 BLE 내용을 다뤘습니다.

 

 

이제 BLUE-ON V1 노드모듈을 알아보겠습니다.

BLUE-ON V1 노드모듈은 한 개의 U-HUB V1 허브모듈을 장착할 수 있는 슬롯과 FBL780BC 블루투스 모듈이 내장되어 있습니다.

 

2개의 2.54mm, 1X12로 배열된 헤더핀은 U-HUB V1 허브모듈을 장착하면 전원, 아날로그, 디지털 I/O가 연결됩니다.

 

먼저 각 부 명칭을 알아보겠습니다.

[BLUE-ON V1 각 부 명칭]

 

 

노드모듈을 정면으로 보았을 때, 크게 왼쪽으로 U-HUB V1 허브모듈을 장착할 수 있는 커넥터와 오른쪽중단에 FBL780BC 모듈이 있습니다.

 

FBL-780BC 모듈은 Bluetooth 4.1 Low-Energy와 호환되며, 시리얼을 통해 AT-Command로 제어할 수 있습니다. 부가적으로 2개의 ADC 입력과, 7개의 PIO 입출력 인터페이스를 제공합니다.

(BLUE-ON V1 노드모듈에서는 2개의 ADC와 5개의 PIO(2~6번)까지 사용할 수 있습니다.)

 

U-HUB V1 모듈 착/탈커넥터에는 U-HUB V1 허브모듈이 장착되는 공간입니다.

[U-HUB V1과 BLUE-ON V1 결합 전 사진]

 

U-HUB V1 허브모듈과 BLUE-ON V1 노드모듈을 결합해 보았습니다. 

[U-HUB V1과 BLUE-ON V1 결합 후 사진-BLE 아두이노 코어모듈]

 

 

U-HUB V1 모듈 착/탈커넥터 사이로 배터리 연결단자, 칩저항으로 연결할 수 있는 패드, 시리얼 선택 스위치, 그리고 부가 신호핀이 배치되어 있습니다.

 [U-HUB 모듈 착/탈커넥터, 리튬이온 배터리 연결단자와 부가신호 핀] 

 

 

가장 왼쪽에는 리튬이온 배터리 연결단자가 있습니다.

이 기능은 U-HUB V1 허브모듈이 반드시 장착되어야 사용할 수 있는 기능입니다. U-HUB V1 허브모듈에는 리튬이온 배터리 충전기능이 내장되어 있어 이 기능을 이용하는 것입니다.

(U-HUB V1은 3.7[V] 리튬이온 배터리를 지원하며 충전전류는 50[mA]로 제한되어 있습니다.)

 

리튬-이온 전지는 직접 연결하는 것 보다 on/OFF 스위치를 통해 연결하는 것이 좋습니다.

 

U-HUB V1 모듈 사이로 블루투스 모듈의 기본 동작을 설정하는 "CONT" 저항 설정부가 위치하고 있습니다. "PWR_C" 는 파워세이빙 모드를 설정(디폴트: Power-Saving disable)하며, "ADC_C"은 Adverting 기능(디폴트: on)을 on/Off합니다.

 

"EXT/INT" 시리얼 선택 스위치는 BLUE-ON V1 노드모듈의 시리얼 포트를 직접 제어하거나 U-HUB V1 허브모듈의 소프트시리얼 기능을 통해 10번과 11번에 연결시켜 간접 제어를 할 수 있도록 선택하는 기능입니다. (이해가 다소 어려울 수 있으나 사용해 보시면 편리합니다.)

 

노드모듈 중앙에는 부가신호 핀으로 전원과 센서 출력 신호를 따로 연결해 놓았습니다.

필요에 따라서 배선으로 결선하여 사용할 수 있습니다. 

 

핀 설명을 하면, "AD_S"는 Advertising 상태 표시 핀, "AD_C"는 Advertising Control 핀, "ADC0~1"은 아날로그 신호 입력(최대 1.35V), "3.3R/T"는 3.3V RXD/TXD, "PIO2~6"은 PIO 입출력핀입니다.

 

 

보드 기준 우측 중앙에 FBL780BC 모듈과 Advertising 상태를 표시하는 "STATUS" LED 그리고 U-HUB V1(아두이노)의 입출력 핀이 1x12 헤더핀에 배치되어 있습니다.

 [FBL780BC 블루투스 모듈과 상태표시 LED 그리고 U-HUB V1 허브모듈 I/Os]

 

맨 먼저 중앙에 FBL780BC 블루투스 모듈이 자리잡고 있습니다.

 

펌테크사의 FBL780BC 모듈의 주요 규격은 다음과 같습니다.

 [FBL780BC 블루투스 모듈의 주요 규격]

 

FBL780BC 모듈은 칩안테나가 내장되어 있으며, 통신거리는 최대 10미터입니다.

 

외부 인터페이스로는 1개의 UART(시리얼), 2개의 ADC, 7개의 PIO(입출력 핀)를 내장하고 있으며, Central Role과 Peripheral Role로 동작할 수 있으며 이를 AT-Command로 제어가 가능한 모듈입니다.

 

동작 전압은 DC 3.3[V] 이며, ADC의 입력 전압범위는 0~1.35[V]입니다.

 

UART 통신 속도는 9600[bps]로 기본 설정되어 있으며, 설정 가능한 Baud rate는 2400, 9600, 19200, 38400, 57600, 11520, 230400입니다. 

 

세부적인 기술 자료는 아래 펌테크사의 링크를 참고해 주세요.

 

펌테크 FBL780BC 기술자료 (링크)

 

간단하게 설명하면,

FBL780BC 퀵-가이드는,

간단한 BLE 기능소개와 동작방식 그리고 펌테크사의 관련 제품을 소개합니다.

 

FBL780BC 사용자-가이드는,

FBL780BC 모듈의 하드웨어 설명과 AT-Command SET에 대한 세부적인 설명입니다.

 

FBL780BC Appendix_1과 Appendix_3은,

FBL780BC 모듈을 Central 또는 Peripheral 각각의 레퍼런스에 대한 설명입니다.

 

FBL780BC Appendix_2는,

Central과 Peripheral로 설정된 FBL780BC 모듈간 통신하는 예제가 수록되어 있습니다.

 

 

이제 기본적으로 BLUE-ON V1 노드모듈을 제어해 보겠습니다.

아래 사진은 BLUE-ON V1 노드모듈을 NODE-STAND V1 확장-스탠드에 장착한 사진입니다.

 [BLUE-ON V1과 NODE-STAND V1 결합 사진]

 

 

본 설명에서는 위 사진 처럼 U-HUB V1과 PWR-ON V1을 결합하여 NODE-STAND V1에 장착하고, BLUE-ON V1을 NODE-STAND V1에 장착해서 동작시켜 보겠습니다.

(U-HUB V1과 BLUE-ON V1 두 모듈만 결합해서도 사용할 수 있습니다.)

 

다음 동작 설명은 PC 아두이노 시리얼모니터에서 AT-Command를  BLUE-ON V1 모듈로 전송하려고 합니다. U-HUB V1의 Hardware Serial(RX, TX)를 통해 BLE 모듈의 UART에 직접 연결해서 AT-Command를  테스트해보는 예시입니다.

 

이 구조는 BLE 모듈의 AT-Command를 테스트할 때 사용합니다.

 [U-HUB V1 허브모듈의 USB 기능을 경유한 BLUE-ON V1의 UART 연결 도시]

 

참고로 U-HUB V1 허브모듈은 아두이노 개발환경의 보드매니저에서 "Arduino PRO or PRO Mini"를 선택하고 스케치를 업로드하면 됩니다.

 

해당 동작을 위해서는 다음과 같은 조작이 필요합니다.

 

먼저 U-HUB V1 모듈의 USB-to-Serial 기능을 FBL780BC 시리얼로 연결하려고 합니다.

직접 연결을 위해 다음 5가지 단계를 진행합니다.

 

첫째, 빈 스케치를 U-HUB V1에 업로드하기 위해 BLUE-ON V1 모듈의 "시리얼 선택 스위치"를 위로 올립니다.

 

둘째, 아두이노 IDE 환경에서 빈스케치를 만들어 U-HUB V1에 업로드합니다.

 

세째, 아두이노의 Hardware Serial(0번 핀, 1번 핀)과 BLUE-ON V1 모듈의 시리얼 포트를 연결하기 위해 BLUE-ON V1 모듈의 "시리얼 선택 스위치"를 아래로 내립니다.

 

네째, 아두이노 IDE 환경 내 시리얼 모니터를 실행시키고 통신속도는 "9600", 줄끝 옵션은 "캐리지리턴"을 선택합니다.

 

다섯째, AT Command를 전송합니다. AT-Command를 전송할 때 유의해야 할 점은 AT-Command 끝에 CR(Carriage Return)을 붙여야 합니다.

 

 [아두이노 IDE 환경 내 시리얼모니터 실행 후 옵션 설정 화면]

 

 

다음은 위에서 설명한 U-HUB V1 허브모듈의 USB를 경유하여 FBL780BC 모듈의 UART를 통해 AT-Command를 테스트해 보는 예제 동작 영상입니다.

 

아두이노 시리얼모니터에서 AT-Command를 입력하여 하드웨어 시리얼 포트를 통해 BLE 모듈과의 응답을 확인합니다. 

 [아두이노 시리얼모니터에서 Hardware Serial을 통해 BLUE-ON V1 모듈 직접 제어하기] 

 

 

상기 방식으로 FBL-780BC 모듈의 AT-Command를 테스트하여 기본 사용을 익힐 수 있습니다.

 

 

다음은 아두이노의 소프트시리얼을 사용한 예제를 동작시켜 보겠습니다.

다음 동작 설명은 PC 아두이노 시리얼모니터는 아두이노(U-HUB V1)에 연결하고 FBL780BC 모듈의 UART는 아두이노(U-HUB V1)의 Software Serial(10번 핀, 11번 핀)로 연결해서 AT-Command를  테스트해보는 예시입니다.

 

이 구조는 아두이노가 BLE 모듈을 직접 제어할 때 일반적으로 사용합니다.

 [U-HUB V1 허브모듈의 소프트시리얼을 경유한 BLUE-ON V1의 UART 연결 도시]

 

해당 동작을 위해서는 다음과 같은 조작이 필요합니다.

 

간접 연결을 위해 다음 5가지 단계를 진행합니다.

 

첫째, 아두이노의 Software Seril(10번 핀, 11번 핀)과 BLUE-ON V1 모듈의 시리얼 포트를 연결하기 위해 "시리얼 선택 스위치"를 위로 올립니다.

 

둘째, 아두이노 시리얼 포트에서 블루투스가 연결된 소프트시리얼 간 Pass-through 스케치를 업로드합니다. 아래 스케치는 소프트시리얼의 입력을 받으면 시리얼 입력으로, 시리얼 입력은 소프트시리얼 입력으로 전송합니다.

 

(아래 스케치는 아두이노 "시리얼 모니터"를 통해 Hardware Serial port와 BLUE-ON V1과 연결된 Software Serial port간 데이터를 전송하는 예제입니다.

example code.txt

#include <SoftwareSerial.h>                                                                                                           
 
SoftwareSerial FBL780BC_SERIAL(10, 11);
 
void setup()
{
  Serial.begin(9600);
  FBL780BC_SERIAL.begin(9600);
}
 
void loop() {
 
  FBL780BC_SERIAL.listen();
 
  while(FBL780BC_SERIAL.available() > 0)
  {
    byte bBLEData = FBL780BC_SERIAL.read();
   
    Serial.write(bBLEData);
  }
 
  while(Serial.available() > 0)
  {
    byte bSerData = Serial.read();
   
    FBL780BC_SERIAL.write(bSerData);
  }
}

 [시리얼모니터를 통한 아두이노시리얼과 소프트시리얼 Pass-through 스케치 예제]

 

세째, 아두이노 IDE 환경 내 시리얼 모니터를 실행시키고 통신속도는 "9600", 줄끝 옵션은 "캐리지리턴"을 선택합니다.

 

네째, AT Command를 전송합니다. AT-Command를 전송할 때 유의해야 할 점은 AT-Command 끝에 CR(Carriage Return)을 붙여야 합니다.

 [아두이노 IDE 환경 내 시리얼모니터 실행 후 옵션 설정 화면]

 

 

다음은 위에서 설명한 U-HUB V1 허브모듈의 USB를 경유하여 FBL780BC 모듈의 UART를 통해 AT-Command를 테스트해 보는 예제 동작 영상입니다.

 

아두이노 시리얼모니터에서 AT-Command를 입력하여 소프트웨어 시리얼 포트를 통해 BLE 모듈과의 응답을 확인합니다. 

 [아두이노 Software Serial을 통해 BLUE-ON V1 모듈 간접 제어하기] 

 

 

세부적인 사항은 해당 AT-Command는 펌테크사의 기술자료 중, FBL780BC 사용자-가이드를 참고해 주세요.

 

 

BLUE-ON V1 노드-모듈을 기본적인 동작과 Hardware Serial 포트를 통한 직접 통신과 Software Serial 포트를 통한 간접 통신에 대한 이해에 도움이 되었으면 합니다.

 

이상으로 포스팅을 마치겠습니다.

 

감사합니다.


앱스킷 구매처
앱스킷 공식 홈페이지

example code.txt
0.0MB
반응형

댓글