مشروع عداد الطاقة باستخدام GSM وarduino

 

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

شرح عمل المشروع :

هنا قمنا بتوصيل عداد طاقة الكهرباء مع Arduino باستخدام نبضة LED لمقياس طاقة الكهرباء. نحتاج فقط إلى توصيل tis CAL LED بـ Arduino من خلال Optocoupler IC.

المكونات المستخدمة:

 اردوينو
     وحدة GSM
     16x2 LCD
     عداد طاقة الكهرباء التناظري
     Optocoupler 4n35
     المقاومات
     وعاء
     توصيل الأسلاك
     لمبة وحامل
     شريحة جوال
     مزود الطاقة
     هاتف محمولMobile phone

عندما نقوم بتشغيل النظام ، فإنه يقرأ القيم السابقة المخزنة في EEPROM ويستعيدها في المتغيرات ثم يتحقق من الرصيد المتاح بالقيمة المحددة مسبقًا ويتخذ الإجراء وفقًا لها ، مثل إذا كان الرصيد المتاح أكبر من 15 روبية ، فسيتم تشغيل Arduino كهرباء المنزل أو المكتب باستخدام التتابع. وإذا كان الرصيد أقل من 15 روبية ، فإن Arduino يرسل رسالة نصية قصيرة إلى هاتف المستخدم بخصوص تنبيه انخفاض الرصيد ويطلب إعادة الشحن قريبًا. وإذا كان الرصيد أقل من 5 روبية ، فسيقوم Arudino بإيقاف توصيل الكهرباء بالمنزل وإرسال رسالة نصية قصيرة إلى هاتف المستخدم لتنبيه "Light Cut" وطلب إعادة الشحن قريبًا. تم استخدام وحدة GSM لإرسال واستقبال الرسائل


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

 

مخطط المشروع

يتم عرض توصيلات الدارات الخاصة بمشروع قراءة عداد الكهرباء اللاسلكية في الرسم التخطيطي ؛ لقد استخدمنا Arduino UNO لمعالجة جميع الأشياء المستخدمة في المشروع. يتم استخدام شاشة الكريستال السائل لعرض حالة الوحدات والتوازن المتبقي. تتصل دبابيس بيانات LCD وهي RS و EN و D4 و D5 و D6 و D7 برقم دبوس Arduino الرقمي 7 و 6 و 5 و 4 و 3 و 2. كما أن دبابيس Rx و Tx لوحدة GSM متصلة مباشرة بـ Tx و دبابيس Rx من Arduino على التوالي. ويتم تشغيل وحدة GSM باستخدام محول 12 فولت. يتم استخدام مرحل لتبديل توصيل الكهرباء المتصل في دبوس 12 من Arduino من خلال برنامج تشغيل ULN2003.

 

كيفية توصيل عداد الطاقة بـ Arduino:

يحتاج المستخدم الأول إلى شراء عداد كهرباء تناظري. بعد ذلك يحتاج المستخدم إلى فتحه والعثور على Pulse LED أو أطراف Cal LED (الكاثود والأنود). الآن قم بلحام سلكين في كلا المحطتين وأخرجهما من عداد الطاقة ثم أغلق مقياس الطاقة وشد البراغي.

يحتاج المستخدم الآن إلى توصيل طرف الأنود الخاص بمؤشر LED عند رقم التعريف الشخصي 1 من Optocoupler ومحطة الكاثود إلى الطرف 2. يجب توصيل رقم التعريف الشخصي الرابع من optocouper مباشرة بالأرض. يتم توصيل LED ومقاوم السحب عند رقم التعريف الشخصي 5 من optocoupler. ويجب أن تذهب نفس المحطة إلى Arduino pin 8 أيضًا.

حساب الوحدات و النبضات:

قبل الشروع في الحسابات ، علينا أولاً أن نضع في اعتبارنا معدل النبض لمقياس الطاقة. هناك نوعان من معدلات النبض لمقياس الطاقة الأول هو 1600 imp / kwh والثاني 3200 imp / kwh. لذلك نحن هنا نستخدم 3200 إمب / كيلووات ساعة مقياس طاقة معدل النبض.

