تُقسَم حسّاسات قياس رطوبة التّربة باستخدام الرّاسبيري باي إلى نوعين، النّوع الأوّل مقاوم والثّاني سعَويّ، ولكلّ منهما حسناته وسيّئاته.
يوفّر حسّاس Gravityمن شركة DFROBOT أو ما يدعى بحسّاس Giess-o-Mat قراءة سعوية دائمة الدّقة لرطوبة التّربة، والذي يعدّ مهمّاً في تصميم البيوت البلاستيكية المؤتمتة باستخدام الراسبيري باي.
يوضّح هذا المقال بنية حسّاس الرّطوبة السّعوي وقراءة التّردّد منه، والتي ستمكّننا من حساب رطوبة التّربة النّسبية.
القطع المطلوبة
لوح راسبيري باي 3.
حسّاس رطوبة التّربة السّعوي DFROBOT Gravity أو Giess-o-Mat.
مُقـَسِّم تردّد (اختياري).
عدّة مقاومات 100kΩ (بديلة).
سلك توصيل.
كاوي لحام + قصدير.
يُنصح بشراء النّسخة المعزولة من لوح الراسبيري باي والجاهزة, وإلّا فيجب عزله يدويّاً.
تكون مكوّنات الحسّاس/لوح التّطوير(المذكورة ) متوفّرة بتقنية التّركيب السّطحي SMD ولذلك فإنّها غير مناسبة للمبتدئين، وفي حال امتلاكك القليل من الخبرة فلن تواجه مشكلة في حجم القطع الصغير.
يمكن استبدال مقسِّم التردّد بمقاومة، وفي هذه الحالة يجب تبديل المقاومة 100kΩ في الموقع R3 (في الشّكل 3) بمقاومة أكبر منها، فإذا أردنا تخفيض التردّد إلى النّصف فذلك يتطلّب وضع مقاومة قيمتها تساوي ضعف المقاومة السابقة، ومن الممكن أن يتمّ وصل عدّة مقاومات معاً لتحقيق القيمة المطلوبة.
مميّزات الحسّاس السّعوي بالمقارنة مع الحسّاس المقاوم
تكمُن سيّئة حسّاس رطوبة التّربة المقاوم مع ألواح الراسبيري باي والذي يكون بسعر منخفض جدّاً بالتّآكل، حيث مع استخدامه المطوَّل لنفس القطبية تتحلّل أقطاب الحسّاس جزئيّاً، وهو ما يؤثّر سلباً على عملية القياس وقيم التربة.
في غالب الأحيان لا تدوم حسّاسات رطوبة التّربة المقاوِمة طويلاً.
ينعدم خطر التّآكل لدى استخدام الحسّاسات السّعوية، ولا يكون خرج هذه الحسّاسات إشارة تشابهيّة ممّا يمكّن قراءته باستخدام دارة المبدّل التّشابهيّ الرّقميّ MCP3008 ADC، وإنّما تعطي خَرْجاً على شكل تردّد متغيِّر يعتمد على رطوبة التّربة (كلّما كانت الرّطوبة أكبر كلّما كان التردّد أقل). ولكن يُعَدّ خَرْج التردّد (الذي قد يصل حتّى 450KHz) كبيراً جدّاً بالنّسبة للوح الراسبيري باي، ولذلك إمّا أن نستخدم مقسّم تردّد يعمل على تقسيم التردّد على عدد محدّد، أو ببساطة نستخدم مقاومة أكبر. تكمن المشكلة الوحيدة في استخدام مقسّم التردّد في ثمنه المرتفع بينما لا تكلّف المقاومة عمليّاً شيئاً يذكر.
تجميع حسّاس رطوبة التّربة
عادة لا يكون حسّاس الرّطوبة Giess-o-Mat مُجمّعاً، لذلك يجب علينا تلحيم القطع على اللّوح، وبما أنّ المكوّنات صغيرة جدّاً فإنّ النّظر إلى اسم القطعة يُسهِّل العمل. هنا قمنا بتوثيق كل خطوة بالصّور للتّأكد من سير الأمور على أتم وجه، بما أنّ الحسّاس DFROBOT Gravity أسهل في التّعامل فهو لا يحتاج إلى عمليات التّلحيم ولذلك يمكن أن تتخطّى هذه الخطوة في حال كنت تستعمل هذا الحسّاس.
يوجد الجدول التّالي مطبوعاً في محفظة مكوّنات الحسّاس:
فلنبدأ بتلحيم الدّارة المتكاملة، من المهم أن يكون الوجه الذي يحتوي على علامة UP ظاهراً حيث يمكن رؤية النتوء الدّائري الصّغير على لوح الدّارة المطبوعة.
المكثّفة C1 لا يوجد عليها كتابة ولا يهمّ على أي وجه يتمّ تلحيمها.
يجب توخّي الحذر عند تلحيم المقاومات (R1, R2, R3), حيث أنّ مكانها على الدّارة لا يتوافق مع أبعادها الحقيقيّة تماماً.
يمكن من خلال هذه الصفحةهنا أن تُدخِل الرّقم المطبوع على المقاومة السّطحيةSMD resistor ومن ثمّ تحصل على أبعادها الحقيقيّة.
إذا لم يكن لديك مُقسِّم تردّد يمكن أن تستخدم مقاومة ذات قيمة أكبرَ من المقاومة R3 كما ذكرنا سابقاً.
ومن ثمّ نرى بأنّ الترانستور الوحيد T1 وديود زينر D1 اللّذين لهما ذات الشّكل مفقودين ونستعين مجدّداً بالكتابة على كل منهما كما ذكر أعلاه.
تجميع مُقَسِّم التردد (اختياري)
سنقوم بتجميع مقسِّم التردّد في حال وجوده بنفس الطّريقة التّي قمنا بها للحسّاس.
نبدأ بتلحيم الدّارة المتكاملة ثمّ المكثّفة ثمّ المقاومات، وللمقاومتين R1 وR2 نفس الأبعاد.
ثمّ نضيف التّرانزستور T1 والدّيود D1 مع مراعاة الانتباه إلى تسمية كلّ منهما حيث أنّهما متطابقان في التّصميم.
بعدها نقوم بتلحيم نقطتي الاتصال بجانب التّسمية ": 16" ممّا يخفّض التردّد ستة عشر مرّة.
وأخيراً نلحم الدّارتين معاً ونلحم بعض نقاط الاتصال بأسلاك إلى مقسّم التردّد لتوصيله بلوح الراسبيري باي.
الكود البرمجيّ لقراءة التّردد
أوّلاً نقوم بتوصيل الأسلاك إلى لوح الراسبيري باي كالتّالي: من V+ إلى قطب 3.3V للراسبيري باي والأرضي GND إلى قطب GND والخرج OUT كمثال إلى القطب العام GPIO21 للراسبيري باي. لقراءة التردّد على الرّاسبيري باي نستخدم مكتبة PiGPIO التّي تستدعي مكتبات للغة C++ وPython … وكما تكون موجودة مسبقاً على نسخ أنظمة Raspbian (نظام تشغيل لوح الراسبيري باي)، وفي حال لم تكون موجودة مسبقاً يمكن تحميلها بكتابة الأمر التّالي:
sudo apt-get update sudo apt-get install pigpio python-pigpio python3-pigpio
ثمّ نُنشِئ ملفاً بلاحقة C، والذي سنستخدمه لقراءة التردّد بكتابة الأمر التّالي:
sudo nano freq_count_1.c
ثمّ ننسخ الكود البرمجي 1 إلى الملفّ ونضغط على CTRL+O للحفظ, ثمّ نضغط CTRL+X للعودة إلى موجِّه الأوامرterminal.
الكود البرمجي : التحميل من هنا
ثمّ نقوم بعمليّة ترجمة الملفّات Complie بكتابة الأمر:
والآن يمكن تشغيلالبرنامج, ولكن يجب تحديد القطبGPIO الذي سنستخدمه (القطب الموصول إلى خرْج الحسّاس OUT) القطب 21 على سبيل المثال :
عند تنفيذ الأمرالسّابق سيظهر لدينا رقم القطب GPIOالمستخدم متبوعاً بالتردّد (مقاساً بالهرتز)، يمكن أن تختبر عمل الدّارة عن طريق وضع الحسّاس في كأس من الماءومراقبة انخفاض التردّد.
من المهمّ أن نحصل على القيمة المثاليّة عند استخدام هذا الحسّاس في مشروع البيت البلاستيكي المؤتمت باستخدام الراسبيري باي، وهو أمر يعتمد على نوع التّربة والرّي وعلى النّباتات، لذلك من الصعب تحديد هذه القيمة لكلّ الحالات.
عند وضع الحسّاس في كأس من الماء أعطى قراءة ما يقارب 1000 Hz، وفي حال الجفاف التّام أعطى قراءة ما يقارب
10Hz (عند استخدام مقسّم تردّد بقيمة 16).
في حال استخدام لغة Python يمكن أن يُختصَر أو يطول الكود البرمجيّ بلغة الC السّابق