본문 바로가기
아두이노 응용

[프로젝트] HM-10모듈과 수은전지+배터리 홀더로 만드는 초소형 iBeacon

by 작동미학 2015. 7. 17.
반응형

HM-10 Module과 배터리 홀더(battery holder) + 수은전지로 작은 iBeacon을 만들어보자.

 

▶ 이 가이드를 따라하면

- 작은 iBeacon을 만들어 활용할 수 있다(그런데 남땜이 있어요!)

 

▶ 먼저 읽으면 좋은 글

- Arduino 일반 : http://bbangpan.tistory.com/1

- HM-10 일반 강좌 : http://bbangpan.tistory.com/17

 

▶ 부품 설명 및 회로 구성

기존에 강의했던 HM-10 모듈은 logic level converter가 달려있어 5V를 사용할 수 있는 모듈이었다. 그러나 원래의 기본 모듈이 따로 존재한다. 바로 사진 맨 아래 이녀석이다. 크기는 백원짜리만하고 두께는 더 얇다. 이 모듈은 3.3V만을 사용하며 소비 전력도 매우 작기 때문에, 일반 수은건전지(3V)와 연결하더라도 작은 iBeacon으로도 만들 수 있다. (물론 BLE 다른 스펙으로도 활용할 수 있다.)

<사진 맨 아래 HM-10 순수 모듈, HC-06에 level converter등이 달린 모듈(맨위)과 함께 놓아보았다.>

이 모듈은 사실 VCC/GND만 연결해주면 작동하지만, 먼저 시리얼 통신을 통해 몇 가지 설정하여 iBeacon으로 만들어 주어야 한다. 따라서 먼저 임시로 Arduino UNO등에 연결이 필요하다. 이를 위한 모듈 납땜이 조금 까다로운데 아래와 같이 연결해보자. 그러면 기존 HM-10 확장 모듈(핀이 달린)과 동일하게 serial을 사용해 모듈을 iBeacon으로 설정 할 수 있다. 정황상 데이터핀 연결도 3.3V로 유지해줘야 하지만(3.3V기반의 Arduino DUE를 사용하면 그럴 수 있다) 딱히 타 사이트 예제에서도 5V사용된 경우가 많고, 실제 실험결과 큰 부담없이 작동하므로 여기서도 그냥 연결하여 사용한다.

.

<HM-10 순수 모듈에 납땜을 하여 연결. 3.3V에 VCC를 연결해야 함에 주의하자. >

<HM-10 모듈 납땜시 참고하자. 앞뒤 방향에 주의해 납땜한다. 부품이 꼽힌 측이 윗면이다. 5핀만 납땜하여 연결하면 된다/발췌 http://arsviator.blogspot.kr/>

아래 소스코드를 참조하여 실행한 후, 시리얼 모니터를 구동하면 모듈과serial통신이 가능한 상태가 되며, 간단한 명령입력으로 iBeacon으로 만든다. 안드로이드, 아이폰 등 iBeacon detect하는 아무 앱이나 설치하면 제대로 작동하는 것을 볼 수 있다. 자세한 내용은 HM-10 기본 강좌를 참조한다. http://bbangpan.tistory.com/17

<iBeacon감지 예제>

그리고 수은전지 holder를 사서 간단히 GND/VCC만 납땜하면 소형 iBeacon이 완료된다.(이 건전지 부착 후 수명은 수은전지 별로 각양각색이나, 필자가 실험한 중국산 수은전지는 대략 1주 정도 지속되었다.) 아래 그림 왼쪽 두가닥 선의 납땜을 참조하자. 앞서 소개했던 모듈 납땜 연결도에서 Battery로 연결된 두핀만 연결해주면 된다.

<기존 시리얼 통신 위한 납땜을 제거하고, VCC/GND만 수은전지에 연결한 후 배터리 홀더에 살짝 붙였다. 매우 얇게 가능하다>

이 모듈은 다양한 용도로 사용할 수 있다. 잃어버리기 싫은 물건에 살짝 붙여두거나 차에 넣어두면 수십m범주에서는 존재 여부를 알 수 있게 된다. 직접 제작하면 대략 $6수준에서 만들 수 있고, , 아예 납땜이 되어 수은전지와 합쳐진 것도 판매하기는 하지만 $15정도로 저렴하지는 않다.


▶ 소스 코드 입력 및 구동

http://bbangpan.tistory.com/17 소스를 그대로 참조하였다. HM-10모듈의 TX, RX를 D2,D3에 연결한다고 가정했다. VCC는 3.3V에 나머지 GND는 GND로 연결하면 시리얼 통신이 가능하다.

 

송신 모듈 소스 원본 GitHub 링크 : https://github.com/bbangpan/bbangpan.com/blob/master/neibc_hc06/neibc_hc06.ino

