جدول المحتويات:

وحدة تحكم بداية DOL القائمة على IOT لمجموعة مضخات الري: 6 خطوات
وحدة تحكم بداية DOL القائمة على IOT لمجموعة مضخات الري: 6 خطوات

فيديو: وحدة تحكم بداية DOL القائمة على IOT لمجموعة مضخات الري: 6 خطوات

فيديو: وحدة تحكم بداية DOL القائمة على IOT لمجموعة مضخات الري: 6 خطوات
فيديو: How to Make Automatic Submersible Pump Controller | Water Level Controller | Water Level Indicator 2024, شهر نوفمبر
Anonim
وحدة تحكم بداية DOL القائمة على IOT لمجموعة مضخات الري
وحدة تحكم بداية DOL القائمة على IOT لمجموعة مضخات الري
وحدة تحكم بداية DOL القائمة على IOT لمجموعة مضخات الري
وحدة تحكم بداية DOL القائمة على IOT لمجموعة مضخات الري

مرحبا اصدقاء

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

القصة: في مزرعتي أحصل على إمداد بالطاقة من الشبكة المحلية لمدة 6 ساعات في اليوم فقط. المواعيد غير منتظمة ، يمكن أن يكون توفر الطاقة في الصباح الباكر أو في وقت متأخر في المساء أو حتى منتصف الليل. في كل مرة كان الذهاب إلى موقع البئر للتحقق من توفر الطاقة ، كان تشغيل المحرك أو إيقافه عملية مؤلمة للغاية. كما كان علي التأكد من تشغيل المحرك لمدة 2-3 ساعات على الأقل كل يوم لتوفير المياه الكافية لنظام التنقيط. بعض الوقت كنت أستكشف خيارات لحل هذه المشكلة عن طريق تشغيل المحرك عن بُعد ومعرفة الحالة أيضًا. هناك أجهزة متوفرة في السوق والتي ستبدأ تشغيل المحرك بمجرد توفر مصدر طاقة ، لكن ليس لديهم ميزة إيقاف المحرك متى أردنا. وأيضًا لا توجد طريقة لمعرفة حالة تشغيل / إيقاف تشغيل المحرك في أي وقت. وعادة ما يؤدي هذا إلى الإفراط في الري ، مما يؤدي إلى فقدان خصوبة التربة وكذلك إهدار الكهرباء. أخيرًا ، قمت ببناء حل بنفسي حيث يمكنني بدء تشغيل المحرك وإيقافه عن بُعد من الهاتف المحمول / الجهاز اللوحي / الكمبيوتر الشخصي في أي وقت وفي أي مكان … !!. كما يمكنني مراقبة توفر مصدر الطاقة من الطوق وكذلك حالة المحرك (ON / OFF) طوال الوقت. آمل أن يساعد أصحاب المزارع في الريف على إدارة أنظمة الري الخاصة بهم دون الحاجة إلى الذهاب إلى موقع البداية طوال الوقت.

اللوازم

المتطلبات الأساسية:

يجب أن يكون الموقع الذي تريد تثبيت هذا الجهاز فيه متوفرًا بالإنترنت (النطاق العريض مع wifi / الإنترنت عبر الهاتف المحمول)

أشياء تحتاجها:

  1. NodeMCU / ESP12
  2. تتابع قناتين
  3. WCS1700 - جهاز الاستشعار الحالي
  4. وحدة شحن البطارية TP4056
  5. LD313 ، مكثف - سجل 1000 فائق التوهج - سجلين من 5 كيلو أوم
  6. أي هاتف ذكي (قديم) به نقطة اتصال / إنترنت.

كيف تعمل:

إنه حل IOT بسيط قائم على السحابة باستخدام NodeMCU / ESP12 ووسيط MQTT عن بُعد. يعمل NodeMCU كبوابة IOT ، كما يتحكم في بداية DOL. يتصل بوسيط MQTT البعيد عبر الإنترنت. يتصل تطبيق يعمل على هاتف محمول يعمل بنظام Android بالوسيط الذي يمكننا من خلاله مراقبة مجموعة مضخة الري الخاصة بنا والتحكم فيها طوال الوقت. لقد استخدمت وسيط MQTT المتاح مجانًا من Adafruit IO. هناك العديد من الوسطاء المتاحين مثل mosquitto و cloudmqtt وما إلى ذلك. يمكنك اختيار أي وسيط بشرط تغيير الخادم ورقم المنفذ في الكود. NodeMCU يتصل بالإنترنت باستخدام WiFi من نقطة اتصال الجوال. يمكن لـ Yon استخدام أي هاتف محمول قديم أو منخفض التكلفة لتوفير الوصول إلى شبكة wifi من خلال نقطة الاتصال أو أي وسيلة أخرى لتوفير الإنترنت من خلال wifi. يجب أن يكون الموبايل متصلاً بالشاحن كما يجب أن يكون على مدار 24 ساعة في اليوم و 7 أيام في الأسبوع.

