وحدة التحكم في المضخة القائمة على الرسائل القصيرة مع إيقاف التشغيل التلقائي للتشغيل الجاف

وحدة التحكم في المضخة القائمة على الرسائل القصيرة مع إيقاف التشغيل التلقائي للتشغيل الجاف

في هذا المنشور ، سنقوم بإنشاء وحدة تحكم في مضخة المياه تعتمد على الرسائل القصيرة مع إيقاف تشغيل تلقائي للمضخة عندما لا يتم اكتشاف تدفق المياه عبر المضخة. سنقوم أيضًا بإنشاء دائرة مانعة للتشغيل الجاف التلقائي أبسط بكثير بدون GSM في النصف التالي من المقالة.



ما هو التشغيل الجاف في المحركات

لقد ناقشنا بالفعل على وحدة تحكم مضخة GSM على هذا الموقع ، تحقق من ذلك إذا لم تقم بذلك بعد. نحن هنا نضيف ميزة إضافية على التصميم الحالي ، والتي ستمنع المحرك من التشغيل الجاف.

تشغيل جاف يعني تشغيل مضخة الماء بدون تدفق السائل. يمكن أن تكون النتيجة ضررًا قابلاً للخدمة للتلف غير القابل للإصلاح اعتمادًا على المدة التي كان المحرك يعمل فيها دون ضخ المياه وجودة مضخة المياه.





نعم ، مضخات المياه ليست رخيصة ، وإذا كنت مزارعًا تروي الحقل كل يوم ، فإن مشكلة صغيرة في مضخة المياه الخاصة بك يمكن أن تسبب لك خسارة اقتصادية.

قد تستغرق صيانة المضخة بعض الوقت والمال ، لذلك من الأفضل اتباع الشعار الشهير 'الوقاية خير من العلاج'.



تشغيل المحرك الجاف هي مشكلة شائعة جدًا ، عندما لا يكون هناك ما يكفي من الماء للتدفق عبر المضخة ، يحدث تسخين زائد للمكونات الميكانيكية وكذلك المكونات الكهربائية.

عند نقطة ما ، ستبدأ المكونات الميكانيكية في الذوبان وقد تتسبب أيضًا في حدوث ماس كهربائي.

يمكن منع مثل هذه الكارثة باستخدام الدائرة المقترحة في هذا المشروع.

للكشف عن تدفق المياه ، نحن كذلك باستخدام جهاز استشعار تدفق المياه YF-S201 . عندما لا يكتشف المستشعر أي تدفق للمياه ، فإنه يقطع إمداد الطاقة لمضخة المياه ويرسل إشعارًا عبر الرسائل القصيرة إلى المستلم بشأن إيقاف التشغيل الجاف.

باستخدام هذا التحكم المستند إلى GSM ، يمكنك تشغيل المضخة وإيقافها وأيضًا تعترف الدائرة بمشكلة التشغيل الجاف للمضخة.

دائرة التحكم في المضخة القائمة على الرسائل القصيرة:

دائرة التحكم في المضخة القائمة على الرسائل القصيرة:

تتكون الدائرة من محول تيار متردد إلى تيار مستمر باستخدام محول 9 فولت ، ومقوم جسر مكثف تجانس 1000 uF ومنظم LM7809 9V. يتم توفير مقابس تيار مستمر لتشغيل لوحة Arduino ووحدة SIM 800 / SIM 900 GSM.

لا تقم أبدًا بتشغيل وحدة GSM بدبوس 5 فولت من Arduino إلى 5 فولت من وحدة GSM لأن لوحة Arduino لا يمكنها توفير تيار كافٍ.

العلاقة بين وحدة اردوينو و GSM كما يلي:

Arduino TX ---------------------- بطاقة RX SIM 800/900

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

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

يتم توفير العرض الرئيسي بواسطة منظم LM 7809.

سوف يتوهج مؤشر LED إذا تم تنشيط المرحل وإيقاف تشغيله عند إلغاء تنشيط المرحل.

سوف يمتص الصمام الثنائي IN4007 ارتفاع الجهد العالي الذي يحدث أثناء تشغيل وإيقاف المرحل.

مستشعر تدفق المياه متصل بدبوس A0 من Arduino و 5 V و GND المقدم من لوحة Arduino.

برنامج التصميم القائم على 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 برقم الهاتف المحمول

تحتاج إلى وضع رقم الهاتف المحمول في هذه الأماكن الخمسة في الكود.

أوامر SMS:

· يجب أن تبدأ رسالتك النصية دائمًا بـ '/' وتنتهي بـ '/'

· / تشغيل المحرك / لتفعيل المحرك.

· / إيقاف تشغيل المحرك / لتعطيل المحرك.

· / اختبار / لاختبار الدائرة.

إليك رسالة SMS التي تم اختبارها أثناء إنشاء النماذج الأولية:

اختبار SMS أثناء النماذج الأولية

الأشياء التالية التي يمكننا ملاحظتها من لقطة الشاشة:

· أولاً يتم تشغيل المحرك ويتم الرد على الدائرة.

· المحرك معطل ويتم التعرف على الدائرة بالرد.

· يتم تنشيط المحرك مرة أخرى وفصل المستشعر عن مصدر التيار لمحاكاة حالة التشغيل الجاف ، وتقوم الدائرة بإيقاف تشغيل المضخة والرد عليها بإقرار تشغيل المضخة الجاف.

· أخيرًا ، تم إرسال رسالة اختبار SMS وأجابت الدائرة بـ 'النظام يعمل بشكل جيد'.

أود أن أقترح تثبيت مستشعر تدفق المياه بعد بضعة أمتار بعد مضخة المياه.

هذا يخلص إلى مانع التشغيل الجاف للمضخة القائم على GSM.

الآن دعونا نلقي نظرة على مانع التشغيل الجاف لمضخة المياه البسيط بدون GSM ، فقد يكون هذا أسهل من الاثنين.

مخطط الرسم البياني:

وحدة التحكم في المضخة القائمة على الرسائل القصيرة مع إيقاف التشغيل التلقائي للتشغيل الجاف

لا يوجد الكثير على وشك الشرح هنا ، فقط اربط الأسلاك حسب التخطيطي. يمكن أن يكون مصدر الطاقة عبارة عن محول جداري 9 فولت مع 500 مللي أمبير على الأقل أو مزود الطاقة الموضح في مخطط وحدة التحكم القائمة على GSM.

يتم توفير زر الضغط لتشغيل وإيقاف المضخة.

بمجرد الضغط على الزر لتشغيل المضخة ، تنتظر الدائرة لمدة 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------------------------//

هذا يخلص كلا التصميمين.

إذا كان لديك أي أسئلة محددة بخصوص وحدة التحكم في المضخة القائمة على الرسائل القصيرة مع دائرة إيقاف التشغيل التلقائي للتشغيل الجاف ، يرجى التعبير في قسم التعليقات ، قد تتلقى ردًا سريعًا.




السابق: 4 دوائر بسيطة لمستشعر القرب - باستخدام IC LM358 ، IC LM567 ، IC 555 التالى: حاضنة باستخدام Arduino مع التحكم التلقائي في درجة الحرارة والرطوبة