본문 바로가기
모두의 아두이노

[아두이노][센서] 실시간 수질 모니터링! PH-4502C 센서로 pH 값 측정하기

by 로니킴 2024. 10. 14.


이 프로젝트는 아두이노와 PH-4502C 센서는 활용하여 pH 측정을 쉽게 이해하고 활용할 수 있도록 구성되었습니다. 단계별 설명을 통해 하드웨어 연결부터 소프트웨어 코딩, 동작 확인까지 모든 과정을 다룹니다. 이제 아두이노와 함께 실시간 수질 모니터링을 경험해 보세요!

 

목차

  • PH-4502C 센서란?
  • PH-4502C 센서의 동작 원리
  • PH-4502C 구입하기
  • PH-4502C 하드웨어 연결하기
  • PH-4502C 소프트웨어 코딩하기
  • PH-4502C 동작 확인
  • 마무리

 


[아두이노][센서] 실시간 수질 모니터링! PH-4502C 센서로 pH 값 측정하기

PH-4502C 센서는 수질 측정에서 pH 값을 확인하는 데 사용되는 센서 센서입니다. 이 센서는 아두이노와 같은 마이크로컨트롤러와 결합하여 다양한 수질 상태를 모니터링하는 데 유용합니다. pH 값은 0부터 14까지의 범위로, 0은 매우 산성, 7은 중성, 14는 매우 알칼리성을 나타냅니다.

 

 

ph-sensor-ph-4502c.pdf
0.26MB

 

 

 


 

PH-4502C 센서란?

PH-4502C 센서는 수질 측정에서 pH 값을 확인하는 데 사용되는 센서입니다. 이 센서는 아두이노와 같은 마이크로컨트롤러와 결합하여 다양한 수질 상태를 모니터링하는 데 유용합니다. pH 값은 0부터 14까지의 범위로, 0은 매우 산성, 7은 중성, 14는 매우 알칼리성을 나타냅니다.

 

이 센서는 BNC 커넥터를 통해 pH 전극을 연결하여 측정된 pH 값을 아날로그 신호로 출력합니다. 센서에는 pH 값을 보정하고 설정할 수 있는 두 개의 가변 저항(POT)이 있습니다. POT 1은 아날로그 오프셋을 설정하여 중성 pH(7)를 2.5V로 설정하고, POT 2는 특정 pH 한계를 설정해 pH 값이 설정된 한계를 넘을 때 DO 핀에서 트리거 신호를 보낼 수 있도록 합니다.

 

PH-4502C 센서는 수영장, 수경재배 시스템, 양식 시스템 등 다양한 수질 모니터링 응용 분야에 사용될 수 있으며, 간단한 아날로그 출력으로 pH 값을 쉽게 측정할 수 있는 특징이 있습니다.

 


 

PH-4502C 센서의 동작 원리

PH-4502C 센서는 BNC 커넥터에 연결된 pH 프로브를 통해 수질의 pH 값을 측정합니다. pH 값은 0V에서 5V 사이의 전압으로 출력되며, 이 전압은 아두이노의 아날로그 핀(A0)을 통해 읽어 들일 수 있습니다. 센서의 기본 설정은 중성 pH(7)를 2.5V로 설정하며, 사용자는 POT 1을 조정하여 오프셋을 맞출 수 있습니다. 이를 통해 아두이노가 중성 pH 값을 정확히 측정할 수 있도록 합니다.

 

 

POT 2는 pH 한계값을 설정하는 데 사용됩니다. 설정된 한계값에 도달하면 DO 핀이 3.3V 신호를 출력하여 알림이나 트리거 기능을 실행할 수 있습니다. 이를 통해 pH 값이 일정 수준을 초과하거나 미달할 때 경고를 발생시킬 수 있습니다.

PH-4502C 센서는 이처럼 아두이노와 같은 마이크로컨트롤러와의 호환성이 높으며, 수질 모니터링을 위한 다양한 프로젝트에 쉽게 활용될 수 있습니다.

 


 

PH-4502C 구입하기

PH-4502C 센서는 다양한 온라인 쇼핑몰에서 구입할 수 있습니다. 네이버 쇼핑에서는 보통 15,000원에서 25,000원 사이의 가격으로 판매되고 있으며, 알리익스프레스에서는 약 $5에서 $10 사이에 구매할 수 있습니다. 구입 시 주의할 점은 판매자의 신뢰도와 리뷰를 확인하는 것이며, 또한 배송비가 포함되어 있는지 확인하는 것이 중요합니다. pH 센서의 정확성은 수질 모니터링에서 매우 중요하므로, 검증된 판매처에서 구매하는 것이 좋습니다.

 


 

PH-4502C 하드웨어 연결하기