يتم توصيل NodeMCU بمرحلين للتحكم في بدء تشغيل المحرك وإيقافه. لاستشعار التيار في المحرك ، استخدمت مستشعر التيار WCS1700. يتم استخدام الإخراج التناظري من المستشعر لمعرفة أن المحرك في وضع التشغيل أو الإيقاف. كما أنه يستشعر توفر الطاقة من الشبكة وينشرها إلى الوسيط حتى نتمكن من معرفة حالة الشبكة في أي وقت. يشترك الجهاز في خلاصتين لاستقبال طلب تشغيل المحرك وإيقاف تشغيله. من خلال إرسال قيم محددة إلى هذه الخلاصات ، يمكننا التحكم في المحرك إلى START أو STOP.

أخيرًا ، قمت بتثبيت تطبيق MQTT Dash على هاتفي الذي يعمل بنظام Android وقمت بتكوينه للاتصال بوسيط MQTT واستخدام الخلاصات الموجودة على لوحة القيادة / واجهة المستخدم الرسومية. يحتوي التطبيق على رموز جيدة جدًا مع أزرار ، ومقياس ، وتبديل ، وما إلى ذلك لإنشاء لوحة تحكم جذابة. ومع ذلك ، يمكنك استخدام أي تطبيق جوال لأتمتة المنزل IOT يدعم بروتوكول mqtt.

كيف يعمل WCS1700:

WCS1700 هو في الأساس مستشعر تأثير هول والذي سينتج جهد خرج يتناسب مع المجال المغناطيسي الذي تم إنشاؤه أثناء تدفق التيار عبر الملف. الملف هنا عبارة عن خط إمداد طاقة سيتم توصيله بالمحرك. يمكنه قياس تيار التيار المتردد حتى 70 أمبير. يتراوح جهد التشغيل بين 3.3 إلى 12 فولت. ارجع إلى ورقة البيانات لمزيد من التفاصيل. نظرًا لأنني أستخدم ESP12 ، فقد استخدمت نفس مصدر الطاقة البالغ 3.3 فولت مثل جهد التشغيل لـ WCS1700. كما هو محدد في ورقة البيانات عند 3.3 فولت ، يجب أن ينتج الجهاز جهدًا تفاضليًا يبلغ حوالي 32 إلى 38 مللي فولت لكل أمبير من التيار عبر الملف. ولكنها قد تختلف بناءً على حجم الملف / فجوة الهواء والاختلافات في الجهاز. ومن ثم اضطررت إلى معايرته عن طريق اختباره باستخدام Ampere Meter. لست سعيدًا بدقة الجهاز ولكنه جيد بما يكفي لاتخاذ قرار بشأن حالة المحرك على أنه ON / OFF. يتم توصيل طرف إخراج WCS1700 بـ A0 من ESP12. عندما لا يكون هناك تيار ، يجب أن يقرأ ESP12 القيمة حول 556. نظرًا للزيادة الحالية في الملف ، يمكن للجهد أن يكون في أي من الجانبين بناءً على كيفية مرور الكبل عبر المستشعر. في الكود ، أخذت فرق القيم كقيمة مطلقة لـ (x - 556). بقسمة النتيجة على 15 حصلت على تيار تقريبي يتدفق عبر المستشعر. سيكون عليك تجربة هذا للحصول على الرقم المناسب لك. أي قياس للتيار بواسطة الجهاز أعلى من 5 أمبير أعتبره محركًا يعمل وأقل من 5 أمبير لأن المحرك في وضع إيقاف التشغيل. يمكنك استخدام الرقم الصحيح لجهازك عن طريق التجربة. تحتاج إلى تغيير WCS1700_CONST و MIN_CURRENT في الكود وفقًا لذلك.

الخطوة 1: بناء الجهاز

بناء الجهاز
بناء الجهاز
بناء الجهاز
بناء الجهاز

يعطي الرسم البياني أعلاه تفاصيل كاملة حول كيفية توصيل جميع المكونات.

مزود الطاقة: لقد استخدمت TP4056 لشحن البطاريات و LM313 لتنظيم 3.7 فولت - 4.2 فولت من إخراج البطارية إلى 3.3 فولت لتشغيل NodeMCU. يستخدم مكثف 1000mF بين Vin والأرضي LM313 للحصول على إمداد ثابت من 3.3V. يمكنك استخدام شاحن محمول USB عادي لتشغيل TP4056. لديها دائرة حماية البطارية لحماية البطارية من الشحن الزائد.

استشعار مصدر طاقة الشبكة: سيقلل مقسم الجهد 5 كيلو أوم من 5 فولت إلى 2.5 فولت. سوف يستشعر دبوس D5 من NodeMCU الجهد.

يتم توصيل دبوس الإخراج WCS1700 بـ A0 لقراءة الجهد التناظري من المستشعر. يجب أن يمر خط طاقة الشبكة عبر الفتحة لقياس التيار. لقد استخدمت مكثف 0.01 uF للحصول على نموذج القراءة المستقر WCS1700.

يتم توصيل D1 و D2 من NodeMCU بـ IN0 و IN1 من دبابيس إدخال الترحيل.

الخطوة 2: اتصالات DOL Starter

اتصالات DOL Starter
اتصالات DOL Starter
اتصالات DOL Starter
اتصالات DOL Starter

لقد قمت بتعديل دائرة التحكم الخاصة ببادئ التشغيل DOL لتقديم مجموعة أخرى من مفتاح START و STOP. لن يؤثر هذا التغيير على عملية البدء / الإيقاف اليدوي وسيستمرون في العمل كما هو.

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

لقد استخدمت وحدة ترحيل ثنائية القناة 5 فولت كمفتاح START و STOP. سيتم التحكم في هذه المرحلات بواسطة ESP12.

سيعمل التتابع - 0 كمفتاح START - سلكي كـ NO (مفتوح عادة).

سيعمل Relay-1 كمفتاح إيقاف - سلكي مثل NC (مغلق عادة). سيكون للمبتدئين بالفعل سلك متصل من أعلى موصل إلى NVC. سيكون عليك إزالته واستبداله بأسلاك مرحل -1 كما هو موضح.

تأكد من أن الوصلات بين المشغل ووحدات الترحيل معزولة تمامًا من أجل السلامة. لقد قمت ببرمجة ESP لعقد كلا المرحلتين لمدة ثانيتين لمحاكاة الضغط على زر START / STOP.

الخطوة 3: إنشاء حساب مع Adafruit IO (io.adafruit.com)

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

الخطوة 4: إنشاء البرنامج وتثبيته

الكود الكامل متاح في الرسم التخطيطي. تحتاج إلى فتح هذا في Arduino IDE وإجراء بعض التغييرات قبل تجميع البرنامج الثابت وتحميله. اختر نوع اللوحة كـ NodeMCU 1.0. تثبيت IDE والمكتبات ذات الصلة ليست في نطاق هذه الوثائق.

قم بتعديل الأسطر التالية في الكود كما يلي:

#define WLAN_SSID "xxx" // نقطة اتصال شبكة WiFi المحمولة الخاصة بك SSID

#define WLAN_PASS "……" //

/ ************************* Adafruit.io إعداد ********************** ************* /

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // استخدم 8883 لـ SSL

#define AIO_USERNAME "xyz" // اسم مستخدم حساب adafruit الخاص بك

#define AIO_KEY "abcd ……" // مفتاحك النشط …

حول موجزات MQTT: يتبادل الجهاز والعميل (تطبيق الهاتف المحمول) المعلومات من خلال موجزات الرسائل باستخدام نموذج pub sub من خلال وسيط MQTT. أي عميل أو جهاز لتلقي رسالة ، يجب عليه الاشتراك في موجز محدد مسبقًا ويجب أن يستخدم طريقة النشر لإرسال رسالة إلى موجز ويب. لمشروعنا نحن نطلب حوالي 5 علف. يوجد أدناه شرح لكل موجز كما ترى في الكود وكيف يعمل.

حالة الشبكة: يتم نشر توفر مصدر الطاقة من الشبكة على التغذية / الخلاصات / الشبكة. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt، AIO_USERNAME "/ feeds / network") ؛

0 يشير إلى أن مصدر الطاقة غير متوفر و 1 لمصدر الطاقة متاح.

