bakkas
5,000+ Views

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

지난 에피소드(코딩과 아두이노의 찰떡궁합 Ep-27)에서 블루투스 2.0 을 지원하는 모듈로 통신하는 방법을 알아보았습니다. 지난 에피소드에서 사용한 모듈은 아이폰에서는 사용이 불가능합니다. 그리고 블루투스 2.0 모듈이기 때문에 전력 소모도 많습니다. 블루투스 4.0 모듈을 이용하면 안드로이드, 아이폰 구분없이 연결 가능하며, 전력 소모도 적습니다.

아두이노에 연결해 사용 가능한 블루투스 4.0을 지원하는 모듈은 AT-09와 HM-10이 있습니다. AT-09가 가격이 저렴하기 때문에 해당 모듈을 이용한 연결을 해보겠습니다. 물론 HM-10도 같은 방법으로 연결할 수 있습니다.
이제 프로젝트에 필요한 부품을 알아보겠습니다.
아두이노 우노(Uno) 보드가 필요하구요~
블루투스 통신에 사용할 모듈은 4.0이 지원되는 AT-09를 이용하겠습니다.


참고로AT-09는 오픈마켓이나 네이버에서 검색하시면 HC-06보다 저렴한 가격에 판매되고 있습니다.
아두이노 보드와 블루투스 모듈(AT-09)는 아래와 같이 연결해주시면 됩니다.
연결이 완료되면 아두이노 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 프로그램 오른쪽 상단 [시리얼 모니터]를 클릭해 엽니다. 시리얼 모니터가 열리면 하단 목록에서 [Both NL & CR]을 선택합니다. 이 항목으로 선택되지 않으면 블루투스로 주고받는 메시지가 깨져보이게 됩니다.
PC에서의 작업은 완료되었습니다. 스마트폰에서 통신할 앱을 설치해야합니다. 블루투스 4.0을 지원하는 앱을 설채햐아합니다. 블루투스 2.0은 설정에서 미리 페어링을 해야하지만 블루투스 4.0은 페어링 없이 앱에서 바로 연결해 사용합니다. Play 스토어/App Store에서 [3demp]로 검색합니다. 검색 결과 앱 중 [3Demp - 3dempPlayer...]를 설치합니다.
앱이 설치되면 앱을 실행합니다. 앱이 실행되면 왼쪽 블루투스 로고를 터치합니다.
[SCAN]을 터치해 근처 블루투스 모듈을 검색합니다. 검색된 모듈을 터치해 선택합니다.
블루투스 연결이 완료되면 블루투스 아이콘 모양이 밝은 하늘색으로 표시됩니다. 아두이노에 연결한 블루투스 모듈도 붉은색 LED가 깜박거리는 상태에서 계속 점등 상태로 나타납니다. 이제 통신을 위해 오른쪽 하단 [TEXT]를 터치합니다.
하단 메시지 입력란에 아두이노로 전송할 메시지를 입력하고 [Send]를 터치합니다.
컴퓨터의 아두이노 시리얼 모니터에 스마트폰에서 전송한 메시지가 나타납니다.
이번에는 아두이노 시리얼 모니터 입력창에 텍스트를 입력 후 [전송]을 클릭합니다.
아두이노 시리얼 모니터에서 전송한 메시지가 스마트폰에 전송된것을 확인할 수 있습니다.
위 과정을 동영상으로 확인해보겠습니다.


이 방법을 조금 더 응용하면 LED를 켜고 끄는것, RC카를 만드는 것 등도 가능합니다. 다음 강좌에는 블루투스 4.0으로 LED를 제어하는 방법을 알아보겠습니다.

감사합니다.
▶상상을 현실로 만드는 아두이노(Arduino)
     ■  박경진 지음 / 에듀아이 출판
■   알라딘, Yes24, 교보문고, 영풍문고, 반디앤루니스, 인터파크에서 구입가능합니다.
     ■  아두이노 초보자 책으로 추천합니다.

[책에서 다루는 내용]
    ■ 소프트웨어 코딩을 이해하고 아두이노에 업로드/테스트하는 방법     
    ■ 서서히 색상이 그라데이션 형태로 바뀌는 LED 무드등 만들기    
    ■ 리드 스위치 모듈로 창문이나 현관 문 열림 감지하기    
    ■ 토양 수분 센서로 화분의 수분 상태를 측정해 물 공급시기 체크하기    
    ■ 비접촉식 온도 센서로 비접촉 체온 측정기 만들기    
    ■ 이 세상 하나뿐인 우리집 미세 먼지 측정기 만들기    
    ■ 주변 밝기를 측정해 자동으로 켜지고 꺼지는 스마트 전등(가로등) 만들기   
    ■ 거리를 측정하는 초음파 센서를 이용해 자동차 후방 감지기 만들기    
    ■ 일정한 거리내의 사람을 인식해 자동으로 열리고 닫히는 스마트 휴지통 만들기    
    ■ 스마트폰 블루투스로 연결해 제어하는 RC 카 만들기    
    ■ 집밖에서 스마트폰으로 집안의 사물인터넷 기기 제어   

[이 책의 대상 독자]
    ■ 아두이노를 가장 쉽게 접근하고, 활용하고자 하는 독자   
    ■ 소프트웨어 교육 의무화로 소프트웨어 코딩을 배우고 싶은 학생    
    ■ 사물인터넷 제품을 만들어 스마트 홈을 구현하고 싶은 독자    
    ■ 어렸을 때 생각했거나 상상했던 제품을 직접 만들어보고 싶은 독자    
    ■ 소프트웨어와 하드웨어의 상관 관계를 이해하고 제어하고 싶은 독자    
    ■ 로봇, 드론 등의 제품 구현을 위한 기본 지식을 습득하고자 하는 독자   

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

