블루투스 통신의 개요
블루투스는 단거리 무선 통신 기술로, 두 장치 간에 데이터를 무선으로 송수신할 수 있습니다. 임베디드 시스템에서는 블루투스를 사용하여 스마트폰과 같은 장치와 데이터를 주고받거나, 여러 임베디드 장치 간의 통신을 구현할 수 있습니다. 오늘은 블루투스를 사용하는 방법을 학습하겠습니다.
1. 블루투스 모듈의 기본 개념
블루투스 통신을 위해 다양한 블루투스 모듈을 사용할 수 있습니다. 그 중 HC-05와 HC-06은 널리 사용되는 블루투스 모듈입니다.
- HC-05: 마스터 및 슬레이브 모드 모두 지원
- HC-06: 슬레이브 모드만 지원
2. 블루투스 모듈 설정
블루투스 모듈을 사용하려면 UART 인터페이스를 통해 설정하고 통신합니다. HC-05 모듈을 사용하여 기본적인 블루투스 통신을 구현해보겠습니다.
3. 블루투스 모듈 연결
하드웨어 연결
- HC-05 블루투스 모듈:
- VCC: 5V
- GND: GND
- TX: Arduino RX (디지털 핀 0)
- RX: Arduino TX (디지털 핀 1)
4. 블루투스 통신 사용 예제
다음 예제에서는 HC-05 블루투스 모듈을 사용하여 스마트폰과 데이터를 송수신하는 방법을 보여줍니다. 스마트폰 앱으로는 "Bluetooth Terminal"과 같은 블루투스 터미널 앱을 사용할 수 있습니다.
예제: 블루투스 데이터를 송수신
void setup() {
Serial.begin(9600); // 시리얼 통신 시작 (HC-05 모듈과 통신)
}
void loop() {
// 데이터 수신
if (Serial.available() > 0) {
char receivedChar = Serial.read(); // 수신된 데이터 읽기
Serial.print("Received: ");
Serial.println(receivedChar); // 수신된 데이터 출력
}
// 데이터 송신
Serial.println("Hello from Arduino!");
delay(1000); // 1초 대기
}
위 코드에서는 Serial.begin
함수를 사용하여 블루투스 모듈과의 시리얼 통신을 시작하고, Serial.read
함수를 사용하여 수신된 데이터를 읽고 Serial.println
함수를 사용하여 데이터를 송신합니다.
5. 블루투스를 활용한 프로젝트
블루투스를 사용하여 다양한 프로젝트를 구현할 수 있습니다. 예를 들어, 스마트폰을 통해 LED를 제어하는 프로젝트를 만들어보겠습니다.
하드웨어 연결
- HC-05 블루투스 모듈:
- VCC: 5V
- GND: GND
- TX: Arduino RX (디지털 핀 0)
- RX: Arduino TX (디지털 핀 1)
- LED 연결:
- LED의 + 단자: 디지털 핀 13
- LED의 - 단자: GND
예제: 스마트폰을 통해 LED 제어
다음 예제는 스마트폰을 통해 LED를 제어하는 방법을 보여줍니다.
const int ledPin = 13; // LED 핀
void setup() {
Serial.begin(9600); // 시리얼 통신 시작 (HC-05 모듈과 통신)
pinMode(ledPin, OUTPUT); // LED 핀을 출력 모드로 설정
}
void loop() {
if (Serial.available() > 0) {
char receivedChar = Serial.read(); // 수신된 데이터 읽기
Serial.print("Received: ");
Serial.println(receivedChar); // 수신된 데이터 출력
if (receivedChar == '1') {
digitalWrite(ledPin, HIGH); // LED 켜기
} else if (receivedChar == '0') {
digitalWrite(ledPin, LOW); // LED 끄기
}
}
}
위 코드에서는 스마트폰에서 '1'을 보내면 LED를 켜고, '0'을 보내면 LED를 끕니다. 이를 통해 스마트폰을 사용하여 Arduino의 LED를 제어할 수 있습니다.
마무리
오늘은 블루투스 통신을 사용하여 데이터를 송수신하는 방법을 학습했습니다. HC-05 블루투스 모듈을 사용하여 기본적인 블루투스 통신과 스마트폰을 통해 LED를 제어하는 예제를 통해 블루투스 통신의 기본 개념과 활용 방법을 익혔습니다. 다음 날에는 Wi-Fi 통신에 대해 더 깊이 알아보겠습니다.
질문이나 추가적인 피드백이 있으면 언제든지 댓글로 남겨 주세요.
Day 20 예고
다음 날은 "Wi-Fi 통신"에 대해 다룰 것입니다. Wi-Fi를 사용하여 데이터를 송수신하는 방법을 학습하고, 실습 예제를 통해 이해를 돕겠습니다.
'-----ETC----- > C++ 임베디드 시스템 프로그래밍 시리즈' 카테고리의 다른 글
[C++ 임베디드 시스템 프로그래밍] Day 21: MQTT 프로토콜 (0) | 2024.08.01 |
---|---|
[C++ 임베디드 시스템 프로그래밍] Day 22: 프로젝트: 스마트 홈 시스템 구축 (1) (0) | 2024.08.01 |
[C++ 임베디드 시스템 프로그래밍] Day 20: Wi-Fi 통신 (0) | 2024.08.01 |
[C++ 임베디드 시스템 프로그래밍 시리즈] Day 17: SPI 통신 (0) | 2024.08.01 |
[C++ 임베디드 시스템 프로그래밍 시리즈] Day 18: CAN 통신 (0) | 2024.08.01 |