본문 바로가기
모두의 아두이노/아두이노 인터페이스

[아두이노] HC-06 블루투스 사용하기

by 로니킴 2021. 12. 2.


본 절은 [HC-06] 아두이노 블루투스 모듈을 사용하기 위해 알아야 할 내용과 실습 방법에 대해 설명한다. 아두이노 블루투스 모듈의 특징, 동작원리, 사양, 연결 핀 배열, 출력 값, 주의사항을 알아본다. 아두이노와 HC06를 연결하고, 간단한 코딩으로 센서를 쉽게 실습할 수 있다. 

 

목차

     

     

     


    [아두이노] HC-06 블루투스 사용하기

     

     

     

     

     

     

     


    HC-06 블루투스 모듈이란?

    HC-06 블루투스 모듈은 다음과 같다. 

     

     

    -모듈인터페이스는 VCC, GND, TXD, RXD를 사용하고 LED에서 상태를 표시
    -3.3V 레벨로 MCU(51, AVR, PIC, ARM, MSP430등등) 바로 직접적으로 연결가능, 5V MCU도 또한 MAX232 IC 없이 바로 연결가능
    -10M이내의 거리에서 정상적으로 동작

    - 10M이상의 거리에도 가능하나 정상동작하지 않을 수 있음

     

     


    HC-06 vs HC-05 비교 원리

    HC-06 와 HC-05의 차이는 다음과 같다. 



    HC-05는 모듈 KEY 핀의 HIGH/LOW 상태로 모드를 구분, 마스터와 슬레이브 둘 다 사용 가능
                기본 설정 : Slave, 38400,8, N, 1, piN=1234, "HC-05" 시리얼 모니터에서 "Both NL & CR" ​

    HC-06은 현재 페어링이 돼있으면 통신 모드, 페어링이 안 돼있으면 AT 설정 모드로 동작. 슬레이브로 기본 고정(펌웨어 버전이 1.7 이상에선 HC-06도 AT 명령으로 마스터 모드 설정 가능, HC-06에선 AT 명령이 4~6개로 제한)
               기본 설정 : Slave, 9600,8, N, 1, pin=1234, "HC-06" 시리얼 모니터에서 "line ending 없음"

     

    http://www.martyncurrey.com/hc-05-fc-114-and-hc-06-fc-114-first-look/

     

     

     


    HC-06 구입하기

    [HC-06 ]는 알리익스프레스, 네이버 쇼핑몰, 아마존 등에서 센서를 구입할 수 있다

     

     

     

     

     


     

    HC-06 하드웨어 연결

    다음과 같이 HC-06 아두이노 센서를 연결할 수 있다. 

     

     

     

     

     


     

    HC-06 소프트웨어 코딩 #1

    간단히 시리얼 통신을 확인할 수 있다. 

     

    hc06-T1.ino
    0.00MB

    센서 코드는 다음과 같다.

    #include <SoftwareSerial.h>
     
    #define BT_RXD 2
    #define BT_TXD 3
    SoftwareSerial hc06(BT_RXD, BT_TXD);
     
    void setup(){
      Serial.begin(9600);
      hc06.begin(9600);
    }
     
    void loop(){
      if (hc06.available()) {
        Serial.write(hc06.read());
      }
      if (Serial.available()) {
        hc06.write(Serial.read());
      }
    }

    ------------------------------------------------------ 
    개발환경 : WINDOWS 10 
    아두이노 IDE : 1.8.13 
    ------------------------------------------------------ 
    01 연결
     - 아두이노와 PC 연결 
     - 아두이노 IDE 실행 
     - 메뉴 → 툴 → 보드:아두이노 UNO 확인 
      - 메뉴 → 스케치 → 확인/컴파일 

    02 컴파일 확인 

    스케치>확인/컴파일(CTRL+R) 를 선택해서 컴파일을 진행한다.


    03 아두이노 우노 업로드 

    컴파일이 이상없이 완료되면 스케치>업로드(CTRL+U) 를 선택해서 컴파일 파일을 업로드 한다. 

     

     


    04 동작 확인

    다음과 같이 동작을 확인할 수 있다. 

     

     

     

    05 스마트폰과 동작 확인

      ‘Arduino Bluetooth Controller’ 이름을 가진 어플리케이션을 다운로드 및 설치한다.

     

     

     

     

    어플에서 ‘test’ 순서로 입력후 전송을 해보면 아두이노 시리얼 모니터에서 문자 그대로 전송됨을 확인할 수 있다

     

     

     

     

     

     

     

     


     

    HC-06 소프트웨어 코딩 #2 - 아두이노의 값을 스마트폰에서 받기

    하드웨어 연결이 완료되면, 아두이노 IDE를 이용해 아두이노 센서 소스코드를 코딩할 수 있다. 

     

    hc06-T2.ino
    0.00MB

    센서 코드는 다음과 같다. 

    #include <SoftwareSerial.h>
    
    unsigned long previousMillis = 0;  
    const long interval = 1000;
    
    unsigned int time;
    
    SoftwareSerial hc06(2, 3);
    
    void setup() {
      Serial.begin(9600);
      hc06.begin(9600);
    }
    
    void loop() {
      unsigned long currentMillis = millis();
      if (currentMillis - previousMillis > interval)
      {
        previousMillis = currentMillis;
        
        time++; 
        hc06.print("Time Sec:");
        hc06.println(time);   
    
        if (time == 60) {
          time = 0;
        }
      }
    }

    ------------------------------------------------------ 
    개발환경 : WINDOWS 10 
    아두이노 IDE : 1.8.13 
    ------------------------------------------------------ 
    01 연결
     - 아두이노와 PC 연결 
     - 아두이노 IDE 실행 
     - 메뉴 → 툴 → 보드:아두이노 UNO 확인 
      - 메뉴 → 스케치 → 확인/컴파일 

    02 컴파일 확인 

    스케치>확인/컴파일(CTRL+R) 를 선택해서 컴파일을 진행한다.


    03 아두이노 우노 업로드 

    컴파일이 이상없이 완료되면 스케치>업로드(CTRL+U) 를 선택해서 컴파일 파일을 업로드 한다. 

     

     


    04 동작 확인

    다음과 같이 동작을 확인할 수 있다. 

     

     

     

     

    '모두의 메이커'에서 업로드한 동영상

     

    makerspace.steamedu123.com

     

     

     

     

     

     

     


     

    HC-06 소프트웨어 코딩 #3 - 스마트폰에서 아두이노 LED ON/OFF 하기

    하드웨어 연결이 완료되면, 아두이노 IDE를 이용해 아두이노 센서 소스코드를 코딩할 수 있다. 

     

    hc06-T3.ino
    0.00MB

     

    센서 코드는 다음과 같다. 

    #include <SoftwareSerial.h>
    
    #define BT_RXD 2
    #define BT_TXD 3
    #define PIN_LED 7
    
    unsigned long previousMillis = 0;  
    const long interval = 1000;
    
    SoftwareSerial hc06(BT_RXD, BT_TXD);
    
    void setup() {
      Serial.begin(9600);
      hc06.begin(9600);
      pinMode(PIN_LED, OUTPUT);
    }
    
    void loop() {  
      receivePacket();  
    }
    
    void receivePacket() {
      char val = hc06.read();
      if (hc06.available())
      {
        Serial.write(hc06.read());
      }
        
      if(val == 'a')
      {
        digitalWrite(PIN_LED, HIGH);    
      }
      if(val == 'b')
      {
        digitalWrite(PIN_LED, LOW);    
      }
    }

    ------------------------------------------------------ 
    개발환경 : WINDOWS 10 
    아두이노 IDE : 1.8.13 
    ------------------------------------------------------ 
    01 연결
     - 아두이노와 PC 연결 
     - 아두이노 IDE 실행 
     - 메뉴 → 툴 → 보드:아두이노 UNO 확인 
      - 메뉴 → 스케치 → 확인/컴파일 

    02 컴파일 확인 

    스케치>확인/컴파일(CTRL+R) 를 선택해서 컴파일을 진행한다.


    03 아두이노 우노 업로드 

    컴파일이 이상없이 완료되면 스케치>업로드(CTRL+U) 를 선택해서 컴파일 파일을 업로드 한다. 

     

     


    04 동작 확인

    다음과 같이 동작을 확인할 수 있다. 

     

     

     

     


     

    마무리

    아두이노와 HC-06 센서를 연결하고, 간단한 코딩으로 센서를 쉽게 실습할 수 있다. 

     

     

     

     

     

     


     

    모두의 아두이노 환경 센서 책

    [모두의 아두이노 환경 센서] 책은 예스24, 인터넷 교보문고, 알라딘, 인터파크도서, 영풍문고, 반디앤루니스 , 도서11번가 등에서 구입할 수 있다. 이 책에서는 PMS7003, GP2Y1010AU0F, PPD42NS, SDS011 미세먼지 센서, DHT22 온습도 센서, MH-Z19B 이산화탄소 센서, ZE08-CH2O 포름알데히드 센서, CCS811 총휘발성유기화합물 TVOC, GDK101 방사선(감마선) 센서, MQ-131 오존(O3) 센서, MQ-7 일산화탄소, MICS-4514 이산화질소 센서, MICS-6814 암모니아 센서, DGS-SO2 아황산가스(SO2) 센서, BME280 기압 센서, GUVA-S12SD 자외선(UV) 센서, MD0550 기류 센서, QS-FS01 풍속 센서(Wind speed) 를 사용한다.  

     

    모두의 아두이노 환경 센서

    아두이노와 센서로 내 건강을 지킬 수 있다!다양한 환경 센서를 실생활 프로젝트에 응용해보자!시중에 판매되고 있는 간이측정기도 센서로 값을 측정합니다. 똑같은 센서를 아두이노에 연결하

    book.naver.com

    반응형


    댓글