본문 바로가기
Arduino(아두이노) IoT 키트 강좌

Arduino Uno 로 AT-09/HM-10 호환 블루투스 4.0 BLE 모듈을 사용해서 마스터/슬레이브로 데이터 주고 받기

by 오마이엔지니어 2018. 5. 3.
반응형

 

Arduino Uno 로 AT-09/HM-10 호환 블루투스 4.0 BLE 모듈과 안드로이드 스마트폰을 사용해서

마스터/슬레이브로 데이터를 주고 받아 보는 프로젝트 입니다

AT-09는 정품 HM-10 블루투스 4.0 BLE 모듈의 저가형 호환버전 입니다
TI사의 CC2541 칩을 장착한 제품으로 UART 시리얼을 이용하여 모듈을 쉽게 사용할 수 있으며
5V 로직전압을 지원할수 있게 설계되었습니다 (마스터/슬레이브로 설정 가능합니다)
정품 HM-10 블루투스 모듈과 펌웨어가 다르기 때문에  정품 HM-10 AT 커맨드와 일부 호환되지 않습니다
시리얼 명령 전송시에는 CR+LF 를 포함하여 송신해야 합니다
자세한 내용은 아모스님의 블로그 포스팅 참조

BT4.0-HM-10-Serial_Port_BLE_Module_Master_Slave.pdf

DX-BT05-A 4.0 AT Commands (Chinese).pdf

DX-BT05-A 4.0 basis specs (Chinese).pdf


HM-10 의 모든 AT 커맨드를 완벽하게 사용하고 싶다면 정품 HM-10 블루투스 모듈을 사용하는것이 좋겠습니다



 

<AT-09/HM-10 호환 블루투스 4.0 BLE 모듈 이미지>

 

AT-09는 블루투스 4.0 BLE 모듈 이므로 이를 지원하는 안드로이드 앱 등을 사용해야 합니다

페어링시 기본 이름은 BT05 이며 비밀번호 설정은 AT+TYPE=0 (비밀번호 없음) 으로 설정되어 있습니다
AT+TYPE=2 (비밀번호 페어링) 으로 설정되어 있거나 설정을 바꾼 경우 기본 비밀번호는 000000 입니다
AT-09 는 비밀번호가 6자리 입니다

 

사용된 부품

Arduino Uno R3 (Italy)
AT-09/HM-10 호환 블루투스 4.0 BLE 모듈

점퍼케이블(숫놈/암놈)

구성 배선도

 

사용된 예제소스

AT-09 데이터 주고 받기.txt


주의사항

첨부된 예제 코드를 아두이노 우노에 업로드 할 때 AT-09 블루투스 모듈은 아두이노 우노와 연결이 안 되어 있는

상태에서 업로드를 마친 후 아두이노 우노와 연결 하도록 합니다, 에러나 업로드가 안되는 경우가 있습니다

이점 주의 하도록 합시다

 

기본적으로 AT-09 블루투스 모듈은 전원이 인가되면 빨간색 전원LED가 지속적으로 깜박입니다

하지만 어플과 연결해서 페어링에 성공하면 LED는 점등되어 멈추게 됩니다

(전원LED가 들어오지 않는다면 모듈의 문제이거나 모듈의 LED에 문제일수 있습니다)
 

프로젝트를 위해서는 블루투스 BLE 안드로이드 어플이 필요합니다 (하단 링크를 클릭해 다운 받으세요) 

 

블루투스 모듈을 제어하기 위해서 "HMBLE Terminal" 어플을 다운 받습니다
https://play.google.com/store/apps/details?id=com.hatflabs.hmbleterminal


구글계정 로그인을 하면 무선으로 본인소유의 안드로이드 폰을 검색해서 간편하게 핸드폰에 어플 설치를 해줍니다

안된다면 안드로이드폰 구글 플레이스토어 에서 'HMBLE Terminal' 로 검색해서 설치 하도록 합니다

