코드 검색

ESP32 튜토리얼 18/55 - ESP32를 사용한 기울기 감지 | SunFounder의 ESP32 IoT 학습 키트

ESP32 튜토리얼 18/55 - ESP32를 사용한 기울기 감지 | SunFounder의 ESP32 IoT 학습 키트

이 튜토리얼에서는 SunFounder ESP32 마이크로컨트롤러를 사용하여 기울기 스위치로 기울기를 감지하는 간단한 프로젝트를 만들어 보겠습니다. 기울기 스위치가 활성화되면 LED가 꺼지고, 수직 위치에 있을 때는 LED가 켜집니다. 이 프로젝트는 기울기 센서 작업에 대한 훌륭한 입문서일 뿐만 아니라 다양한 로봇 공학 응용 프로그램의 기초가 됩니다. 자세한 시각적 가이드는 위에 링크된 비디오(비디오 00:00)를 확인하세요.

기울기 스위치

하드웨어 설명

이 프로젝트에 사용되는 주요 구성 요소는 ESP32 마이크로컨트롤러, 기울기 스위치, LED입니다. ESP32는 Wi-Fi와 Bluetooth가 내장된 강력한 마이크로컨트롤러로 IoT 응용 프로그램에 이상적입니다. 기울기 스위치는 캔 내부에 금속 볼이 들어 있는 간단한 장치입니다. 기울어지면 볼이 움직여 회로를 끊어 기울기 상태를 감지할 수 있습니다. LED는 스위치 상태에 따라 기울기 상태를 시각적으로 표시합니다. 이러한 구성 요소 외에도 전류 제한 및 풀다운 목적으로 저항을 사용합니다. LED에 연결된 220옴 저항은 LED가 과도한 전류를 소비하지 않고 안전하게 작동하도록 보장합니다. 10k옴 저항은 기울기 스위치의 풀다운 역할을 하여 스위치가 활성화되지 않았을 때 입력 핀이 알려진 상태를 읽도록 보장합니다.

데이터시트 세부 정보

제조업체 SunFounder
부품 번호 ESP32
로직/IO 전압 3.3V
공급 전압 5V
출력 전류(채널당) 12mA
피크 전류(채널당) 40mA
PWM 주파수 가이드 1kHz
입력 로직 임계값 0.8V(낮음), 2.0V(높음)
전압 강하 / RDS(on) / 포화 0.2V
열 제한 85°C
패키지 ESP32 모듈
참고 사항 / 변형 Wi-Fi 및 Bluetooth 기능 포함

 

  • LED 손상을 방지하려면 적절한 저항 값을 사용하세요.
  • 단락을 방지하려면 배선을 깔끔하게 유지하세요.
  • 기울기 스위치에서 안정적인 판독값을 보장하려면 풀다운 저항을 사용하세요.
  • 구성 요소 고장을 방지하려면 전원을 켜기 전에 연결을 테스트하세요.
  • 정확한 기능을 위해 기울기 스위치의 방향을 확인하세요.

배선 지침

ESP32-18_tile_wiring

구성 요소를 배선하려면 극성이 없는 기울기 스위치부터 시작하세요. 어느 방향으로든 연결할 수 있습니다. 기울기 스위치의 한 핀을 3.3V 공급 장치에 연결하고 다른 핀을 ESP32의 핀 14에 연결합니다. 스위치가 활성화되지 않았을 때 핀 14가 알려진 상태를 읽도록 하려면 같은 핀에서 접지로 10k옴 저항을 연결하세요. 다음으로 LED를 가져와 긴 다리(양극)가 220옴 저항에 연결된 상태로 브레드보드에 삽입합니다. 저항의 다른 쪽 끝을 ESP32의 핀 26에 연결합니다. LED의 짧은 다리(음극)는 접지에 연결해야 합니다. 마지막으로 ESP32의 접지 핀을 브레드보드의 접지 레일에 연결하고 3.3V 핀을 전원 레일에 연결합니다. 모든 연결을 다시 확인하여 단락이나 잘못된 판독값을 방지하세요. 이러한 단계를 따르면 프로그래밍할 준비가 된 기능적인 기울기 센서 설정이 완료됩니다.

