자동 드라 이런 차단 기능이있는 SMS 기반 펌프 컨트롤러

문제를 제거하기 위해 도구를 사용해보십시오





이 게시물에서는 펌프를 통한 물 흐름이 감지되지 않을 때 펌프를 자동으로 종료하는 SMS 기반 워터 펌프 컨트롤러를 구성 할 것입니다. 이 기사의 다음 절반에서는 GSM없이 훨씬 더 간단한 또 ​​다른 자동 드라 이런 방지 회로를 구축 할 것입니다.

모터의 드라 이런이란?

우리는 이미 논의했습니다 GSM 기반 펌프 컨트롤러 이 웹 사이트에서 아직 확인하지 않았다면 확인하십시오. 여기에서는 기존 설계에 추가 기능을 추가하여 모터가 공회전하는 것을 방지합니다.



드라이 러닝 액체 흐름없이 워터 펌프를 작동하는 것을 의미합니다. 그 결과 물을 펌핑하지 않고 모터가 작동 한 시간과 물 펌프의 품질에 따라 서비스 불가능한 손상에 대한 서비스 가능한 손상이 발생할 수 있습니다.

예, 물 펌프는 저렴하지 않으며 매일 밭을 관개하는 농업 가라면 물 펌프의 작은 문제로 인해 경제적 손실을 입을 수 있습니다.



펌프 서비스에는 시간과 비용이 소요될 수 있으므로 '예방이 치료보다 낫다'라는 유명한 슬로건을 따르는 것이 좋습니다.

모터 드라 이런 펌프를 통해 흐르는 물이 충분하지 않은 경우 기계 부품 및 전기 부품의 과열이 발생하는 매우 일반적인 문제입니다.

어느 시점에서 기계 부품이 녹기 시작하고 단락이 발생할 수 있습니다.

이 프로젝트에서 제안한 회로를 사용하여 이러한 재해를 예방할 수 있습니다.

물의 흐름을 감지하기 위해 우리는 YF-S201 수류 센서 활용 . 센서에서 물의 흐름이 감지되지 않으면 물 펌프에 대한 전원 공급을 차단하고 드라 이런 차단에 대해 수신자에게 SMS 승인을 보냅니다.

이 GSM 기반 제어를 사용하면 펌프를 켜고 끌 수 있으며 회로는 펌프 드라 이런 문제를 인식합니다.

SMS 기반 펌프 제어를위한 회로 :

SMS 기반 펌프 제어를위한 회로 :

이 회로는 9V 변압기를 사용하는 AC-DC 컨버터, 브리지 정류기, 1000uF의 평활 커패시터 및 LM7809 9V 조정기로 구성됩니다. Arduino 보드 및 SIM 800 / SIM 900 GSM 모듈에 전원을 공급하기 위해 2 개의 DC 잭이 제공됩니다.

Arduino 보드가 충분한 전류를 제공 할 수 없으므로 Arduino의 5V 핀으로 GSM 모듈에 GSM 모듈의 5V 핀에 전원을 공급하지 마십시오.

사이의 연결 Arduino 및 GSM 모듈 다음과 같이 :

Arduino TX ---------------------- RX SIM 800/900

Arduino RX --------------------- TX SIM 800/900

Arduino GND ------------------- GND SIM 800/900

주 전원은 LM 7809 조절기에 의해 제공됩니다.

릴레이가 활성화되면 LED 표시등이 켜지고 릴레이가 비활성화되면 꺼집니다.

다이오드 IN4007은 릴레이를 켜고 끄는 동안 발생하는 고전압 스파이크를 흡수합니다.

수류 센서는 Arduino 보드에서 제공하는 Arduino, 5V 및 GND의 A0 핀에 연결됩니다.

GSM 기반 설계 프로그램 :