꼭 HMBLE 앱을 사용해야만 하는것은 아닙니다 (블루투스 4.0 BLE 어플을 사용하면 됩니다)
HMBLE 앱이 서비스가 종료되서 설치가 불가능하다면 아래 앱으로도 동일하게 테스트 가능합니다


구글 플레이 스토어에서 Serial Bluetooth Terminal 앱을 다운로드 해서 설치해 줍니다
https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal

자세한 앱 사용방법은 아래 링크의 포스팅을 확인해 주세요
http://blog.daum.net/rockjjy99/2657


  

어플사용 방법

안드로이드 폰에서 어플을 설치하고 실행한 화면 입니다

 

아이콘을 눌러서 실행합니다

 

아두이노 IDE에서 시리얼 모니터를 켜고 위 이미지 처럼 9600 보드레이트 Both NL & CR 로 설정해 줍니다

 

 

 

안드로이드 블루투스 어플에서 메뉴 버튼을 눌러서 Connect 연결을 해줍니다
(메뉴 버튼은 안드로이드 폰 종류에 따라 위치가 상단 오른쪽에 있기도 하고 하단 왼쪽에 있기도 하고 제각각 입니다

연결을 시도하면 페어링을 진행하는데 기본 모듈 네임은 BT05 그리고 비밀번호는 AT+TYPE=0 (비밀번호 없음) 으로 설정되어 있어
기본적으로 비밀번호 입력없이 페어링 합니다 AT+TYPE=2 로 설정되어 있거나 설정을 바꾼 경우 기본 비밀번호 000000 을 입력하면 됩니다



정상적으로 블루투스 모듈 검색이 되고 페어링에 성공했으면 BT05 모듈을 클릭해 줍니다

 

블루투스 모듈과 connecting 연결이 되고, 연결이 성공하면 블루투스 모듈의 깜박이던 LED가 멈추게 됩니다

 

키패드로 hello를 입력해서 SEND 보내기 버튼을 눌러 줍니다
안드로이드 스마트폰이 마스터 역할이 되어 데이터를 전송합니다

 

아두이노 IDE의 시리얼 모니터에 hello 라는 메세지가 출력 됩니다
블루투스 모듈이 슬레이브 역할을 해서 데이터를 수신 후 아두이노 시리얼 모니터로 데이터를 출력해 줬습니다

 

반대로 이번에는 아두이노 IDE 시리얼 모니터 입력창에 rj technology 라는 문구를 입력해 봅니다
블루투스 모듈이 마스터 역할이 되어 데이터를 전송해 줍니다

 

 

안드로이드 폰에 위 이미지 처럼 rj technology 라는 문구가 출력 되었습니다 (송신때는 노란색 글씨, 수신때는 파란색 글씨로 구분됩니다)
안드로이드 스마트폰이 슬레이브 역할로 데이터를 받아서 어플 화면에 문구를 출력해 주었습니다

프로젝트 동영상


HC-06 이나 HC-05 비해 가격도 저렴하고 마스터/슬레이브로 사용할수 있지만
HM-10 정품에 비해서 호환모듈은 AT 커맨드 Beacon 기능등에 대한 자료가 많이 부족한 단점이 있습니다

하드웨어는 HM-10 정품과 동일한것 같은데 추후에 펌웨어 업데이트도 되고 자료도 많아지면 나름 괜찮게 사용할수 있을것 같습니다~



*펌웨어 버전이 BLE 4.2 이며, 스마트폰 블루투스 관리자에 등록도 안되고, HMBLE 어플로도 페어링이 안되는 경우 대처법*

먼저 포스팅 상단의 AT-09 데이터 주고 받기 예제를 업로드 한 후 배선도 참고 후 배선 후 시리얼 모니터를 실행 합니다

 

입력창에 AT+DEFAULT 를 입력해서 팩토리 초기화를 해줍니다, 팩토리 초기화가 되면 기본 비밀번호 없음 페어링이 되지만
혹시 모르니
입력창에 AT+TYPE을 입력해서 AT+TYPE=0 (비밀번호 없음 페어링으로 잘 되어있는지 확인해 줍니다)

 



Serial Bluetooth Terminal 어플을 실행해 줍니다

 

어플 실행후 왼쪽 메뉴를 클릭합니다

 

왼쪽의 메뉴에서 디바이스 메뉴를 클릭해 줍니다

AT-09 는 BLE 모듈 이므로 상단메뉴에서 BLUETOOTH LE 메뉴를 선택하고 바로 위쪽 SCAN 을 눌러 장치를 스캔합니다

 


BT05가 스캔된것을 확인할 수 있습니다

 

BT05를 눌러서 페어링 해 줍니다

페어링이 성공하면 Connected 메시지가 나옵니다 (AT+TYPE=0 세팅이므로 비밀번호 입력 없이 페어링 됩니다)

 

콘솔창에 메세지를 입력해서 AT-09 와 아두이노가 연결 된 PC의 시리얼 모니터로 데이터 전송이 되는지 확인해 주면 됩니다

구글 플레이 스토어에서 Serial Bluetooth Terminal 앱을 다운로드 해서 설치해 줍니다
https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal

자세한 앱 사용방법은 아래 링크의 포스팅을 확인해 주세요
http://blog.daum.net/rockjjy99/2657


 

Arduino Mega2560 으로 AT-09/HM-10 호환 블루투스 4.0 BLE 모듈과 안드로이드 스마트폰을 사용해서

마스터/슬레이브로 데이터를 주고 받아 보는 프로젝트 입니다

구성 배선도

 


사용된 예제소스

ardHM10Ble-master.zip

메가2560은 우노와는 다르게 RXD 는 14번핀 (TX) , TXD 는 15번핀 (RX) 에 배선합니다 
(업로드 에러가 나지않에 예제 업로드 후 블루투스와 배선해 주세요)

첨부파일을 압축해제해서 btATTest.ino 파일로 예제업로드 후 테스트 하면 됩니다

포스팅 상단의 우노를 사용할때의 예제와 다른점은 메가2560을 사용하므로 #define mySerial Serial3 을 사용합니다

프로젝트 동영상



Arduino Uno 로 AT-09/HM-10 호환 블루투스 4.0 BLE 모듈과 IOS 아이패드를 사용해서

마스터/슬레이브로 데이터를 주고 받아 보는 프로젝트 입니다

배선은 포스팅 상단의 배선도와 동일하게 배선하면 되며 AT-09 데이터 주고받기
예제를 업로드해 준다음
아이패드나 아이폰의 앱스토어 에서 아래 BLE Serial tiny 어플을 받아서 설치해 주면 됩니다


어플 설치후 어플을 실행한 후 (물론 이때 당연히 블루투스는 사용/켜짐으로 세팅해야 되겠습니다)


왼쪽 상단메뉴의 Connect 메뉴를 눌러서 BT05 를 연결해 줍니다 (BT05 옆의 Connect 를 눌러서 연결합니다)


오른쪽 상단메뉴의 Settings 을 눌러서 Preferences 세팅을 해줍니다 (Both NL & CR 과 Newline 으로 세팅했습니다)


아래쪽에 키패드에 원하는 문자를 입력하면 (hello world 를 입력)


아두이노 IDE 시리얼 모니터로 출력됩니다


반대로 아두이노 IDE 시리얼 모니터에 원하는 문자를 입력하면 (hi arduino 를 입력)


BLE Serial tiny 어플에 문자가 출력됩니다


프로젝트 동영상

 
AT-09 데이터 주고 받기.txt
0.0MB
 
DX-BT05-A 4.0 basis specs (Chinese).pdf
0.28MB
 
ardHM10Ble-master.zip
0.27MB
 
BT4.0-HM-10-Serial_Port_BLE_Module_Master_Slave.pdf
0.32MB
 
DX-BT05-A 4.0 AT Commands (Chinese).pdf
0.16MB
반응형

댓글