060_빗물감지센서_자동창문 🌧️🪟

도로시와 지니의 빗물 감지 센서 탐구

도로시와 지니가 함께하는 빗방울 전도도 감지, 니켈 도금 지그재그 전극판 및 스마트 자동 창문 제어 시스템

  • 👧 도로시: “교수님! 지니야! 외출했을 때 갑자기 소나기가 쏟아져도 아두이노가 첫 빗방울을 바로 감지해서 열린 창문을 스르륵 닫아줄 수 있을까?”
  • 👨‍🏫 이호진 교수님: “당연하지! 넓은 기판 표면에 인쇄된 빗살무늬 니켈 전극에 빗방울이 톡 떨어지는 순간 저항이 변하는 빗물 감지 센서(Raindrop Sensor) 덕분이란다!”
  • 🐶 토토: “바우! 베란다에 널어둔 빨래가 비에 젖기 전에 지켜주자 멍!”

  • 🖥️ 강의 슬라이드: slides.md

1. 빗물 감지 센서의 외형과 2단 분리형 구조

빗물 감지 기판과 신호 처리 보드

🌧️ 야외 수광부 전극판과 실내 신호 처리 모듈

  • 대형 니켈 도금 전극판 (Raindrop Sensing Plate):
    • 비를 직접 맞도록 창문 밖이나 옥상에 비스듬히 노출시키는 감지판입니다.
    • 표면이 부식에 강한 고품질 니켈(Nickel)로 특수 도금되어 있어 산성비에도 녹슬지 않고 오래 견딥니다.
  • LM393 비교기 신호 제어 모듈:
    • 빗물판의 미세한 저항 변화를 전압(AO)으로 변환하고, 파란색 가변저항으로 민감도를 맞추면 스위치 신호(DO)를 아두이노로 보냅니다.
    • 비를 맞지 않는 안전한 실내나 방수 케이스 안에 설치합니다.

2. 작동 메커니즘: 빗방울이 만드는 미세 단락(Short) 원리

빗방울이 전극판 위에 닿았을 때의 단면도

🔬 빗방울이 전기 다리(Bridge)를 놓아줍니다!

  1. 맑은 날 (건조 상태, Dry):
    • 지그재그로 마주 보는 두 전극선 사이가 완전히 분리되어 공기층으로 절연되어 있습니다.
    • 전기가 전혀 흐르지 못하므로 전기 저항은 무한대($\approx \infty$)입니다 (AO 측정값: 1000 ~ 1023 부근).
  2. 가랑비가 내릴 때 (이슬비, Light Rain):
    • 미세한 빗방울 몇 개가 전극선 사이에 떨어지면 물방울 속의 전해질을 타고 미세한 전류가 흐르기 시작합니다 (AO 측정값: 약 600 ~ 800).
  3. 폭우가 쏟아질 때 (집중호우, Heavy Rain):
    • 전극판 전체가 물막(수막)으로 완전히 덮이면서 수많은 전도 경로가 동시에 열립니다.
    • 저항이 수백 $\Omega$ 수준으로 급격히 떨어집니다 (AO 측정값: 약 200 ~ 400 이하).

3. 센서 모듈의 회로 구조와 핀 결선

빗물 감지 모듈 내부 회로도

🔌 아두이노와의 4핀 인터페이스 연결

모듈 핀 기능 아두이노 연결 핀 역할 및 설명
VCC 전원 입력 아두이노 5V 센서 구동 전원 공급 (3.3V ~ 5V)
GND 전원 접지 아두이노 GND 공통 0V 접지 결선
AO 아날로그 강수량 출력 아두이노 A0 핀 비의 양(0~1023)에 반비례하는 전압 출력
DO 디지털 비 감지 출력 디지털 2번 핀 빗방울 감지 시 LOW(0) 인터럽트 신호 출력

브레드보드 전체 결선도


4. 실습 전체 코드: 스마트 창문 자동 제어 펌웨어 (Arduino C++)

💻 빗방울을 감지하면 서보 모터 창문을 닫고 경보를 울리는 코드

#include <Servo.h>

// 핀 번호 상수 정의
const int RAIN_ANALOG_PIN  = A0; // 빗물 센서 아날로그 출력 핀
const int SERVO_PIN        = 9;  // 창문 개폐용 서보 모터 핀
const int BUZZER_PIN       = 8;  // 빗물 알림 피에조 부저 핀

// 강수량 판별 임계값 (실제 빗물 테스트에 맞게 보정)
const int RAIN_HEAVY_THRESHOLD = 450; // 폭우 판별 기준
const int RAIN_LIGHT_THRESHOLD = 750; // 가랑비 판별 기준

Servo windowServo; // 서보 모터 객체 생성

