ESP32 C3 Super Mini 초음파 센서

이 튜토리얼은 ESP32 C3 Super Mini를 HC-SR04 초음파 센서와 함께 사용하여 거리를 정확하게 측정하는 방법을 보여줍니다. Arduino 프로젝트에 거리 감지 기능을 추가하려는 초보자에게 완벽합니다!

이 튜토리얼에서 배울 내용:

ESP32 C3 Super Mini - 초음파 센서

필요한 하드웨어

1×ESP32 C3 Super Mini 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×초음파 센서 쿠팡 | 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(옵션) DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

초음파 센서 정보

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

주요 사양 및 특징:

  • 작동 전압: 5V DC
  • 측정 범위: 2cm ~ 400cm(0.8인치 ~ 157인치)
  • 정확도: 최대 3mm
  • 측정 각도: 15도
  • 트리거 입력: 10µS TTL 펄스
  • 비접촉 측정: 물리적 접촉 없이 물체 감지 안전
  • 초보자에게 완벽: 간단한 Arduino 코드로 쉽게 연결 및 프로그래밍
  • 저렴하고 안정적: 거리 감지 기초 학습에 적합

초음파 센서 핀아웃

HC-SR04 초음파 센서는 연결을 위한 4개의 핀을 가지고 있습니다:

  • VCC: 5V 전원 공급에 연결
  • GND: 그라운드(0V)에 연결
  • TRIG: ESP32 C3 Super Mini에서 측정을 시작하는 트리거 펄스 수신
  • ECHO: 측정 거리에 비례하는 지속 시간의 펄스를 ESP32로 다시 전송
초음파 센서 사용법 핀아웃
image source: diyables.io

초음파 센서 작동 방식

초음파 센서 작동 방식 참고

ESP32 C3 Super Mini와 초음파 센서 간의 배선 다이어그램

HC-SR04 초음파 센서를 ESP32 C3 Super Mini 보드에 연결하는 방법은 다음과 같습니다:

  • 참고: HC-SR04는 5V 전원이 필요하며 USB 또는 Vin 핀을 통한 외부 전원 공급에서 공급할 수 있습니다.
ESP32 C3 Super Mini 초음파 센서 연결 배선도

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

Ultrasonic Sensor Pin ESP32 C3 Super Mini Pin
VCC 5V
GND GND
TRIG D1
ECHO D10

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

ESP32 C3 Super Mini에서 HC-SR04 초음파 센서를 프로그래밍하려면 3가지 간단한 단계가 필요합니다:

단계 1: 트리거 펄스 전송

  • DigitalWrite() 및 delayMicroseconds() 함수를 사용하여 TRIG 핀에 10마이크로초 펄스 생성
  • D1 핀의 예:
digitalWrite(D1, HIGH); delayMicroseconds(10); digitalWrite(D1, LOW);

단계 2: 에코 펄스 지속 시간 측정

  • PulseIn() 함수를 사용하여 ECHO 핀의 펄스 지속 시간 읽기
  • 펄스 지속 시간은 소리가 물체까지 여행하고 다시 돌아오는 시간을 나타냅니다
  • D10 핀의 예:
duration_us = pulseIn(D10, HIGH);

단계 3: 거리 계산

  • 펄스 지속 시간을 센티미터 거리로 변환
  • 공식: 거리 = 0.017 × 지속 시간(음파는 ~340m/s로 이동하며 왕복이므로 2로 나눔)
distance_cm = 0.017 * duration_us;

ESP32 C3 Super Mini 코드

다음 코드는 HC-SR04 초음파 센서에서 거리 측정값을 읽고 시리얼 모니터에 표시하는 방법을 시연합니다:

이 코드가 하는 일:

  • ESP32 C3 Super Mini의 TRIG 및 ECHO 핀 초기화
  • 500밀리초마다 초음파 펄스 전송
  • 에코 반환 시간 측정
  • 센티미터 단위로 거리 계산
  • 시리얼 모니터에 거리 판독값 표시
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-ultrasonic-sensor */ #define TRIG_PIN 1 // The ESP32 C3 SuperMini pin connected to Ultrasonic Sensor's TRIG pin #define ECHO_PIN 10 // The ESP32 C3 SuperMini pin connected to Ultrasonic Sensor's ECHO pin float duration_us, distance_cm; void setup() { // begin serial port Serial.begin (115200); // Configure the trigger pin to output mode pinMode(TRIG_PIN, OUTPUT); // Configure the echo pin to input mode pinMode(ECHO_PIN, INPUT); } void loop() { // Produce a 10-microsecond pulse to the TRIG pin. digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // Measure the pulse duration from the ECHO pin duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance distance_cm = 0.017 * duration_us; // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); delay(500); }

