حلبة التحكم في محرك مضخة GSM باستخدام Arduino

جرب أداة القضاء على المشاكل





في هذا المنشور ، سنقوم ببناء دائرة تحكم محرك مضخة GSM صديقة للمزارعين والتي يمكن
قم بتشغيل وإيقاف تشغيل نظام الري عن بُعد من أي مكان في العالم عبر الرسائل القصيرة للهاتف المحمول وإعادتك برسالة إقرار. وقد طلب الفكرة السيد PG Ragavandir.

التصميم

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



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

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



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

دعنا نتعمق في الجزء الفني من المشروع.

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

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

كيف تعمل

حلبة التحكم في محرك مضخة GSM باستخدام Arduino

ملاحظة: الرجاء استخدام المقاوم 10 كيلو على الأقل في قاعدة الترانزستور BC548 ، 330 أوم منخفضة جدًا.

ال تنحى المحولات يقوم مقوم الجسر 230VAC إلى 12VAC بتحويل التيار المتردد إلى تيار مستمر ويمر التيار عبر مكثف إلكتروليتي لتسهيل مصدر الطاقة.

ثابت منظم جهد 12 فولت يعطي الطاقة لمودم اردوينو و GSM وترحيل. ال مودم GSM متصل بـ arduino على pin # 0 و pin # 1 ، وهما RX و TX على التوالي.

يتصل RX الخاص بـ GSM بـ TX الخاص بـ arduino و TX لـ GSM متصل بـ RX الخاص بـ arduino. إذا كنت مرتبكًا ، فما عليك سوى إلقاء نظرة على الرسم البياني أدناه ، فلن يرسل خطأ الاتصال أو يستقبل الرسائل القصيرة.

ARDUINO TX ---------------------- مودم RX GSM
RX ---------------------- TX

تم أيضًا إنشاء اتصال أرضي بين مودم اردوينو و GSM.

حاول الحصول على موصل طاقة ذكر من أجل GSM و arduino ، إن لم يكن مجرد لحام الأسلاك مباشرة من مزود الطاقة إلى اردوينو و GSM ، مما قد يزيد من الفوضى في المشروع.

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

ال مؤشر LED يظهر حالة التتابع. إذا كان مؤشر LED يضيء المرحل نشطًا وإذا كان مؤشر LED مطفأ ، فسيتم إلغاء تنشيط المرحل.

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

كود البرنامج:

//----------------Program developed by R.Girish------------//
int LED = 8
int motor = 9
int temp=0
int i=0
char str[15]
void setup()
{
Serial.begin(9600)
pinMode(motor,OUTPUT)
pinMode(LED,OUTPUT)
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
delay(20000)
delay(20000)
delay(20000)
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)
}
}
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
delay(1000)
}
else if(!(strncmp(str,'motor off',9)))
{
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
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)
}
}
//----------------Program developed by R.Girish------------//

ملاحظة 1: أثناء تجميع البرنامج ، يظهر تحذير ، يمكنك تجاهله. تم التحقق من البرنامج واختباره.

ملاحظة 2: يرجى إزالة اتصال TX و RX من arduino أثناء تحميل الكود.

ملاحظة 3: استبدل 'xxxxxxxxxxxxx' برقم هاتف المستلم في 4 أماكن في البرنامج.

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

النموذج الأولي للمؤلف لدائرة التحكم في محرك مضخة GSM:

كيفية استخدام الإعداد أعلاه:

• إرسال / تشغيل / رسالة نصية من هاتفك المحمول لتنشيط التتابع.

• إرسال / إيقاف تشغيل المحرك / SMS لإلغاء تنشيط التتابع.

• إرسال / اختبار / SMS لاختبار الاستجابة من الدائرة.

تأكد من بدء الأمر بـ '/' والانتهاء بـ '/' وإلا فلن يتم قبوله كطلب صالح.

• / المحرك قيد التشغيل / سوف يقوم بتشغيل التتابع ويعود برسالة قصيرة 'تنشيط المحرك'.

• / إيقاف تشغيل المحرك / سيتم إيقاف تشغيل التتابع والعودة برسالة نصية قصيرة 'تم تعطيل المحرك'.

