코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2015-05-21 08:56:40
여러분들은 혹시 비콘(beacon)이라는 말을 들어보셨나요?
비콘이란 사전적 의미로 다음과 같습니다.
- (안전 운행을 유도하는) 신호등 [불빛]
- (배, 비행기의 위치 확인을 돕는) 무선 송신소
- (과거 신호용으로 피워 올리던) 봉화
사전적 의미랑 머리 속에서 연상되는 것과 많이 틀리죠?
분야별로 비콘(beacon)의 뜻은 조금씩 다르게 사용됩니다.
사물 간의 통신을 다루는 iot 또는 네트워크 분야에서는 통신 과정에서 이루어지는 동기화, 채널 추정 등에서 미리 약속된 신호를 송 / 수신하는 것이라고 이해하시면 좋을 것 같습니다.
이번 프로젝트에서는 BLE(bluetooth Low Energy) 모듈과 모바일과의 동기화를 통해 사용자가 지정한 앱의 알림이 생겼을 때,
모바일에서 BLE 모듈로 신호를 보내 BLE 모듈이 진동모터를 동작시켜, 진동 알림을 주는 소셜벅(Social bug)을 만들어 보도록 하겠습니다.
이름에서도 알 수 있다시피 조금만한 벌레의 모양입니다. 자 그럼 시작해 볼까요?
Social bug은 하드카피월드의 프로젝트입니다.
kocoafab에 있는 튜토리얼 참고해 기본 사용법을 익혀두세요!
NO | 부품명 | 수량 | 상세 설명 |
1 | 아두이노 | 1 | ornage board |
2 | HM-10 | 1 | BLE module |
3 | 진동모터 | 1 | |
4 | coin cell battery | 1 | 3V |
5 | coin cell holder | 1 |
부품명 | 아두이노 | HM-10 | 진동 모터 | coin cell battery | coin cell holder |
사진 |
오렌지보드는 BLE 모듈의 설정을 바꾸기 위해 사용합니다. Social bug 본체에는 사용되지 않습니다.
제작 과정은 크게 다음과 같습니다.
- BLE 모듈 설정 변경
- Social bug 제작
- blinky와 연동
BLE의 설정을 변경하는 방법은 크게 두가지 입니다.
첫 번째는 FTDI를 사용하는 것이고, 두 번째는 아두이노를 이용하는 것입니다.
FTDI를 이용해서 비콘 설정을 하는 것은 위의 튜토리얼을 참고하시면 됩니다.
이번 프로젝트에서는 아두이노를 이용해 설정을 변경해보겠습니다.
BLE 모듈과 아두이노를 연결해야 합니다. 연결법은 다음과 같습니다.
BLE 설정을 위해 software serial을 사용합니다.
- 아래 코드를 아두이노{오렌지보드)에 업로드합니다.
SoftwareSerial mySerial(2, 3); // RX, TX
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
Serial.println("Goodnight moon!");
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
}
void loop() // run over and over
{
// Receive from bluetooth and send it to PC
if (mySerial.available())
Serial.write(mySerial.read());
// Receive from PC and send it to bluetooth
if (Serial.available())
mySerial.write(Serial.read());
}
- Serial monitor 입력창에 AT command를 입력해주시면 됩니다. (AT command에 관한 내용은 이 링크를 참고하세요)
- 소셜벅에 사용할 BLE 모듈의 설정은 MODE1입니다. 따라서 Serial monotor 입력창에 AT+MODE1을 입력 해주신 후 send를 누릅니다.
- OK SET:1이 출력되면 성공입니다.
이제 소셜벅을 만들기 위한 BLE 모듈 설정이 모두 끝났습니다. 자 이제 본격적으로 소셜벅을 만들어 볼까요?
저는 기존에 가지고 있는 D-bug PCB 기판을 활용하였습니다.
만능기판이나 하드보드지를 활용하셔도 전혀 무관합니다.
재료는 다음과 같습니다.
- 저항(크기 무관) 3개 : 로봇 다리로 쓸 것입니다.
- BLE module : HM-10을 사용하였습니다.
- D-bug PCB 또는 만능 기판
- coin cell 2개, coin cell holder
- 진동 모터
- 점퍼케이블 2개
저항 3개를 이용해 다리를 만들어줍니다.
coin cell holder를 밑면에 부착합니다.
진동 모터를 밑면에 부착합니다.
진동모터의 pin(+)선은 BLE 모듈과 연결해야 하기 때문에 윗면으로 빼놓습니다.
BLE모듈을 연결합니다. 연결법은 다음과 같습니다.
- BLE module의 GND와 coin cell의 GND와 연결
- BLE module의 VCC와 coin cell의 VCC와 연결
- 진동모터의 GND와 coin celld의 GND와 연결
- 진동모터의 pin(+)과 BLE module의 PIO2와 연결
BLE모듈을 몸통에 부착시킵니다.
마지막으로 더듬이를 붙이면 완성입니다. 귀엽나요?
소셜벅과 모바일을 연동시키기 위해 blinky app을 이용합니다.
아래의 링크를 통해 다운받으시면 됩니다.
blinky 앱은 메세지, 필터, 매크로, 설정, logobox 탭으로 구성되어 있습니다.
- 메시지 : notification 수집 권한을 얻었다면 현재 수집된 notification 메시지 들이 리스트로 보입니다. 아직 각각의 메시지들은 활성화 되지 않았습니다. 원하는 메시지를 클릭해서 뜨는 메뉴를 통해 특정 앱이 만드는 메시지를 활성화 할 수 있습니다. 이 과정을 거치면 자동으로 필터가 생성됩니다. 이제 새로운 notification이 등록되면 filter와 대조한 뒤 자동으로 활성화 할 것입니다. 만약 활성화 된 메시지가 하나라도 있다면 진동모터를 on 하기 위해 신호(AT command)를 Blinky 장치로 보내줍니다.
- 필터 : 현재 등록된 필터들을 보여줍니다. 여기서 필터를 삭제하면 해당 메시지가 disable 되는 효과가 발생합니다.
- 설정 : 몇 가지 유용한 설정들을 바꿉니다. 여기서 자신이 사용하는 블루투스 모듈을 선택할 수 있습니다. (HM-10, HM-11) '백그라운드로 실행' 항목은 특히 유용합니다. 앱을 종료해도 계속 작업을 수행하거든요.
- logbox : 폰과 Blinky 장치가 주고받은 메시지를 표시해줍니다.
아래 단계에 따라 Blinky 앱을 설정해주시면 됩니다.
blinky 앱의 설정을 마친 후 카카오톡 메세지가 왔을 때 소셜벅이 진동하며 알려주는 것을 확인 할 수 있습니다.
Klant