5주차_참고 : LED ON OFF - dhryu60/SmartDevice_2025-1 GitHub Wiki
ESP32의 블루투스 시리얼 통신을 활용하여 LED를 원격으로 제어하는 방법 이를 통해 스마트폰이나 다른 블루투스 지원 기기에서 명령을 보내 LED를 켜거나 끌 수 있습니다.
1. 하드웨어 준비:
- ESP32 개발 보드
- LED 1개
- 330Ω 저항 1개
- 브레드보드 및 점퍼 와이어
2. 회로 연결:
- **LED의 양극(긴 다리)**을 ESP32의 GPIO 22번 핀에 연결합니다.
- **LED의 음극(짧은 다리)**을 330Ω 저항을 통해 **GND(접지)**에 연결합니다.
3. 소프트웨어 구현:
아래의 코드는 블루투스 시리얼 통신을 통해 수신한 명령에 따라 LED를 제어합니다.
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
const int ledPin = 22; // LED가 연결된 핀 번호
void setup() {
Serial.begin(115200);
SerialBT.begin("ESP32-BT-LED"); // 블루투스 장치 이름 설정
Serial.println("Bluetooth Started! Pair with ESP32-BT-LED");
pinMode(ledPin, OUTPUT); // LED 핀을 출력으로 설정
digitalWrite(ledPin, LOW); // 초기 상태를 OFF로 설정
}
void loop() {
if (SerialBT.available()) {
char incoming = SerialBT.read();
Serial.write(incoming); // 수신된 데이터를 시리얼 모니터에 출력
if (incoming == '1') {
digitalWrite(ledPin, HIGH); // '1'을 수신하면 LED ON
Serial.println("LED ON");
} else if (incoming == '0') {
digitalWrite(ledPin, LOW); // '0'을 수신하면 LED OFF
Serial.println("LED OFF");
}
}
}
4. 코드 설명:
-
블루투스 초기화:
SerialBT.begin("ESP32-BT-LED");
를 통해 블루투스 장치의 이름을 "ESP32-BT-LED"로 설정하고, 블루투스 통신을 시작합니다. -
LED 핀 설정:
pinMode(ledPin, OUTPUT);
를 사용하여 LED가 연결된 핀을 출력 모드로 설정하고, 초기 상태를 LOW(꺼짐)으로 설정합니다. -
블루투스 데이터 수신 및 처리:
SerialBT.available()
를 통해 블루투스 시리얼로부터 데이터가 수신되었는지 확인하고, 수신된 데이터가 '1'이면 LED를 켜고, '0'이면 LED를 끕니다.
5. 사용 방법:
-
ESP32에 코드 업로드: 위의 코드를 ESP32에 업로드합니다.
-
블루투스 연결: 스마트폰에서 블루투스를 활성화하고, "ESP32-BT-LED"라는 이름의 장치와 페어링합니다.
-
명령어 전송: 블루투스 터미널 앱(예: "Bluetooth Terminal")을 사용하여 '1'을 전송하면 LED가 켜지고, '0'을 전송하면 LED가 꺼집니다.
참고: 이 코드는 블루투스 시리얼 통신을 통해 간단한 문자 명령을 수신하여 LED를 제어하는 방식입니다. 보다 복잡한 제어를 위해서는 추가적인 명령어 파싱 로직을 구현할 수 있습니다.
추가 자료:
-
ESP32와 블루투스를 활용한 LED 제어에 대한 자세한 내용 [창의와교육의 매뉴얼](https://happycreative.co.kr/manual/detail.php?idx=51)
-
또한, 아래의 동영상은 ESP32와 블루투스를 활용한 LED 제어 방법을 시각적으로 설명하고 있습니다: https://youtu.be/xy40LPu3fbc...