PH-4502C 센서는 아두이노와 연결하는 방법은 다음과 같습니다:

 

  1. 아두이노 핀 연결 방법:
    • PO 핀 (PH 아날로그 출력) → 아두이노 A0 핀: pH 값을 아날로그 신호로 출력하며, 아두이노의 A0 핀에서 이를 읽어 들입니다.
    • VCC 핀 → 아두이노 5V 핀: 센서에 전원을 공급하기 위해 아두이노의 5V 핀을 연결합니다.
    • GND 핀 (보드용) → 아두이노 GND 핀: 센서의 보드와 아두이노 간의 공통 접지를 위해 연결합니다.
    • GND 핀 (프로브용) → 아두이노 GND 핀: pH 프로브의 접지를 아두이노의 GND 핀과 연결하여, 전기적 신호의 안정성을 유지합니다.
    • DO 핀 (3.3V pH 제한 트리거): 설정된 pH 한계에 도달하면 3.3V 신호를 출력하여 아두이노의 디지털 핀에 연결해 알림이나 트리거 기능을 설정할 수 있습니다 (필요에 따라 연결).
    • TO 핀 (온도 출력): 온도 보정이 필요한 경우 사용할 수 있으며, 사용하지 않을 경우 연결하지 않아도 됩니다.
  2. 포텐셔미터(POT) 설정:
    • POT 1 (아날로그 읽기 오프셋): BNC 커넥터에 가장 가까운 포텐셔미터로, 중성 pH(7) 일 때 2.5V로 설정되도록 조정합니다.
    • POT 2 (PH 한계 설정): DO 핀에서 신호를 보내는 pH 한계를 설정합니다. 특정 pH 값에 도달하면 경고나 알림을 줄 수 있습니다.

연결 :

  • PO 핀을 아두이노 A0에 연결하여 pH 값을 실시간으로 읽고, 이를 통해 수질 상태를 모니터링합니다.
  • VCC와 GND 핀을 연결하여 안정적인 전원 공급을 유지하고, GND는 공통 접지로 사용하여 센서가 아두이노 간의 신호 안정성을 보장합니다.

이 연결 방식을 통해 PH-4502C 센서과 아두이노가 협력하여 수질을 정확히 측정하고 관리할 수 있습니다.


 

PH-4502C 소프트웨어 코딩하기

아래는 PH-4502C 센서는 이용해 pH 값을 측정하는 코드입니다:

#include <Arduino.h>

int pHSense = A0; // pH 센서의 아날로그 출력 연결 핀
int samples = 10; // 샘플링 횟수
float adc_resolution = 1024.0; // 아두이노의 ADC 해상도 (10비트)

void setup()
{
    Serial.begin(9600); // 시리얼 통신 시작
    delay(100); // 안정화 시간
    Serial.println("cimpleo pH Sense");
}

// pH 값을 계산하는 함수
float ph(float voltage) {
    return 7 + ((2.5 - voltage) / 0.18); // 2.5V가 중성 pH를 의미하며, 전압 차이를 이용해 pH를 계산
}

void loop()
{
    int measurings = 0;

    // 여러 번 샘플링하여 평균 값 계산
    for (int i = 0; i < samples; i++)
    {
        measurings += analogRead(pHSense);
        delay(10); // 샘플링 사이 간격
    }

    // 평균 전압 계산
    float voltage = 5.0 / adc_resolution * measurings / samples;
    Serial.print("pH= ");
    Serial.println(ph(voltage)); // 계산된 pH 값 출력
    delay(3000); // 3초 간격으로 반복
}

 

코드 설명:

1단계: 설정 (Setup)

먼저 setup() 함수는 아두이노가 처음 실행될 때 한 번만 실행되는 함수로, 여기에서 시리얼 통신을 설정합니다.

  • Serial.begin(9600)은 시리얼 통신을 9600 bps로 설정하여, pH 값을 시리얼 모니터로 출력할 준비를 합니다.
  • delay(100)은 100ms 동안 시스템이 안정화될 수 있도록 대기하는 시간을 부여합니다.
  • Serial.println("cimpleo pH Sense")는 코드 실행 시 시리얼 모니터에 시작 메시지를 출력하여 시스템이 시작되었음을 사용자에게 알려줍니다.

2단계: pH 값 측정 (Reading pH Value)

이 부분은 실제로 pH 값을 측정하는 중요한 부분입니다.

  • loop() 함수에서 여러 번의 샘플링을 통해 pH 값을 측정합니다. for 루프를 사용하여 10번의 샘플링을 실행하고, analogRead(pHSense)는 아날로그 핀 A0에 연결된 pH 값을 읽어옵니다.
  • measurings라는 변수에 각 샘플링 값을 더해주고, 샘플링 간격으로 delay(10)이 주어져 있습니다.
  • 이 과정은 여러 번 샘플링하여 노이즈를 줄이고 평균을 내어 더 정확한 값을 계산하는 방식입니다.

