본문 바로가기
모두의 아두이노

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

by 로니킴 2021. 12. 2.


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

 

목차

     

     

     


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

    HC-06 블루투스 모듈은 아두이노와 같은 마이크로컨트롤러와 쉽게 무선 통신을 구현할 수 있는 저렴하고 효율적인 모듈입니다. 저전력 소비와 간편한 시리얼 인터페이스, 넓은 호환성을 갖추고 있어 초보자도 쉽게 사용할 수 있습니다. 기본 페어링 코드로 '1234'나 '0000'을 사용하며, 최대 10미터까지의 통신 범위를 지원합니다. 아두이노와의 연결은 전원 핀과 시리얼 핀을 통해 간단하게 이루어집니다. 소프트웨어 코딩은 아두이노 IDE를 사용하며, 페어링 및 데이터 전송 과정을 통해 모듈의 동작을 확인할 수 있습니다. HC-06 모듈을 통해 다양한 무선 프로젝트를 쉽게 구현할 수 있습니다.

     

     

     

     

     

     

     

     


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

    블루투스 모듈 HC-06은 저렴하고 사용자 친화적인 무선 통신 모듈로, 아두이노와 같은 마이크로컨트롤러와 함께 사용됩니다. 이 모듈은 주로 슬레이브 모드로 작동하며, 스마트폰이나 태블릿 같은 다른 블루투스 장치와의 데이터 교환을 가능하게 합니다. HC-06은 블루투스 2.0 통신 규격을 따르고 있으며, 주요 사용 예로는 원격 제어, 로봇 제어, 무선 센서 네트워크 등이 있습니다. 이 모듈의 가장 큰 장점은 저렴한 가격과 설치의 용이성에 있습니다. 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-06은 일반적으로 더 저렴하여 비용 효율적인 선택입니다. 제한된 AT 명령 세트는 초보자에게 적합하며, 기본적인 블루투스 통신 기능을 제공하는 데 충분합니다. 전력 소모도 비교적 낮아 배터리 구동 프로젝트에 유리합니다. 이러한 이유로 HC-06은 간단하고 경제적인 무선 통신 솔루션을 필요로 하는 경우 HC-05보다 더 나은 선택이 될 수 있습니다.

     

    HC-06 블루투스 모듈은 주로 4핀 구성(VCC, GND, TXD, RXD)을 가지며, HC-05는 6핀( VCC, GND, TXD, RXD, STATE, KEY)을 포함합니다. HC-06은 슬레이브 모드에서만 동작하며, 마스터 모드로 전환할 수  없습니다. 반면, HC-05는 마스터 및 슬레이브 모드 모두에서 동작할 수 있습니다. 두 모듈 모두 블루투스 V2.0 + EDR 표준을 사용하고, 2.402GHz에서 2.480GHz ISM 대역에서 동작합니다. HC-06의 전압 범위는 3.3V에서 5V, HC-05는 3.6V에서 6V입니다. HC-06의 통신 범위는 최대 10미터, HC-05는 최대 100미터입니다. 두 모듈은 기본 비밀번호 "1234" 또는 "0000"을 사용하며, HC-05는 STATE 및 KEY 핀을 통해 더 많은 제어 기능을 제공합니다.

     

     

    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은 UART 인터페이스를 통해 마이크로컨트롤러와 연결되며, 블루투스를 통해 다른 장치와 통신합니다. 이 모듈은 내부적으로 시리얼 데이터를 무선 신호로 변환하여 전송하고, 수신된 무선 신호를 다시 시리얼 데이터로 변환합니다. 이 과정은 RFCOMM 프로토콜을 사용하여 실시간으로 이루어지며, 통신 범위는 최대 10미터까지 가능합니다. 데이터 전송 속도는 최대 2.1 Mbps까지 지원하므로, 일반적인 데이터 교환에 충분합니다. HC-06 모듈의 동작 원리를 이해하는 것은 효과적인 통신 시스템을 구축하는 데 필수적인 요소입니다.

     

     


    HC-06 구입하기

    [HC-06 ]는 알리익스프레스, 네이버 쇼핑몰, 아마존 등에서 센서를 구입할 수 있습니다. 블루투스 모듈 HC-06을 구입할 때는 몇 가지 중요한 사항을 고려해야 합니다. 첫째, 모듈이 지원하는 전압 범위는 3.3V에서 6V까지입니다. 이는 대부분의 아두이노 보드와 호환됨을 의미하며, 사용자는 추가적인 전압 조정 장치 없이도 모듈을 쉽게 사용할 수 있습니다. 둘째, 모듈의 품질과 판매처의 신뢰성을 확인해야 합니다. 블루투스 모듈은 다양한 온라인 쇼핑 사이트와 전자 부품 상점에서 쉽게 찾을 수 있지만, 고품질의 모듈을 제공하는 신뢰할 수 있는 판매자로부터 구입하는 것이 중요합니다.

     

     

     

     


     

    HC-06 하드웨어 연결

    HC-06 모듈을 아두이노와 연결하는 방법은 비교적 간단합니다. 모듈에는 6개의 핀(State, RXD, TXD, GND, VCC, EN)이 있으며, 각각의 핀은 특정 기능을 가집니다. TXD와 RXD는 아두이노와의 시리얼 통신을 위해 사용되며, VCC와 GND는 전원 공급을 위해 필요합니다. EN 핀은 모듈의 활성화 상태를 제어할 수 있으며, State 핀은 모듈의 현재 상태를 나타냅니다. 이러한 핀들을 올바르게 연결하고 소프트웨어 설정을 마친 후에는 모듈이 제대로 작동하는지 테스트해야 합니다.

     

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

     

     

     

     

     


     

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

    HC-06 모듈과의 통신을 위해 아두이노에서는 `SoftwareSerial` 라이브러리를 사용하는 것이 일반적입니다. 이 라이브러리를 사용하면 사용자는 물리적인 시리얼 포트가 아닌 디지털 핀을 통해 시리얼 통신을 구현할 수 있습니다. 기본적인 코드는 모듈로부터 데이터를 받고 보내는 데 필요한 명령을 포함합니다. 이를 통해 사용자는 블루투스를 통해 데이터를 송수신할 수 있으며, 필요에 따라 추가적인 기능을 구현할 수 있습니다.

     

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

     

    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 센서를 연결하고, 간단한 코딩으로 센서를 쉽게 실습할 수 있습니다. 블루투스 모듈 HC-06은 다양한 아두이노 프로젝트에서 무선 통신 기능을 추가하는 데 있어 매우 유용한 도구입니다. 이 모듈을 통해 개발자는 쉽게 원격 데이터 전송 및 제어 기능을 구현할 수 있으며, 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

    반응형


    댓글