You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ar/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md

6.8 KiB

التحكم في المرحل - أجهزة إنترنت الأشياء الافتراضية

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

الأجهزة الافتراضية

سيستخدم جهاز إنترنت الأشياء الافتراضي مرحلًا محاكيًا من نوع Grove. هذا يجعل هذا المختبر مشابهًا لاستخدام Raspberry Pi مع مرحل Grove فعلي.

في جهاز إنترنت الأشياء الفعلي، سيكون المرحل من النوع المفتوح عادةً (أي أن دائرة الخرج تكون مفتوحة أو غير متصلة عندما لا يتم إرسال إشارة إلى المرحل). يمكن لمثل هذا المرحل التعامل مع دوائر الخرج حتى 250 فولت و10 أمبير.

إضافة المرحل إلى CounterFit

لاستخدام مرحل افتراضي، تحتاج إلى إضافته إلى تطبيق CounterFit.

المهمة

أضف المرحل إلى تطبيق CounterFit.

  1. افتح مشروع soil-moisture-sensor من الدرس السابق في VS Code إذا لم يكن مفتوحًا بالفعل. ستقوم بإضافة المزيد إلى هذا المشروع.

  2. تأكد من تشغيل تطبيق الويب CounterFit.

  3. قم بإنشاء مرحل:

    1. في مربع Create actuator في لوحة Actuators، انقر على القائمة المنسدلة Actuator type واختر Relay.

    2. قم بتعيين Pin إلى 5.

    3. اضغط على زر Add لإنشاء المرحل على Pin 5.

    إعدادات المرحل

    سيتم إنشاء المرحل وسيظهر في قائمة المشغلات.

    المرحل الذي تم إنشاؤه

برمجة المرحل

يمكن الآن برمجة تطبيق مستشعر رطوبة التربة لاستخدام المرحل الافتراضي.

المهمة

برمج الجهاز الافتراضي.

  1. افتح مشروع soil-moisture-sensor من الدرس السابق في VS Code إذا لم يكن مفتوحًا بالفعل. ستقوم بإضافة المزيد إلى هذا المشروع.

  2. أضف الكود التالي إلى ملف app.py أسفل الواردات الحالية:

    from counterfit_shims_grove.grove_relay import GroveRelay
    

    يقوم هذا السطر باستيراد GroveRelay من مكتبات Grove Python shim للتفاعل مع مرحل Grove الافتراضي.

  3. أضف الكود التالي أسفل تعريف فئة ADC لإنشاء كائن GroveRelay:

    relay = GroveRelay(5)
    

    يقوم هذا بإنشاء مرحل باستخدام Pin 5، وهو نفس الـ Pin الذي قمت بتوصيل المرحل به.

  4. لاختبار عمل المرحل، أضف الكود التالي إلى حلقة while True::

    relay.on()
    time.sleep(.5)
    relay.off()
    

    يقوم الكود بتشغيل المرحل، ثم ينتظر 0.5 ثانية، ثم يطفئ المرحل.

  5. قم بتشغيل تطبيق Python. سيعمل المرحل ويطفأ كل 10 ثوانٍ، مع تأخير نصف ثانية بين التشغيل والإطفاء. سترى المرحل الافتراضي في تطبيق CounterFit يغلق ويفتح مع تشغيل وإطفاء المرحل.

    المرحل الافتراضي يعمل ويطفأ

التحكم في المرحل بناءً على رطوبة التربة

الآن بعد أن أصبح المرحل يعمل، يمكن التحكم فيه استجابةً لقراءات رطوبة التربة.

المهمة

تحكم في المرحل.

  1. احذف الأسطر الثلاثة من الكود التي أضفتها لاختبار المرحل. استبدلها بالكود التالي في مكانها:

    if soil_moisture > 450:
        print("Soil Moisture is too low, turning relay on.")
        relay.on()
    else:
        print("Soil Moisture is ok, turning relay off.")
        relay.off()
    

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

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

  2. قم بتشغيل تطبيق Python. سترى المرحل يعمل أو يطفأ بناءً على مستويات رطوبة التربة. قم بتغيير Value أو إعدادات Random لمستشعر رطوبة التربة لرؤية التغيير في القيمة.

    Soil Moisture: 638
    Soil Moisture is too low, turning relay on.
    Soil Moisture: 452
    Soil Moisture is too low, turning relay on.
    Soil Moisture: 347
    Soil Moisture is ok, turning relay off.
    

💁 يمكنك العثور على هذا الكود في مجلد code-relay/virtual-device.

😀 لقد نجحت في إنشاء برنامج يتحكم في مرحل باستخدام مستشعر رطوبة التربة الافتراضي!


إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.