3단계: pH 계산 및 출력 (Calculate and Display pH)

측정된 값을 기반으로 pH 값을 계산하고 출력하는 단계입니다.

  • 먼저 float voltage = 5.0 / adc_resolution * measurings / samples를 통해 평균 전압을 계산합니다. 이 계산은 아두이노의 10비트 ADC(1024단계 해상도)를 기준으로 한 전압 값을 도출하는 식입니다.
  • ph(voltage)는 전압을 pH 값으로 변환하는 함수입니다. 이 함수는 중성 pH인 7을 기준으로 전압 차이를 계산하여 pH 값을 반환합니다.
  • 마지막으로 Serial.print("pH= ")와 Serial.println(ph(voltage))를 사용하여 계산된 pH 값을 시리얼 모니터에 출력합니다.
  • delay(3000)은 3초 동안 대기 후 다시 pH 값을 측정하여 주기적으로 반복됩니다.

이 세 단계는 pH 센서에서 값을 읽고, 이를 전압으로 변환한 후, 해당 전압을 pH 값으로 변환하여 시리얼 모니터에 표시하는 전체 흐름을 형성합니다.

 


 

PH-4502C 동작 확인

코드를 업로드한 후, pH 프로브를 측정할 액체에 담그고 시리얼 모니터에서 pH 값을 확인합니다.

 

 

정확한 값을 얻기 위해서는 프로브를 완전히 액체에 담가 두고 안정화 시간을 기다려야 합니다. 만약 예상되는 값과 차이가 있다면, 보정 포텐셔미터를 조정하여 pH 7에서 2.5V가 출력되도록 설정해야 합니다. 

단계 내용
연결 아두이노와 PC 연결, 보드와 코드 확인
컴파일 확인 코드를 컴파일하고 오류 여부 확인
아두이노 업로드 코드를 아두이노에 업로드
동작 확인 pH 프로브로 값을 측정하고 보정
센서 동작 테스트 센서가 정확한 값을 출력하는지 확인

 

  1. 코드 업로드 및 설정 확인:
    • 아두이노와 PC를 연결합니다.
    • 아두이노 IDE를 실행한 후, 메뉴에서 툴 → 보드: 아두이노 UNO가 선택되어 있는지 확인합니다.
    • 코드가 준비되었으면, **메뉴 → 스케치 → 확인/컴파일 (CTRL+R)**을 선택하여 코드에 오류가 없는지 확인합니다.
  2. 컴파일 확인:
    • 코드가 오류 없이 컴파일되는지 확인합니다. 만약 컴파일이 정상적으로 완료되면, 다음 단계로 진행합니다.
  3. 아두이노 업로드:
    • 컴파일이 이상 없이 완료되었다면, **스케치 → 업로드 (CTRL+U)**를 선택하여 아두이노에 코드를 업로드합니다.
    • 업로드가 완료되면, 시리얼 모니터를 통해 pH 값을 실시간으로 모니터링할 준비가 됩니다.
  4. 동작 확인:
    • pH 프로브를 측정할 액체에 담그고, 시리얼 모니터에서 pH 값을 확인합니다. pH 프로브는 액체에 담근 후, 약 2분 정도의 안정화 시간이 필요합니다.
    • 만약 예상 값과 차이가 있다면, POT 1을 조정하여 중성 pH 값이 2.5V로 출력되도록 설정해야 합니다. 이렇게 함으로써 정확한 pH 값을 측정할 수 있게 됩니다.
  5. 센서 동작 테스트:
    • 센서가 정확한 값을 출력하고 있는지 시리얼 모니터에서 확인합니다. 시리얼 모니터에 출력된 pH 값이 예상 범위 내에 있다면 센서가 정상적으로 작동하는 것입니다.

이와 같은 과정을 통해 PH-4502C 센서가 올바르게 작동하는지 확인할 수 있으며, 이를 통해 실시간으로 수질 모니터링이 가능해집니다.


 

마무리

PH-4502C 센서는 사용하여 pH 값을 측정함으로써 아두이노의 아날로그 입력 및 센서 보정 방법을 배울 수 있습니다. 이 센서는 수질 모니터링을 위한 간단한 설루션을 제공하며, 수경재배, 양식, 수영장 관리 등 다양한 응용 분야에서 유용하게 활용될 수 있습니다. 이를 통해 사용자는 더 나아가 자동 제어 시스템을 구축하거나 경고 시스템을 추가하여 프로젝트를 확장할 수 있습니다.

반응형


댓글