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. 사용 방법:

  1. ESP32에 코드 업로드: 위의 코드를 ESP32에 업로드합니다.

  2. 블루투스 연결: 스마트폰에서 블루투스를 활성화하고, "ESP32-BT-LED"라는 이름의 장치와 페어링합니다.

  3. 명령어 전송: 블루투스 터미널 앱(예: "Bluetooth Terminal")을 사용하여 '1'을 전송하면 LED가 켜지고, '0'을 전송하면 LED가 꺼집니다.

참고: 이 코드는 블루투스 시리얼 통신을 통해 간단한 문자 명령을 수신하여 LED를 제어하는 방식입니다. 보다 복잡한 제어를 위해서는 추가적인 명령어 파싱 로직을 구현할 수 있습니다.

추가 자료: