아두이노

본문 바로가기
사이트 내 전체검색


아두이노
아두이노

2. 블루투스 BLE HM-10

페이지 정보

작성자 관리자 댓글 0건 조회 3,716회 작성일 18-11-26 17:45

본문

2. 블루투스 BLE HM-10

 

아두이노 블루투스 4.0 BLE HM-10 모듈을 연결하기


HM-10 모듈은 저렴한 가격과 작은 크기로 BLE(Bluetooth Low Energy)를 구현할 수 있게 해줍니다. BLE는 매우 적은 연결과 전력을 사용하면서 iBeacon이라는 주기적인 브로드캐스팅도 가능하게 해줍니다. iBeacon은 근거리 무선통신 장치로, 최대 70m 이내의 장치들과 통신할 수 있게 해줍니다. 5~10cm의 작은 단위의 구별도 가능해서 정확도도 높고 전력 소모도 적어서 모든 기기가 항상 연결되어 있어야 하는 사물 인터넷(IoT) 구현에 적합합니다. 10cm 미만의 거리에서만 적용되는 NFC(근접무선통신)보다 가용 거리도 길고, GPS로는 불가능했던 실내 위치 정보 제공도 가능해서 iBeacon은 IoT 시대를 이끌어갈 주역이라고 봐도 무방하겠네요.

iBeacon을 사용한 사례를 들어보면, 파리바게트나 던킨 도너츠같은 가게가 근처에 있으면 제 핸드폰으로 할인 쿠폰이나 이벤트 등의 데이터를 전송해주는 것 등이 있습니다.


그림입니다.
원본 그림의 이름: CLP000021580a91.bmp
원본 그림의 크기: 가로 745pixel, 세로 275pixel

비콘 단말에서 주변에 자신의 신호 도달 거리 내로 스마트폰이 오면 자신이 갖고 있는 ID를 스마트폰으로 보냅니다.

스마트폰에서는 어플리케이션이 ID를 인식하여 서버로 보내면, 서버에서는 ID에 설정된 이벤트나 서비스 정보를 스마트 폰으로 전송하게 됩니다.


스마트폰 어플을 이용하여 HM-10과 페어링을 통해 데이터를 주고받는 예제를 해보겠습니다


(1) 회로도 구성


기본적인 연결방법은 HC-05와 같습니다. 연결하신 뒤에 시리얼 모니터를 켜서 AT Command를 입력하면 OK 사인을 받으실 수 있습니다. 그러면 제대로 연결이 되었음을 확인할 수 있습니다.

그림입니다.
원본 그림의 이름: CLP00001c4411a9.bmp
원본 그림의 크기: 가로 621pixel, 세로 501pixel


그림입니다.
원본 그림의 이름: CLP00001c440001.bmp
원본 그림의 크기: 가로 298pixel, 세로 511pixel



(2) 소스코딩



#include <SoftwareSerial.h>


SoftwareSerial HM10( 2 , 3 );  // RX, TX 연결 

void setup() { 

  Serial.begin(9600);

  HM10.begin(9600);

}


void loop() {

  if (HM10.available()) {

    Serial.write(HM10.read());

  }

  if (Serial.available()) {

    HM10.write(Serial.read());

  }

}



(3) 실행결과

아두이노에 업로드까지 마친 후 시리얼 모니터를 띄워 다음과 같은 AT명령어를 입력하면 HM-10과 아두이노가 정상적으로 연결되었는지 확인할 수 있습니다. 또한 AT명령어로 HM-10의 이름을 변경할 수 있으며, 스마트폰과 페어링 할 때 유용합니다.


  AT : 응답가능여부확인

  결과 : OK


  AT+NAMExxx : 이름 변경

  결과 : OK+Set: xxxx


  AT+ADDR? : 블루투스 모듈 주소 읽어오기

  결과 : OK+ADDR:XXXXXXXXXXXX


시리얼 모니터로 'AT' 를 입력하면 결과값으로 'OK'를 리턴해줘야 하지만 제조사마다 옵션 설정이 다르기 때문에 이를 설정해주지 않으면 'OK'를 리턴받지 못합니다. 따라서 옵션 설정에 유의하여 사용하셔야 합니다. 여기서는  'Both NL & CR'로 설정합니다.





그림입니다.
원본 그림의 이름: CLP00001c440003.bmp
원본 그림의 크기: 가로 725pixel, 세로 455pixel



이제 AT+RENEW 명령어와 AT+RESET 명령어를 입력해서 공장 초기화 상태로 만들어줍시다.


그림입니다.
원본 그림의 이름: CLP00001c440006.bmp
원본 그림의 크기: 가로 441pixel, 세로 270pixel


