متى تذهب إلى مكان بعيد لفترة معينة من الزمن؟ لا يوجد من يسقي زهورك الداخلية ، لذلك عليك أن تطلب المساعدة من جيرانك ، الذين بدورهم قد يكونون مهملين في هذا الأمر. نتيجة لذلك ، عند وصولك ، ستشعر النباتات بالسوء. لمنع حدوث ذلك ، يمكنك إنشاء نظام ري آلي. لهذا الغرض ، نحتاج إلى Arduino ومستشعر رطوبة التربة. في المقالة ، سننظر في مثال على الاتصال والعمل مع مستشعر FC-28. لقد أثبت نفسه في الجانب الإيجابي بمساعدة آلاف المشاريع التي تم إنشاؤها.
حول FC-28
هناك مجموعة كبيرة ومتنوعة من أجهزة الاستشعار لتحديد رطوبة الأرض ، ولكن الأكثر شيوعًا هو طراز FC-28. لها سعر منخفض ، بسبب استخدامها على نطاق واسع من قبل جميع هواة الراديو في مشاريعهم. يستخدم جهاز استشعار رطوبة التربة مع Arduino. لديه مجسين يجران تيارًا كهربائيًا عبر الأرض.اتضح أنه إذا كانت التربة رطبة ، فإن المقاومة بين المجسات تكون أقل. مع الأرض الجافة ، على التوالي ، تكون المقاومة أكبر. يقبل Arduino هذه القيم ، ويقارن ، وإذا لزم الأمر ، يقوم بتشغيل مضخة ، على سبيل المثال. المستشعر قادر على العمل مع الوضعين الرقمي والتناظري ، وسننظر في كلا خياري الاتصال. يستخدم FC-28 بشكل أساسي في المشاريع الصغيرة ، على سبيل المثال ، عند سقي مصنع معين تلقائيًا ، لأنه من غير المناسب استخدامه على نطاق واسع نظرًا لحجمه وعيوبه ، والتي سننظر فيها أيضًا.
من أين تشتري
الحقيقة هي أنه في المتاجر الروسية ، تعد أجهزة الاستشعار للعمل مع Arduino باهظة الثمن نسبيًا. يتراوح متوسط سعر هذا المستشعر في روسيا من 200 إلى 300 روبل ، بينما في Aliexpress يكلف نفس المستشعر حوالي 30-50 روبل فقط. هوامش ضخمة. بالطبع ، لا يزال بإمكانك عمل جهاز استشعار لقياس رطوبة التربة بيديك ، ولكن المزيد عن ذلك أدناه.
حول الاتصال
توصيل مستشعر الرطوبة بـ Arduino سهل للغاية. يأتي مع مقارن ومقياس جهد لضبط حساسية المستشعر ، وكذلك لتعيين القيمة الحدية عند الاتصال باستخدام مخرج رقمي. إشارة الخرج ، كما ذكر أعلاه ، يمكن أن تكون رقمية وتناظرية.
التوصيل مع الإخراج الرقمي
متصل بنفس الطريقة تقريبًا مثل التناظرية:
- VCC - 5V على Arduino.
- D0 - D8 على لوحة اردوينو.
- GND -الأرض.
كما هو مذكور أعلاه ، يوجد مقارن ومقياس جهد في وحدة المستشعر. كل شيء يعمل على النحو التالي: باستخدام مقياس الجهد ، قمنا بتعيين القيمة الحدية لجهاز الاستشعار الخاص بنا. يقارن FC-28 القيمة بالحد ثم يرسل القيمة إلى Arduino. لنفترض أن قيم المستشعر أعلى من الحد الأدنى ، وفي هذه الحالة يرسل مستشعر رطوبة التربة في Arduino 5 فولت ، إذا كان أقل - 0 فولت. كل شيء بسيط للغاية ، لكن الوضع التناظري يحتوي على قيم أكثر دقة ، لذا يوصى باستخدامه.
مخطط الأسلاك يشبه الصورة أعلاه. طريقة
يظهر أدناه رمز البرمجة لاردوينو عند استخدام الوضع الرقمي
int led_pin=13 ؛ int sensor_pin=8 ؛ إعداد باطل () {pinMode (led_pin، OUTPUT) ؛ pinMode (sensor_pin، INPUT) ؛ } حلقة باطلة () {if (digitalRead (sensor_pin)==HIGH) {digitalWrite (led_pin، HIGH)؛ } else {digitalWrite (led_pin، LOW)؛ تأخير (1000) ؛ }}
ماذا يفعل كودنا؟ أولا ، تم تحديد متغيرين. المتغير الأول - led_pin - يعمل على تعيين مؤشر LED ، والثاني - لتعيين مستشعر رطوبة الأرض. بعد ذلك ، نعلن أن دبوس LED هو مخرج ، ودبوس المستشعر كمدخل. يعد هذا ضروريًا حتى نتمكن من الحصول على القيم ، وإذا لزم الأمر ، قم بتشغيل مؤشر LED لترى بصريًا أن قيم المستشعر أعلى من الحد الأدنى. في الحلقة ، نقرأ القيم من المستشعر. إذا كانت القيمة أعلى من الحد ، فقم بتشغيل LED ، وإذا كانت أقل ، فقم بإيقاف تشغيلها. بدلا من LEDربما مضخة ، الأمر كله متروك لك
الوضع التناظري
للاتصال باستخدام الإخراج التناظري ، تحتاج إلى العمل مع A0. يأخذ مستشعر رطوبة التربة السعوي في Arduino قيمًا من 0 إلى 1023. قم بتوصيل المستشعر على النحو التالي:
- VCC قم بتوصيل 5V بـ Arduino.
- متصل GND الموجود على المستشعر بـ GND على لوحة Arduino.
- A0 قم بالاتصال بـ A0 على Arduino.
بعد ذلك ، اكتب الكود أدناه في Arduino.
int sensor_pin=A0 ؛ int output_value ؛ إعداد باطل () {Serial.begin (9600) ؛ Serial.println ("قراءة المستشعر") ؛ تأخير (2000) ؛ } حلقة فارغة () {output_value=analogRead (sensor_pin) ؛ output_value=map (output_value، 550، 0، 0، 100) ؛ Serial.print ("الرطوبة") ؛ Serial.print (output_value) ؛ Serial.println ("٪") ؛ تأخير (1000) ؛ }
إذن ماذا يفعل هذا الرمز؟ كانت الخطوة الأولى هي ضبط المتغيرات. هناك حاجة إلى المتغير الأول لتحديد جهة اتصال المستشعر ، وسيقوم الآخر بتخزين النتائج التي سنحصل عليها باستخدام المستشعر. بعد ذلك ، نقرأ البيانات. في الحلقة ، نكتب القيم من المستشعر إلى متغير output_value الذي أنشأناه. ثم يتم حساب نسبة رطوبة التربة ، وبعد ذلك نعرضها على شاشة المنفذ. يظهر مخطط الأسلاك أدناه.
DIY
تمت مناقشة كيفية توصيل مستشعر رطوبة التربة بـ Arduino. مشكلة هذه المستشعرات هي أنها قصيرة العمر. الحقيقة هي أنهم معرضون جدًا لذلكتآكل. تصنع بعض الشركات أجهزة استشعار بطبقة خاصة لزيادة عمر الخدمة ، لكنها لا تزال مختلفة. يُنظر أيضًا في خيار استخدام المستشعر ليس كثيرًا ، ولكن فقط عند الحاجة. على سبيل المثال ، يوجد رمز برنامج حيث يقرأ المستشعر قيم رطوبة التربة كل ثانية. يمكنك إطالة عمر الخدمة إذا قمت بتشغيله ، على سبيل المثال ، مرة واحدة في اليوم. ولكن إذا كان هذا لا يناسبك ، فيمكنك عمل مستشعر رطوبة التربة بيديك. لن يشعر اردوينو بالفرق. في الأساس ، النظام هو نفسه. ببساطة ، بدلاً من مستشعرين ، يمكنك وضع جهاز خاص بك واستخدام مادة أقل عرضة للتآكل. من الناحية المثالية ، بالطبع ، استخدم الذهب ، ولكن بالنظر إلى سعره ، سيكون مكلفًا للغاية. بشكل عام ، يكون الشراء أرخص ، نظرًا لسعر FC-28.
إيجابيات وسلبيات
ناقش المقال خيارات توصيل مستشعر رطوبة التربة بـ Arduino ، كما تم تقديم أمثلة على رمز البرنامج. إن FC-28 هو مستشعر رطوبة التربة جيدًا حقًا ، ولكن ما هي إيجابيات وسلبيات هذا المستشعر؟
الايجابيات:
- السعر. يتمتع هذا المستشعر بسعر منخفض جدًا ، لذلك سيتمكن كل هواة راديو من شراء وبناء نظام الري التلقائي الخاص به للنباتات. بالطبع ، عند العمل بمقاييس كبيرة ، فإن هذا المستشعر غير مناسب ، لكنه غير مخصص لهذا الغرض. إذا كنت بحاجة إلى جهاز استشعار أكثر قوة - SM2802B ، فسيتعين عليك دفع مبلغ كبير مقابل ذلك.
- البساطة. إتقان العمل باستخدام مستشعر رطوبة التربة هذا في علبة اردوينوكل. فقط عدد قليل من الأسلاك ، وسطران من التعليمات البرمجية - وهذا كل شيء. تم التحكم في رطوبة التربة.
سلبيات: