في ظلّ تزايد عدد المدن أصبحنا نميل بشكل أكبرَ إلى زراعة الخضار والفواكه العضوية أو التي تنمو وحدها، وقد يكون الوقت الكبير الذي تستغرقه العناية بالنباتات عقبة تمنع تحقيق ذلك، ولهذا يتضمّن هذا المشروع كيفيّة إنشاء بيت بلاستيكي مؤتمت باستخدام الراسبيري باي بحيث يقلّص العمل المطلوب إلى حدّ أدنى.
ويصبح الحصاد العمل اليدوي الوحيد عند الاعتماد على الرَّيّ والتّهوية والإضاءة المؤتمتة، وتتحكّم الحسّاسات بكلّ العمليات المطلوبة (كالرَّيّ مثلاً) لتحقيق أفضلِ نتيجة، ويُعتبَر هذا المشروع مناسباً لشرفات المدن نظراً لمساحته الصغيرة (حوالي نصف متر مربع).

تصميم وتنفيذ بيت بلاستيكي مؤتمت باستخدام الراسبيري باي
تصميم وتنفيذ بيت بلاستيكي مؤتمت باستخدام الراسبيري باي

الأدوات المطلوبة

لأتمتة عمل البيت البلاستيكي قدر الإمكان، علينا أتمتة كلّ شيء، ولهذا نحتاج المستلزمات التالية:

  • هيكل خارجيّ بلاستيكيّCold Frame بأبعاد (60x100cmمثلاً).
  • صناديق للزراعةFlower boxes.
  • تغذية كهربائيّة 12V DC.
  • وصلة تحويل لمأخذ تغذية مستمرّة.
  • مضخة ماء غاطسة للحوض تعمل بجهد 12V.
  • دلو ماء سعة 10 أو 20 لتر مع غطاء.
  • أنابيب بقطر 7mm بطول (1.5-2m).
  • موديول ساعة الزمن الحقيقيّ RTC module DS1307.
  • محوِّل تشابهيّ رقميّ MCP3008 ADC.
  • عدّة حسّاسات رطوبة تربة (كلّ منها بطول 30-40cm).
  • محرّك سيرفو.
  • حسّاس إضاءة.
  • مقاومة 10kΩ.
  • ليد 12V.
  • ريليه مغناطيسيةReed relay.
  • صندوق مضاد للماء.
  • شريط لاصق للعزل.
  • سلك توصيل.
  • لوح تجارب .
  • بذور نباتات (يفضَّل أن تكون نباتات قليلة الارتفاع):
  1. بندورة صنف Balconi Red.
  2. خس.
  3. فجل.
  • تربة زراعية (مع أسمدة إن أمكن).

في هذا المشروع قمنا بالزراعة في صندوقين لذا استخدمنا مضختَين، ويمكن تغيير عدد حسّاسات رطوبة التربة وتعديل القطع المطلوبة لتناسب المشروع، فإذا كان لديك هيكلٌ كبيرٌ على سبيل المثال يمكنك أن تعدِّل الكود البرمجيّ بما يلائم ذلك.
لاستخدام أقطاب الراسبيري باي GPIOs  للتغذية نحتاج القطع التالية:

  • منظِّم جهد L7805.
  • مكثفتَين سعة 10µF.
  • مقاومة 470 أوم (اختيارية).
  • ليد أخضر(اختياري).

تنصيب المكتبات المطلوبة

من الجيد أن نستخدِم نسخة نظام Raspbian Jessie حديثة ونستخدم موجِّه الأوامر(مثلا باستخدام  SSH)، ولذلك أولاً نقوم بتحديث وتنصيب بعض الحزم المطلوبة:

sudo apt-get update --yes && sudo apt-get upgrade --yes
sudo apt-get install build-essential python-dev python-pip python-smbus python-openssl git --yes

قد تستغرق العملية بعض الوقت، يمكنك خلاله أن تبدأ بتجهيز مكان زراعة البذور.

والآن قم بإدخال التعليمة sudo raspi-config واختر Interfacing Options ثمّ SPI وقم بتفعيله، ثمّ قم بالمثل بالنسبة إلى I2C، وبعدها قم بإعادة التشغيل، ومن ثم بتحميل المكتبات الضروريّة.
مكتبة SpiDev:

