ESP32 - 초음파 센서 | ESP32 - Ultrasonic Sensor

이 튜토리얼은 ESP32와 초음파 센서 HC-SR04를 사용하여 객체까지의 거리를 측정하는 방법을 안내합니다.

준비물

1×ESP-WROOM-32 Dev Module 쿠팡 | Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×Ultrasonic Sensor Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) DC Power Jack 쿠팡 | Amazon
1×(Recommended) ESP32 Screw Terminal Adapter 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

초음파 센서에 대하여

초음파 센서 HC-SR04는 초음파를 이용하여 센서에서 물체까지의 거리를 측정하는 데 사용됩니다.

초음파 센서 핀배열

초음파 센서 HC-SR04에는 네 개의 핀이 포함됩니다:

  • VCC 핀: 이 핀을 VCC(5V)에 연결하세요.
  • GND 핀: 이 핀을 GND(0V)에 연결하세요.
  • TRIG 핀: 이 핀은 ESP32로부터 제어 펄스를 받습니다.
  • ECHO 핀: 이 핀은 측정된 거리에 해당하는 펄스를 ESP32에 생성합니다.
Ultrasonic Sensor Pinout
image source: diyables.io

초음파 센서가 작동하는 원리

초음파 센서 작동 방식 보기

초음파 센서와 ESP32 간의 배선도

USB 케이블로부터의 전원 공급이 있는 배선도

ESP32 Ultrasonic Sensor Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.

5v 어댑터 전원 공급 장치를 포함한 배선도

ESP32 Ultrasonic Sensor Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

초음파 센서 프로그래밍 방법

digitalWrite()delayMicroseconds() 함수를 사용하여 ESP32의 핀에서 10마이크로초 펄스를 생성합니다. 예를 들어, 핀 GPIO23:

digitalWrite(23, HIGH); delayMicroseconds(10); digitalWrite(23, LOW);

ESP32의 핀에서 pulseIn() 함수를 사용하여 펄스 지속 시간(μs)을 측정합니다. 예를 들어, 핀 GPIO22:

duration_us = pulseIn(22, HIGH);

거리 계산하기 (cm):

distance_cm = 0.017 * duration_us;

ESP32 코드

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-ultrasonic-sensor */ #define TRIG_PIN 23 // ESP32 핀 GPIO23이 초음파 센서의 TRIG 핀에 연결됨 #define ECHO_PIN 22 // ESP32 핀 GPIO22가 초음파 센서의 ECHO 핀에 연결됨 float duration_us, distance_cm; void setup() { // 시리얼 포트 시작 Serial.begin (9600); // 트리거 핀을 출력 모드로 설정 pinMode(TRIG_PIN, OUTPUT); // 에코 핀을 입력 모드로 설정 pinMode(ECHO_PIN, INPUT); } void loop() { // TRIG 핀에 10-마이크로초 펄스 생성 digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // ECHO 핀에서 펄스의 지속 시간 측정 duration_us = pulseIn(ECHO_PIN, HIGH); // 거리 계산 distance_cm = 0.017 * duration_us; // 시리얼 모니터에 값 출력 Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); delay(500); }

사용 방법

  • ESP32를 처음 사용하는 경우, Arduino IDE에서 ESP32 환경 설정하는 방법을 참조하세요.
  • 위의 코드를 복사하여 Arduino IDE에 붙여넣으세요.
  • Arduino IDE에서 Upload 버튼을 클릭하여 ESP32 보드에 코드를 컴파일하고 업로드하세요.
How to upload ESP32 code on Arduino IDE

아두이노 IDE에서 시리얼 모니터 열기

How to open serial monitor on Arduino IDE
  • 초음파 센서 앞으로 손을 움직이세요
  • 시리얼 모니터에서 센서로부터 손까지의 거리를 확인하세요
COM6
Send
distance: 19.4 cm distance: 17.6 cm distance: 16.9 cm distance: 27.4 cm distance: 26.9 cm distance: 24.3 cm distance: 25.6 cm distance: 23.1 cm
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

한 줄씩 코드 설명

위의 ESP32 코드에는 줄별 설명이 포함되어 있습니다. 코드의 주석을 읽어 주세요!

초음파 센서의 거리 측정에서 노이즈를 필터링하는 방법

초음파 센서의 거리 측정에서 노이즈를 필터링하는 방법을 보려면 초음파 센서의 거리 측정에서 노이즈를 필터링하는 방법을 참조하세요.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!