ESP32 C3 Super Mini 라이트 센서

라이트 센서(포토레지스터/LDR)를 ESP32 C3 Super Mini에 연결하고 Arduino 프로젝트에서 조명 수준을 읽는 방법을 알아봅시다. 이 초보자 친화적인 가이드는 배선부터 코드까지 모든 것을 다룹니다.

이 튜토리얼에서 배우게 될 내용:

ESP32 C3 Super Mini - 라이트 센서

필요한 하드웨어

1×ESP32 C3 Super Mini 아마존
1×USB 타입-C 케이블 쿠팡 | 아마존
1×라이트 센서 아마존
1×10 kΩ 저항 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼 와이어 쿠팡 | 아마존
1×(선택 사항) DC 파워 잭 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

구성 요소 옵션:

LDR 라이트 센서는 매우 저렴하지만 배선을 위해 저항이 필요하므로 설정이 더 복잡할 수 있습니다. 배선을 단순화하려면 LDR 라이트 센서 모듈을 대안으로 사용할 수 있습니다.

라이트 센서에 대해

라이트 센서(포토레지스터)는 표면에 닿는 조명의 양에 따라 저항이 변하는 아날로그 구성 요소입니다.

주요 특성:

  • 포토셀, 조명 의존 저항(LDR)이라고도 불림
  • 주변 조명의 존재와 밝기 감지
  • 더 많은 조명에 노출되면 저항 감소
  • 어두운 조건에서 저항 증가
  • 초보자를 위해 저렴하고 사용하기 쉬움
  • 자동 조명 프로젝트 및 조명 수준 모니터링에 완벽함

기술 사양:

  • 아날로그 출력(가변 저항)
  • 일반적인 저항 범위: 200Ω (밝은 조명)에서 10MΩ (어둠)
  • 응답 시간: 20-30ms
  • 분압기 회로와 함께 작동

라이트 센서 핀아웃

포토레지스터는 극성이 없는 두 개의 핀을 가집니다.

  • 핀 1: 분압기 측 중 하나에 연결
  • 핀 2: 분압기 측 중 하나에 연결

참고: LED 또는 다이오드와 달리 라이트 센서 핀은 교환 가능합니다. 극성을 걱정할 필요가 없습니다.

라이트 센서 핀아웃

라이트 센서 작동 방식

포토레지스터의 저항은 조명 강도에 따라 역으로 변합니다. 더 많은 조명은 더 적은 저항을 의미합니다.

작동 원리:

  • 밝은 조명 → 낮은 저항 → ESP32 아날로그 핀의 높은 전압
  • 약한 조명 → 높은 저항 → ESP32 아날로그 핀의 낮은 전압
  • ESP32는 전압을 읽고 디지털 값(0-4095)으로 변환
  • 더 높은 아날로그 값은 더 밝은 조건을 나타냄
라이트 센서 작동 방식

WARNING

포토레지스터로 측정한 값은 조명 강도의 대략적인 경향을 반영하며 정확한 광속을 나타내지 않습니다. 따라서 포토레지스터는 높은 정확도가 필요한 응용 프로그램에 사용하지 않아야 합니다. 일부 응용 프로그램의 경우 보정도 필요합니다.

ESP32 C3 Super Mini - 라이트 센서

ESP32 C3 Super Mini는 아날로그 입력 핀을 통해 라이트 센서 값을 읽습니다.

작동 방식:

  • ESP32 아날로그 핀은 전압(0V ~ 3.3V)을 정수 값(0 ~ 4095)으로 변환
  • 이 디지털 값을 ADC(아날로그-디지털 변환기) 값이라고 함
  • analogRead() 함수를 사용하여 센서 값을 읽음
  • 더 높은 ADC 값 = 더 밝은 조명 조건
  • 더 낮은 ADC 값 = 더 어두운 조건

ESP32 C3 Super Mini와 라이트 센서 사이의 배선도