git clone https://github.com/doceme/py-spidev
cd py-spidev
sudo python setup.py install
cd ..

مكتبة Adafruits من أجل الحسّاس DHT11/DHT22 (يمكن تحميلُها مباشرة من موقع GitHub):

sudo pip install adafruit_python_dht

التغذية عبر أقطاب الراسبيري باي

مبدئياً يوجد طريقتان لتغذية لوح الراسبيري باي، الأولى عبر منفذ Micro USB، ولكن من مساوئ هذه الطريقة الحاجة إلى مدخلَين عادةً. ولهذا أولاً: سنبيّن كيفيّة تغذية الراسبيري باي عبر أقطاب الدَّخْل والخَرْج العامّة GPIOs. ويتوجّب الحذر عند التوصيل بهذه الطريقة حيث يمكن للتّيّار المرتفع أن يخرِّب اللوح تماماً. ففي حال الشّك أن التّيّار غير مناسب قم بتوصيل الطاقة عبر مداخل الـ USB.
يستطيع منظِّم الجهد L7805 أن يخفِّض الجهد الذي يتراوح بين 7 و25V إلى 5V، ومع ذلك لازلنا نحتاج إلى المكثِّفتَين، ويتمّ التوصيل كما هو مبيّن في الشكل(2).

تغذية الراسبيري باي
تغذية الراسبيري باي

قبل توصيل لوح الراسبيري باي إلى مصدر الطاقة يمكنك قياس الجهد باستخدام مقياس جهد.

مكوِّنات البيت البلاستيكي

قبل كلّ شيء يمكنك أن تتبع كلَّ خطوة كما هو موضَّح ثمّ تقوم بتوسيع الكود البرمجيّ، أو يمكنك أن تقوم بتحميل الكود البرمجيّ من موقع GitHub كما هو مبيّن في آخر المقال ثمّ تقوم بتعديله.
لاختلاف الظروف التي تُنفَّذ فيها التجربة لدى الجميع يجب أن تكون التجربة عامّة وقابلة للتّخصيص قدر الإمكان، ولذلك سيكون الجزء التالي مقسوماً إلى أقسام فرديّة مختلفة، ويمكنك حذف مكوِّن ما (الساعة أو الإضاءة) إذا أردْت أو أن تعدِّل الكود المرتبط به.

أولاً ومن أجل ضبط إعدادات الأقطاب GPIOs ننشِئ مجلّداً جديداً
(mkdir Raspberry-Pi-Greenhouse && cd Raspberry-Pi-Greenhouse)
ثم ننشئ ملفّاً جديداً ونسمّيه sudo nano greenhouse.py وبداخله المحتوى التالي:

ونضع الكود البرمجي التالي فيه:

الكود البرمجي : التحميل من هنا

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

الأقطاب GPIOs
مخططاً يوضح أرقام الأقطاب GPIOs

تجهيز البيت البلاستيكي

يجب تجهيز الهيكل الذي يحوي صناديق الزراعة قبل تركيب المكوِّنات الإلكترونيّة، واعتماداً على حجم الهيكل نحدِّد عدد صناديق الزراعة، وبعد تجهيز الهيكل نقوم بزراعة النباتات الصغيرة أو البذور (اتبع التعليمات المكتوبة على غلاف البذور).
إضافة أنّه من الضروري تسميد التربة، ويمكن أيضاً وضع سماد عضويّ للبندورة أو الخضروات، والذي يحتوى معادن أكثرَ.

ضبط الوقت

لا يحتفظ لوح الراسبيري باي بالوقت والتاريخ الحاليَين في حال قام بإعادة الإقلاع إذا لم يكن متصلاً بالإنترنت (بعد توقُّفه المؤقَّت عن العمل مثلاً)، ولذلك نستخدم موديولات ساعة زمن حقيقيّ تحتوي على بطارية لحفظ التاريخ والوقت بشكل دائم.
ويمكن تجاوز هذه الخطوة الاختياريّه في حال توفّر اتّصال انترنت دائم.
من المهمّ أن تتمّ إزالة المقاومتَين R2، R3 عن RTC (موديولات I2C) باستخدام كاوي.

عادةً تقومان بإعادة إرسال إشارات بجهد 5V، وتُعتبَر هذه القِيم كبيرة بالنسبة للوح الراسبيري باي، ويمكن عوضاً عن ذلك أن نستخدم 3.3V-5V TTL.
وصل وحدة الساعة مع لوح الراسبيري باي:

ساعة rtc لوح الراسبيري باي
SCL GPIO 3 / SCL (القطب 5)
SDA GPIO 2 / SDA (القطب 3)
VCC/5V 5V (القطب 2 أو القطب 4)
GND GND (القطب 6 أو اي قطب أرضي آخر)

توصيل موديولRTCمع الراسبيري باي

توصيل موديولRTCمع الراسبيري بايأولاً: نقوم بتحميل الملفّ التالي:

wget https://raw.githubusercontent.com/tutRPi/Raspberry-Pi-Greenhouse/master/SDL_DS1307.py

ثم نقوم بضبط الوقت والمنطقة الزمنيّة:

sudo raspi-config

في تبويب “Localization Options” يمكن تحديد المنطقة الزمنيّة واستخدام التاريخ للتحقُّق من صحّة الوقت.
الآن قم بفتح موجِّه أوامر Python بكتابة:

import SDL_DS1307
ds1307 = SDL_DS1307.SDL_DS1307(1, 0x68)
ds1307.write_now()
exit()

ثمّ قُم بإدخال الكود التالي لضبط وقت السّاعة:

الكود البرمجي : التحميل من هنا

وأخيراً نقوم بالحفظ بالضّغط على CTRL + O.

ضبط الإضاءة

لتزويد النباتات بالضّوء الكافي حتّى في الأيام الغائمة نضيف ضوء ليد بطول 20cm، ويمكن إضافة شريط ليد مقاوم للماء ونستخدمه لتأمين الإضاءة الإضافيّة، يتم تشغيل الإضاءة خلال الظّلام فقط، لذلك نستخدم حسّاساً للضوء يُعطي قِيم خرْج تشابهيّ لشدّة الإضاءة يمكن قراءتها باستخدام المحوِّل التشابهيّ الرقميّ MCP3008 ADC.

أقطاب دارة المحوِّل التشابهيّ الرقمي MCP3008 AD.
أقطاب دارة المحوِّل التشابهيّ الرقمي MCP3008 AD.

يوجد على الجانب الأيسر من الدارة ثمانية ُقنوات يمكن أن تقرَأ قيماً تشابهيّة.
بالمقابل يمكن استخدام حسّاسات إضاءة تعطي خرْجاً رقميّاً مباشرةً إذا ما كانت شدّة الإضاءة تتعدّى/ أو تنخفض عن قيمة العتبة، ويحتاج ذلك إلى تعديل الكود البرمجيّ بشكل بسيط فقط.
تملك الدّارة المتكاملة MCP3009 ثمانية مداخل يمكن قراءة الإشارات التشابهيّة منها.
أولاً: نقوم بتوصيل الدّارة كما في الشكل 5.

لوح الراسبيري باي الدارة MCP3008
القطب 1 (3.3V) القطب 16 (VDD)
القطب 1 (3.3V) القطب 15 (VREF)
القطب 6 (GND) القطب 14 (AGND)
القطب 23 (SCLK) القطب 13 (CLK)
القطب 21 (MISO) القطب 12 (DOUT)
القطب 19 (MOSI) القطب 11 (DIN)
القطب 24 (CE0) القطب 10 (CS/SHDN)
القطب 6 (GND) القطب 9 (DGND)

مخطط توصيل الراسبيري باي مع MCP3008 وحساس الإضاءة

مخطط توصيل الراسبيري باي مع MCP3008 وحساس الإضاءةتستخدِم إحدى القنوات الثمانية حسّاس الإضاءة (القناة 0)، ونقوم بتوصيلها عن طريق مقاومة رفع Pull-up resistor كما هو موضَّح في الشكل، كما نصل أيضا الريليه (نصل قطب التغذية VCC إلى 5V وقطب الأرضيّ GND إلى الأرضيّ GND ويوصل قطب الدَّخْل IN 1 إلى القطب الراسبيري باي GPIO17). إذا قمت بتغذية لوح الراسبيري باي عن طريق منظِّم الجهد L7805 يمكن أن نأخذ جهد التغذية 5V مباشرة منه.
في الطرف الآخر من الريليه يتم وصل النهاية الموجبة لمصدر التغذية 12V إلى القطب الأوسط للريليه والقطب الموجب إلى الليد في النهاية السفلى. ويتم وصل القطب السالب لليد إلى القطب الأرضي للريليه.
الآن نقوم بتحميل ملفّ بايثون لتشغيل الدارة MCP3008 بكتابة الكود التالي:

