아두이노 마이크로컨트롤러 작업을 시작하는 대부분 사람들은 사용 가능한 확장 모듈과 실드 종류를 잘 모릅니다. 아두이노 우노(Uno)는 전 세계 가장 인기 있는 마이크로컨트롤러 중 하나지만, 블루투스 연결 기능은 내장되어 있지 않습니다.
아두이노 BT나 라즈베리 파이 4처럼 내장 블루투스 기능 보드 구매 가능. 하지만 더 비싸고 부피 크며 프로젝트 재미 덜할 수 있습니다. 블루투스 기능 없는 마이크로컨트롤러에 블루투스 연결 추가하려면?
최선은 블루투스 모듈과 인터페이싱하는 것. 이 가이드에서 마이크로컨트롤러를 블루투스 모듈과 인터페이스하는 법 보여드립니다. 스마트폰, 컴퓨터 등 블루투스 기기와 마이크로컨트롤러 무선 연결 가능해집니다.
블루투스 인터페이싱이란?
블루투스 센서, 브레드보드, 아두이노 우노
오늘날 블루투스는 세계에서 가장 보편적인 무선 연결 표준 중 하나. 기기 간 데이터 전송/교환에 사용. 와이파이 같은 표준은 장거리 연결용, 블루투스는 단거리 연결/데이터 전송용. 하지만 최신 블루투스 5.2 표준은 400m 범위, 2Mbps 데이터 레이트 달성. 향후 버전은 더 긴 거리, 높은 임계값, 처리량 기대. 어쨌든 휴대폰으로 데이터 전송이나 기기 연결할 때마다 그게 본질적으로 블루투스 인터페이싱.
많은 마이크로컨트롤러에 내장 블루투스 기능 없음. 따라서 그들과 블루투스 인터페이싱 원하면 확장하거나 다른 보드 추가 필요.
블루투스 모듈로 마이크로컨트롤러에 블루투스 인터페이싱 추가하는 법 보여드리겠습니다.
블루투스 모듈과 작동 방식
블루투스 모듈
블루투스 모듈로 마이크로컨트롤러와 싱글보드 컴퓨터를 외부 기기와 인터페이스. 블루투스 센서라 부르기도 함. 하지만 보드에 내장 블루투스 기능 없을 때만 필요. 가장 흔한 블루투스 모듈: HC-05, HC-06.
블루투스 모듈 구매 시 녹색 직사각형 모듈이 파란색 브레이크아웃 보드 위 사각 조각에 올려져 있음. 브레이크아웃 보드가 블루투스 모듈에 핀 제공 → 브레드보드 쉽게 꽂기 가능.
단순 애플리케이션에선 HC-05, HC-06 슬레이브 모드에서 동일 작동. 하지만 HC-05 추천: 슬레이브/마스터 모드 전환 가능. HC-06은 슬레이브 기기만 가능. 두 아두이노 프로젝트 연결 원하면 HC-05 필요(블루투스 연결 개시/설정 가능).
블루투스 모듈 구조
블루투스 모듈 뒷면 보면 핀아웃 라벨. 주로 전원 핀아웃 VCC, 그라운드(GND)만 신경 쓰면 됨. 하지만 이 핀들 외 데이터 핀 RXD, TXD도 있음.
RXD 데이터 수신, TXD 데이터 송신. HC-05 사용 시 HC-06에 없는 두 핀 발견. 인에이블(EN) 핀, 상태 출력 핀(STATE). 인에이블 핀을 키 핀(Key Pin)이라고도 함.
블루투스 모듈 작업 시 공급 전압 주의. 3.6V~6V 사이 안전. 데이터 핀은 3.3V 디지털 신호 필요.
아두이노 프로젝트와 폰에 블루투스 모듈 인터페이스하는 법
블루투스 센서
블루투스 인터페이싱 작동법 보여드리기 위해 아두이노 프로젝트와 모바일 폰을 블루투스 모듈로 연결하는 기본 튜토리얼 포함.
필요 부품
블루투스 모듈 HC-05 또는 HC-06
브레드보드
아두이노 우노
2.2kΩ 저항
5.7kΩ 저항
단심 와이어
아두이노 IDE 소프트웨어
지침
하드웨어 설정
아두이노 우노 5V, GND 핀에서 와이어 연결 → 브레드보드 파워 레일 → 블루투스 모듈 VCC, GND 핀 연결
아두이노 우노 송신 핀(TX) → 브레드보드 → 저항들로 전압 분배기 직렬 구성 with GND. 중간 탭오프 → RXC 핀 연결. 블루투스 모듈 더 낮은 송신 전압 레벨 필요하므로.
아두이노 우노 수신 핀(RX)에서 브레드보드 거쳐 블루투스 모듈 HC-05 TXD 핀으로 와이어 연결.
위 배선 단계 올바르게 따르면 프로젝트 모습:
HC-05 모듈 연결된 아두이노 우노
소프트웨어 설정
프로젝트 올바른 작동 위해 데이터 수신 대기 및 블루투스 소스에서 수신 코드 작성. 결과 시리얼 포트로 컴퓨터 출력.
이 프로젝트 본질적으로 컴퓨터용 블루투스 수신기. 블루투스 터미널 스케치 작성 필요.
블루투스 터미널 스케치 1
1단계
Software Serial 라이브러리에서 몇 함수/클래스 사용. 아두이노가 블루투스로 통신 가능하게 함. 스케치에 포함 필수.
2단계
라이브러리 임포트 후 송수신용 시리얼 핀 지정. 위 예제서 핀 9를 수신 핀(rxPin), 핀 8을 송신 핀(txPin) 사용.
3단계
이전 단계 정의값 인자로 소프트웨어 시리얼(SoftwareSerial) 객체 인스턴스화. 위 예제서 객체명 BTSerial.
4단계
setup() 함수 정의. 입출력 핀 지정. HC-05 블루투스 모듈 기본 9600 보드로 아두이노와 통신. 수정 가능하지만 예제선 정확한 보드레이트 근접해 동일 유지.
5단계
메시지용 String 변수 2개 정의. while 루프 가진 아두이노 loop() 함수 생성. 아두이노와 블루투스 기기 간 통신 대기용. 데이터 수신 시 세미콜론(;) 라인 종결자로 출력.
블루투스 터미널 스케치 2
스케치 작성 후 아두이노 업로드. 폰과 아두이노 프로젝트 페어링. 모바일 폰이 블루투스 모듈과 통신 가능해짐.
블루투스 기기와 통신
버튼 스위치로 아두이노 켜면 블루투스 모듈서 깜빡이는 빨간불 확인. 페어링 모드 의미. 폰 블루투스 설정 가서 주변 기기 스캔.
사용 가능 기기 아래 모듈 관련 항목 보임. 선택해 폰과 페어링. 페어링 코드 묻는데 보통 '1234'. 페어링 완료 후 통신 시작 가능. 하지만 모바일 앱 필요.
폰 앱스토어 가서 시리얼 블루투스 터미널 앱 다운로드. 메시지 입력/전송 가능한 터미널 필요. 기기서 받은 알림도 볼 수 있어야 함.
사용 앱이 클래식 블루투스(Bluetooth Classic) 호환인지 확인. 아니면 프로젝트와 안 맞을 수 있음.
앱 다운로드 후 컴퓨터 돌아가 아두이노 IDE 열고 블루투스 스케치 시리얼 모니터 열기. 시리얼 모니터가 9600 보드 또는 앞서 지정한 보드레이트 사용 중인지 확인.
폰 블루투스 터미널 앱 돌아가 아두이노 블루투스 프로젝트 기기 선택. 연결되면 터미널 앱에 메시지 입력. 메시지 끝에 세미콜론(;) 꼭 붙여 메시지 끝 표시.
요약
위 단계 올바르게 따르면 아두이노 프로젝트 메시지 수신 알림 출력 수신. 메시지 컴퓨터 화면에도 아두이노 IDE 시리얼 터미널 통해 나타남. 초보자/입문자 적합한 간단 프로젝트. 기초 이해 후 더 복잡한 프로젝트 추진 가능. 예: 푸시버튼, 온보드 LED, DC 모터 추가. 이메일로 포스트 전송에도 활용. 이 가이드 도움되길 바랍니다. 읽어주셔서 감사합니다.