Arduino를 Rain Sensor와 인터페이스하여 간단한 Rain Detection System을 쉽게 구축 할 수 있습니다. 센서는 강우를 감지하고 Arduino 보드는이를 감지하여 필요한 조치를 수행 할 수 있습니다. 이와 같은 시스템은 농업 및 자동차 분야와 같은 다양한 분야에서 사용될 수 있습니다. 강우 감지 는 관개 과정을 자동으로 조절하는 데 사용할 수 있습니다. 또한 연속 강우 데이터농부들이이 스마트 시스템을 사용하여 절대적으로 필요할 때만 작물에 자동으로 물을 줄 수 있습니다. 유사하게, 자동차 부문에서 앞 유리 와이퍼는 레인 감지 시스템을 사용하여 완전 자동으로 만들 수 있습니다. 또한 홈 오토메이션 시스템은 비 감지 기능을 사용하여 자동으로 창문을 닫고 실내 온도를 조절할 수 있습니다. 이 튜토리얼에서는 버저가있는 Arduino를 사용하여 기본 레인 센서를 구축합니다. 그런 다음이 설정을 사용하여 원하는 모든 것을 그 위에 구축 할 수 있습니다. 또한 레인 센서 모듈은 사용량에 따라 빗방울 센서 또는 레인 게이지 센서 또는 빗물 센서 라고도 하지만 모두이 프로젝트에서 사용 된 동일한 센서를 참조하며 모두 동일한 원리로 작동합니다.
우리는 또한 555 Timer만을 사용하여 간단한 Rain Alarm과 자동 자동차 와이퍼를 구축했으며, Arduino를 사용하지 않으려는 경우에도 확인하는 것이 좋습니다. 즉,이 프로젝트로 돌아가 Arduino Rain Gauge 구축을 시작하겠습니다.
필요한 재료
- Arduino UNO
- 레인 센서
- 부저
- 브레드 보드
- 전선 연결
레인 센서
빗방울이 모듈은 두 개의 보드, 즉 비 보드 및 제어 보드로 구성되어 있습니다.
비 보드 모듈은 상기 건조 조건들은 공급 전압에 높은 저항을 제공하는 것과 같은 방식으로 디자인 된 두 구리 트랙으로 구성되며,이 모듈의 출력 전압은 5V 것이다. 이 모듈의 저항은 보드의 젖음 증가에 따라 점차 감소합니다. 애즈 저항 감소, 출력 전압은 감소 모듈의 습윤에 대하여. 비 보드 모듈은 다음과 같이 제어 기판에 연결하는 데 사용되는 두 개의 핀으로 구성.
제어 보드 모듈은 감도를 제어하고 아날로그 출력을 디지털 출력으로 변환합니다. 아날로그 값이 제어 보드의 임계 값 미만이면 출력은 디지털 로우이고 아날로그 값이 임계 값보다 높으면 출력은 디지털 하이입니다. 이 비교 및 변환을 위해 LM393 OP-Amp 비교기 가 사용됩니다. Op-Amp 비교기는 두 가지 다른 전압 값을 비교하는 데 사용할 수있는 흥미로운 회로입니다. 우리는 이미 Smart Electronic Candle, Laser Security Alarm, Line Follower Robot 등과 같은 많은 프로젝트에서이 회로에 사용했습니다.
비 제어 모듈 아래에 나타낸다 비 보드 모듈을 연결할의 Arduino 즉 VCC, GND, D0, A0 및 두개 이상의 핀을 연결하는 핀 (4)로 구성된다. 요약하면 레인 보드 모듈은 빗물을 감지하고 제어 보드 모듈은 감도를 제어하고 아날로그 값을 디지털 값으로 비교 및 변환하는 데 사용됩니다.
레인 센서의 작동
레인 센서 모듈의 작동은 이해하기 쉽습니다. 화창한 날에는 레인 보드 모듈의 건조로 인해 공급 전압에 대한 높은 저항을 제공합니다. 이 전압은 레인 보드 모듈의 출력 핀에 5V로 나타납니다. 이 5V는 Arduino의 아날로그 핀으로 읽으면 1023으로 읽습니다. 비가 내리는 동안 빗물은 레인 보드의 젖음을 증가시켜 공급에 제공되는 저항을 감소시킵니다. 저항이 점차 감소함에 따라 출력 전압이 감소하기 시작합니다.
레인 보드가 완전히 젖고 제공되는 저항이 최소 일 때 출력 전압은 가능한 한 낮아집니다 (약 0). 이 0V는 Arduino의 아날로그 핀으로 읽으면 0 값으로 읽습니다. 레인 보드 모듈이 부분적으로 젖은 경우이 레인 보드 모듈의 출력은 제공하는 저항과 관련됩니다. 레인 보드 모듈이 제공하는 저항이 출력이 3V 인 경우 읽기 아날로그 값은 613이됩니다. ADC를 찾는 공식은 ADC = (아날로그 전압 값 X 1023) / 5 로 주어질 수 있습니다. 이 공식을 사용하면 모든 아날로그 전압을 Arduino 아날로그 읽기 값으로 변환 할 수 있습니다.
회로도
아래 회로도는 Arduino와 Rain Drop Sensor 의 회로 연결을 보여줍니다 . 디자인은 proteus를 사용하여 이루어지며 물리적 모듈은 회로도에 표시된 모듈과 유사합니다.
회로도에 표시된 레인 게이지 모듈은 제어 보드에 연결됩니다. 제어 보드의 VCC 핀은 5V 전원에 연결됩니다. 접지 핀은 접지에 연결됩니다. 필요한 경우 D0 핀은 Arduino의 모든 디지털 핀에 연결되며 해당 핀은 프로그램에서 출력 핀으로 선언되어야합니다. D0 핀에서 직면하는 문제는 출력 전압의 정확한 값을 얻을 수 없다는 것입니다. 출력이 임계 전압을 넘으면 제어 모듈이 출력의 변화를 감지 할 수 있습니다. 레인 보드 모듈의 출력 전압에 상당한 변화가 있더라도 부저를 작동해야합니다. 이러한 이유로 A0 핀이 아두 이노의 아날로그 핀에 연결되어 출력 변화를 쉽게 모니터링 할 수 있습니다. 사용자에게 신호로 사용되는 부저는Arduino의 모든 디지털 핀에 연결할 수 있습니다. 부저에 5V 이상이 필요한 경우 릴레이 회로 또는 트랜지스터를 연결 한 다음 부하를 연결하십시오.
코드 설명
비 센서의 Arduino 코드 아두 이노 IDE를 사용하여 작성 하였다. 이 프로젝트의 전체 코드는 페이지 끝에 제공됩니다.
# 강우 정의 A0 # 부저 정의 5 int 값; int set = 10;
핀 A0을 강우로, 핀 5를 부저로 정의하고 변수“값”과“설정”을 정수로 선언하고 변수 설정 값을 10으로 설정합니다.이 값은 필요한 작동 수준에 따라 변경할 수 있습니다. 부저가 울리도록하려면 비가 거의 내리지 않아도 최소값으로 설정하세요.
void setup () {Serial.begin (9600); pinMode (buzzer, OUTPUT); pinMode (rainfall, INPUT); }
직렬 통신 초기화 및 부저 설정. 강우 핀을 출력 핀과 입력 핀으로 설정합니다.
void loop () {value = analogRead (rainfall); Serial.println (값); 값 = map (value, 0,1023,225,0);
analogRead 함수는 레인 센서의 값을 읽습니다. 함수 맵은 출력 핀의 레인 센서 값을 매핑하고 0에서 225 사이의 값을 변수에 할당합니다.
if (value> = set) {Serial.println ("rain detected"); digitalWrite (buzzer, HIGH);
읽기 센서 값이 설정 값보다 크면 프로그램이 루프에 들어가 직렬 모니터에 메시지를 인쇄하고 부저를 켭니다.
else {digitalWrite (buzzer, LOW);
프로그램은 값이 설정 값보다 작을 때만 else 기능으로 들어갑니다. 이 기능은 설정 값이 센서의 값보다 높을 때 부저를 끄고 비가 없음을 알려줍니다.
Arduino 기반 빗물 감지 시스템 작동
이 시스템은 비가 올 때 빗물이 버저를 켜는 트리거 역할을하는 방식으로 작동합니다. 에서 비 드롭 센서 아두 이노 코드, 우리는 핀 (5)을 정의하고, A0는 부저와 강우량이다. 이렇게하면 함수의 정의 된 부분에서 핀을 변경할 수 있으며 코드의 나머지 부분은 그대로 유지됩니다. 이렇게하면 프로그래머가 핀을 쉽게 편집 할 수 있습니다.
void 루프에서 analogRead 명령은 센서에서 값을 읽습니다. 다음 행에서 Serial.println (value) 명령 은 직렬 모니터에 값을 인쇄합니다. 이것은 디버깅하는 동안 도움이 될 것입니다. map 함수는 0-225 사이의 들어오는 값을 매핑합니다. 맵 의 함수 형식 은 맵 (값, 최소값, 최대 값, 최소값으로 매핑 할 값, 최대 값으로 매핑 할 값)입니다. 부저는 설정 값과 센서의 출력에 따라 ON 또는 OFF로 전환됩니다. 이 값은 if 함수에서 설정 값과 비교됩니다. 값이 설정 값보다 크면 부저가 켜집니다. 값이 설정 값보다 작 으면 부저가 꺼집니다.
전체 작업은 아래 링크 된 비디오 에서 찾을 수 있습니다. 이것은 많은 응용 프로그램 중 하나이며 앞 유리 와이퍼, 기타 홈 오토메이션, 농업 분야 등에서 동일한 원리를 볼 수 있습니다. 프로젝트를 이해하고 유용한 것을 구축하는 것을 즐겼기를 바랍니다. 질문이있는 경우 아래 댓글 섹션을 사용하거나 다른 기술 질문에 대한 포럼을 사용하십시오.