حالة المحرك: سينشر الجهاز حالة المحرك على التغذية … / feeds / network.

Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish (& mqtt، AIO_USERNAME "/ feeds / motor")

القيمة 0 لـ OFF و 1 لـ ON

زر تشغيل المحرك: تستخدم هذه التغذية لتلقي طلب بدء تشغيل المحرك. سيقوم الجهاز بالاشتراك في الخلاصة لتلقي طلب بدء تشغيل المحرك بقيمة = 1 واستخدام نفس الخلاصة لنشر رسالة الإقرار كـ 0. وبهذه الطريقة يمكننا تأكيد استلام رسالة طلب البدء بالفعل بواسطة الجهاز.

Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe (& mqtt، AIO_USERNAME "/ feeds / motor_on") ؛

زر إيقاف تشغيل المحرك:

على غرار طلب البدء ، يتم استخدام هذه الخلاصة لتلقي طلب إيقاف المحرك. سيشترك الجهاز في الخلاصة لتلقي طلب الإيقاف بالقيمة = 1 واستخدام نفس الخلاصة لنشر رسالة الإقرار كـ 0.

Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe (& mqtt، AIO_USERNAME "/ feeds / motor_off") ؛

اتصال:

هذا موجز خاص مع تمكين خيار "الإرادة الأخيرة". عندما يعمل الجهاز بشكل جيد في كل فترة زمنية ثابتة ، فإنه سينشر الاتصال = 1 ليخبر المستخدم أن كل شيء على ما يرام. في حالة تعطل النظام أو فقد الاتصال ، لن يتمكن الجهاز من الاتصال بالوسيط. في مثل هذه الحالات ، سينشر وسيط MQTT نفسه في الخلاصة على شكل اتصال = 0 لإعلام المستخدم بحدوث خطأ ما ولا يمكن الوصول إلى الجهاز عبر الإنترنت. علينا أن نذهب فعليًا ونتحقق من الجهاز. الكود بسيط جدا راجع وثائق MQTT للحصول على مزيد من التفاصيل حول كيفية عمل "Last Will".

إذا (itr <= 0)

{

mqtt.publish (AIO_USERNAME "/ feeds / connection"، "1"، 1) ؛

itr = CON_LIVE_ITR ،

}

ما تبقى من الكود هو شرح ذاتي ولا حاجة لإجراء أي تعديلات. لا تتردد في التعليق إذا كنت بحاجة إلى مزيد من المعلومات.

الخطوة 5: تثبيت وتكوين MQTT Dash APP على هاتفك المحمول

قم بتثبيت وتكوين MQTT Dash APP على هاتفك المحمول
قم بتثبيت وتكوين MQTT Dash APP على هاتفك المحمول
قم بتثبيت وتكوين MQTT Dash APP على هاتفك المحمول
قم بتثبيت وتكوين MQTT Dash APP على هاتفك المحمول
قم بتثبيت وتكوين MQTT Dash APP على هاتفك المحمول
قم بتثبيت وتكوين MQTT Dash APP على هاتفك المحمول
  1. قم بتثبيت MQTT Dash على هاتف Android الخاص بك وافتح التطبيق
  2. انقر فوق رمز + في الزاوية اليمنى العليا لإضافة جهاز.
  3. كما هو موضح في الصورة الأولى أعلاه ، أعط بعض الاسم لجهازك قل "MyFarm-IPSet". حقل العنوان كـ io.adafruit.com والمنفذ كـ 1883 ، يجب أن يكون اسم المستخدم هو اسم مستخدم adafruit الخاص بك وكلمة المرور يجب أن يكون Active Key الخاص بك من adafruit. اترك باقي الحقول كما هي. أخيرًا انقر فوق حفظ.
  4. لقد حصلت على جهازك الذي تم إنشاؤه. الآن انقر عليها لإضافة لوحة القيادة إليها.
  5. انقر فوق + وحدد النوع كمفتاح / زر. كما هو موضح أعلاه ، أدخل النظام في حقل الاسم. وأدخل اسم الخلاصة في حقل الموضوع. يجب أن تبدأ كل خلاصة باسم المستخدم / الخلاصات /. لهذا نحن / يغذي / اتصال. تأكد من تعطيل تمكين النشر. من خلال النقر فوق الرمز للعرض ، يمكنك اختيار نوع الرمز الذي تريده على لوحة القيادة لتبدو بالشكل. بالنسبة للقيمة 1 ، حدد أحد الألوان (مثل الأخضر) وللقيمة 0 حدد اللون باللون الرمادي أو الأحمر. أخيرًا ، انقر فوق حفظ في الزاوية اليمنى العليا. وبالمثل ، قم بإنشاء رمزين آخرين للشبكة باستخدام اسم المستخدم / الخلاصات / الشبكة كموضوع والمحرك باسم المستخدم / الخلاصات / المحرك. تأكد من تعطيل تمكين النشر.
  6. أخيرًا قم بإنشاء زر تشغيل المحرك. مرة أخرى نفس نوع التبديل / الزر. يجب أن يكون الموضوع / feeds / motor_on والتأكد من تمكين تمكين النشر هذه المرة و QOS = 1. وبالمثل ، قم بإنشاء زر آخر لـ Motor OFF. يجب أن يكون الموضوع / feeeds / motor_off.