끝까지 읽어주셔서 고맙습니다^^
다음 에피소드에서 또 뵙겠습니다^^


#코딩추천책
#코딩책추천
#아두이노책
#아두이노강좌
#아두이노책추천
#아두이노추천도서
#코딩책
#사물인터넷
#사물인터넷책추천
#블루투스
#bluetooth
#블루투스통신하기
Comment
Suggested
Recent
Cards you may also be interested in
새로운 오늘
해롤드 라미스 감독의 1993년 영화 ‘사랑의 블랙홀’은 우리에게 주어진 하루와 마음가짐의 힘에 대해 유쾌한 스토리로 교훈을 전합니다. ​ 자기중심적이고 스스로 유능하다고 생각하는 왕자병 중증의 기상 캐스터 필 코너스에게 한 작은 마을에서 열리는 축제를 취재하라는 지시가 내려졌습니다. ​ 투덜거리며 도착한 필은 서둘러 형식적으로 취재를 끝내지만, 폭설로 길이 막혀 다시 마을로 돌아와 하룻밤을 묵게 됩니다. ​ 다음 날 아침, 낡은 호텔에서 눈을 뜬 필은 어제와 똑같은 라디오 멘트를 듣게 되고, 축제가 끝났는데 또다시 축제 준비로 부산한 마을의 모습을 보고 경악합니다. ​ 분명히 하루가 지났는데 내일로 넘어가지 않고 축제의 날이 반복되고 있던 것입니다. ​ 황당한 일이 일어나자 필은 돈 가방 훔치기, 축제 망치기 등 고약한 행동을 하며 즐거워했습니다. ​ 하지만 이것도 잠시, 매일 반복되는 똑같은 하루에 절망한 필은 자살을 기도하지만 다시 침대 위에서 눈을 떴습니다. 죽음도 반복되는 이 상황을 해결하지 못했던 것이죠. ​ 거의 미칠 지경이 된 뒤에야 필은 마음을 바꾸어 이왕 보내는 하루를 이전과 다르게 살아보기로 했습니다. ​ 나무에서 떨어지는 아이를 구하고 타이어가 펑크나 쩔쩔매는 할머니들을 돕기도 합니다. 이렇게 매일 오차 없이 되풀이되는 사건에 천사처럼 나타나 이들을 도와주며 점점 긍정적인 사람으로 변해갔습니다. ​ 처음으로 이기심을 버리고 선한 행동을 하며 따뜻한 하루를 보냈던 것입니다. 그리곤 어느 날 드디어 그가 그토록 기다린 내일이 눈 앞에 펼쳐지며 희망찬 필 코너스의 모습으로 영화는 끝이 납니다. 오늘도 어제와 특별히 다르지 않은 날이지만 어떤 마음으로 하루를 시작하는지에 따라 하루가 희망으로 채워지기도 합니다. ​ 하루가 무기력하고 지루하게 느껴질 때면 새로운 마음으로 새로운 오늘을 맞이해보세요. ​ ​ # 오늘의 명언 자신에게 동기부여를 할 수 없는 사람은 다른 재능이 아무리 뛰어나다 하더라도 평범한 삶에 만족할 수밖에 없다. – 앤드류 카네기 – ​ =Naver "따뜻한 하루"에서 이식해옴..... #일상#일상의반복#새로운오늘#인생#삶#명언#영감을주는이야기#교훈#따뜻한하루 https://youtu.be/Pabb0dbtp6g
지도자의 리더십
프랑스의 제10대 대통령인 클레망소 수상은 1차 세계 대전 때 특유의 카리스마와 리더십으로 프랑스를 이끈 정치가이기도 합니다. ​ 그는 전선을 자주 시찰했다고 합니다. 어느 날 한 부대가 고전 중이라는 소식을 듣고 직접 찾아갔습니다. ​ 그런데 포탄이 터지는 최전선이 가까워지자 그는 차에서 내린 뒤 전투가 벌어지는 부대까지 직접 걸어갔다고 합니다. ​ 그렇게 위험한 곳이라도 찾아와서 자신들을 격려하는 수상의 모습을 본 병사들은 환호성을 올린 후 재충전된 사기로 더욱 힘을 내 전투에 임하기 시작했습니다. ​ 또한, 클레망소 수상을 발견한 적군이 수상을 향해 집중적으로 포화를 퍼붓는 상황에서도 안전한 곳으로 대피하지 않고 그곳에 계속 남아 병사들의 사기를 돋워주었다고 합니다. ​ 그 결과 프랑스군은 독일군을 몰아내며 완벽한 승리를 이끌었습니다. ​ 프랑스 군인들은 한 나라의 수상이 자신들과 함께 최전선에 있었다는 사실이 전투를 승리로 이끈 힘이 되었다는 것을 알았을 것입니다. 한 사회의 지도자에 대한 불신이 커지면 권위도 땅에 떨어지게 됩니다. 그 때문에 지도자는 항상 어떤 자리에 있든, 어떤 모습으로 있든 지켜야 할 사명이 있는데 그건 바로 신뢰입니다. ​ ​ # 오늘의 명언 리더십은 말로 행하여지기보다는 태도와 행동으로 보여진다. ​ =Naver "따뜻하 하루"에서 이식해옴..... ​ ​ #리더#지도자#지도력#인생#삶#명언#영감을주는이야기#교훈#따뜻한하루