그림입니다.
원본 그림의 이름: CLP00001c440007.bmp
원본 그림의 크기: 가로 443pixel, 세로 253pixel



그림입니다.
원본 그림의 이름: CLP00001c440005.bmp
원본 그림의 크기: 가로 716pixel, 세로 456pixel



이제 제대로 연결되었음을 확인했으므로 iBeacon을 활성화시켜보도록 하겠습니다. 이제까지 사용하던 Light blue(블루투스 컨트롤러 앱)를 꺼주시면 pairing이 취소되면서 HM-10 모듈이 깜빡깜빡 거리게 됩니다. 그러면 다시 시리얼 모니터에 아래의 명령어를 차례대로 입력시켜주세요.


(4) 스마트폰과 연결하기


그림입니다.
원본 그림의 이름: CLP00001c440009.bmp
원본 그림의 크기: 가로 348pixel, 세로 420pixel


그림입니다.
원본 그림의 이름: CLP00001c44000a.bmp
원본 그림의 크기: 가로 349pixel, 세로 618pixel


그림입니다.
원본 그림의 이름: CLP00001c44000b.bmp
원본 그림의 크기: 가로 350pixel, 세로 567pixel


Custom Service에서 W버튼을 클릭한다.


그림입니다.
원본 그림의 이름: CLP00001c44000c.bmp
원본 그림의 크기: 가로 353pixel, 세로 614pixel


스마트폰에서 hello을 입력하고 OK을 클릭한다.


시리얼 모니터에서 hello을 확인한다.


그림입니다.
원본 그림의 이름: CLP00001c440008.bmp
원본 그림의 크기: 가로 367pixel, 세로 183pixel


이제 제대로 연결되었음을 확인했으므로 iBeacon을 활성화시켜보도록 하겠습니다.


블루투스 컨트롤러 앱을 꺼주시면 pairing이 취소되면서 HM-10 모듈이 깜빡깜빡 거리게 됩니다.


그림입니다.
원본 그림의 이름: CLP00001c44000d.bmp
원본 그림의 크기: 가로 456pixel, 세로 170pixel



(5) iBeacon 설정하기


시리얼 모니터에 아래의 명령어를 차례대로 입력시켜주세요.


AT+RENEW //공장 초기화

AT //OK 사인이 오는지 확인

AT+MARJ0x1234 //iBeacon의 Major Number 설정

AT+MINO0xFA01 //iBeacon의 Minor Number설정

AT+ADVI5 //신호 송출 주기를 5로 설정

AT+NAMEMIN// BLE모듈 이름을 MIN으로 설정(원하는 이름으로 하세요)

AT+ADTY3 //non-connectable 상태로 만듦

AT+IBEA1 //iBeacon 활성화

AT+DELO2 // iBeacon 브로드캐스트 전용 모드로 설정

AT+PWRM0 //최소 절전 모드 설정

AT+RESET //Rebutting


이렇게 입력해주신 후에 HM-10 모듈을 봤을 때 빨간불이 꺼져있는 것을 확인할 수 있어야 합니다. iBeacon이 활성화되면 빨간불이 꺼지게 됩니다.  만약 저 명령어들을 수행하는 데에 OK 응답을 받지 못한 것이 있다면 위의 과정을 다시 수행해주세요. 그래도 되지 않는다면 펌웨어 버전의 문제일 수 있으므로 펌웨어 업데이트를 하셔야 합니다.




(6) 결과 확인


위의 명령어를 모두 수행하시고 난 후에 핸드폰으로 iBeacon locator나 iBeacon scanner 어플을 다운받으신 뒤에 탐색을 하시면 여러분이 설정하신 iBeacon이 뜨는 것을 확인할 수 있습니다.

그림입니다.
원본 그림의 이름: CLP00001c44000f.bmp
원본 그림의 크기: 가로 346pixel, 세로 618pixel


그림입니다.
원본 그림의 이름: CLP00001c440010.bmp
원본 그림의 크기: 가로 347pixel, 세로 620pixel



AT+PWRM0 와 AT+RESET을 입력하면 비콘은 Auto-Sleep모드로 들어가게 됩니다 (그래서 빨간 라이트도 꺼지는거에요!). 따라서 Auto-Sleep모드에서 탈출하시려면, 아무 문자나 80자 이상 시리얼모니터에 입력해주시면 OK+WAKE라는 답변을 받을 수 있습니다. 이상태에서 AT+PWRM1을 입력하시면 Auto-Sleep모드가 꺼집니다.


그림입니다.
원본 그림의 이름: CLP00001c44000e.bmp
원본 그림의 크기: 가로 420pixel, 세로 178pixel

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.