10kΩ 저항을 사용한 분압기 회로로 라이트 센서를 ESP32 C3 Super Mini에 연결합니다.

안전 주의:

  • 참고: 전원을 켜기 전에 연결을 다시 한 번 확인하세요
  • 참고: 올바른 분압을 위해 저항이 10kΩ인지 확인하세요
ESP32 C3 Super Mini 라이트 센서 배선도

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

배선 연결:

라이트 센서 핀 1 3.3V
라이트 센서 핀 2 GPIO4 (아날로그 핀) + 10kΩ 저항
10kΩ 저항 (다른 끝) GND

ESP32 C3 Super Mini 코드

ESP32 C3 Super Mini를 프로그래밍하여 라이트 센서 값을 읽고 밝기 수준을 결정하는 방법은 다음과 같습니다.

이 코드가 하는 역할:

  • GPIO4의 라이트 센서에서 아날로그 값 읽기
  • ADC 값을 밝기 범주로 변환
  • Serial Monitor에 조명 수준 표시
  • 500밀리초마다 판독값 업데이트
  • 조명을 어둡음, 약함, 중간, 매우 밝음으로 분류
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-light-sensor */ #define LIGHT_SENSOR_PIN A0 // The ESP32 C3 SuperMini pin connect to the light sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(115200); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { // reads the input on analog pin (value between 0 and 4095) int analog_value = analogRead(LIGHT_SENSOR_PIN); Serial.print("Analog Value = "); Serial.print(analog_value); // The raw analog reading // We'll have a few threshholds, qualitatively determined if (analog_value < 40) { Serial.println(" => Dark"); } else if (analog_value < 800) { Serial.println(" => Dim"); } else if (analog_value < 2000) { Serial.println(" => Light"); } else if (analog_value < 3200) { Serial.println(" => Bright"); } else { Serial.println(" => Very bright"); } delay(500); }

빠른 단계

  • ESP32 C3 Mini를 처음 사용하시나요? 개발 환경을 설정하려면 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하세요.
  • 코드 복사: 위의 코드를 복사하여 Arduino IDE에 붙여넣으세요.
  • 보드 선택: Tools > Board에서 ESP32 C3 Super Mini가 선택되었는지 확인하세요.
  • ESP32 연결: USB 타입-C 케이블을 통해 ESP32 C3 Super Mini를 컴퓨터에 연결하세요.
  • 코드 업로드: Arduino IDE의 Upload 버튼을 클릭하세요.
  • Serial Monitor 열기: Serial Monitor 아이콘을 클릭하거나 Ctrl+Shift+M을 누르세요.
  • 보드 레이트 설정: Serial Monitor를 115200 보드로 설정하세요.
  • 센서 테스트: 라이트 센서를 손으로 덮었다가 밝은 조명에 노출하세요.
  • 결과 관찰: 아날로그 값과 조명 수준 설명이 실시간으로 변경되는 것을 확인하세요.
  • 전문가 팁: 임계값(1000, 2000, 3000)은 주변 조명 조건에 따라 조정하여 더 정확한 판독값을 얻을 수 있습니다.
아두이노 ide에서 serial monitor를 여는 방법

예상 Serial Monitor 출력:

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
Analog Value = 3845 => 매우 밝음 Analog Value = 3921 => 매우 밝음 Analog Value = 3887 => 매우 밝음 Analog Value = 2456 => 중간 Analog Value = 2398 => 중간 Analog Value = 892 => 약함 Analog Value = 845 => 약함 Analog Value = 312 => 어둡음 Analog Value = 289 => 어둡음
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

라이트 센서 및 LED

이제 어두워지면 LED를 켜는 자동 조명 시스템을 만들어 봅시다.

배선도

회로에 LED를 추가하여 조명 활성화 스위치를 만듭니다.

ESP32 C3 Super Mini 라이트 센서 LED 배선도

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

추가 연결:

LED 양극 (긴 다리) GPIO8 (220Ω 저항을 통해)
LED 음극 (짧은 다리) GND