لذلك نحتاج أولاً إلى حساب النبضات لـ 100 واط ، وهذا يعني عدد المرات التي يومض فيها مؤشر النبضات في دقيقة واحدة ، لحمل 100 واط.

نبض = (Pluse_rate * واط * الوقت) / (1000 * 3600)

لذلك يمكن حساب نبضات لمبة 100 وات في 60 ثانية ، بمقياس طاقة يبلغ 3200 إمب / كيلووات ساعة ، على النحو التالي:

النبضات = 3200 * 100 * 60/1000 * 3600

النبضات = 5.33 نبضة في الدقيقة

نحتاج الآن إلى حساب عامل القدرة لنبضة واحدة ، ويعني مقدار الكهرباء التي سيتم استهلاكها في نبضة واحدة:

PF = واط / (ساعة * نبضة)

PF=100/60*5.33

PF = 0.3125 واط في نبضة واحدة

الوحدات = PF * النبض الكلي / 1000

يبلغ إجمالي النبضات في الساعة حوالي 5.33 * 60 = 320

الوحدات = 0.3125 * 320/1000

الوحدات = 0.1 في الساعة

إذا كانت نبضة 100 واط تضيء ليوم واحد ، فستستهلك

الوحدات = 0.1 * 24
الوحدات = 2.4 وحدة

نبضات = 2.4 * 5 = 12نبض

 

 

شرح البرمجة:

نقوم بتضمين المكتبة المطلوبة وتحديد الدبابيس والمتغيرات المطلوبة في مشروعنا. يمكن ملاحظة ذلك في الأسطر القليلة الأولى من رمز برنامجنا أدناه.

بعد ذلك نقوم بتهيئة شاشة LCD والاتصال التسلسلي و GSM وعرض بعض رسائل الرسائل.

بعد هذا في وظيفة الحلقة نقرأ البيانات المستلمة التسلسلية إن وجدت. ويقرأ النبض من عداد الطاقة ويظهر الوحدات والتوازن على شاشة LCD.

 

بعد هذا في وظيفة الحلقة نقرأ البيانات المستلمة التسلسلية إن وجدت. ويقرأ النبض من عداد الطاقة ويظهر الوحدات والتوازن على شاشة LCD.

 

تم استخدام وظائف init_sms () باطلة و send_data باطلة (رسالة سلسلة) و send_sms () باطلة لإرسال الرسائل القصيرة.

تُستخدم وظيفة gsm_init () لتهيئة وحدة GSM للاستعداد للعمل مع النظام. في هذا ، نرسل أولاً أمر AT لمعرفة ما إذا كانت وحدة GSM متصلة أم لا. بعد ذلك قمنا بإيقاف تشغيل echo ثم فحصنا الشبكة.

 

في check_status () نظام وظيفة يقرأ شروط الاتصال والتوازن ؛ مثل ما إذا كان رصيد الكهرباء أكبر من الحد المحدد. إذا كان الرصيد أقل من 15 ، فإنه ينبه المستخدم عن طريق إرسال تنبيه SMS بـ "Low Balance" وإذا كان الرصيد أقل من 5 روبية ، فسيقوم النظام بقطع الكهرباء وإبلاغ المستخدم عن طريق إرسال الرسائل القصيرة باستخدام وحدة GSM.


يتم استخدام وظيفة send_confirmaiton_sms () لإرسال رسالة تأكيد إلى المستخدم في حالة إجراء إعادة الشحن وكذلك تحديث الرصيد في النظام.

تُستخدم وظيفة decode_message () لفك تشفير رقم المبلغ من رسالة SMS ، باستخدام # و * كحرف بداية ونهاية.

تُستخدم وظيفة read_pulse () لقراءة النبض من عداد الطاقة من خلال optocoupler IC. وتحديث الوحدة والتوازن.

 

يتم استخدام دالة serialEvent () للاتصال التسلسلي واستلام الرسالة.

 

 

و الان نضع لكم الكود الخاص بالمشروع


 

'''على أي إذا ادا واجهتكم اي مشكل   ,  عبَِروا عن ذلك في خانة التعليقات أسفله '''

 

 

إرسال تعليق

أحدث أقدم