• إذا قمت بإرسال / اختبار / سيعود مع رسالة نصية قصيرة 'النظام يعمل بشكل جيد'.

• تشير الرسالة أعلاه إلى أن الإعداد الخاص بك يعمل بشكل جيد.

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

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

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

تحسين المفهوم أعلاه

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

إشعار باستلام رسائل SMS عندما يكون المحرك قيد التشغيل بالفعل

يدور التحسين حول الإقرار بالعودة ، حيث سيتلقى المستخدم استجابة SMS في هاتفه المحمول من GSM نظام تحكم المضخة عندما يرسل المستخدم تعليقًا صالحًا عبر رسالة SMS.

يرسل التصميم الحالي رسالة اعتراف SMS إلى المستخدم بشكل مستقل عن الحالة الفعلية للترحيل ، أي ON / OFF.

يتحقق التغيير الجديد في التصميم الذي اقترحه السيد غاندي من حالة التتابع سواء تم تبديل التتابع فعليًا أم لا.

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

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

عندما نرسل أمر SMS '/ MOTOR ON /' ، يرتفع الدبوس رقم 9 ويطلق التتابع ON. إذا كان المرحل يربط بين دبابيس N / O الشائعة ، تبدأ المضخة وتقوم أيضًا بتشغيل المحول الذي سيعطي +5 عند الإخراج.

يتم تغذية إشارة + 5V إلى الطرف رقم 7 الذي سيؤكد ويعود مع إقرار 'تنشيط المحرك'.

عندما نرسل '/ MOTOR OFF /' ، يتحول الدبوس رقم 9 إلى مستوى منخفض ويفصل التتابع المسامير المشتركة ودبابيس N / O ، سيؤدي ذلك إلى إيقاف تشغيل المضخة وكذلك المحول المتصل. الإخراج في الطرف رقم 7 يتحول إلى مستوى منخفض ويعود مع إقرار 'تم تعطيل المحرك'.

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

كود البرنامج:

//----------------Program developed by R.Girish------------//
int motor = 8
int LED = 9
int temp=0
int i=0
int ack=7
char str[15]
void setup()
{
Serial.begin(9600)
pinMode(ack,INPUT)
pinMode(motor,OUTPUT)
pinMode(LED,OUTPUT)
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
delay(20000)
delay(20000)
delay(20000)
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)
}
}
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)
delay(100)
if(digitalRead(ack)==1)
{
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
delay(1000)
}
}
else if(!(strncmp(str,'motor off',9)))
{
digitalWrite(motor,LOW)
delay(5000)
if(digitalRead(ack)==0)
{
digitalWrite(LED,LOW)
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)
}
}
//----------------Program developed by R.Girish------------//

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

قائمة الأجزاء

1) تنحى المحولات 12-0 فولت
2) الثنائيات IN4007 x5
3) LM7812 x1
4) مرحل 12 فولت × 1
5) BC548 الترانزستور x1
6) مكثف كهربائيا 1000 فائق التوهج x1
7) وحدة GSM: طراز SIM 800 أو SIM 900
8) 330 أوم المقاوم x2
9) LED أحمر / أخضر × 1
10) Arduino Uno أو Arduino nano أو Arduino Mega
11) DC ذكر جاك x2

مقطع فيديو:

يتكامل مع محركات ثلاثية الطور

لقد تلقيت العديد من الطلبات لترقية مرحلة الترحيل للتصميم أعلاه بحيث يصبح متوافقًا لتشغيل المحركات ثلاثية الطور باستخدام أوامر الهاتف الخلوي GSM.

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

يوضح الشكل التالي كيفية تكوين التصميم باستخدام دائرة IC 4017.

GSM 3 مراحل تحكم المحرك الهاتف الخليوي عن بعد

ملاحظة: قد تحتاج قيم 100 فائق التوهج / 10 كلفن و 220 فائق التوهج و 47 ك إلى بعض التعديلات من أجل ضمان مقدار التأخير الصحيح للترانزستورات ومراحل الترحيل المعنية.




زوج من: دائرة أمان مؤشر موضع الدخيل التالي: دائرة التحكم في شدة المصباح الشمسي التي يتم التحكم فيها عن بعد