Otomatik Kuru Çalıştırma Kapatma Özellikli SMS Tabanlı Pompa Kontrol Cihazı

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bu yazıda, pompadan su akışı tespit edilmediğinde pompayı otomatik olarak kapatan SMS tabanlı bir su pompası kontrolörü oluşturacağız. Ayrıca makalenin sonraki yarısında GSM'siz çok daha basit bir otomatik kuru çalıştırma önleyici devre inşa edeceğiz.

Motorlarda Kuru Çalışma Nedir

Daha önce tartıştık GSM tabanlı pompa kontrolörü Bu web sitesinde henüz yapmadıysanız kontrol edin. Burada, mevcut tasarıma motorun kuru çalışmasını önleyecek ek bir özellik ekliyoruz.



Kuru çalışma su pompasını sıvı akışı olmadan çalıştırmak anlamına gelir. Sonuç, motorun suyu pompalamadan ne kadar süreyle çalıştığına ve su pompasının kalitesine bağlı olarak servis edilemeyen hasarın servis edilebilir hasarı olabilir.

Evet, su pompaları ucuz değildir ve tarlayı her gün sulayan bir tarımcıysanız, su pompanızla ilgili küçük bir sorun sizi ekonomik kayba uğratabilir.



Pompanın bakımı biraz zaman ve para gerektirebilir, bu nedenle ünlü 'önleme, iyileştirmekten daha iyidir' sloganını takip etmek daha iyidir.

Motorda kuru çalışma çok yaygın bir sorundur, pompadan yeterince su akmadığında, mekanik bileşenlerin yanı sıra elektrikli bileşenlerin aşırı ısınması meydana gelecektir.

Bir noktada mekanik bileşenler erimeye başlayacak ve ayrıca kısa devreye neden olabilir.

Bu projede önerilen devre kullanılarak bu tür bir felaket önlenebilir.

Suyun akışını tespit etmek için YF-S201 su akış sensörünü kullanarak . Sensör tarafından su akışı algılanmadığında, su pompasına giden güç beslemesini keser ve alıcıya kuru çalıştırmanın kapatılmasıyla ilgili bir SMS onayı gönderir.

Bu GSM tabanlı kontrol ile pompayı açıp kapatabilirsiniz ve ayrıca devre, pompa kuru çalıştırma sorununu onaylar.

SMS tabanlı pompa kontrolü için devre:

SMS tabanlı pompa kontrolü için devre:

Devre, 9V trafo kullanan AC'den DC'ye dönüştürücü, köprü doğrultucu, 1000 uF'lik yumuşatma kapasitörü ve bir LM7809 9V regülatörden oluşur. Arduino kartına ve SIM 800 / SIM 900 GSM modülüne güç sağlamak için iki DC jak sağlanmıştır.

Arduino kartı yeterli akımı sağlayamayacağından GSM modülünü 5V Arduino pini ile GSM modülünün 5V pinine asla güç vermeyin.

Arasındaki bağlantı Arduino ve GSM modülü aşağıdaki gibi:

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

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

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

Ana besleme LM 7809 regülatörü tarafından sağlanır.

Röle etkinleştirilirse LED göstergesi yanar ve röle devre dışı bırakıldığında söner.

IN4007 diyotu, röleyi açıp kapatırken oluşan yüksek voltaj yükselmesini absorbe edecektir.

Su akış sensörü Arduino kartından sağlanan Arduino'nun A0 pini, 5V ve GND'ye bağlanır.

GSM tabanlı tasarım programı:

//----------------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 tarafından geliştirilen program ------------ //

Kodu, alıcının 10 haneli cep telefonu numarasıyla birlikte yerleştirmeniz gerekir.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // x yerine cep telefonu numarası

Cep telefonu numarasını kodda bu tür 5 yere koymanız gerekir.

SMS komutları:

· SMS'iniz her zaman '/' ile başlamalı ve '/' ile bitmelidir

· / Motor açık / motoru etkinleştirmek için.

· / Motor kapalı / motoru devre dışı bırakmak için.

· / Test / devreyi test etmek için.

İşte prototipleme sırasında test edilen SMS:

prototipleme sırasında test edilen SMS

Ekran görüntüsünden gözlemleyebileceğimiz şeyler:

· Önce motor çalıştırılır ve devre bir cevapla onaylanır.

· Motor devre dışı bırakılır ve devre bir cevapla onaylanır.

· Yine motor etkinleştirilir ve kuru çalışma durumunu simüle etmek için sensörü fişten çeker, devre pompayı kapatır ve pompa kuru çalışma onayı ile yanıt verir.

· Son olarak bir test SMS'i gönderildi ve devre “Sistem Çalışıyor İyi” yanıtını verdi.

Su akış sensörünü su pompasından birkaç metre sonra kurmanızı öneririm.

Bu, GSM tabanlı pompa kuru çalıştırma önleyicisini tamamlar.

Şimdi GSM olmadan basit su pompası kuru çalışma önleyicisine bir göz atalım, bu ikisinden daha kolay olabilir.

Devre şeması:

Otomatik Kuru Çalıştırma Kapatma Özellikli SMS Tabanlı Pompa Kontrol Cihazı

Burada açıklayacak pek bir şey yok, sadece şemaya göre bağlayın. Güç kaynağı, en az 500 mA'ya sahip 9V'luk bir duvar adaptörü veya GSM tabanlı kontrolör şemasında gösterilen kaynak olabilir.

Basma düğmesi, pompayı açıp kapatmak için sağlanmıştır.

Pompayı açmak için düğmeye bastığınızda, devre su akışını algılamak için başlangıçta 20 saniyeye kadar bekler, bu sırada basma düğmesi 20 saniye devre dışı bırakılır.

İlk 20 saniyeden sonra basma düğmesi etkinleştirilir ve basma düğmesine tekrar basarak pompayı manuel olarak KAPATABİLİRSİNİZ.

Su akışı tespit edilirse devre pompayı 20 saniye sonra AÇIK tutar, aksi takdirde devre motora giden güç beslemesini keser. Ayrıca su akışı algılanmazsa devre herhangi bir anda beslemeyi kesebilir.

Devre kuru çalışma nedeniyle kapanırsa, LED hızla yanıp söner.

Basit pompa kuru çalıştırma önleyici programı:

//--------------------------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------------------------//

Bu, her iki tasarımı da sonuçlandırır.

Otomatik kuru çalıştırma kapatma devresine sahip bu SMS tabanlı pompa kontrolörü ile ilgili özel sorularınız varsa, lütfen yorum bölümünde açıklayın, hızlı bir yanıt alabilirsiniz.




Önceki: 4 Basit Yakınlık Sensörü Devresi - IC LM358, IC LM567, IC 555 Kullanımı Sonraki: Otomatik Sıcaklık ve Nem kontrolü ile Arduino Kullanan İnkübatör