[스마트팜] pH 시험지를 비전으로 판독하는 저비용 센싱 시스템 만들기 (with OpenCV)

환경 센서나 수질 분석 프로젝트를 하다 보면 pH 측정 센서가 고장나거나, 건조돼서 망가지는 문제를 겪게 됩니다. 이런 문제를 피하고, 더 저렴하게 pH를 측정할 수 있는 방법이 있을까요?

정답은 바로:

**"pH 시험지를 카메라로 읽고, 색상 분석으로 pH를 추정하는 방법"**입니다!

이번 글에서는 pH 시험지를 이용한 비전 기반 pH 측정 시스템을 구축하는 방법을 소개합니다.


🧪 1. 시스템 구성도

필요한 부품은 아래와 같이 간단합니다:

부품설명
📷 카메라라즈베리파이 카메라 모듈 / USB 웹캠
🧪 pH 시험지1~14 범위, 색상 변화 뚜렷한 제품
💡 조명일정한 흰색 LED 조명 권장
💻 보드Raspberry Pi or 일반 노트북
🧠 소프트웨어Python + OpenCV

🔍 2. 아이디어 요약

  1. pH 시험지를 액체에 담가 색 변화를 유도

  2. 카메라로 시험지를 촬영

  3. 이미지에서 시험지 영역 추출 → 평균 색상 계산

  4. 보정된 색상 테이블과 비교하여 pH 값 추정


⚙️ 3. Python 코드 예제 (OpenCV)

import cv2 import numpy as np # 이미지 불러오기 img = cv2.imread('ph_strip.jpg') # 관심 영역 (ROI) 설정 (필요시 자동 탐색 가능) roi = img[100:200, 150:250] # 예시 값 # 평균 색상 계산 (BGR 순서) b, g, r = cv2.mean(roi)[:3] avg_color = np.array([r, g, b]) # RGB 순으로 변경 # 사전 보정된 색상 ↔ pH 매핑 테이블 (예시) ph_color_table = { 3: np.array([200, 80, 80]), 5: np.array([180, 120, 80]), 7: np.array([120, 180, 120]), 9: np.array([80, 120, 200]), 11: np.array([70, 100, 220]), } # 가장 가까운 색상과 pH 찾기 (유클리드 거리) def find_nearest_ph(avg_rgb, table): min_dist = float('inf') nearest_ph = None for ph, ref_rgb in table.items(): dist = np.linalg.norm(avg_rgb - ref_rgb) if dist < min_dist: min_dist = dist nearest_ph = ph return nearest_ph estimated_ph = find_nearest_ph(avg_color, ph_color_table) print(f"예상 pH: {estimated_ph}")

🎯 4. 색상 보정 테이블 만드는 방법

정확한 측정을 위해서는 반드시 색상-값 보정 테이블을 만들어야 합니다.

📋 보정 절차:

  1. pH 1, 3, 5, 7, 9, 11, 13 버퍼 용액 준비

  2. 각 버퍼 용액에 시험지를 일정 시간 담급니다

  3. 같은 조명 환경에서 각 시험지를 촬영

  4. Python 코드로 각 이미지의 평균 RGB 색상을 추출

  5. 아래처럼 딕셔너리 형태로 저장:

ph_color_table = { 1: np.array([220, 60, 60]), 3: np.array([200, 80, 80]), 5: np.array([180, 120, 80]), 7: np.array([120, 180, 120]), 9: np.array([80, 120, 200]), 11: np.array([70, 100, 220]), 13: np.array([60, 80, 240]), }

💡 팁: RGB보단 HSV 색공간을 활용하면 조명에 더 강건한 결과를 얻을 수 있습니다.


⚠️ 5. 주의사항 & 팁

  • 조명은 일정하게!
    박스 안에 흰색 LED를 설치해서 항상 같은 밝기로 유지하세요.

  • 같은 카메라, 해상도, 각도로 측정
    보정할 때와 측정할 때 동일한 조건을 유지해야 해요.

  • 색상 변화를 오래 방치하면 안됨
    시험지는 시간이 지나면 색이 바래므로, 30초~1분 안에 촬영하세요.


🧠 마무리: 언제 쓰면 좋을까?

  • 💰 pH 센서 구매가 부담스러울 때

  • 💧 센서가 고장나거나 건조되었을 때

  • 🎓 교육용 프로젝트나 실험, DIY 자동화 프로젝트

  • 📦 간단한 일회성 수질 검사 키트 만들 때


📊 시험지 vs 센서 비용 비교

항목가격대(예시)비고
🔌 일반 pH 센서 (BNC 타입, 아날로그)10,000~30,000원물속에 오래 담그면 점점 성능 저하됨
🔬 고급 산업용 센서100,000~300,000원자가 보정, 온도 보상 내장
🧪 pH 시험지 (100매 기준)2,000~5,000원매회 소모성, 다량 구매 시 1매당 20~50원 수준

