라즈베리 파이 빗물 센서

비 센서는 비/눈의 양을 감지하고 측정하여 디지털(LOW/HIGH) 및 아날로그 출력을 제공합니다. 이 튜토리얼은 Raspberry Pi와 비 센서를 사용하여 비를 감지하고 측정하는 방법을 안내하며 다음 내용을 다룹니다:

비/눈이 감지되면 모터를 활성화하거나 경고를 주기 위해 코드를 사용자 지정할 수 있습니다.

Hardware Preparation

1×Raspberry Pi 4 Model B Amazon
1×Rain Sensor Amazon
1×Jumper Wires Amazon
1×(추천) Screw Terminal Block Shield for Raspberry Pi 쿠팡 | Amazon
1×(추천) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B Amazon
1×(추천) Plastic Case and Cooling Fan for Raspberry Pi 4B Amazon
1×(추천) HDMI Touch Screen Monitor for Raspberry Pi Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

우적 센서 소개

빗물 센서는 비의 존재를 감지하거나 강수량으로부터 수위를 측정하는 데 사용됩니다. 디지털 출력 핀과 아날로그 출력 핀을 통해 옵션을 제공합니다.

빗물 센서의 구성 요소에는 감지 패드와 전자 모듈이 포함됩니다.

레인 센서 핀아웃
image source: diyables.io

감지 패드

센싱 패드는 비/눈을 맞을 수 있도록 실외에 배치되며(예: 지붕에), 노출된 구리 트레이스가 전력 트레이스와 센스 트레이스로 나뉩니다. 이 트레이스들은 물이나 눈에 의해 연결되지 않는 한 서로 연결되지 않습니다. 전력 트레이스와 센스 트레이스는 교환이 가능하며, 그 중 하나를 전력 트레이스로, 다른 하나를 센스 트레이스로 지정할 수 있습니다.

전자 모듈

빗물 센서의 전자 모듈은 감지 패드로부터의 신호를 Raspberry Pi가 읽을 수 있는 아날로그 또는 디지털 값으로 변환합니다. 이 모듈은 네 개의 핀을 포함합니다:

  • VCC 핀: VCC(3.3V~5V)에 연결합니다.
  • GND 핀: GND(0V)에 연결합니다.
  • DO 핀: 디지털 출력 핀; 비가 감지되지 않으면 HIGH이고, 감지되면 LOW입니다. 비 감지 임계값은 내장된 가변 저항기로 조절할 수 있습니다.
  • AO 핀: 아날로그 출력 핀; 센싱 패드에 물이 많아질수록 값이 줄어들고, 물이 줄어들수록 값이 증가합니다.

게다가, 두 개의 LED 표시기를 특징으로 합니다:

  • PWR-LED 표시등: 전원 상태를 나타냅니다.
  • DO-LED 표시등: DO 핀의 비 상태를 나타내며, 비가 있을 때 점등됩니다.

작동 원리

DO 핀에 관하여:

  • 모듈에는 감도 임계값을 설정하기 위한 내장된 가변 저항기가 장착되어 있습니다.
  • 강도가 임계값을 초과하면 비가 감지되며, 센서의 출력 핀이 LOW로 표시되고 DO-LED가 켜집니다.
  • 강도가 임계값 이하로 떨어지면 비가 감지되지 않으며, 센서의 출력 핀이 HIGH로 표시되고 DO-LED가 꺼집니다.

AO 핀에 관하여:

  • AO 핀의 읽기 값은 센싱 패드의 수위와 반비례합니다.
  • 물이 많을수록 AO 핀 값이 낮아지고, 물이 적을수록 AO 핀 값이 높아집니다.

참고: 가변 저항기는 AO 핀의 값에 영향을 미치지 않습니다.

Wiring Diagram

앞서 언급했듯이, 센서의 VCC 핀을 Raspberry Pi의 3.3V 또는 5V 핀에 직접 연결하면 전기화학적 부식으로 인해 센서의 수명이 줄어들 수 있습니다. 권장되는 대안은 비 센서의 VCC 핀을 Raspberry Pi의 출력 핀에 연결하는 것입니다. 해당 핀을 프로그래밍하여 비 센서를 측정 시에만 전원을 공급하도록 하면 전기화학적 부식의 영향을 효과적으로 최소화할 수 있습니다.

라즈베리 파이 빗물 센서 배선도

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

배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:

Raspberry Pi Screw Terminal Block Shield

라즈베리 파이 코드

Detailed Instructions

  • Raspberry Pi에 Raspbian 또는 다른 호환 운영 체제가 설치되어 있는지 확인하십시오.
  • Raspberry Pi가 PC와 동일한 로컬 네트워크에 연결되어 있는지 확인하십시오.
  • 라이브러리를 설치해야 하는 경우 Raspberry Pi가 인터넷에 연결되어 있는지 확인하십시오.
  • Raspberry Pi를 처음 사용하는 경우, Raspberry Pi 설정 방법을 참조하십시오.
  • Linux 및 macOS에서는 기본 SSH 클라이언트를, Windows에서는 PuTTY를 사용하여, PC를 SSH를 통해 Raspberry Pi에 연결하십시오. SSH를 통해 PC를 Raspberry Pi에 연결하는 방법을 참조하십시오.
  • RPi.GPIO 라이브러리가 설치되어 있는지 확인하십시오. 설치되어 있지 않으면, 다음 명령어를 사용하여 설치하십시오.
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • 파이썬 스크립트 파일 rain_sensor.py를 생성하고 다음 코드를 추가하세요.
# 이 Raspberry Pi 코드는 newbiely.kr 에서 개발되었습니다 # 이 Raspberry Pi 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. # 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: # https://newbiely.kr/tutorials/raspberry-pi/raspberry-pi-rain-sensor import RPi.GPIO as GPIO import time POWER_PIN = 12 # GPIO pin that provides power to the rain sensor DO_PIN = 7 # GPIO pin connected to the DO pin of the rain sensor def setup(): GPIO.setmode(GPIO.BCM) GPIO.setup(POWER_PIN, GPIO.OUT) # configure the power pin as an OUTPUT GPIO.setup(DO_PIN, GPIO.IN) def loop(): GPIO.output(POWER_PIN, GPIO.HIGH) # turn the rain sensor's power ON time.sleep(0.01) # wait 10 milliseconds rain_state = GPIO.input(DO_PIN) GPIO.output(POWER_PIN, GPIO.LOW) # turn the rain sensor's power OFF if rain_state == GPIO.HIGH: print("The rain is NOT detected") else: print("The rain is detected") time.sleep(1) # pause for 1 second to avoid reading sensors frequently and prolong the sensor lifetime def cleanup(): GPIO.cleanup() if __name__ == "__main__": try: setup() while True: loop() except KeyboardInterrupt: cleanup()
  • 파일을 저장하고 터미널에서 다음 명령어를 실행하여 파이썬 스크립트를 실행하세요.
python3 rain_sensor.py
  • 비 센서에 물을 몇 방울 떨어뜨리세요.
  • 직렬 모니터에서 결과를 확인하세요.
PuTTY - Raspberry Pi
The rain is NOT detected The rain is NOT detected The rain is NOT detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is NOT detected The rain is NOT detected The rain is NOT detected

센서가 비를 마주했을 때에도 LED 상태가 계속 켜져 있거나 꺼져 있는 것을 발견하면, 포텐셔미터를 조정하여 센서의 민감도를 미세 조정할 수 있음을 명심하십시오.

Video Tutorial

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