ESP32 마이크로파이썬 LDR 모듈
이 튜토리얼은 ESP32와 LDR 광센서 모듈을 사용하여 빛의 세기를 모니터링하고 측정하는 방법을 안내합니다. 자세히는 다음을 배우게 됩니다:
- LDR 광 센서 모듈을 ESP32에 연결하는 방법.
- LDR 광 센서의 디지털 신호로 ESP32에서 빛을 감지하기 위해 MicroPython 코드를 작성하는 방법.
- LDR 광 센서의 아날로그 신호를 사용해 ESP32로 빛의 세기를 측정하기 위한 MicroPython 코드를 작성하는 방법.

준비물
1 | × | ESP32 ESP-WROOM-32 개발 모듈 | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
1 | × | LDR 조도 센서 모듈 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
LDR 광 센서 모듈에 대하여
LDR 광센서 모듈은 빛을 감지하거나 주변 빛의 양을 측정하는 데 도움을 줍니다. 두 가지 옵션, 즉 디지털 출력과 아날로그 출력을 제공합니다.
핀아웃
LDR 광 센서 모듈에는 네 개의 핀이 있습니다:
- VCC 핀: 이 핀을 VCC (3.3V에서 5V)에 연결합니다.
- GND 핀: 이 핀을 GND (0V)에 연결합니다.
- DO 핀: 이 핀은 디지털 출력 핀입니다. 어둠에서는 HIGH, 빛에서는 LOW를 표시합니다. 포텐셔미터를 조절하여 빛과 어둠에 대한 민감도를 변경할 수 있습니다.
- AO 핀: 이 핀은 아날로그 출력 핀입니다. 밝은 조건에서는 출력 값이 감소하며, 어두운 조건에서는 출력 값이 증가합니다.

또한 두 개의 LED 조명이 특징입니다:
- 전원 표시 LED(PWR-LED)가 전원이 켜졌음을 나타내기 위해 불이 켜집니다.
- DO 표시 LED(DO-LED)는 DO 핀의 조명 상태를 표시합니다: 빛이 있을 때 불이 켜지고 어두울 때 꺼집니다.
작동 원리
DO 핀:
- 포텐셔미터가 빛 임계값을 조절합니다.
- 빛이 임계값보다 밝을 때, DO 핀은 LOW (DO-LED 꺼짐)입니다.
- 빛이 임계값보다 어두울 때, DO 핀은 HIGH (DO-LED 켜짐)입니다.
AO 핀:
- AO 핀의 읽기는 빛의 강도에 따라 달라집니다.
- 낮은 값은 더 많은 빛을 의미합니다.
- 높은 값은 더 어두운 조건을 의미합니다.
- 포텐셔미터는 AO 핀 값에 영향을 주지 않습니다.
이 방법은 포텐셔미터를 사용하여 DO 핀의 감도를 조정하는 동시에 AO 핀으로부터 정확한 광 측정값을 얻을 수 있도록 합니다.
선연결
빛 센서 모듈은 개별적으로 또는 함께 사용할 수 있는 두 개의 출력인 DO와 AO를 제공합니다.
- 브레드보드를 사용하여 ESP32와 LDR 모듈 연결하는 방법

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- ESP32와 LDR 모듈을 스크류 터미널 블록 브레이크아웃 보드를 사용하여 연결하는 방법

ESP32 MicroPython 코드 - DO 핀에서 값 읽기
자세한 사용 방법
ESP32에서 Thonny IDE를 사용하여 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침은 다음과 같습니다:
- 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
- ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
- MicroPython이 탑재된 ESP32를 처음 사용한다면, 단계별 지침을 위해 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를 눌러 스크립트를 실행하세요.
- 손이나 다른 물체를 사용하여 LDR 센서 모듈의 빛을 차단하고 해제해보세요.
- Thonny 하단의 쉘에 표시되는 메시지를 확인하세요.
LED가 항상 켜지거나 꺼져 있다면, 포텐셔미터를 사용하여 빛 민감도를 조정하십시오. 이제 빛 감지에 따라 LED, 조명 스위치 또는 서보 모터를 제어할 수 있도록 코드를 수정할 수 있습니다. 자세한 지침은 이 문서 끝에 있는 튜토리얼을 참조하십시오.
※ 주의:
이 튜토리얼에서는 LDR 모듈에 연결된 ADC(아날로그-디지털 변환기)에서 값을 읽기 위해 adc.read() 함수를 사용하는 방법을 보여줍니다. ESP32의 ADC는 정밀도가 높지 않은 프로젝트에 적합합니다. 그러나 프로젝트에 정확한 측정이 필요할 경우 다음 사항들을 유념하시기 바랍니다:
- ESP32 ADC는 완벽하게 정확하지 않아 정밀한 결과를 위해 보정(calibration)이 필요할 수 있습니다. 각 ESP32 보드는 약간씩 차이가 있을 수 있으므로 개별 보드마다 보정이 필요합니다.
- 보정은 초보자에게 특히 어려울 수 있으며 항상 원하는 정확한 결과를 제공하지 않을 수 있습니다.
정밀도가 높은 프로젝트를 위해서는 ESP32와 함께 외부 ADC(예: ADS1115)를 사용하거나 더 신뢰할 수 있는 ADC를 제공하는 Arduino를 고려해 보십시오. 그래도 ESP32 ADC를 보정하고자 한다면 ESP32 ADC Calibration Driver를 참조하십시오.
ESP32 MicroPython 코드 - AO 핀에서 값 읽기
자세한 사용 방법
다음 지침을 하나씩 따라주세요:
- 위의 코드를 복사하여 Thonny IDE에서 엽니다.
- 녹색 Run 버튼을 클릭하거나 F5 키를 눌러 스크립트를 실행합니다. 스크립트가 실행될 것입니다.
- 손이나 물체를 사용하여 LDR 센서 모듈의 빛을 차단하거나 해제합니다.
- Thonny 하단의 Shell에서 메시지를 확인합니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.