wget https://raw.githubusercontent.com/tutRPi/Raspberry-Pi-Greenhouse/master/MCP3008.py

ثم نوسع الكود الأساسي من جديد:

الكود البرمجي 14: التحميل من هنا

الرَّيّ الآليّ

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

مضخّة صغيرة تعمل بجهد 12V لريّ النباتات
مضخّة صغيرة تعمل بجهد 12V لريّ النباتات

تعمل المضخّات الصّغيرة بجهد 12V أيضا لذلك نحتاج الريليهات، وفي حالة المشروع هنا لدينا مضختَان(واحدة لكلّ صندوق زراعة)، وفي حال استخدام أكثرَ من ثلاث مضخّات يجب أن تختار لوح ريليات عليه قنوات أكثر.
أولاً: نقوم بوصل الأنبوب إلى المضخّة وبجانب مكان الزراعة نضع دلواً من الماء، يجب أن يكون الأنبوب طويلاً بما يكفي ليصلَ من الدّلو إلى أبعد نقطة في صندوق الزّراعة، نقوم بإغلاق نهاية الأنبوب بالسليكون ونثقب الأنبوب بمسافات 10 -15cm، يجب مراعاة أن تكون أقطار الثقوب صغيرة ً(1-2mm) لكي تقومَ المضخّة بتوصيل الماء إلى نهاية الأنبوب عند ازدياد الضّغط.
بعدها نقوم بربط الأنبوب إلى نهاية صندوق الزّراعة ونضع حسّاس رطوبة التربة في الجهة المقابلة لإحدى الثقوب، باستخدام الحسّاس سنقوم بحساب معدل رطوبة التربة وعلى أساسها نقرّر القيام بالرّيّ أم لا. يتمّ وصل الأرجل التشابهيّة لحسّاسات الرطوبة إلى الدارة MCP3008، ويتمّ توصيل القطب الأرضيّ عبر مقاومة 10kΩ.
إذا كنت تستخدِم أكثرَ من سبعة حسّاسات فأنت بحاجة دارة محوّل تشابهيّ رقميّ MCP3008 لأنّ القناة الأولى يستخدمها حسّاس الإضاءة، بالإضافة أنّه يُغذَّى كلّ حسّاس بجهد 3.3V عبر الراسبيري باي كما في الشكل (8).

مخطط دارة البيت البلاستيكي مع حسّاس رطوبة التربة والمضختَين
مخطط دارة البيت البلاستيكي مع حسّاس رطوبة التربة والمضختَين

يمكن تحديد أقطاب الراسبيري باي التي تتحكَّم بالريليات في الإعدادت الموجودة في بداية الملفّ، هنا استخدمنا القطبَين 23 و24 للمضختَين.
الكود البرمجي المتحكِّم بعملية الرَّيّ:

الكود البرمجي : التحميل من هنا

التّهوية

يتحدَّد عدد النوافذ المراد فتحُها اعتماداً على البيت البلاستيكيّ، نستعمل عادة اثنين لمكان الزراعة الابتدائيّ early bed، ولفتح نافذة نستخدم محرِّك سيرفو مع عصاً خشبية طويلة موصولة إلى محوره، في الحالة الابتدائيّة يجب أن تكون الزاوية صفراً، إذا لم تكن متأكداً من ذلك يجب عليك أن تحدِّد الزاوية صفر كوضع ابتدائيّ للمحرّك لمرّة واحدة في الكود.

وصل محرّك السيرفو للبيت البلاستيكي
وصل محرّك السيرفو للبيت البلاستيكي

