이전에 '시각장애인을 위한 개인용 음향신호기' 프로젝트를 진행하였을 때 음향신호기에서 주변의 스마트폰에 동시에 신호등 정보를 제공하기 위하여 아두이노로 비콘을 구현하였다.

 아두이노를 통해 비콘을 구현하고 기본설정 및 예제코드를 사용하는 법을 정리해보려 한다.

 

 

 

비콘과 BLE

 

1. 비콘

Beacon

 비콘(beacon)은 근거리 스마트 기기를 자동으로 인식하여 데이터를 전송할 수 있는 무선 통신 장치이다. 최대 50거리에서 작동하며 UUID(Universally Unique Identifier) 가 포함된 정보 패킷을 보낼 수 있다.

 저전력을 주목표로 한 블루투스 4.0이 개발되었고 이전의 불루투스 기술들은 쌍방향 통신을 지원하는 반면 불루투스 4.0에서는 쌍방향 뿐만 아니라 일방향 통신 또한 가능하게 되었다. 일방향 통신은 불루투스 기기가 정보를 송신 할 수 있으면서도 수신하기 위해 대기할 필요가 없도록 해주며 이러한 방법으로 'beacon'은 페어링 연결을 필요로 하지 않게 되었다.

 이 기술을 이용하여 음식점, 박물관, 미술관, 영화관 , 카페 등을 방문한 고객들에게 스마트폰에 할인 쿠폰, 상세 설명, 주문 알림 등의 데이터를 전송받을 수 있도록 할 수 있으며 여러 개의 비콘의 RSSI 값을 이용해 위치 추정 등에 사용되고 있다.

 

 

2. BLE

 

BLE란 블루투스 4.0부터 새롭게 포함된 저전력 통신 기술로 기존의 BT Classic에 비해 전력 소모가 1/10정도로 Advertise(Broadcast) mode를 통해 Advertising Packet신호를 지속적으로 50m 범위에 전송한다.

 

 

 

 

준비물

 

 - 아두이노 우노

 - HM-10

 - 케이블

 

 

회로도

 

VCC-5V (빨강)

GND-GND (검정)

TXD - 디지털핀 

RXD - 디지털핀

 

 

아두이노 예제코드

#include <SoftwareSerial.h>
 
SoftwareSerial HM10(0,1);
 
void setup() {
  Serial.begin(9600);
  HM10.begin(9600);
}
 
void loop() {
  while(HM10.available()){
    byte data=hm10.read();
    Serial.write(data);
  }
  while(Serial.available()){

    byte data=Serial.read();
    HM10.write(data);
  }
}

 

 

Beacon 설정

 

비콘을 연결한 후에는 스케치에서 시리얼 모니터를 실행하여 AT설정을 할 수 있다.

1. AT+RENEW(모듈 공장 초기화) - 결과 : OK+RENEW

2. AT+RESET(BLE모듈을 리셋) - 결과 : OK+RESET 

3. AT(AT모드 응답 확인) - 결과 : OK

4. AT+MARJ0x1234(Beacon의 Major 값을 16진수 1234로 설정) - 결과 : OK+Set:0x1234)

5. AT+MINO0xFA01(Beacon의 Minor 값을 16진수 FA01로 설정) - 결과 : OK+Set:0xFA01

6. AT+ADVI5(신호 5초마다 송출) - 결과 : OK+Set:5

7. AT+NAMESAMPLE(HM-10 이름을 SAMPLE로 설정) - 결과 : OK+Set:SAMPLE

8. AT+ADTY3(non-connectable 상태(절전)) - 결과 : OK+Set:3

9.AT+IBEA1(HM-10을 Beacon모드로 변경) - 결과 : OK+Set:1

10. AT+DELO2(iBeacon을 broadcast 전용 모드로 세팅) - 결과 : OK+DELO2

11. AT+PWRM0(모듈을 Auto-sleep모드로 세팅) - 결과 : OK+Set:0

12. AT+RESET(모듈 재부팅) - 결과 : OK+RESET

 

 

 

 

+ Recent posts