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로 전환)
▶ 구매 가이드
배터리 홀더(고급/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
'아두이노 응용' 카테고리의 다른 글
[아두이노] cds sensor와 servo motor로 t-rex game 스페이스키 자동으로 누르게하기 (0) | 2020.04.09 |
---|---|
[아두이노/Blynk] 스마트폰 앱으로 인터넷을 통해 Arduino를 제어해보자 (0) | 2019.08.07 |
[아두이노/초음파센서/숫자LED] Arduino 초음파 센서와 TM1637 4 digit 거리 표시기 (0) | 2019.08.04 |
[아두이노/WiFi/서보모터] Arduino WeMos D1 WiFi (ESP8266) 호환 보드와 휴대폰 브라우저를 통한 서보 모터 구동 (6) | 2019.08.04 |
[응용/접근 감지 전등] 초음파 센서를 통해 전등을 켜보자 (0) | 2016.04.19 |
[응용/전자기장검출] 전자기장 감지기(EMF detector)를 만들어보자 (2) | 2015.11.11 |
[프로젝트] 전자시계 / 실시간 시계 모듈(RTC breakout/DS1307 or DS3231)과 4 digits 디스플레이로 구현하자 (0) | 2015.04.17 |
[프로젝트] 간단한 단거리 무선 통신(433/315Mhz)으로 구현하는 실내외 원격 온습도계 디스플레이 프로젝트 (2) | 2015.02.09 |