الخطوة 6: الخطوة الأخيرة:-) الاختبار والضبط الدقيق

  1. لكي تكون آمنًا ، تحتاج إلى اختبار الجهاز أولاً لعمليات START و STOP الخاصة به قبل توصيل المرحلات بـ DOL starter. قم بتمكين Hotspot على الهاتف المحمول مع تمكين الإنترنت. قم بتوصيل الكمبيوتر المحمول الذي يحتوي على بيئة تطوير مباشرة بمنفذ NodeMCU USB بشاحن آخر متصل بـ TP4056 في نفس الوقت. إذا تم توصيل الجهاز بالإنترنت بنجاح ، فسترى جهازًا واحدًا متصلًا بنقطة اتصال على الهاتف الذكي.
  2. على الهاتف الذكي الآخر حيث قمت بتثبيت MQTT Dash ، افتح لوحة تحكم التطبيق. يجب أن ترى أن رمز NET باللون الأخضر وأيقونة الشبكة أيضًا باللون الأخضر مع قيمهما على النحو 1. يجب أن تظهر أيقونة المحرك كمحرك مغلق بقيمة 0.
  3. عند النقر فوق الزر "تشغيل المحرك" ، يجب أن يصدر مرحل البدء أصوات نقرتين بفاصل ثانيتين. وبالمثل ، فإن زر إيقاف تشغيل المحرك أيضًا.
  4. من أجل السلامة ، قم الآن بإيقاف تشغيل الإمداد الرئيسي لبادئ DOL وقم بتوصيل المرحلات بـ DOL starter كما هو موضح أعلاه الخطوة 2. تأكد من إيقاف تشغيل المحرك. اضغط على زر إعادة الضبط في NodeMCU. من إخراج الشاشة التسلسلية ، يمكنك رؤية عبارات التصحيح التي تطبع القيم من مستشعر WC1700 ودلتا والتيار المحسوب في الملف. عندما يكون المحرك في حالة إيقاف التشغيل و "#define WCS1700_CONST 15" ، يجب أن يكون maxCur أقل من 2 باستمرار. إذا كان يظهر أكبر من 2 ، فحاول باستخدام قيم أعلى من WCS1700_CONST. في كل مرة سيكون عليك إعادة ترجمة الكود وتحميل البرنامج الثابت.
  5. الآن قم بتشغيل المحرك وابحث عن القراءات الحالية مرة أخرى. اترك المحرك في وضع التشغيل لمدة 10-15 دقيقة ودوّن القراءة الحالية المستقرة. قد يختلف التيار بين 10 إلى 20 أمبير تقريبًا ولا يلزم أن يكون دقيقًا.
  6. ارجع إلى الكود وعيّن "#define MIN_CURRENT X. حيث X هي 40 بالمائة من الحد الأقصى الحالي للقيمة الرقمية. في حالتي ، قمت بتعيين MIN_CURRENT على 5. تجميع البرامج الثابتة وإعادة تحميلها إلى NodeMCU مرة أخرى.
  7. قم بإزالة كبل USB من NodeMCU. قم بإيقاف التشغيل وتشغيل الجهاز باستخدام شاحن USB متصل بـ TP4056. يجب أن يؤدي النقر فوق زر تشغيل المحرك في تطبيق الهاتف المحمول إلى بدء تشغيل المحرك. بمجرد أن يكون المحرك في حالة المحرك ، يجب أن ينعكس على لوحة معلومات التطبيق على أنه قيد التشغيل. يجب أن يؤدي النقر فوق زر الإيقاف إلى إيقاف المحرك.

يتمتع !!!!

موصى به: