본문으로 바로가기

 

 

 

블루투스 센서


아두이노에 블루투스 모듈을 이용하면 스마트폰과 연동하여 부품들을 제어할 수 있다. 선을 연결하지 않고 무선으로 통신을 하기 때문에 편리한점이 많다. 하지만 통신거리가 짧기 때문에(10미터정도) 먼 거리에 있을 때는 사용할 수 없다는 단점이 있다. 

우리는 HC-06센서를 사용할 것이다. 가격이 저렴하고 성능또한 나쁘지 않기 때문에 실습을하는데 있어서 가장 많이 사용하는 부품이다.

hc06.pdf

HC-06은 4개의 핀을 사용하며, RXD핀은 데이터를 받을 때, TXD핀은 데이터를 보낼 때, GND는 그라운드선으로 -, VCC는 3.6V~6V사이의 전압을 넣으면 되므로 5V단자에 연결하면 된다. 모듈에 따라서 3.3V로 작동하는 모듈도 있으니 데이터시트를 참고하여 규격을 맞추기 바란다.


SoftwareSerial-master.zip

http://codingrun.com/100

라이브러리 추가 방법은 위 링크를 참고하길 바란다.

(IDE에서 자체적으로 라이브러리 다운받기를 추천! : SoftwareSerial 검색하면 나온다.)


실습 내용


스마트폰을 이용하여 각 LED를 켜고 꺼보자.


준비물


아두이노 보드, 브레드 보드, LED 3개, 저항 330Ω 3개, 점퍼선 11개, 스마트폰 1개(플레이 스토어에서 Bluetooth Controller 다운로드)


회로도



소스 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <SoftwareSerial.h>    //블루투스 시리얼 통신 라이브러리 추가
SoftwareSerial BTSerial(23); //블루투스 설정 BTSerial(Tx, Rx)
 
int Green = 5;
int Yellow = 7;
int Red = 9;    //led 핀 설정
 
void setup() {
  BTSerial.begin(9600); //블루투스 통신 시작
  pinMode(Green, OUTPUT);
  pinMode(Yellow, OUTPUT);
  pinMode(Red, OUTPUT); 
}
 
void loop() {
  if(BTSerial.available())        //값이 들어오면
  {
    char bt;                     //제어할 변수 bt선언
    bt = BTSerial.read();        //들어온 값을 bt에 저장
    if(bt == 'a')                //bt가 a면
      digitalWrite(Green, HIGH); //초록불 ON
    if(bt == 'b')
      digitalWrite(Yellow, HIGH);
    if(bt == 'c')
      digitalWrite(Red, HIGH);
    if(bt == 'd')
      digitalWrite(Green, LOW);
    if(bt == 'e')
      digitalWrite(Yellow, LOW);
    if(bt == 'f')
      digitalWrite(Red, LOW);
  }
}
cs

ex14_bluetooth.ino




스마트폰과 블루투스 모듈 연결 방법


1. 플레이스토어에서 Blutooth Controller를 다운로드


2. 원하는 데이터를 전송하기 위해 키 설정으로 진입


3. 소스 코드에 나온대로 데이터를 설정. (키 이름은 아무렇게나 설정 가능)


4. 장치검색을 클릭하여 HC-06과 연결


5. 연결 확인


6. 정확하게 작동하는지 실험!