ESP32 마이크로파이썬 초음파 센서
이 튜토리얼은 MicroPython을 사용하는 ESP32와 초음파 센서를 활용하여 물체까지의 거리를 측정하는 방법을 안내합니다. 자세히 말하면, 우리는 다음을 배울 것입니다:
- 초음파 센서를 ESP32에 연결하는 방법
- 초음파 센서를 사용하여 ESP32에서 거리를 측정하는 MicroPython 코드를 작성하는 방법
![ESP32 마이크로파이썬 초음파 센서](https://newbiely.kr/images/cover/esp32-ultrasonic-sensor-with-micropython.jpg)
준비물
1 | × | ESP32 ESP-WROOM-32 개발 모듈 | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
1 | × | 초음파 센서 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
초음파 센서에 관하여
HC-SR04 초음파 센서는 초음파를 사용하여 물체와의 거리를 측정합니다. 사람 귀에 들리지 않는 초음파를 발사하고, 물체에 부딪혀 돌아오는 반향을 수신합니다. 초음파가 돌아오는 데 걸리는 시간을 측정하여 센서는 물체까지의 거리를 계산합니다.
핀아웃
HC-SR04 초음파 센서는 네 개의 핀을 포함합니다.
- VCC 핀: 이 핀을 VCC(5 볼트)에 연결합니다.
- GND 핀: 이 핀을 GND(0 볼트)에 연결합니다.
- TRIG 핀: 제어 신호를 보내기 위해 이것을 ESP32에 연결합니다.
- ECHO 핀: 이 핀이 신호를 ESP32로 보내며, ESP32는 이 신호를 감지하여 거리를 측정합니다.
![초음파 센서 핀아웃](https://newbiely.kr/images/tutorial/ultrasonic-sensor-pinout.jpg)
image source: diyables.io
선연결
- USB 케이블로 전원 공급되는 브레드보드를 사용하여 ESP32와 초음파 센서를 연결하는 방법
![ESP32 마이크로파이썬 초음파 센서 배선도](https://newbiely.kr/images/tutorial/esp32-micropython-ultrasonic-sensor-wiring-diagram.jpg)
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- ESP32와 초음파 센서를 브레드보드를 사용하여 연결하는 방법 (Vin 핀을 통해 전원 공급)
![ESP32 마이크로파이썬 초음파 센서 배선도](https://newbiely.kr/images/tutorial/esp32-micropython-ultrasonic-sensor-schematic.jpg)
- USB 케이블로 전원 공급되는 스크류 터미널 블록 브레이크아웃 보드를 사용하여 ESP32와 초음파 센서를 연결하는 방법
![ESP32와 초음파 센서를 연결하는 방법](https://newbiely.kr/images/tutorial/how-to-connect-esp32-and-ultrasonic-sensor.jpg)
- ESP32와 초음파 센서를 스크류 터미널 블록 브레이크아웃 보드를 사용하여 연결하는 방법 (Vin 핀을 통해 전원 공급됨)
![ESP32와 초음파 센서 연결 방법](https://newbiely.kr/images/tutorial/how-to-wire-esp32-and-ultrasonic-sensor.jpg)
ESP32 마이크로파이썬 코드
/*
* 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-ultrasonic-sensor
*/
# example_usage.py
from DIYables_MicroPython_Ultrasonic_Sensor import UltrasonicSensor
import time
TRIG_PIN = 23 # The ESP32 pin GPIO23 connected to TRIG pin of the ultrasonic sensor
ECHO_PIN = 22 # The ESP32 pin GPIO22 connected to ECHO pin of the ultrasonic sensor
sensor = UltrasonicSensor(trig_pin=TRIG_PIN, echo_pin=ECHO_PIN)
sensor.set_detection_threshold(140) # Set detection threshold to 140 cm
sensor.enable_filter(num_samples=20) # Enable filtering and set number of samples to 20
while True:
sensor.loop() # Perform measurement cycle
distance = sensor.get_distance()
if not distance:
print('No object detected within the set distance')
else:
# Print the distance formatted to two decimal places using format()
print('Distance: {:.2f} cm'.format(distance))
time.sleep(0.1)
자세한 사용 방법
ESP32에서 Thonny IDE를 사용하여 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침은 다음과 같습니다:
- Thonny IDE가 컴퓨터에 설치되어 있는지 확인하세요.
- ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
- ESP32와 함께 MicroPython을 처음 사용한다면, 단계별 지침이 포함된 ESP32 마이크로파이썬 - 시작하기 가이드를 확인하세요.
- 위 다이어그램에 표시된 대로 ESP32 보드를 초음파 센서에 연결하세요.
- USB 케이블을 사용하여 ESP32 보드를 컴퓨터에 연결하세요.
- 컴퓨터에서 Thonny IDE를 실행하세요.
- Thonny IDE에서 Tools Options 메뉴로 이동하세요.
- Interpreter 탭에서 드롭다운 메뉴에서 MicroPython (ESP32)를 선택하세요.
- 올바른 포트가 선택되어 있는지 확인하세요. Thonny IDE는 보통 자동으로 탐지하지만, 때로는 수동으로 선택해야 할 수도 있습니다 (예: Windows의 경우 COM12, Linux의 경우 /dev/ttyACM0).
- Thonny IDE에서 Tools Manage packages 메뉴로 이동하세요.
- “DIYables-MicroPython-Ultrasonic-Sensor”를 검색한 후, DIYables에서 만든 초음파 센서 라이브러리를 찾으세요.
- DIYables-MicroPython-Ultrasonic-Sensor를 클릭한 후, Install 버튼을 클릭하여 초음파 센서 라이브러리를 설치하세요.
![ESP32 마이크로파이썬 초음파 센서 라이브러리](https://newbiely.kr/images/tutorial/esp32-micropython-ultrasonic-sensor-library.jpg)
- 제공된 MicroPython 코드를 복사하여 Thonny의 편집기에 붙여넣습니다.
- ESP32에 코드를 저장하려면:
• 저장 버튼을 클릭하거나 Ctrl+S를 누릅니다.
• 저장 대화상자에서 MicroPython device를 선택합니다.
• 파일 이름을 main.py로 지정합니다.
- 녹색 실행 버튼을 클릭하거나(F5를 누름) 스크립트를 실행합니다.
- 초음파 센서 앞에서 손을 흔듭니다.
- Thonny IDE 하단의 Shell에서 출력 메시지를 확인합니다.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
No object detected within the set distance
No object detected within the set distance
No object detected within the set distance
Distance: 8.90 cm
Distance: 6.34 cm
Distance: 5.70 cm
Distance: 5.83 cm
Distance: 4.66 cm
Distance: 6.18 cm
Distance: 8.00 cm
Distance: 13.64 cm
Distance: 15.64 cm
Distance: 17.21 cm
Distance: 18.41 cm
No object detected within the set distance
No object detected within the set distance
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
코드 설명
위에서 언급된 ESP32 MicroPython 코드의 주석에서 설명을 찾을 수 있습니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.
초음파 센서 응용
- 사고 방지
- 용량 보장
- 고도 측정
- 근접 감지