✅ 결론적으로 볼 때…

조건결과
🔄 측정 횟수가 적다시험지가 훨씬 유리
🧪 정밀도보단 경향 파악이 중요시험지 + 카메라 OK
💧 센서 관리가 어려움시험지가 실용적
🔧 반복적인 자동 측정 필요센서 방식이 편함

💡 그래서 추천 용도

시험지 방식 추천센서 방식 추천
교육용, 취미, 프로토타입실시간 모니터링
월 1~2회 측정 정도자동 제어 시스템
저예산 프로젝트중~고정밀 요구

🏭 고급 산업용 pH 센서의 특징

항목설명
보관 용이성일부 모델은 자동 보정 기능이나 건조 방지 설계가 있어서 비교적 안정적으로 보관 가능
💧 젖은 상태 유지 불필요 모델도 있음고체 전해질이나 겔 타입 전극 사용 시, 보관 용이
🛡️ 내구성내화학성/내열성 강화 재질 사용 → 장기간 안정성 높음
🎯 정밀도온도 보정(ATC) 포함되어 정확도 향상
🔁 반복 사용수백~수천 회 측정 가능 (시험지는 1회성)

그러나 단점도 있어 😬

항목내용
💰 비쌈기본 10~30만 원 이상, 보정용 버퍼도 필요
🔧 초기 세팅 필요일부 모델은 보정 필수 (버퍼 용액 4.0 / 7.0 / 10.0 등)
🧴 보관 시 주의 필요젤/액체 타입 전극은 보관용 캡에 보관액을 넣고 밀봉해야 함
📉 시간이 지나면 열화센서 수명은 6개월~2년. 시간이 지나면 반응속도/정확도 감소

✅ 요약 비교

항목고급 센서일반 센서pH 시험지
가격높음 (10만 원~)중간 (1~3만 원)매우 저렴 (1매 20~50원)
정확도매우 높음중간낮음
내구성좋음 (내열, 내화학 가능)낮음1회성
보관 편의중간~좋음 (보관액 필요 or 겔 타입)불편 (항상 젖은 상태 필요)매우 좋음
자동화 가능성최고보통없음
설치 후 유지비낮음 (자주 쓰면 효율적)교체 잦음없음 (소모형)


📉 센서 vs 📸 비전 기반 — 수명 관점에서 보면?

항목고급 센서 (2년 수명 가정)비전 기반 (시험지 사용)
📆 수명보통 1~2년 내 성능 저하이론상 반영구 (카메라, 알고리즘만 유지되면)
🔄 반복성연속 측정에 강함 (자동화 가능)수동 or 반자동 (시험지 교체 필요)
⚠️ 열화전극 오염, 전해질 소실 등시험지 상태만 관리하면 안정적
🧪 소모품보관액, 교체형 센서pH 시험지 (저렴)

✅ 그래서 비전 기반이 매력적인 이유는?

  1. 센서 성능 저하 없이 반영구 사용 가능
    → 이미지 인식만 정확하면, 하드웨어 열화 없음

  2. 저렴한 유지비
    → 시험지 단가 30~50원 수준.
    → 머신러닝 적용하면 한 시험지에 다회 촬영도 가능

  3. 소형 자동화 가능
    → 카메라 + 조명 + 로직만 있으면 미니 재배기용 자동 측정기로도 충분

  4. 센서 보관 문제 없음
    → 보관액, 건조 걱정 無


물론 단점도 고려해야 해!

단점비고
📸 조명과 화이트 밸런스 이슈항상 일정한 조명 환경 필요
🎨 시험지 색상 정확도제조사마다 색 변화 범위 다름 → 보정 테이블 필수
🤖 자동화 번거로움시험지 물 묻히는 작업 자동화는 난이도 ↑

🔍 요약하면…

상황추천 방식
빈번한 자동 측정고급 센서
간헐적 + 경제적 측정비전 기반 시험지 방식
저비용 + 유지 편함시험지 + 비전 분석 최적화

실제로 농업 자동화(스마트팜)에서는
EC 센서 + pH 센서 가격이 부담돼서

✅ “시험지 + 카메라” 방식으로 대체하려는 시도 많아!


댓글

이 블로그의 인기 게시물

[PLC] PLC 아날로그 입출력 기본

전력(kW) 계산하기 (직류, 교류 단상, 교류 삼상)

공압 속도 제어: 미터인 vs 미터아웃

제너 다이오드에 저항을 연결하는 이유

3선 결선식 센서의 타입 PNP, NPN

[PLC] 래더 다이어그램과 PLC

커패시터에 저장된 에너지 계산

[아두이노] 가변저항(Potential Divider)과 전압분배(Voltage Divider)

PLC 출력 형태

[전기 기초] 저항의 정격전력(Watt) 표기의 의미