아두이노 블루투스 안드로이드폰과 연결하여 센서 값 읽기. (HC-06 모듈) (아두이노 휴대폰과 블루투스 연결하기)

데이빗 2016-03-18 (금) 08:42 8년전 21909  

 

[아두이노 프로젝트. 아두이노 블루투스로 안드로이드폰과 연결하여 센서 값 읽기]

​이번 글에서는 블루투스 모듈을 장착한 아두이노를 안드로이드폰과

연결해 센서 값을 읽는 방법에 대해 포스팅해보도록 할게요.

 

 

02cd46d8a607ca14b01d10ead866e139_1458257 

위의 사진과 같이 안드로​이드 폰으로 센서 값을 읽어봅시다!!  %ED%99%94%EC%9D%B4%ED%8C%85

 

안드로이드폰이란?

구글이 개발한 스마트폰 OS인 '안드로이드'를 탑재한 스마트폰을 말함

02cd46d8a607ca14b01d10ead866e139_1458257
 

[ 준비물 ]

 

1. 블루투스 모듈 ​(HC-06 Slave Board 5V)

​2. 안드로이드 폰

3. 아두이노 우노​ 보드

4. 브레드보드

5. 점퍼와이어​

​6. 9V 배터리

7. 배터리 홀더 

8. 센서들...​ (예제에서는 조도센서 사용)

9. 10K옴 저항

 1. 블루투스 모듈 HC-06

2. 안드로이드 폰 

3. 아두이노 우노 보드

 4. 브레드보드

 02cd46d8a607ca14b01d10ead866e139_1458257 

 02cd46d8a607ca14b01d10ead866e139_1458257 

02cd46d8a607ca14b01d10ead866e139_1458257
 

 02cd46d8a607ca14b01d10ead866e139_1458257 

5. 점퍼와이어 

6. 9V 배터리 

7. 배터리 홀더 

8. 각종 센서들 

 02cd46d8a607ca14b01d10ead866e139_1458257 

 02cd46d8a607ca14b01d10ead866e139_1458257 

 02cd46d8a607ca14b01d10ead866e139_1458257 

02cd46d8a607ca14b01d10ead866e139_1458257
 

 

02cd46d8a607ca14b01d10ead866e139_1458257
 

[ ​아두이노 (하드웨어) 연결하기 ]

02cd46d8a607ca14b01d10ead866e139_1458257
 

프로토타입 쉴드를 사용하여 연결한 모습 (버전1) ]

 

 

02cd46d8a607ca14b01d10ead866e139_1458257
 

브레드보드를 사용하여 연결한 모습 (버전2) ]​

 

 

[ 예제 설명 ]


이 글에서는 위 사진에 나온 버전2를 다루도록 해볼게요.


버전2의 사진은 아두이노 우노 보드에 브레드보드를 이용해서 블루투스 모듈과 조도센서를 연결해준 모습이에요.


버전2를 실행하기 위해서 필요한것은 ①블루투스 모듈의 설정  ②아두이노 보드의 프로그램(코드) 설정  ③안드로이드폰의 설정

④아두이노 보드 회로도 구성 (블루투스 모듈, 조도센서 연결) 총 4가지에요.

하나하나씩 알아보도록 합시다..! 

 

​블루투스 모듈은 프로그램은 공장에서 출하될 때 부터 아래와같이 자동으로 셋팅되어 있어요.

그렇기때문에 블루투스 모듈은 따로 설정이 필요없답니다.

Device name : linvor

Baud rate:9600​

PIN: 1234 (비밀번호)

 


[ 회로도 구성하기 ]


아두이노 보드 회로도를 구성해보도록 할게요. 아래사진을 참고해주세요.

 

02cd46d8a607ca14b01d10ead866e139_1458257
 

 

 블루투스 모듈 연결은 아래와같아요. 

사진이 어려우신 경우 아래 글을 보고 회로도를 구성해주세요.

 

블루투스 Rx - 아두이노 Tx

블루투스 Tx - 아두이노 Rx

VCC to 5V

GND to GND

02cd46d8a607ca14b01d10ead866e139_1458257
 

[ 아두이노 프로그래밍 하기 ]

이글은 포텐쇼미터 혹은 아날로그 센서를 이용하여 값을 읽는 예제글이에요. 값은 아날로그 0번 핀을 통해 읽도록 할게요.%EC%A2%8B%EC%95%84

아래의 스케치를 아두이노 보드에 업로드 해주세요.

const int SENS_PIN = A0;
const int LED_PIN = 13;

int sensorValue = 0;

boolean toggle = true;

void setup() {
    Serial.begin(9600);
}

void loop() {
    if (Serial.available()) {
        Serial.read();
        sensorValue = analogRead(SENS_PIN);
        Serial.println(sensorValue);
        digitalWrite(LED_PIN, toggle); // toggle the L

02cd46d8a607ca14b01d10ead866e139_1458257
 

[ 안드로이드 디바이스 셋업 ]

아두이노의 셋팅이 끝났다면 이제 안드로이드폰을 셋팅해보도록 할게요.%EB%AF%B8%EC%86%8C

02cd46d8a607ca14b01d10ead866e139_1458257
 

먼저 안드로이드폰에서 드로이드 스크립팅 레이어 (SL4A)와 파이썬​을 설치해주세요.

안드로이드폰으로 위 링크를 클릭하시고 바코드를 클릭하시면 설치하실 수 있어요.

파이썬은 설치 후, 어플을 실행해서 install을 해줘야 해요.

(이 듀토리얼에서는 SL4A r6을 사용했어요!)

다음의 코드를 복사한 후에 androino.html 이라 저장해주세요.

 http://pastebin.com/raw.php?i=FvxKzf1g

 

다음의 코드를 복사한 후에 androino.py라 저장해주세요.

http://pastebin.com/raw.php?i=XEmEsATU

 

(텍스트파일에 내용을 붙여넣기 한 후 파일 확장자를 변 ''경하는 등  여러가지 방법으로 하시면돼요.)

 

파일을 저장하셨다면 두개의 파일을 안드로이드폰의 /sl4a/scripts/ 디텍토리 안에 업로드해주세요.

 

그다음 SL4A로 androino.py 내용을 보시면 상단에 BT_DEVICE_ID = 'xxxxxxx' 라는 부분을 찾아보실수 있으실거에요.

여기서 'xxxxxx' 부분을 블루투스 모듈의 주소값으로 변경해줘야 해요.

 

만약 BT_DEVICE_ID = None으로 설정한다면, 안드로이드는 어떤 블루투스 디바이스를 사용할지 물어올거에요.

 

02cd46d8a607ca14b01d10ead866e139_1458257
 

[ 테스트 하기 ]



안드로이드폰의 블루투스 기능을 켜주고, PIN(패스워드) 1234를 이용하여 아두이노 블루투스와 페어링(연결) 해주세요.

그 다음 안드로이드 폰의 SL4A를 실행하고 androino.py를 선택하면 아래와 같이 센서값이 나올거에요.%EC%A2%8B%EC%95%84

 

02cd46d8a607ca14b01d10ead866e139_1458257
 

 

 

[참고 동영상]

 혼자 찍으려니 벅차네요....%EB%95%80%EC%82%90%EC%A7%88%20%EC%97%AC%EC%9E%90%EC%95%84%EA%B8%B0

 

 

 

SL4A API 레버런스

http://www.mithril.com.au/android/doc/

 

​출처 [메카솔루션] : http://Mechasolution.com

 

메카리워즈 Image Map


모바일 버전으로 보기