ESP32 - 전압 측정 | ESP32 - Measure Voltage

이 안내서에서는 ESP32를 사용하여 0V에서 16.5V까지의 전압을 측정하는 방법을 배우게 됩니다. 절차를 자세히 설명하겠습니다.

ESP32 전압 센서

Hardware Preparation

1×ESP-WROOM-32 Dev Module 쿠팡 | Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×Voltage Sensor 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for ESP32 Amazon
1×(Recommended) Screw Terminal Expansion Board for ESP32 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

전압 센서에 대하여

전압 센서는 측정을 쉽게 하기 위해 특정 저항을 사용하는 준비된 전압 분배 회로입니다. 이는 30 KΩ과 7.5 KΩ의 두 저항을 가지고 있습니다. ADC의 기준 전압이 5V일 경우, 센서는 0에서 25V DC까지의 전압을 측정할 수 있습니다. ADC의 기준 전압이 3.3V일 때는 0에서 16.5V DC까지의 전압을 측정할 수 있습니다.

핀배열

전압 센서에는 두 가지 유형의 핀이 있습니다:

  • 입력 인터페이스(전압을 측정하려는 곳에 연결):
    • VCC 핀: 이 양극을 높은 전압 지점에 연결하세요.
    • GND 핀: 이 음극을 낮은 전압 지점에 연결하세요.
  • 출력 인터페이스(ESP32에 연결):
    • Vout 핀(S): 이 신호 핀을 ESP32의 아날로그 핀에 연결하세요.
    • NC 핀(+): 이것을 연결하지 마세요; 사용되지 않습니다.
    • GND 핀(-): 이 접지 핀을 ESP32의 GND(0V)에 연결하세요.
    전압 핀배열
    image source: diyables.io

Wiring Diagram

ESP32 전압 센서 배선도

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

ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.

ESP32 코드

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-measure-voltage */ #define ANALOG_IN_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to voltage sensor #define REF_VOLTAGE 3.3 #define ADC_RESOLUTION 4096.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

Detailed Instructions

  • 이번이 처음으로 ESP32를 사용하는 경우, Arduino IDE에서 ESP32 환경 설정 방벗을 확인하세요.
  • ESP32를 전압 센서에 연결하세요.
  • ESP32 보드를 USB 케이블을 통해 PC에 연결하세요.
  • PC에서 Arduino IDE를 엽니다.
  • 올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택하세요.
  • 위의 코드를 Arduino IDE에 복사하고 붙여넣기하세요.
  • Arduino IDE에서 Upload 버튼을 눌러 코드를 컴파일하고 ESP32에 업로드하세요.
  • ESP32에서 5V와 3.3V를 측정하여 테스트하세요.
  • 시리얼 모니터에서 읽기 값을 확인하세요.
COM6
Send
Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

측정 결과가 부정확하거나 실제 값과 크게 다를 수 있음을 알 수 있습니다. 이를 전압 센서 모듈의 탓으로 돌리지 마십시오. 코드에서는 전액 센서에 연결된 ADC(아날로그-디지털 변환기)에서 값을 읽기 위해 analogRead() 함수를 사용합니다. ESP32 ADC는 정밀도가 높지 않은 프로젝트에 적합합니다. 그러나 정밀한 측정이 필요한 프로젝트의 경우, 다음 사항을 유의하십시오:

  • ESP32 ADC는 완법히 정확하지 않으며 정확한 결과를 위해 보정이 필요할 수 있습니다. 각각의 ESP32 보드는 약간씩 차이가 있을 수 있으므로 각 보드마다 보정이 필요합니다.
  • 보정은 특히 초보자에게 도전적일 수 있으멜, 항상 원하는 정확한 결과를 제공하지는 않을 수 있습니다.

고정밀이 요구되는 프로젝트의 경우, ESP32 또는 더 신뢰성 있는 ADC를 갖춘 아두이노와 함께 외부 ADC(예: ADS1115)를 사용하는 것을 고려하세요. 그래도 ESP32 ADC를 보정하고 싶다면, ESP32 ADC 보정 드라이버를 참조하세요.

Video Tutorial

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

관련 튜토리얼

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!