http://www.bbangpan.com ----------------------------------

/* Originally posted on www.bbangpan.com

Program Description: HC-06 bluetooth 2.0 / HM-10 BLE test code

DataPin : 2,3 to TX, RX of HC-06(cross connection)

Tested on : Arduino 1.0.6, Arduino UNO R3, HC-06 or HM-10 BLE

 

Copyright (c) 2015 www.bbangpan.com. All rights reserved.

This program can be used for any non-commercial purpose freely. */

 

#include <SoftwareSerial.h>

 

SoftwareSerial BTSerial(2, 3); // SoftwareSerial(RX, TX)

 

void setup()

{

Serial.begin(9600);

Serial.println("Hello!");

 

// set the data rate for the BT port

BTSerial.begin(9600);

}

void loop(){

while (BTSerial.available()){ // if BT sends something

byte data = BTSerial.read();

Serial.write(data); // write it to serial(serial monitor)

}

 

while (Serial.available()){ // if Serial has input(from serial monitor)

byte data = Serial.read();

BTSerial.write(data); // write it to BT

}

 

}

-------------------------------------------------------

 

상기 소스를 구동하고, 시리얼 모니터를 실행하여 AT를 치면 OK를 받아야 한다. 따로 LED가 깜빡이지 않으니 시리얼통신으로만 정상 여부를 확인한다.

<시리얼 통신 확인>.

그러면 이전처럼 다음의 명령을 쳐서 iBeacon으로 만들어보자.

AT+RENEW ß 공장 초기화

AT+RESET ß HM-10 리붓

AT ß 시험 작동

AT+MARJ0x0007 ß iBeacon의 Major number설정 (0x0007은 임의값 설정 가능)

AT+MINO0x0007 ß iBeacon의 Minor number설정 (0x0007은 임의값 설정 가능)

AT+ADVI5 ß advertising(신호 송출) 주기를 5로 설정(약 0.5초), 6이나 7은 0.7초 0.8초 정도로 주기가 늘어난다.

AT+NAMEBBANGPAN ß HM-10 이름 정의 (BBANGPAN은 임의값 정의 가능)

AT+ADTY3 ß 전원 절약을 위해 맺지 않음(non-connectable)모드로 설정

AT+IBEA1 ß iBeacon을 활성화

AT+DELO2 ß iBeacon의 broadcast-only 로 설정

AT+PWRM0 ß 전원 절약을 위해 auto-sleep으로 설정(최소 절전 모드)

AT+RESET ß 리붓하여 반영

 

상기와 같이 조절한 후에는 80글자 이상 입력받아야 다시 AT명령 사용이 가능하다(Sleep mode로 전환)

 

▶ 구매 가이드

HM-10 모듈 : http://www.aliexpress.com/w/wholesale-HM%25252d10-module.html?initiative_id=SB_20150716085731&site=glo&groupsort=1&SortType=total_tranpro_desc&shipCountry=kr&SearchText=HM-10+module ($4)

배터리 홀더(싼것) : http://www.aliexpress.com/w/wholesale-battery-holder-CR2032.html?initiative_id=SB_20150716085807&site=glo&groupsort=1&SortType=total_tranpro_desc&shipCountry=kr&SearchText=battery+holder+CR2032 ($1)

배터리 홀더(고급/on_off지원) : http://www.aliexpress.com/item/5PCS-LOT-LilyPad-Coin-Cell-Battery-Holder-CR2032-Battery-Mount-Module/32370595939.html ($3)

iBeacon소형 완성품 : http://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20150716085905&SearchText=iBeacon+BMP180 ($20)

(이 제품은 RealtagKit/iOS이라는 앱을 받으면, 위치와 온도/기압 등도 전송받을 수 있다. Realbyte.com으로 검색하면 Android SDK도 제공받을 수 있다. 배터리가 오래가지 않는 것이 흠)

iBeacon 소형 완성품2 : http://www.aliexpress.com/item/1PCS-LOT-GhostyuBeacon-IBeacon-Base-Station-Low-Power-Consumption-Bluetooth-4-0-Module-CC2541-FREE-SHIPPING/32267194429.html ($15)

수은전지 CR2032 : http://www.aliexpress.com/w/wholesale-CR2032.html?initiative_id=SB_20150716090511&site=glo&groupsort=1&SortType=total_tranpro_desc&shipCountry=kr&SearchText=CR2032 ($1)

 

강의 키워드

Arduino UNO, iBeacon, HM-10, cc2541, button cell holder, 아이비콘, 아이비컨, 소형, 수은전지, 수은건전지, 3.3V, 블루투스, AirLocate, BLE, Bluetooth Low Energy, cc2540

 

 

반응형