스마트 밴드를 만들어 볼 기회가 생겨서 만들어 보게 되었는데 ,
어떻게 구현되고 , 연결은 어떻게 되며 , 실행은 어떻게 되는지 알아 보겠다.
MPU-6050 가속도-자이로 센서 모듈
역할 : 가속도 뿐 아니라 자이로 센서도 함께 탑재하고 있으며 , 덤으로 온도도 측정이 가능하다
왜 MPU-6050 가속도 -자이로 센서모듈을 사용하나??
è 구하기 쉽기 때문이다
가속도 센서는 X,Y,Z 축 방향으로 작용하는 중력 가속도를 측정하는 센서이다.
가속도 센서가 달린 보드가 XY 평면이 되는 것이고 , 여기에 수직한 축이 Z축이다.
그렇기 때문에 가속도 센서를 지면과 평행하게 유지하면 , 중력 가속도는 Z축으로만 작용하게 된다.
이 상태에서 가속도 센서의 값을 측정하면 X,Y 축 값은 0에 가깝게 나오고 Z축 값은 크게 나온다
평행하게 유지했던 센서를 움직이면 X,Y,Z 축 값이 위치에 따라 변화하게 되는데 변화하는 값들을 모아서 휴대폰으로 던져주는 것이 스마트 밴드가 하는 주요 작업이다.
HC-06 클래식 블루투스 모듈 ( 블루투스 모듈 )
최신 블루투스 기술인 BLE ( Bluetooth Low Energy , Bluetooth 4,0)을 안쓰고 HC-06 클래식 블루투스 모듈을 사용하는 이유가 있나??
è 특별한 이유는 없고 , 저렴하고 많이 사용되기 때문이다.
è 아두이노 입장에서는 BLE 모듈이나 HC-06 클래식 블루투스 모듈이나 사용하는 방법은 동일하다 . 둘 다 Serial 통신을 이용해서 아두이노와 데이터를 주고받기 때문이다.
è 가장 큰 차이점은 안드로이드 앱을 프로그래밍 하는 방식이 완전히 틀려진다는 것이다. 그리고 HC-06 모듈의 경우 인증 문제로 아이폰과 연결이 되지 않는다.
이제 연결을 어떻게 하는지 알아 보겠다.
HC-06 클래식 블루투스 모듈
MPU-6050 가속도 모듈
아두이노 ( UNO )
각각의 생김새는 위와 같다.
이제 각각을 연결을 해보자 .
HC-06과 아두이노의 연결은 다음과 같다.
RX à D3 , TX à D2 , GND à GND , 5V à 5V
MPU-6050 과 아두이노의 연결은 다음과 같다.
VCC à 3.3V , GND à GND , SCL à A5 , SDA à A4
위 처럼 , 아두이노에 블루투스 , 가속도 모듈을 연결시켜 준 뒤에 ,
usb선으로 노트북에 연결해 주면 ,
우노 , 블루투스 , 가속도 모듈에 각각 빛이 들어올 것이다.
이렇게 되면 연결은 잘 된것이다.
이제 Arduino 프로그램을 켜서 스케치를 업로드 해보자.
사전 준비는 Arduino 프로그램이 필요하다.
https://www.arduino.cc/en/Main/Software <-- 이 사이트에 들어가서 Arduino 프로그램을 깔아 준다.
프로그램을 다운받았으면 ,실행시켜보자.
실행시키면 다음과 같이 화면일 뜰 것이다.
이제 스케치 ( 코드 )를 업로드 해주면 되는데 ,
다음과 같은 오류가 발생하였다…
알고 보니 스케치를 업로드 하기 전 포트를 선택해 주라고 한다…
그래서 툴 à 포트 / 이렇게 나에게 맞는 포트를 사전작업으로 해주자…
스케치는 다음과 같다.
Arduino 소스코드
#include <SoftwareSerial.h>
// 아두이노와 HC-06 간의 통신을 위해 SoftwareSerial 을 사용한다.
SoftwareSerial BTSerial(2,3);
// HC-06 연결 , BTSerial ( TX , RX ) : 내가 사전에 TX를 D2 , RX를 D3에 연결해 주었기 때문에
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("Hello!"); // 연결이 잘 되었는지 확인하기 위한…
BTSerial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if(BTSerial.available()) // BT à Data à Serial
{
Serial.write(BTSerial.read());
}
if(Serial.available()) // Serial à Data à BT
{
BTSerial.write(Serial.read());
}
}
이제 업로드한 스케치가 제대로 작동이 되고 있는지 확인을 해보자.
시리얼 모니터를 키게되면 수많은 데이터가 보내지는 것을 확인할 수 있다.
보내지는 send 의 범위는 20인걸 알 수 있고 ,
가속도 모듈을 움직이는 속도 ?? 라고 해야하나…
빨리 움직일수록 , 쎄게 움직일수록 at의 값이 커지는 것을 확인할 수 있다.
연결 되었고 , 값도 전달이 되는 것을 알 수 있다.
아참 , 시리얼 모니터 내에서 설정해 주어야 하는 부분이 있다.
위 그림처럼 새줄 , 9600 보드레이트로 설정해 주어야 한다.
왜냐하면 스케치에 9600을 설정해 주었기 때문이다 .
이제 블루투스의 기능을 사용해 보자.
Play store에 들어가서 , Retro Band를 다운받아 주자 .
Retro Band는 스마트 밴드용으로 만든 앱이라고 한다 .
앱을 실행하고 , 우측 상단의 눈 모양의 아이콘을 클릭한다.
팝업창에서 블루투스 기기를 검색하고 원하는 블루투스 기기와 페어링을 시도할 수 있다.
페어링 PIN 번호는 기본 1234로 설정되어 있다.
나는 사전에 블루투스명을 바꿔주었기 때문에 SI로 뜨는 것이다.
만약 처음 or 사전 작업이 없었다면 HC-06… 으로 뜰 것이다
자신의 블루투스에 연결을 하면 다음과 같이 뜰 것이다.
내가 가속도 모듈에 어떤 압력을 가할수록 그래프는 위아래로 솟구치는 것을 확인할수 있다.
이 앱은 3개의 탭 메뉴로 구성되어 있다.
Timeline : 시간별로 누적된 칼로리 소모량을 집계한다
Graph : 매초 들어오는 가속도 값을 그래프로 그려준다.
Settings : 앱 동작에 대한 설정을 변경할 수 있다.
이렇게 난생 처름 IOT 관련된 부분을 다루어 보았는데 ,
신기하고 정말 재밌었다.
스마트 밴드에서 사용할 스케치 코드는 다음 깃허브에서 더 자세히 알 수 있다.
https://github.com/godstale/retroband
도움 받은 사이트
http://www.hardcopyworld.com/ngine/aduino/index.php/archives/177
'학부공부 > 아두이노' 카테고리의 다른 글
MIT_app_inventor2를 활용해보자. (0) | 2018.11.25 |
---|---|
미세먼지와 온습도 센서의 원리는 무엇일까. (0) | 2018.11.21 |
HC-06 블루투스 이름 변경 (0) | 2018.11.01 |
스케치의 구조 (0) | 2018.09.20 |
아두이노의 IDE인 Sketch (0) | 2018.09.20 |
#IT #먹방 #전자기기 #일상
#개발 #일상