void setup() {
  // PC 시리얼 모니터 통신 시작 (9600 bps)
  Serial.begin(9600);

  // 부저 핀 출력 설정
  pinMode(BUZZER_PIN, OUTPUT);
  digitalWrite(BUZZER_PIN, LOW);

  // 서보 모터 9번 핀에 연결 및 초기 창문 열림(0도) 설정
  windowServo.attach(SERVO_PIN);
  windowServo.write(0); // 0도: 창문 활짝 열림 (맑음)

  Serial.println("==========================================");
  Serial.println("   Smart Automatic Rain Window Ready!     ");
  Serial.println("==========================================");
}

void loop() {
  // 1. 빗물 감지판의 아날로그 전압 읽기 (0 ~ 1023)
  int rainVal = analogRead(RAIN_ANALOG_PIN);

  // 2. 시리얼 모니터로 측정 수치 출력
  Serial.print("Raindrop Sensor ADC: ");
  Serial.print(rainVal);

  // 3. 강수량에 따른 스마트 창문 자동 제어
  if (rainVal < RAIN_HEAVY_THRESHOLD) {
    // 450 미만: 폭우 쏟아짐! 창문 긴급 폐쇄(90도) 및 알림음
    windowServo.write(90); // 창문 90도 회전하여 완전히 닫음
    tone(BUZZER_PIN, 1200, 100);
    Serial.println(" -> ⛈️ [HEAVY RAIN] Window CLOSED! Alarm ON!");
  } 
  else if (rainVal < RAIN_LIGHT_THRESHOLD) {
    // 450 ~ 750: 가랑비 내림! 창문 닫기
    windowServo.write(90);
    noTone(BUZZER_PIN);
    Serial.println(" -> 🌦️ [LIGHT RAIN] Window CLOSED!");
  } 
  else {
    // 750 이상: 맑은 날씨! 창문 열어 신선한 바람 환기
    windowServo.write(0);
    noTone(BUZZER_PIN);
    Serial.println(" -> ☀️ [CLEAR / DRY] Window OPEN for fresh air.");
  }

  // 0.5초 대기
  delay(500);
}

5. 코드 상세 해설 및 서보 모터 기계적 연동

시리얼 모니터 출력 및 빗물 감지 결과

🔍 안전한 창문 자동화 제어 기법

  1. windowServo.write(90):
    • 비가 감지되는 즉시 서보 모터 혼(Horn)을 90도로 돌려 창문 경첩이나 레버를 밀어 창문을 물리적으로 닫습니다.
  2. 센서판 각도 설치 꿀팁:
    • 빗물 감지판을 지면과 완전히 수평으로 두면 비가 그친 후에도 물웅덩이가 고여 있어 비가 계속 오는 것으로 오작동합니다.
    • 따라서 감지판을 약 15도 ~ 30도 비스듬히 기울여 설치해야 비가 그쳤을 때 물방울이 아래로 자연스럽게 흘러내려 신속하게 건조 상태로 복귀합니다!

6. 실생활 속 빗물 센서의 창의적인 응용

스마트 자동 창문 및 빨래 건조대 응용

  • 자동차 오토 와이퍼 (Auto Wiper System):
    • 자동차 앞유리에 떨어지는 빗방울의 양을 실시간 분석하여 와이퍼의 작동 주기(저속/고속)를 자동으로 조절합니다.
  • 스마트 빨래 건조대:
    • 비가 오면 DC 모터가 회전하여 야외 베란다에 널려 있던 빨래 건조대를 지붕 밑 실내로 자동으로 밀어 넣습니다.
  • 스마트 농업 온실 개폐기:
    • 비가 올 때 비닐하우스 천장 통풍창을 자동으로 닫아 작물이 침수 피해를 입지 않도록 보호합니다.

🌟 도로시와 지니의 핵심 요약 노트!

날씨 상태 전극판 수분량 센서 저항 AO 아날로그 값 창문 상태
맑음 (Dry) 물방울 없음 무한대 ($\approx \infty$) 800 ~ 1023 열림 (0도 환기)
가랑비 (Light) 몇 방울 떨어짐 중간 저항 450 ~ 750 닫힘 (90도 폐쇄)
폭우 (Heavy) 물막 형성 매우 낮음 100 ~ 450 닫힘 + 부저 경보 🚨
  • 👧 도로시: “빗방울이 지그재그 니켈 전극을 이어주면 저항이 뚝 떨어져서 비의 양까지 알아맞힐 수 있구나!”
  • 👨‍🏫 이호진 교수님: “맞아! 센서판을 15도 정도 비스듬히 기울여 설치하는 작은 센스가 프로페셔널한 사물인터넷을 만든단다.”
  • 🐶 토토: “바우! 다음 시간엔 주변 공기의 온도를 재는 온도 센서를 만나러 가자 멍!”
서브목차