코드 예제 및 설명

코드는 기울기 스위치와 LED의 핀 번호를 정의하는 것으로 시작합니다. 기울기 스위치는 핀 14에 연결되고 LED는 핀 26에 연결됩니다. 기울기 스위치의 상태는 변수 tiltState에 저장됩니다.


// 핀 번호 설정
const int tiltPin = 14;  // 기울기 스위치
const int ledPin = 26;   // LED

// 기울기 상태 저장 변수
int tiltState = 0;

이 발췌문은 핀 할당과 기울기 상태를 추적할 변수 선언을 보여줍니다. tiltPin은 스위치 상태를 읽기 위한 입력으로 설정됩니다. setup() 함수에서 직렬 통신이 초기화되고 기울기 스위치와 LED의 핀 모드가 설정됩니다. 이를 통해 ESP32가 기울기 스위치에서 입력을 읽고 LED를 적절히 제어할 수 있습니다.


void setup() {
  Serial.begin(115200);
  // 기울기 핀을 입력으로 초기화
  pinMode(tiltPin, INPUT);
  // LED 핀을 출력으로 초기화
  pinMode(ledPin, OUTPUT);
}

이 섹션은 ESP32가 효과적으로 통신하고 기울기 스위치 상태에 따라 출력을 제어할 수 있도록 환경을 설정하므로 중요합니다. loop() 함수는 기울기 스위치의 상태를 지속적으로 확인합니다. 스위치가 수직이면 LED가 켜지고 기울어지면 LED가 꺼집니다. 현재 상태는 디버깅을 위해 직렬 모니터에 출력됩니다.


void loop() {
  // 기울기 스위치 상태 읽기
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // 스위치가 수직인 경우
  if (tiltState == HIGH) {
    // LED 켜기
    digitalWrite(ledPin, HIGH);
  } else {
    // LED 끄기
    digitalWrite(ledPin, LOW);
  }
}

이 루프는 지속적으로 실행되어 기울기 스위치 상태와 해당 LED 제어를 실시간으로 모니터링할 수 있습니다. 출력은 직렬 모니터에서 관찰할 수 있어 기능을 쉽게 확인할 수 있습니다.

시연 / 기대 효과

모든 것이 올바르게 배선되고 코드가 업로드되면, 기울기 스위치가 똑바로 세워져 있을 때 LED가 켜지고 기울이면 꺼지는 것을 볼 수 있습니다. 기울기 상태와 LED 반응 사이의 이러한 직접적인 상관관계는 기울기 스위치의 기능을 효과적으로 보여줍니다. 흔한 실수로는 배선이 올바른지 확인하고, 저항이 단락을 방지하기 위해 적절히 배치되었는지 확인하는 것이 있습니다(비디오 12:00 지점).

비디오 타임스탬프

  • 00:00 시작
  • 1:44 프로젝트 소개
  • 2:49 문서화
  • 6:43 Arduino 배선 설명
  • 10:39 Arduino 코드 설명
  • 13:40 Arduino IDE에서 ESP32 보드 및 COM 포트 선택
  • 15:22 프로젝트 기울기 시연

이미지

ESP32-18_tile_wiring
ESP32-18_tile_wiring
tilt_switch
tilt_switch
ESP32-18_tile_schematic
ESP32-18_tile_schematic
817-ESP32 Tutorial 18/55- Arduino code for tilt sensor
언어: C++
// Set pin numbers
const int tiltPin = 14;  // Tilt Switch
const int ledPin = 26;   // LED

// Variable for storing the tilt status
int tiltState = 0;

void setup() {
  Serial.begin(115200);
  // Initialize the tilt pin as an input
  pinMode(tiltPin, INPUT);
  // Initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // Read the state of the tilt switch
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // If the switch is upright
  if (tiltState == HIGH) {
    // Turn LED on
    digitalWrite(ledPin, HIGH);

  } else {
    // Turn LED off
    digitalWrite(ledPin, LOW);
  }
}

자원 및 참고자료

파일📁

파일이 없습니다.