코딩과 아두이노의 찰떡궁합 Ep-27

안녕하세요?^^ 에듀아이 입니다^^


오랜만에 다시 뵙게되네요...바쁜일로인해 한동안 뜸했네요^^;;


오늘은 아두이노와 블루투스 모듈을 연결해 스마트폰과 통신하는 방법을 알아보도록 하겠니다. 아두이노 보드와 블루투스를 지원하는 모듈만 있으면 스마트폰과 연결해 통신하는 기능을 구현할 수 있으며, 더 나아가 블루투스로 제어하는 전등, 블루투스 RC카 등을 만들 수 있습니다.

아두이노에 연결하는 블루투스 모듈은 여러가지가 있지만 대표적으로 아래의 모듈이 많이 사용됩니다. 블루투스는 2.0 버전을 지원하는 모듈과 블루투스 4.0을 지원하는 버전으로 구분됩니다. 블루투스 2.0과 4.0의 가장 큰 차이는 통신 거리와 전력 소모량에 있습니다. 블루투스 2.0 버전은 상대적으로 전송 거리가 짧고 전력 소모량이 많습니다. 이에 반해 블루투스 4.0은 전송거리가 더 길고 전력 소모량도 적은 편입니다. 블루투스 4.0 모듈은 블루투스 2.0 모듈에 비해 가격이 조금더 비싸기 때문에 아두이노 프로젝트에서는 대부분 HC-06을 많이 사용합니다. 하지만 HC-06은 아이폰을 지원하지 않아 아이폰을 사용하시는 분들은 AT-09나 HM-10을 이용하셔야 합니다.

이제 프로젝트에 필요한 부품을 알아보겠습니다.

아두이노 우노(Uno) 보드가 필요하구요~

블루투스 통신에 사용할 모듈은 가장 많이 사용하고 저렴한 HC-06을 이용하겠습니다.

아두이노 보드와 블루투스 모듈(HC-06)은 아래와 같이 연결해주시면 됩니다.

연결이 완료되면 아두이노 IDE를 실행해 아래 코드를 입력합니다.

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(2, 3);

