본문 바로가기
Arduino(아두이노) IoT 키트 강좌

Arduino Uno 로 HC-06 블루투스 슬레이브 모듈을 사용해 스마트폰으로 실내 온습도 확인해 보기

by 오마이엔지니어 2018. 3. 20.
반응형

Arduino Uno 로 HC-06 블루투스 슬레이브 모듈과 DHT11 온습도 센서를 사용해서
안드로이드 스마트폰 앱으로 실내 온습도를 확인해 보는 프로젝트입니다

HC-06 블루투스 슬레이브 모듈은 다양한 무선 블루투스 프로젝트를 가능하게 합니다
Arduino(아두이노) 나 PC, 안드로이드 폰과 연결하여 다양한 프로젝트를 수행할 수 있습니다
무선이라 편리하며 Google 안드로이드 앱으로 다양하게 응용이 가능 합니다

<HC-06 블루투스 슬레이브 모듈 이미지>

HC-06 블루투스 슬레이브 모듈은 VCC-Voltage, GND-Ground, TXD-Transmit Data, RXD-Receive Data 4핀으로 구성되어 있습니다
EN, STATE 핀이 있지만 대체로 사용하지 않습니다

 

 

 

 

 

<HC-06 블루투스 슬레이브 모듈 회로도>

 

HC-06은 블루투스 2.0 이므로 안드로이드 어플로 연결할때 페어링을 해줘야 하는데 페어링 기본 이름은 HC-06 이며 기본 코드는 1234 입니다

 

사용된 부품

Arduino Uno R3 (Italy)
HC-06 블루투스 슬레이브 모듈
미니브래드보드

점퍼케이블(숫놈)
DHT11 온습도센서 모듈

 

구성 배선도




사용된 예제소스

HC-06 DHT.txt


사용된 라이브러리

DHT.zip


라이브러리 추가 방법은 Arduino IDE 설치하기 포스팅을 참조해 주세요

주의사항

첨부된 예제 코드를 아두이노 우노에 업로드 할 때 HC-06 블루투스 모듈은 아두이노 우노와 연결이 안 되어 있는

상태에서 업로드를 마친 후 아두이노 우노와 연결 하도록 합니다, 에러나 업로드가 안되는 경우가 있습니다

이점 주의 하도록 합시다


기본적으로 HC-06 블루투스 모듈은 전원이 인가되면 빨간색 전원LED가 지속적으로 깜박입니다

하지만 어플과 연결해서 페어링에 성공하면 LED는 점등되어 멈추게 됩니다

(전원LED가 들어오지 않는다면 모듈의 문제이거나 모듈의 LED에 문제일수 있습니다)


아두이노와 기본 배선시 데이터를 보낼때 한쪽에서는 데이터를 받아줘야 하기 때문에

블루투스 모듈 RX -------- 아두이노 TX

블루투스 모듈 TX -------- 아두이노 RX

의 배선으로 연결 해 줘야 합니다

 

프로젝트를 위해서는 블루투스 안드로이드 어플이 필요합니다 (하단 링크를 클릭해 다운 받으세요) 
블루투스 모듈을 제어하기 위해서 "BlueCore_Tech_Temp_Humidity" 어플을 다운 받습니다
https://play.google.com/store/apps/details?id=appinventor.ai_addmefaster1.BlueCore_Tech_Temp_Humidity


구글계정 로그인을 하면 무선으로 본인소유의 안드로이드 폰을 검색해서 간편하게 핸드폰에 어플 설치를 해줍니다

안된다면 안드로이드폰 구글 플레이스토어 에서 'BlueCore_Tech_Temp_Humidity' 로 검색해서 설치 하도록 합니다

위 어플 설치가 불가능하다면 아래 어플로도 테스트 가능합니다 (하단 링크를 클릭해 다운 받으세요) 
블루투스 모듈을 제어하기 위해서 "Bluetooth Terminal" 어플을 다운 받습니다
https://play.google.com/store/apps/details?id=net.sonworks.bluetoothterminal


구글계정 로그인을 하면 무선으로 본인소유의 안드로이드 폰을 검색해서 간편하게 핸드폰에 어플 설치를 해줍니다

안된다면 안드로이드폰 구글 플레이스토어 에서 '블루투스 터미널' 로 검색해서 설치 하도록 합니다

사용방법은 아래 링크를 참조해 주세요

http://blog.daum.net/rockjjy99/2623
  

어플사용 방법

구글플레이스토어에서 어플을 다운받아서 설치해 줍니다

아이콘을 클릭해서 어플을 실행합니다 (물론 블루투스는 사전에 미리 사용으로 설정해 놓아야 겠죠?)



어플실행을 하면 위와 같은 화면이 뜹니다, Select Device (장치선택) 버튼을 눌러 줍니다


페어링이 되어 있어서 HC-06 이 검색이 잘 됩니다, HC-06을 클릭하면 됩니다
(처음 페어링 하는 것이라면 안드로이드 폰 설정에서 블루투스 관리자에서 일단 비밀번호 1234로 페어링을 해서
HC-06 블루투스를 등록해 줍니다)


HC-06을 선택하고 블루투스와 통신이 정상적으로 이루어지면 몇 초정도 느긋하게 기다리면 위 처럼 습도와 온도가 어플에 표시됩니다


Say Temperature 버튼을 누르면 AI 언니가 습도와 온도를 대답해 줍니다
하지만 AI 언니의 목소리를 들으려면 한글 언어팩이 필요하며, 설치화면으로 넘어갑니다

(설치하고 싶으면 설치하면 됩니다 용량은 약 130MB 정도 됩니다) 

--------------------------------------------------------------------------------------------------------------------------------
#include "DHT.h"

#define DHTPIN 2 

--------------------------------------------------------------------------------------------------------------------------------
예제코드를 보면 DHT.h 라이브러리를 사용합니다 (위 첨부되어 있는 라이브러리를 다운 받아서 설치해 주세요)
단 라이브러리 폴더 이름은 'DHT'로 되어 있어야 합니다 (Arduino-DHT-library-Master 등 이런식의 이름은 컴파일 에러가 날 수 있습니다)
DHT 온습도센서의 통신 핀 설정은 2번 입니다

--------------------------------------------------------------------------------------------------------------------------------
void loop() {
  // Give it time to calibrate
  delay(20000);
--------------------------------------------------------------------------------------------------------------------------------

보정 타임이 설정되어 있습니다

--------------------------------------------------------------------------------------------------------------------------------
void setup() {
  Serial.begin(9600);
  Serial.println("BlueCore Tech Temperature and Humidity");


  Serial.println("Humidity: ");
  Serial.print(h);
  Serial.println(" %.");
  Serial.println("  ");
  Serial.println("Temperature: ");
  Serial.print(t);
  Serial.println(" Degrees ");
--------------------------------------------------------------------------------------------------------------------------------
시리얼 모니터 출력부분입니다


프로젝트 동영상


HC-06 DHT.txt
0.0MB
DHT.zip
0.01MB
반응형

댓글