본문으로 이동

아두이노:블루투스(외장모듈)

학교의 모든 지식. SMwiki
Sam (토론 | 기여)님의 2025년 12월 3일 (수) 06:41 판 (새 문서: {{아두이노}} = 개요 = 아두이노에서 블루투스 통신을 구현하기 위한 가장 쉬운 방법은 외장 블루투스 모듈(HC-06, HC-05 등)을 사용하는 것이다. 이 방식은 무선 시리얼 통신(UART)을 그대로 무선화한 개념. === 할 수 있는 것 === * 코드 업로드는 안되고, 시리얼 통신 정도 가능. * 이로부터 RC카, 컨트롤러 등으로 사용한다. === 특징 === * 아두이노 코드도 `Serial.read()`, `Seri...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

아두이노 관련 정보를 모으기 위한 틀. 틀:아두이노

  1. 아두이노:개요
  2. 아두이노:하드웨어
    1. 아두이노:우노보드
    2. 아두이노:ESP32
  3. 아두이노:코드
    1. 아두이노:컴퓨터에서 보드로
    2. 아두이노:안드로이드에서 보드로
    3. 아두이노:기초 문법
    4. 아두이노:라이브러리
  4. 아두이노:핀 사용
    1. 아두이노:전원공급
  5. 아두이노:시리얼 통신
    1. 아두이노:엑셀기록
    2. 아두이노:파이썬과 통신
  6. 아두이노:편의함수
  7. 센서 사용
    1. 아두이노:모션센서(미완)
    2. 아두이노:온습도센서
    3. 아두이노:조도센서(미완)
    4. 아두이노:인체감지센서(미완)
    5. 아두이노:pH미터 만들기(Gravity 아날로그 pH센서)
    6. 가스센서
  8. 아두이노:LCD 사용
  9. 아두이노:스위치 사용
  10. 아두이노:릴레이
  11. 통신 관련, 정보 교환
    1. 아두이노:WIFI
    2. 아두이노:블루투스(외장모듈)
    3. 아두이노:IR 송수신
    4. 아두이노:2.4GHz 송수신
    5. 아두이노:RFID
  12. 아두이노:해결되지 않은 다양한 의문들
  13. 수업용 간단 실습
    1. 아두이노:LED
    2. 아두이노:초음파센서
    3. 아두이노:전압계 만들기
    4. 아두이노:저항계 만들기
  14. 아두이노 모터 출력
    1. 아두이노:서보 모터
    2. 아두이노:DC 모터
    3. 아두이노:BLDC 모터
  15. 미완문서
    1. 아두이노:스테핑 모터(미완)
  16. 분류:아두이노 프로젝트

개요

아두이노에서 블루투스 통신을 구현하기 위한 가장 쉬운 방법은 외장 블루투스 모듈(HC-06, HC-05 등)을 사용하는 것이다. 이 방식은 무선 시리얼 통신(UART)을 그대로 무선화한 개념.

할 수 있는 것

  • 코드 업로드는 안되고, 시리얼 통신 정도 가능.
  • 이로부터 RC카, 컨트롤러 등으로 사용한다.

특징

  • 아두이노 코드도 `Serial.read()`, `Serial.write()` 방식 그대로 사용.
  • BLE 기반 보드보다 학습 난이도가 낮다.

사용 모듈

모듈명 종류 특징 비고
HC-06 Bluetooth Classic (Slave Only) 가장 기본적인 외장 BT 모듈, 스마트폰에서 쉽게 페어링 가능 연결법
HC-06 핀 Arduino UNO 핀 설명
VCC 5V 전원 (모듈에 따라 3.3V도 가능)
GND GND 공통 접지
TXD D10 (아날로그 핀) 아두이노가 데이터를 수신하는 입력
RXD D11 (저항분배 필요) 아두이노의 TX → 모듈 RX는 3.3V 권장
HC-05 Bluetooth Classic (Master/Slave) AT 명령으로 Master 모드 변경 가능, 기능 확장형

UNO의 5V 신호를 바로 HC-06 RX에 넣지 말 것 (손상 가능).(5V 바로 넣을 수 있게 조정된 모듈도 따로 팔긴 함;)

※ UNO의 TX(5V) → HC-06 RX(3.3V) 구간은 2개 저항(1kΩ + 2kΩ)을 이용해 3.3V로 분배하는 것이 안전하다.

SoftwareSerial 예시 코드

다음 예시는 스마트폰 앱과 시리얼 문자열을 주고받는 기본 구조이다.

기본적으로 블루투스용 시리얼과 일반 유선 시리얼은 다르게 구성된다.

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 11); // RX, TX

void setup() {
  Serial.begin(9600);
  BTSerial.begin(9600);

  Serial.println("Bluetooth Ready");
}

void loop() {
  // 스마트폰 → 아두이노
  if (BTSerial.available()) {
    char c = BTSerial.read();
    Serial.print("BT: ");
    Serial.println(c);
  }

  // 아두이노 → 스마트폰
  if (Serial.available()) {
    char c = Serial.read();
    BTSerial.write(c);
  }
}

유의

  • SoftwareSerial은 고속 전송에 약하므로 9600bps 권장.

스마트폰 연결 방법

  1. 휴대폰 블루투스 설정에서 HC-06 등을 검색.
  2. 기본 비밀번호는 `1234` 또는 `0000`. (페어링이 되진 않는다. 이후 어플에서 진행.)
  3. 시리얼 통신 앱(예: Bluetooth Terminal, Serial Bluetooth 등)을 실행한다.
  4. 페어링된 장치를 선택하여 연결한다.
  5. 텍스트를 보내거나 아두이노 메시지를 확인한다.

AT 명령어 설정

모듈 설정 변경(이름, 속도 등)은 AT 명령으로 가능하다.

명령 입력 기능
AT 응답 확인(OK)
AT+NAME=MyBT 블루투스 이름 변경
AT+BAUD4 보드레이트 9600으로 변경
AT+PIN1234 비밀번호 변경

※ HC-06은 페어링 상태에서는 AT 명령이 동작하지 않는다.

 전원만 연결하고 통신 미연결 상태에서 AT 모드로 접근해야 한다.