빠른 단계

  • ESP32 C3 Mini를 처음 사용하나요? 개발 환경을 설정하기 위해 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하세요.
  • Arduino IDE 설치: 이것이 처음 ESP32 C3 Super Mini를 사용한다면 Arduino IDE에서 ESP32 C3 Super Mini를 위한 환경을 설정하는 방법을 참조하세요.
  • 코드 복사: 위의 코드를 복사하여 Arduino IDE에 붙여넣으세요.
  • 보드 연결: USB 케이블을 통해 ESP32 C3 Super Mini를 컴퓨터에 연결하세요.
  • 보드 및 포트 선택: Arduino IDE에서 올바른 보드 및 COM 포트를 선택하세요.
  • 코드 업로드: 업로드 버튼을 클릭하여 코드를 ESP32 C3 Super Mini에 컴파일하고 업로드하세요.
how to upload ESP32 C3 Super Mini code on 아두이노 ide
  • 시리얼 모니터 열기: 시리얼 모니터 아이콘을 클릭하여 거리 판독값을 봅니다.
how to open serial monitor on 아두이노 ide
  • 보드레이트 설정: 시리얼 모니터가 115200 보드로 설정되어 있는지 확인하세요.
  • 센서 테스트: 초음파 센서 앞에서 다양한 거리에서 손을 움직이세요.
  • 결과 보기: 시리얼 모니터에서 거리 측정값을 실시간으로 업데이트되는 것을 봅니다.
  • 프로 팁: 정확한 판독값을 위해 센서에서 최소 2cm 떨어진 물체를 유지하고, 음파를 흡수하는 천과 같은 부드러운 표면을 피하세요.

줄별 코드 설명

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

시리얼 모니터 출력

HC-SR04 초음파 센서 앞에서 손을 움직이면 다음과 같은 거리 판독값이 표시됩니다:

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
distance: 19.4 cm distance: 17.6 cm distance: 16.9 cm distance: 14.2 cm distance: 12.8 cm distance: 15.3 cm distance: 18.7 cm distance: 23.5 cm distance: 27.4 cm distance: 26.9 cm distance: 24.3 cm distance: 25.6 cm distance: 23.1 cm distance: 20.8 cm
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

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

초음파 센서는 환경 요인으로 인해 때때로 시끄럽거나 일관되지 않은 판독값을 생성할 수 있습니다.

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

필터링이 중요한 이유:

  • 환경 간섭(온도, 습도)
  • 물체 표면 질감 및 각도
  • 전기 노이즈
  • 인근 물체의 다중 반사

응용 프로그램 및 프로젝트 아이디어

ESP32 C3 Super Mini와 HC-SR04 초음파 센서를 사용하는 실용적인 방법:

  • 주차 보조: 자동차 또는 차고 주차를 위한 거리 경보 시스템 구축
  • 자동 쓰레기통: 손 근접을 감지하는 터치리스 뚜껑 오프너 만들기
  • 수위 모니터: 접촉 없이 탱크의 수위 측정
  • 장애물 회피 로봇: 로봇이 물체를 감지하고 회피하도록 활성화
  • 보안 경보: 물체가 특정 영역에 진입할 때 경고 트리거
  • 높이 측정 도구: 디지털 높이 측정 장치 구축
  • 스마트 초인종: 누군가 문에 접근할 때 감지

비디오 튜토리얼

이 프로젝트에 대한 시각적 안내는 아래 비디오를 보세요.

스스로 도전해보세요

초음파 센서 기술을 다음 단계로 가져갈 준비가 되셨나요? 다음 과제를 시도해보세요:

  • 쉬움: 센티미터 대신 인치로 거리를 표시하도록 코드 수정
  • 쉬움: 물체가 10cm 이내에 있을 때 켜지는 LED 추가
  • 중간: 부저를 사용하여 다양한 비프 패턴의 거리 기반 경보 시스템 만들기
  • 중간: 시리얼 모니터 대신 LCD 화면에 거리 표시
  • 고급: 2D 공간에서 물체 위치를 감지하는 다중 센서 배열 구축
  • 고급: 중앙값 필터를 구현하여 시끄러운 판독값을 부드럽게 하고 정확도 향상

관련 튜토리얼