نستخدم شريطاً لاصقَ الوجهَين لتثبيت المحرِّك داخل الهيكل.
نستخدم درجة الحرارة للتحكم بعملية التّهوية، وللقيام بذلك يجب علينا القيام بوصل حسّاس الحرارة DHT11 إلى القطب 27 GPIO على لوح الراسبيري باي، بينما يكون محرِّك السيرفو موصولاً إلى القطب GPIO 22، بما أنّه من المحتمل أن يحتاج المحرِّك إلى جهد أكبرَ من 3.3V (تأكَّد من الداتا شيت الخاصّة بالمحرِّك) سنقوم بوصله إلى جهد 5V كما في الشكل (9).

مخطَّط توصيل محرِّك
مخطَّط توصيل محرِّك

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

الكود البرمجي : التحميل من هنا

في حال ظهر لديك خطأ مع الرسالة التالية:
“ImportError: No module named Raspberry_Pi_Driver” يمكنك أن تستخدِمَ القطب 4 GPIO على الراسبيري باي.

صندوق العزل المائي والتوصيل

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

 الدارة بعد التلحيم
الدارة بعد التلحيم

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

الشكل النهائيّ للبيت البلاستيكي
الشكل النهائيّ للبيت البلاستيكي

تشغيل البيت البلاستيكي

بعد أن قمنا بتوصيل وتثبيت المكوِّنات يجب أن نقوم بتشغيل المشروع آلياً ويتمُّ ذلك عن طريق استدعاء التوابع التي قمنا بكتابتها بالترتيب التالي:
الكود البرمجي : التحميل من هنا
في حال رغبت أن تقوم بتحميل جميع الملفّات دفعة واحدة يمكن أن تقوم باستخدام المكتبة التّالية من موقع GitHub:

git clone https://github.com/tutRPi/Raspberry-Pi-Greenhouse

يجب أن يتمّ تشغيل الكود بشكل تلقائيّ مرّة كلّ عشر دقائقَ ، ولتنفيذِ ذلك نقوم باستخدام Cron (أمر في نظام UNIX يسمح بجدولة تنفيذ الأوامر):

crontab -e

ثم ندخل السطر التالي في نهاية النافذة:

*/10 *    * * *   sudo python /home/pi/Raspberry-Pi-Greenhouse/greenhouse.py > /dev/null 2>&1

ثم نضغط على CTRL + O للحفظ ونعود إلى موجِّه الأوامر بالضغط على CTRL + X.
والآن كلّ ما علينا الانتظار، كما يمكن إيقاف الواي فاي والخدمات غير الضرورية الأخرى لتوفير الطاقة.

وظائف إضافيّة ممكنة للبيت البلاستيكي المؤتمت

مع أنّ المشروع يقوم بالكثير من العمليات ولكن يمكنك أن تضيف المزيد من الوظائف الأخرى.
هنا سنورد بعض النقاط التي يمكن إضافتها إلى المشروع:
مستوى الماء في خزَّان الرَّيّ: مع أنّ عملية ريّ النباتات تتمّ بشكل آليٍّ ولكن مازال علينا أن نقوم بملء الدلو بالماء، وعن طريق قياس مستوى المياه في الدلو يمكن أن نرسل رسالة (إلى حساب التيليغرام مثلاً) عندما يحتاج الدلو إلى التعبئة، أو يمكن أن نضيف تحذيراً عن طريق توصيل ليد يضيء عند نقص مستوى الماء.
قياس الرّطوبة: يمكن للحسّاسَين DHT11 وDHT22 أن يقيسا الرطوبة والحرارة معاً ولكن لم نستخدم في هذا المشروع سوى قياس درجة الحرارة، ومن الممكن أن نتحكَّم بالرطوبة عن طريق استخدام مرشَّات ماء حسب حاجة النباتات.
الحرارة: يمكن أن نقوم بتسخين الهواء للنباتات وخصوصاً في الرّبيع والخريف الباردَين وذلك لتأمين الشروط المثلى للنباتات.
التبريد: حتى الآن قمنا باستخدام التبريد السلبيّ (فتح وإغلاق النوافذ)، ولكن باستخدام مروحة يمكن أن نخفِّض درجة الحرارة بالشكل الفعّال عند درجات الحرارة المرتفعة.
شاشة LCD: يمكننا استخدام شاشة LCD حتى نرى البيانات الحالية عليها.


المصدر: هنا
ترجمة: لؤي ديب , مراجعة: مي همدر , تدقيق لغوي: رنيم العلي ، تصميم : علي العلي , تحرير: لبانة مطر