[아두이노 프로젝트. 아두이노 블루투스로 안드로이드폰과 연결하여 센서 값 읽기]
이번 글에서는 블루투스 모듈을 장착한 아두이노를 안드로이드폰과
연결해 센서 값을 읽는 방법에 대해 포스팅해보도록 할게요.
위의 사진과 같이 안드로이드 폰으로 센서 값을 읽어봅시다!!
안드로이드폰이란?
구글이 개발한 스마트폰 OS인 '안드로이드'를 탑재한 스마트폰을 말함
[ 준비물 ]
1. 블루투스 모듈 (HC-06 Slave Board 5V)
2. 안드로이드 폰
3. 아두이노 우노 보드
4. 브레드보드
5. 점퍼와이어
6. 9V 배터리
7. 배터리 홀더
8. 센서들... (예제에서는 조도센서 사용)
9. 10K옴 저항
1. 블루투스 모듈 HC-06 | 2. 안드로이드 폰 | 3. 아두이노 우노 보드 | 4. 브레드보드 |
| |
| |
5. 점퍼와이어 | 6. 9V 배터리 | 7. 배터리 홀더 | 8. 각종 센서들 |
| | |
|
[ 아두이노 (하드웨어) 연결하기 ]
[ 프로토타입 쉴드를 사용하여 연결한 모습 (버전1) ]
[ 브레드보드를 사용하여 연결한 모습 (버전2) ]
[ 예제 설명 ]
이 글에서는 위 사진에 나온 버전2를 다루도록 해볼게요.
버전2의 사진은 아두이노 우노 보드에 브레드보드를 이용해서 블루투스 모듈과 조도센서를 연결해준 모습이에요.
버전2를 실행하기 위해서 필요한것은 ①블루투스 모듈의 설정 ②아두이노 보드의 프로그램(코드) 설정 ③안드로이드폰의 설정
④아두이노 보드 회로도 구성 (블루투스 모듈, 조도센서 연결) 총 4가지에요.
하나하나씩 알아보도록 합시다..!
블루투스 모듈은 프로그램은 공장에서 출하될 때 부터 아래와같이 자동으로 셋팅되어 있어요.
그렇기때문에 블루투스 모듈은 따로 설정이 필요없답니다.
Device name : linvor
Baud rate:9600
PIN: 1234 (비밀번호)
[ 회로도 구성하기 ]
아두이노 보드 회로도를 구성해보도록 할게요. 아래사진을 참고해주세요.
블루투스 모듈 연결은 아래와같아요.
사진이 어려우신 경우 아래 글을 보고 회로도를 구성해주세요.
블루투스 Rx - 아두이노 Tx
블루투스 Tx - 아두이노 Rx
VCC to 5V
GND to GND
[ 아두이노 프로그래밍 하기 ]
이글은 포텐쇼미터 혹은 아날로그 센서를 이용하여 값을 읽는 예제글이에요. 값은 아날로그 0번 핀을 통해 읽도록 할게요.
아래의 스케치를 아두이노 보드에 업로드 해주세요.
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
[ 안드로이드 디바이스 셋업 ]
아두이노의 셋팅이 끝났다면 이제 안드로이드폰을 셋팅해보도록 할게요.
먼저 안드로이드폰에서 안드로이드 스크립팅 레이어 (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으로 설정한다면, 안드로이드는 어떤 블루투스 디바이스를 사용할지 물어올거에요.
[ 테스트 하기 ]
안드로이드폰의 블루투스 기능을 켜주고, PIN(패스워드) 1234를 이용하여 아두이노 블루투스와 페어링(연결) 해주세요.
그 다음 안드로이드 폰의 SL4A를 실행하고 androino.py를 선택하면 아래와 같이 센서값이 나올거에요.
[참고 동영상]
혼자 찍으려니 벅차네요....
SL4A API 레버런스
http://www.mithril.com.au/android/doc/
출처 [메카솔루션] : http://Mechasolution.com