ESP32 C3 Super Mini 코드

이 코드는 주변 조명 수준을 기반으로 LED를 자동으로 제어합니다. 자동 야간 조명에 완벽합니다.

이 코드가 하는 역할:

  • 라이트 센서 값을 지속적으로 읽음
  • 판독값을 임계값(1000)과 비교
  • 어두울 때 LED ON (값 < 1000)
  • 밝을 때 LED OFF (값 ≥ 1000)
  • 자동 조명 시스템 생성
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-light-sensor */ #define LIGHT_SENSOR_PIN A0 // The ESP32 C3 SuperMini pin connect to the light sensor #define LED_PIN 2 // The Arduino NanO ESP32 pin connected to LED #define ANALOG_THRESHOLD 500 void setup() { // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(LED_PIN, OUTPUT); // set ESP32 pin to output mode } void loop() { int analog_value = analogRead(LIGHT_SENSOR_PIN); // read the value on analog pin if (analog_value < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }

※ 주의:

이 튜토리얼은 센서 또는 구성 요소에 연결된 ADC(아날로그-디지털 변환기)에서 값을 읽기 위해 analogRead() 함수를 사용합니다. ESP32 C3 Super Mini의 ADC는 높은 정확도가 필요하지 않은 프로젝트에 적합합니다. 그러나 정확한 측정이 필요한 프로젝트의 경우 다음을 염두에 두세요:

  • ESP32 C3 Super Mini의 ADC는 완벽하게 정확하지 않으며 올바른 결과를 위해 보정이 필요할 수 있습니다. 각 ESP32 C3 Super Mini 보드는 약간씩 다를 수 있으므로 각 개별 보드에 대해 보정이 필요합니다.
  • 보정은 특히 초보자의 경우 어려울 수 있으며 항상 원하는 정확한 결과를 얻지 못할 수도 있습니다.

높은 정밀도가 필요한 프로젝트의 경우 ESP32 C3 Super Mini에서 외부 ADC(예: ADS1115)를 사용하거나 더 안정적인 ADC를 가진 Arduino Uno R4 WiFi와 같은 다른 Arduino를 사용하는 것을 고려하세요. ESP32 C3 Super Mini의 ADC를 보정하고 싶으시다면 ESP32 ADC Calibration Driver를 참조하세요.

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

이제 ESP32 C3 Super Mini에서 라이트 센서를 사용하는 방법을 알았으니 몇 가지 실용적인 프로젝트 아이디어가 있습니다:

  • 자동 야간 조명: 방이 어두워지면 LED가 자동으로 켜짐
  • 스마트 식물 모니터: 실내 식물의 햇빛 노출 추적
  • 보안 시스템: 방의 조명이 켜졌을 때/꺼졌을 때 감지
  • 기상 스테이션: 주간 시간 및 구름 덮개 모니터링
  • 에너지 절약: 햇빛에 따라 창 블라인드 자동 제어
  • 사진 측광기: 카메라 설정용 주변 조명 측정

비디오 튜토리얼

아래 비디오를 시청하여 이 프로젝트의 시각적 안내를 받으세요.

직접 도전하기

다음 도전으로 라이트 센서 기술을 다음 단계로 끌어올리세요:

  • 쉬움: 조명 수준이 밝음에서 어둠으로 변할 때 울리는 부저 추가
  • 쉬움: 조명이 감지될 때 "Good morning!"을 표시하고 어둡을 때 "Good night!" 표시
  • 중간: 1분마다 조명 수준을 기록하는 데이터 로거를 SD 카드에 생성
  • 중간: 일출 및 일몰을 기반으로 열기/닫기하는 스마트 커튼 제어기 구축
  • 고급: 여러 센서에서 조명 강도를 모니터링하는 태양판 추적기 구현
  • 고급: 조명 기반 급수 및 환기 제어가 포함된 온실 자동화 시스템 생성