void setup() {

Serial.begin(9600);

Serial.println("Hello!");

BTSerial.begin(9600);


void loop() {

if (BTSerial.available()) {

Serial.write(BTSerial.read());

}

if (Serial.available()) {

BTSerial.write(Serial.read());

}


 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

위 코드에 대해 설명드리겠습니다.

#include <SoftwareSerial.h>

SoftwareSerial.h 파일을 로드하는 명령입니다. 소프트웨어 시리얼을 사용하는 경우에 이 파일을 로드해야 합니다. 소프트웨어 시리얼은 디지털 0, 1번이 아닌 다른 핀에 블루투스 모듈을 연결하는 것을 말합니다. 디지털 0, 1번에 연결하면 하드웨어 시리얼로 통신을 하게되는데 문제는 컴퓨터에 연결된 상태에서는 USB 포트가 디지털 0, 1번을 통해 데이터를 주고 받기 때문에 사용할 수 없습니다. 그래서 아두이노에서는 2~13번 핀 중 원하는 핀에 연결하고 사용할 수 있도록 지원합니다. 이때는 SoftwareSerial.h 파일을 로드해야 합니다.


SoftwareSerial BTSerial(2, 3);

소프트웨어 시리얼로 통신하기 위해 이름과 송신핀과 수신핀번호를 지정하는 명령입니다.


Serial.begin(9600); BTSerial.begin(9600);

시리얼 모니터의 통신 속도와 블루투스 통신의 속도를 설정한 것입니다. 이 두가지의 속도는 같아야합니다. 다르면 정상적인 통신을 할 수 없게됩니다.


if (BTSerial.available()) { Serial.write(BTSerial.read()); }

만약 블루투스로 아두이노에 전송된 데이터가 있다면 해당 데이터를 읽어 시리얼 모니터에 출력하는 명령입니다. 스마트폰에서 입력한 내용이 있다면 해당 내용을 아두이노의 시리얼 모니터에 나타내줍니다.


if (Serial.available()) { BTSerial.write(Serial.read()); }

만약 시리얼 모니터의 입력이 있다면 해당 내용을 블루투스를 통해 전송하는 명령어입니다.


이정도로 코드 설명은 마무리하고 이제 코드를 업로드 합니다.

아두이노가 연결된 컴퓨터의 아두이노 IDE 프로그램 오른쪽 상단 [시리얼 모니터]를 클릭해 엽니다.

스마트폰에서 페어링을 진행해야 합니다.

스마트폰의 화면을 켠 후 [설정]에 들어가 [블루투스] 설정 화면으로 들어갑니다. 블루투스를 사용 모드로 스위치를 켜면 'HC-06'이라는 아두이노에 연결한 블루투스 모듈이 나타납니다.

해당 모듈을 터치합니다. 페어링을 위해 암호를 입력하는 화면이 나오면 '1234'를 입력합니다.

페어링이 완료되면 '등록된 디바이스' 항목에 'HC-06'이 나타납니다.

이제 스마트폰의 [Play 스토어]를 실행해 검색창에 [Arduino Bluetooth Controller]를 입력하고 검색합니다. 아래 그림과 같은 앱을 설치합니다.

앱 설치가 완료되면 앱을 실행합니다. 페어링된 기기 목록이 나타납니다. 'HC-06'을 터치합니다.

모드는 [Terminal Mode]를 터치합니다.

스마트폰과 아두이노에 연결된 블루투스 모듈이 정상적으로 연결이되면 HC-06 모듈의 붉은색 LED가 깜박임을 멈추고 계속 켜져있는 상태가 됩니다.(깜박거림=연결대기상태, 켜진상태=연결됨)

이제 스마트폰의 터미널 모드의 입력란에 아두이노에게 보낼 메시지를 입력합니다.


컴퓨터에 실행한 시리얼 모니터에 스마트폰에서 입력한 메시지가 나타납니다. 시리얼 모니터에서 입력한 내용도 스마트폰으로 보낼 수 있습니다. 시리얼 모니터 상단 입력란에 보내고싶은 메시지를 입력 후 [전송]을 클릭합니다.

스마트폰에 메시지가 전송된것을 확인할 수 있습니다.

이 방법을 조금만 응용하면 블루투스를 통해 LED를 켜고 끄거나 센서에서 측정된 값을 스마트폰으로 전송할 수 있게됩니다.



다음 시간에는 블루투스로 LED를 켜고 끄는 방법을 알아보겠습니다.

오늘은 여기까지 하도록 하겠습니다. 감사합니다.

▶상상을 현실로 만드는 아두이노(Arduino)

     ■  박경진 지음 / 에듀아이 출판

알라딘Yes24교보문고영풍문고반디앤루니스인터파크

     ■  아두이노 초보자 책으로 추천합니다.


[책에서 다루는 내용]

    ■ 소프트웨어 코딩을 이해하고 아두이노에 업로드/테스트하는 방법     

    ■ 서서히 색상이 그라데이션 형태로 바뀌는 LED 무드등 만들기    

    ■ 리드 스위치 모듈로 창문이나 현관 문 열림 감지하기    

    ■ 토양 수분 센서로 화분의 수분 상태를 측정해 물 공급시기 체크하기    

    ■ 비접촉식 온도 센서로 비접촉 체온 측정기 만들기    

    ■ 이 세상 하나뿐인 우리집 미세 먼지 측정기 만들기    

    ■ 주변 밝기를 측정해 자동으로 켜지고 꺼지는 스마트 전등(가로등) 만들기   

    ■ 거리를 측정하는 초음파 센서를 이용해 자동차 후방 감지기 만들기    

    ■ 일정한 거리내의 사람을 인식해 자동으로 열리고 닫히는 스마트 휴지통 만들기    

    ■ 스마트폰 블루투스로 연결해 제어하는 RC 카 만들기    

    ■ 집밖에서 스마트폰으로 집안의 사물인터넷 기기 제어   


[이 책의 대상 독자]

    ■ 아두이노를 가장 쉽게 접근하고, 활용하고자 하는 독자   

    ■ 소프트웨어 교육 의무화로 소프트웨어 코딩을 배우고 싶은 학생    

    ■ 사물인터넷 제품을 만들어 스마트 홈을 구현하고 싶은 독자    

    ■ 어렸을 때 생각했거나 상상했던 제품을 직접 만들어보고 싶은 독자    

    ■ 소프트웨어와 하드웨어의 상관 관계를 이해하고 제어하고 싶은 독자    

    ■ 로봇, 드론 등의 제품 구현을 위한 기본 지식을 습득하고자 하는 독자   


아두이노 초보자분들이 가장 쉽게 배울수 있는 책입니다. 추천합니다^^!!


끝까지 읽어주셔서 고맙습니다^^

다음 에피소드에서 또 뵙겠습니다^^



#코딩추천책

#코딩책추천

#아두이노책

#아두이노강좌

#아두이노책추천

#아두이노추천도서

#코딩책

#사물인터넷

#사물인터넷책추천

#블루투스

#bluetooth

#블루투스통신하기

IT 교육전문가 코딩, 소프트웨어, 사물인터넷 정보보안, 스마트폰 영상편집 등의 강의 및 출판을 전문으로하는 1인기업입니다.
Follow
Cards you may also be interested in
직원들을 강제로 해외여행 보내버리는 회사
passionoil
150
126
12
잠 안올때 시간 때우기 좋은 어플
nunkunnara
16
46
0
슬기로운 방콕 생활을 위한 앱 추천 7
visualdive
18
49
0
심심할 때 몰입도 최고인 추리소설
FLYBOOK
9
33
0
에브리타운을 또 하나 만들었습니다. 몰랑이를 본 순간 이건 만들어야겠다는 생각을 했어요 ㅎㅎ 이번에는 만드는데 좀 오래 걸리긴 했지만 그래도 결과가 만족스러워서 좋습니다. 저도 몰랑이처럼 스케이트 타러 가고 싶어지네요
respectyou
78
4
8
우주소녀 | [210222] [WJSN] 커~~~~밍 수운! WJSN의 라이브 테마가 곧 찾아옵니다!
WJSNCosmic
5
8
0
2018.3월 추천 데스크톱 견적! 사무용 ~ 프리미엄 총 7가지 소개
007overmen1
22
44
5
실수 많고 일 못하는 사람들 공통점
papervores
128
111
4
활용성 100% 포토샵 단축키 모음
JobCheatKey
237
422
0
메인보드 확인하는 방법 중 가장 간단한 방법
007overmen1
12
23
1
선물 포장하는 다양한 방법들 (+느린ver)
Voyou
393
737
13
GIF
컴퓨터 모니터 신호없음 해결방법 5가지!
007overmen1
24
67
0
왜 사람들은 클럽하우스를 할까?
openads
1
1
0
겉모습보다 내면에 충실하자
psh72928
6
2
0
드론으로 자동 산림방제 온라인 세미나
jinijinidrone
1
0
0
여행 끝! 여행사진과 동영상까지 깔끔하게 정리해 줄 꿀어플 모음
APPSAY
16
37
0
[생활영어] 명심할게요.
miso24391
2
1
0
윈도우10 설치법 및 포맷하는 방법!
007overmen1
32
81
0
전 세계에서 동시에 일어난 미스테리한 사건
passionoil
88
34
10
내가 예뻐한다.💕
hyunToT
11
2
0
4.7 Star App Store Review!
Cpl.dev***uke
The Communities are great you rarely see anyone get in to an argument :)
king***ing
Love Love LOVE
Download

Select Collections