ESP32 마이크로파이썬 힘 센서

이 자습서에서는 ESP32와 MicroPython을 사용하여 힘 센서를 이용해 가해진 힘 또는 무게를 감지하는 방법을 보여줍니다. 우리는 다음을 배워봅니다:

ESP32 마이크로파이썬 및 힘 센서

준비물

1×ESP32 ESP-WROOM-32 개발 모듈 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×힘 센서 쿠팡 | 아마존
1×10kΩ 저항기 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

힘 센서에 대하여

힘 센서 핀 배치

힘 센서, 또는 포스 센싱 저항(FSR)이라고도 하는 이 센서는 압력이 가해질 때 저항값이 변합니다.

  • 저렴하고 사용하기 간단합니다.
  • 물리적 압력이나 압축을 감지하는 데 좋습니다.
  • 파운드 단위의 무게 측정에는 적합하지 않습니다.

전자 드럼, 모바일 폰, 휴대용 게임 기기 및 기타 다양한 소형 전자 장치에서 힘 센서를 찾을 수 있습니다.

핀아웃

힘 센서는 두 개의 전선만 가지고 있습니다. 저항처럼 작동하기 때문에 어떤 전선이 어디로 연결되는지는 상관없습니다. 둘 다 동일합니다.

작동 원리

힘 센서를 누르는 강도에 따라 저항이 변하는 특별한 종류의 노브로 상상해보세요. 세게 누를수록 노브의 양쪽 끝이 가까워져서 저항이 낮아지게 됩니다.

선연결

  • ESP32와 포스 센서를 브레드보드를 사용하여 연결하는 방법
ESP32 마이크로파이썬 강제 배선 다이어그램

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

ESP32와 힘 센서를 연결하는 방법

힘 센서를 위한 ESP32 MicroPython 코드

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-force-sensor */ from machine import ADC, Pin import time # Define the pin connected to the FSR force sensor FORCE_SENSOR_PIN = 36 # The ESP32 pin GPIO36 (ADC0) connected to the force sensor # Initialize ADC on the specified pin force_sensor = ADC(Pin(FORCE_SENSOR_PIN)) # Set the ADC width (resolution) to 12 bits force_sensor.width(ADC.WIDTH_12BIT) # Set the attenuation to 11 dB, allowing input range up to ~3.3V force_sensor.atten(ADC.ATTN_11DB) # Main loop while True: analog_reading = force_sensor.read() # Read the raw analog value (0-4095) # Determine the pressure description based on the analog reading if analog_reading < 409: # from 0 to 408 pressure_description = " -> no pressure" elif analog_reading < 819: # from 409 to 818 pressure_description = " -> light touch" elif analog_reading < 2047: # from 819 to 2046 pressure_description = " -> light squeeze" elif analog_reading < 3276: # from 2047 to 3275 pressure_description = " -> medium squeeze" else: # from 3276 to 4095 pressure_description = " -> big squeeze" # Print the entire message in one line print(f"Force sensor reading = {analog_reading}{pressure_description}") time.sleep(0.5) # Delay for 500 milliseconds

자세한 사용 방법

다음은 Thonny IDE를 사용하여 ESP32에서 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침입니다:

  • 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
  • ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
  • MicroPython과 함께 ESP32를 처음 사용하는 경우, 단계별 지침은 ESP32 마이크로파이썬 - 시작하기 가이드를 확인하세요.
  • 제공된 다이어그램에 따라 힘 센서를 ESP32에 연결하세요.
  • USB 케이블을 사용하여 ESP32 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Thonny IDE를 실행하세요.
  • Thonny IDE에서 도구 옵션을 선택하세요.
  • 인터프리터 탭에서 드롭다운 메뉴에서 MicroPython (ESP32)를 선택하세요.
  • 올바른 포트가 선택되어 있는지 확인하세요. Thonny IDE가 보통 자동으로 감지하지만, 필요한 경우 수동으로 선택(예: Windows의 COM12 또는 Linux의 /dev/ttyACM0)할 수 있습니다.
  • 제공된 MicroPython 코드를 복사하여 Thonny 편집기에 붙여넣으세요.
  • 코드를 ESP32에 저장하려면:
    • 저장 버튼을 클릭하거나 Ctrl+S를 누르세요.
    • 저장 대화 상자에서 MicroPython 장치를 선택하세요.
    • 파일 이름을 main.py로 지정하세요.
  • 녹색 실행 버튼을 클릭하거나 F5 키를 눌러 스크립트를 실행하세요.
  • 힘 센서를 누르세요.
  • Thonny 하단의 Shell에서 메시지를 확인하세요.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Force sensor reading = 0 -> no pressure Force sensor reading = 0 -> no pressure Force sensor reading = 529 -> light touch Force sensor reading = 588 -> light touch Force sensor reading = 1577 -> light squeeze Force sensor reading = 1685 -> light squeeze Force sensor reading = 2427 -> medium squeeze Force sensor reading = 3185 -> medium squeeze Force sensor reading = 3687 -> big squeeze Force sensor reading = 3950 -> big squeeze Force sensor reading = 0 -> no pressure Force sensor reading = 0 -> no pressure
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

센서의 값은 항상 정확하게 동일하지 않을 수 있다는 점을 명심하세요. 측정하려는 각 특정 힘 수준에 대해 센서의 설정을 조정하는 것이 좋습니다.

※ 주의:

이 자습서에서는 힘 센서에 연결된 ADC(아날로그-디지털 컨버터)에서 값을 읽기 위해 adc.read() 함수를 사용하는 방법을 설명합니다. ESP32의 ADC는 정밀도가 높지 않은 프로젝트에 적합합니다. 그러나 프로젝트에 정확한 측정이 필요하다면 다음 사항을 염두에 두십시오:

  • ESP32 ADC는 완벽하게 정확하지 않으며, 정밀한 결과를 얻기 위해 캘리브레이션이 필요할 수 있습니다. 각 ESP32 보드는 약간씩 다를 수 있으므로, 개별 보드마다 캘리브레이션이 필요합니다.
  • 캘리브레이션은 특히 초보자에게는 어려울 수 있으며, 원하는 정확한 결과를 항상 얻을 수 있는 것은 아닙니다.

고정밀도가 요구되는 프로젝트의 경우, ESP32와 함께 외부 ADC(예: ADS1115)를 사용하거나 보다 신뢰할 수 있는 ADC를 갖춘 Arduino를 고려하십시오. 만약 여전히 ESP32 ADC 캘리브레이션을 진행하고자 한다면, ESP32 ADC 캘리브레이션 드라이버를 참조하십시오.

동영상

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

관련 튜토리얼