//----------------Program developed by R.Girish------------//
int motor = 8
int LED = 9
int temp = 0
int i = 0
int j = 0
int k = 0
int X = 0
int Y = 0
int mtr_on = 0
float Time = 0
float frequency = 0
const int input = A0
const int test = 6
char str[15]
void setup()
{
Serial.begin(9600)
pinMode(motor, OUTPUT)
pinMode(LED, OUTPUT)
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
analogWrite(test, 100)
for (k = 0 k <60 k++)
{
delay(1000)
}
Serial.println('AT+CNMI=2,2,0,0,0')
delay(1000)
Serial.println('AT+CMGF=1')
delay(500)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('System is ready to receive commands.')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
void loop()
{
if (temp == 1)
{
check()
temp = 0
i = 0
delay(1000)
}
if (mtr_on == 1)
{
X = pulseIn(input, HIGH)
Y = pulseIn(input, LOW)
Time = X + Y
frequency = 1000000 / Time
if (isinf(frequency))
{
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor Deactivated. Dry Run Shut Off!')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
mtr_on = 0
delay(1000)
}
}
}
void serialEvent()
{
while (Serial.available())
{
if (Serial.find('/'))
{
delay(1000)
while (Serial.available())
{
char inChar = Serial.read()
str[i++] = inChar
if (inChar == '/')
{
temp = 1
return
}
}
}
}
}
void check()
{
if (!(strncmp(str, 'motor on', 8)))
{
digitalWrite(motor, HIGH)
digitalWrite(LED, HIGH)
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor Activated')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
for (j = 0 j <20 j++)
{
delay(1000)
}
mtr_on = 1
}
else if (!(strncmp(str, 'motor off', 9)))
{
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
mtr_on = 0
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor deactivated')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
else if (!(strncmp(str, 'test', 4)))
{
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('The System is Working Fine.')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
}

//----------------R.Girish가 개발 한 프로그램 ------------ //

수신자의 10 자리 휴대 전화 번호와 함께 코드를 입력해야합니다.

Serial.println ( 'AT + CMGS = '+ 91xxxxxxxxxx ' r') // x를 휴대폰 번호로 대체

코드의 5 개 위치에 휴대폰 번호를 입력해야합니다.

SMS 명령 :

· SMS는 항상 '/'로 시작하고 '/'로 끝나야합니다.

· / motor on / 모터를 활성화합니다.

· / motor off /-모터 비활성화.

· / test /-회로 테스트

프로토 타이핑하는 동안 테스트 된 SMS는 다음과 같습니다.

프로토 타이핑 중 SMS 테스트

스크린 샷에서 관찰 할 수있는 것은 다음과 같습니다.

· 먼저 모터를 켜고 회신으로 회로를 확인합니다.

· 모터가 비활성화되고 회신으로 회로가 승인됩니다.

· 다시 모터가 활성화되고 센서의 플러그를 뽑아 드라 이런 상황을 시뮬레이션하면 회로가 펌프를 끄고 펌프 드라 이런 승인으로 응답합니다.

· 마지막으로 테스트 SMS가 전송되었고 회로는 '시스템이 정상적으로 작동하고 있습니다'라고 응답했습니다.

나는 물 펌프 후 몇 미터 후에 물 흐름 센서를 설치하는 것이 좋습니다.

이것으로 GSM 기반 펌프 드라 이런 방지기를 마칩니다.

이제 GSM이없는 간단한 워터 펌프 드라 이런 방지기를 살펴 보겠습니다.이 두 가지 중 더 쉬울 수 있습니다.

회로도 :

자동 드라 이런 차단 기능이있는 SMS 기반 펌프 컨트롤러

여기에서 설명 할 내용은 많지 않습니다. 회로도에 따라 연결하면됩니다. 전원 공급 장치는 최소 500mA의 9V 벽면 어댑터이거나 GSM 기반 컨트롤러 회로도에 설명 된 공급 장치 일 수 있습니다.

푸시 버튼은 펌프를 켜고 끌 수 있도록 제공됩니다.

버튼을 눌러 펌프를 켜면 회로는 처음에 물의 흐름을 감지하기 위해 20 초까지 대기하고이 시간 동안 푸시 버튼은 20 초 동안 비활성화됩니다.

초기 20 초 후에 푸시 버튼이 활성화되고 푸시 버튼을 다시 눌러 수동으로 펌프를 끌 수 있습니다.

물의 흐름이 감지되면 회로는 20 초 후에 펌프를 계속 켜고, 그렇지 않으면 회로가 모터의 전원 공급을 차단합니다. 또한 물 흐름이 감지되지 않으면 회로는 언제든지 공급을 차단할 수 있습니다.

드라 이런으로 인해 회로가 차단되면 LED가 빠르게 깜박입니다.

간단한 펌프 드라 이런 방지 프로그램 :

//--------------------------Program Developed by R.GIRISH------------------------//
int X = 0
int Y = 0
int i = 0
int mtr_on = 0
float Time = 0
float frequency = 0
const int input = A0
const int test = 6
const int button = A1
const int LED = 8
const int motor = 9
void setup()
{
Serial.begin(9600)
pinMode(input, INPUT)
pinMode(test, OUTPUT)
pinMode(LED, OUTPUT)
pinMode(motor, OUTPUT)
analogWrite(test, 100)
digitalWrite(button, HIGH)
}
void loop()
{
if (digitalRead(button) == LOW && mtr_on == 0)
{
Serial.println('Motor Activated')
digitalWrite(LED, HIGH)
digitalWrite(motor, HIGH)
for (i = 0 i <20 i++)
{
delay(1000)
}
mtr_on = 1
}
if (digitalRead(button) == LOW && mtr_on == 1)
{
Serial.println('Motor Deactivated')
digitalWrite(LED, LOW)
digitalWrite(motor, LOW)
mtr_on = 0
delay(1000)
}
if (mtr_on == 1)
{
X = pulseIn(input, HIGH)
Y = pulseIn(input, LOW)
Time = X + Y
frequency = 1000000 / Time
if (isinf(frequency))
{
Serial.println('Dry run shut off')
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
mtr_on = 0
while (true)
{
digitalWrite(LED, HIGH)
delay(500)
digitalWrite(LED, LOW)
delay(500)
}
}
}
}
//--------------------------Program Developed by R.GIRISH------------------------//

이것으로 두 가지 디자인이 모두 완료되었습니다.

자동 드라 이런 셧다운 회로가있는이 SMS 기반 펌프 컨트롤러에 대한 특정 질문이있는 경우 의견란에 표현해 주시면 빠른 답변을 받으실 수 있습니다.




이전 : 4 개의 간단한 근접 센서 회로 – IC LM358, IC LM567, IC 555 사용 다음 : 자동 온도 및 습도 제어 기능이있는 Arduino를 사용하는 인큐베이터