ESP32 마이크로파이썬 조도 센서

이 가이드는 ESP32 마이크로컨트롤러와 MicroPython을 사용하여 LDR 광 센서(포토레지스터, 광의존 저항, 포토셀로도 알려짐)를 사용하는 방법을 알려줍니다. 다음 항목들을 다룹니다:

ESP32 마이크로파이썬 빛 센서

빛 센서가 포함된 모듈을 찾고 있다면, 튜토리얼 ESP32 마이크로파이썬 - LDR 모듈을 확인하세요.

준비물

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용 전원 분배기 쿠팡 | 아마존
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

빛 센서에 대하여

이 가이드는 광의존 저항기(LDR)라고도 알려진 포토레지스터를 사용하여 주변 빛의 밝기를 측정하는 방법을 설명합니다.

핀아웃

포토레지스터에는 두 개의 핀이 있습니다. 저항기이므로 이 핀들을 구별할 필요가 없습니다. 이 핀들은 동일합니다.

광 센서 핀아웃

작동 원리

포토레지스터는 빛에 반응하여 저항이 변하는 독특한 저항기입니다. 밝은 빛에서는 저항이 감소하고, 어둠 또는 빛이 없을 때에는 증가합니다. 포토레지스터의 저항을 측정함으로써 주변 빛의 밝기나 어둠을 파악할 수 있어, 다양한 환경에서 빛의 수준을 측정하는 데 유용합니다.

빛 센서 작동 원리

WARNING

빛 센서 값은 빛의 밝기를 일반적으로 나타내지만, 이는 정밀한 측정이 아닙니다. 정확한 측정이 필요하지 않은 경우에 사용하세요.

선연결

ESP32와 광센서 연결 방법

ESP32 마이크로파이썬 조도 센서 배선도

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

ESP32 마이크로파이썬 코드

이 코드는 포토셀을 사용하여 빛의 양을 확인하고, 빛이 얼마나 밝은지 설명합니다.

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-light-sensor */ from machine import ADC, Pin import time # Initialize ADC (Analog to Digital Converter) adc = ADC(Pin(36)) # The ESP32 pin GPIO36 (ADC0) connected to the light sensor # Set the ADC width (resolution) to 12 bits adc.width(ADC.WIDTH_12BIT) # Set the attenuation to 11 dB, allowing input range up to ~3.3V adc.atten(ADC.ATTN_11DB) while True: # Read the input on analog pin ADC0 (value between 0 and 4095) value = adc.read() # Read the 12-bit ADC value directly description = "" # We'll have a few thresholds, qualitatively determined if value < 41: description = "Dark" elif value < 819: description = "Dim" elif value < 2048: description = "Light" elif value < 3277: description = "Bright" else: description = "Very bright" print(f"Analog reading: {value} - {description}") time.sleep(0.5) # delay for 500 milliseconds

자세한 사용 방법

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

  • 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
  • ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
  • ESP32와 MicroPython을 처음 사용한다면, 단계별 지침을 제공하는 ESP32 마이크로파이썬 - 시작하기를 확인하세요.
  • 제공된 다이어그램에 따라 ESP32에 LDR 광 센서를 연결하세요.
  • 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 Analog reading: 652 - Dim Analog reading: 608 - Dim Analog reading: 748 - Dim Analog reading: 752 - Dim Analog reading: 3908 - Very bright Analog reading: 3952 - Very bright Analog reading: 3996 - Very bright
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 Calibration Driver를 참조하십시오.