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

مقياس رطوبة التربة الشمسية مع ESP8266: 10 خطوات (بالصور)
مقياس رطوبة التربة الشمسية مع ESP8266: 10 خطوات (بالصور)

فيديو: مقياس رطوبة التربة الشمسية مع ESP8266: 10 خطوات (بالصور)

فيديو: مقياس رطوبة التربة الشمسية مع ESP8266: 10 خطوات (بالصور)
فيديو: درس 552 من دورة الاردوينو -- أفكار عامة عن المشاريع الإلكترونية 2024, يوليو
Anonim

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

إذا كنت جديدًا في برمجة وحدات التحكم الدقيقة ، فيرجى التحقق من فئة Arduino Class و Internet of Things الخاصة بي للتعرف على أساسيات الأسلاك والتشفير والاتصال بالإنترنت.

هذا المشروع هو جزء من صفي المجاني للطاقة الشمسية ، حيث يمكنك تعلم المزيد من الطرق لتسخير طاقة الشمس من خلال النقش والألواح الشمسية.

لمواكبة ما أعمل عليه ، تابعوني على YouTube و Instagram و Twitter و Pinterest واشترك في رسالتي الإخبارية.

الخطوة 1: ما سوف تحتاجه

ماذا ستحتاج
ماذا ستحتاج

ستحتاج إلى لوحة شحن للبطارية الشمسية وكسر ESP8266 مثل NodeMCU ESP8266 أو Huzzah ، بالإضافة إلى مستشعر التربة والبطارية ومفتاح الطاقة وبعض الأسلاك وعلبة لوضع دائرتك بالداخل.

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

  • متحكم ESP8266 NodeMCU (أو ما شابه ، يجب أن يتحمل Vin ما يصل إلى 6 فولت)
  • لوح شحن شمسي Adafruit مزود بمقاوم حراري اختياري ومقاوم 2.2 كيلو أوم
  • بطارية ليثيوم أيون 2200 مللي أمبير
  • مجلس بيرما بروتو
  • مستشعر رطوبة التربة / درجة الحرارة
  • 2 كابل غدد
  • حاوية مقاومة للماء
  • زوج كابل طاقة تيار مستمر مقاوم للماء
  • أنابيب الانكماش الحراري
  • 3.5W الألواح الشمسية
  • ضغط مفتاح الطاقة على زر
  • شريط رغوة مزدوج العصا

إليك الأدوات التي ستحتاجها:

  • لحام الحديد ولحام
  • أداة يد المساعدة
  • قواطع الأسلاك
  • قصاصات دافق
  • ملاقط (اختياري)
  • مسدس حراري أو ولاعة
  • مقياس متعدد (اختياري ولكنه سهل لاستكشاف الأخطاء وإصلاحها)
  • كابل USB A-microB
  • مقص
  • حفر خطوة

ستحتاج إلى حسابات مجانية على مواقع البيانات السحابية io.adafruit.com و IFTTT.

بصفتي شريكًا في Amazon ، أكسب من عمليات الشراء المؤهلة التي تقوم بها باستخدام الروابط التابعة الخاصة بي.

الخطوة 2: نموذج اللوح

نموذج اللوح
نموذج اللوح

من المهم إنشاء نموذج أولي للوحة توصيل بدون لحام لمشاريع مثل هذه ، بحيث يمكنك التأكد من عمل المستشعر والشفرة قبل إجراء أي اتصالات دائمة.

صورة
صورة
صورة
صورة
صورة
صورة
صورة
صورة

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

صورة
صورة

اتبع مخطط الدائرة لتوصيل طاقة المستشعر ، والأرض ، والساعة ، ودبابيس البيانات (تحصل البيانات أيضًا على مقاوم سحب 10K يأتي مع مستشعر التربة).

  • السلك الأخضر الاستشعار إلى GND
  • السلك الأحمر الاستشعار إلى 3.3 فولت
  • سلك الاستشعار الأصفر إلى NodeMCU pin D5 (GPIO 14)
  • مستشعر السلك الأزرق إلى NodeMCU pin D6 (GPIO 12)
  • مقاوم سحب 10 كيلو بين دبوس البيانات الأزرق و 3.3 فولت

يمكنك ترجمة هذا إلى وحدة التحكم الدقيقة المفضلة لديك. إذا كنت تستخدم Arduino Uno أو ما شابه ، فإن اللوحة الخاصة بك مدعومة بالفعل بواسطة برنامج Arduino. إذا كنت تستخدم ESP8266 ، فالرجاء التحقق من فئة Internet of Things الخاصة بي للحصول على مساعدة خطوة بخطوة في الإعداد مع ESP8266 في Arduino (عن طريق إضافة عناوين URL تكميلية إلى حقل عناوين URL لمدير اللوحات الإضافية في تفضيلات Arduino ، ثم البحث عن و اختيار مجالس جديدة من مدير المجالس). أميل إلى استخدام نوع لوحة Adafruit ESP8266 Huzzah لبرمجة لوحة NodeMCU ESP8266 ، ولكن يمكنك أيضًا تثبيت واستخدام دعم اللوحة العامة ESP8266. ستحتاج أيضًا إلى برنامج تشغيل شريحة اتصالات USB SiLabs (متوفر لنظام التشغيل Mac / Windows / Linux).

لتشغيل المستشعر وتشغيله باستخدام لوحة Arduino المتوافقة مع Arduino ، قمت بتنزيل SHT1x Arduino Library من صفحة جيثب العملي في Arduino ، ثم قمت بفك ضغط الملف ونقل مجلد المكتبة إلى مجلد Arduino / libraries ، ثم أعدت تسميته SHT1x. افتح مثال الرسم التخطيطي ReadSHT1xValues وقم بتغيير أرقام الدبوس إلى 12 (dataPin) و 14 (clockPin) ، أو انسخ المخطط المعدل هنا:

#يشمل

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin، clockPin) ؛ // إنشاء إعداد باطل كائن SHT1x () {Serial.begin (38400) ؛ // فتح الاتصال التسلسلي للإبلاغ عن القيم لاستضافة Serial.println ("بدء التشغيل") ؛ } حلقة فارغة () {تعويم temp_c؛ تعويم temp_f ؛ الرطوبة العائمة temp_c = sht1x.readTemperatureC () ، // قراءة القيم من المستشعر temp_f = sht1x.readTemperatureF () ؛ الرطوبة = sht1x.readHumidity () ؛ Serial.print ("درجة الحرارة:") ؛ // اطبع القيم إلى المنفذ التسلسلي Serial.print (temp_c ، DEC) ؛ Serial.print ("C /") ؛ Serial.print (temp_f، DEC) ؛ Serial.print ("درجة الرطوبة:") ؛ Serial.print (الرطوبة) ؛ Serial.println ("٪") ؛ تأخير (2000) ؛ }

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

إذا لم يتم تجميع الكود الخاص بك وشكوى من عدم العثور على SHT1x.h ، فهذا يعني أنك لم تقم بتثبيت مكتبة المستشعرات المطلوبة بشكل صحيح. تحقق من مجلد Arduino / libraries بحثًا عن ملف يسمى SHT1x ، وإذا كان في مكان آخر ، مثل مجلد التنزيلات ، فقم بنقله إلى مجلد مكتبات Arduino ، وأعد تسميته إذا لزم الأمر.

إذا تم تجميع الكود الخاص بك ولكن لم يتم تحميله على اللوحة الخاصة بك ، فتحقق مرة أخرى من إعدادات اللوحة الخاصة بك ، وتأكد من توصيل اللوحة الخاصة بك ، وحدد المنفذ الصحيح من قائمة الأدوات.

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

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

الخطوة التالية خاصة بـ ESP8266 وتقوم بتكوين جزء الإبلاغ عن المستشعر اللاسلكي الاختياري لمشروع العينة. إذا كنت تستخدم متحكمًا دقيقًا متوافقًا مع Arduino قياسيًا (غير لاسلكي) ، فاستمر في تطوير رسم Arduino النهائي وانتقل إلى Prepare Solar Charging Board.

الخطوة 3: إعداد البرنامج

إعداد البرنامج
إعداد البرنامج

لتجميع الكود الخاص بهذا المشروع باستخدام ESP8266 ، ستحتاج إلى تثبيت عدد قليل من مكتبات Arduino (المتوفرة من خلال مدير المكتبة):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • اردوينو

قم بتنزيل الكود المرفق بهذه الخطوة ، ثم قم بفك ضغط الملف وافتح Solar_Powered_Soil_Moisture_Monitor_Tutorial في برنامج Arduino الخاص بك.

#يشمل

#include #include # include #include // تحديد اتصالات البيانات والساعة وإنشاء كائن SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin، clockPin) ؛ // إعداد التغذية AdafruitIO_Feed * humidity = io.feed ("الرطوبة") ؛ AdafruitIO_Feed * temperature = io.feed ("درجة الحرارة") ؛ const int sleepTime = 15 ؛ // 15 دقيقة

الإعداد باطل()

{Serial.begin (115200) ؛ // فتح الاتصال التسلسلي للإبلاغ عن القيم لاستضافة Serial.println ("بدء التشغيل") ؛ // الاتصال بـ io.adafruit.com Serial.print ("الاتصال بـ Adafruit IO") ؛ io.connect () ، // انتظر الاتصال أثناء (io.status () <AIO_CONNECTED) {Serial.print (".") ؛ تأخير (500) ؛ } // نحن متصلون Serial.println () ؛ Serial.println (io.statusText ()) ؛ }

حلقة فارغة()

{io.run () ، // io.run () ؛ يبقي العميل على اتصال ومطلوب لجميع الرسومات. تعويم temp_c ؛ تعويم temp_f ؛ الرطوبة العائمة temp_c = sht1x.readTemperatureC () ، // قراءة القيم من المستشعر temp_f = sht1x.readTemperatureF () ؛ الرطوبة = sht1x.readHumidity () ؛ Serial.print ("درجة الحرارة:") ؛ // اطبع القيم إلى المنفذ التسلسلي Serial.print (temp_c ، DEC) ؛ Serial.print ("C /") ؛ Serial.print (temp_f، DEC) ؛ Serial.print ("درجة الرطوبة:") ؛ Serial.print (الرطوبة) ؛ Serial.println ("٪") ؛ الرطوبة> حفظ (الرطوبة) ؛ درجة الحرارة-> حفظ (temp_f) ؛ Serial.println ("ESP8266 نائم …") ؛ ESP.deepSleep (وقت النوم * 1000000 * 60) ؛ // نايم }

هذا الرمز عبارة عن مزيج من رمز المستشعر من وقت سابق في هذا البرنامج التعليمي ومثال أساسي من خدمة البيانات السحابية Adafruit IO. يدخل البرنامج في وضع الطاقة المنخفضة وينام معظم الوقت ، ولكنه يستيقظ كل 15 دقيقة لقراءة درجة حرارة ورطوبة التربة ، ويبلغ بياناتها إلى Adafruit IO. انتقل إلى علامة التبويب config.h وقم بملء اسم المستخدم والمفتاح Adafruit IO ، بالإضافة إلى اسم شبكة wifi المحلية وكلمة المرور الخاصة بك ، ثم قم بتحميل الرمز إلى متحكم ESP8266 الخاص بك.

صورة
صورة

سيتعين عليك القيام ببعض التحضير على io.adafruit.com. بعد إنشاء موجزات لدرجة الحرارة والرطوبة ، يمكنك إنشاء لوحة معلومات لشاشتك تحتوي على رسم بياني لقيم المستشعر وبيانات الخلاصات الواردة. إذا كنت بحاجة إلى تجديد معلومات حول بدء استخدام Adafruit IO ، فراجع هذا الدرس في فئة Internet of Things الخاصة بي.

الخطوة 4: تحضير لوحة شحن الطاقة الشمسية

تحضير لوحة شحن الطاقة الشمسية
تحضير لوحة شحن الطاقة الشمسية

قم بإعداد لوحة الشحن بالطاقة الشمسية عن طريق لحام مكثفها وبعض الأسلاك في وسادات إخراج الحمولة. أقوم بتخصيص جهاز لشحنه بمعدل أسرع باستخدام المقاوم الإضافي الاختياري (2.2 كيلو ملحوم عبر PROG) وجعله أكثر أمانًا للترك دون مراقبة عن طريق استبدال المقاوم المثبت على السطح بمقاوم حراري 10 كيلو متصل بالبطارية نفسها. سيؤدي ذلك إلى الحد من الشحن لتوفير نطاق درجة حرارة آمن. لقد غطيت هذه التعديلات بمزيد من التفصيل في مشروع شاحن USB الشمسي الخاص بي.

الخطوة الخامسة: بناء دائرة متحكم دقيق

بناء دائرة متحكم
بناء دائرة متحكم
صورة
صورة
صورة
صورة

قم بتلحيم لوحة التحكم الدقيق ومفتاح الطاقة إلى لوحة perma-proto.

صورة
صورة

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

صورة
صورة

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

ستوفر دبابيس تحميل الشاحن الشمسي طاقة بطارية 3.7 فولت في حالة عدم وجود طاقة شمسية ، ولكن سيتم تشغيلها مباشرةً من اللوحة الشمسية إذا كانت موصولة بالكهرباء ومشمسًا. لذلك يجب أن يكون المتحكم الدقيق قادرًا على تحمل مجموعة متنوعة من الفولتية ، منخفضة تصل إلى 3.7 فولت وتصل إلى 6 فولت تيار مستمر. بالنسبة لأولئك الذين يحتاجون إلى 5 فولت ، يمكن استخدام PowerBoost (500 أو 1000 ، اعتمادًا على التيار المطلوب) لتعديل جهد الحمل إلى 5 فولت (كما هو موضح في مشروع شاحن USB بالطاقة الشمسية). فيما يلي بعض اللوحات المشتركة ونطاقات جهد الدخل الخاصة بها:

  • NodeMCU ESP8266 (يستخدم هنا): 5V USB أو 3.7V-10V Vin
  • Arduino Uno: 5V USB أو 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB أو 3.4-6V VBat

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

الخطوة السادسة: تثبيت غدد الكابلات

صورة
صورة

لإنشاء نقاط دخول مقاومة للعوامل الجوية لكابل اللوحة الشمسية وكابل المستشعر ، سنقوم بتثبيت غدتين من الكابلات في جانب العلبة المقاومة للعوامل الجوية.

صورة
صورة
صورة
صورة

اختبر ملاءمة المكونات الخاصة بك لتحديد الموضع المثالي ، ثم قم بتمييز الثقوب وحفرها في حاوية مقاومة للماء باستخدام مثقاب متدرج. قم بتثبيت غدتي الكابلات.

صورة
صورة

الخطوة 7: تجميع الدائرة الكاملة

تجميع الدائرة الكاملة
تجميع الدائرة الكاملة

أدخل جانب المنفذ لكابل الطاقة المقاوم للماء في أحدها وقم بتوصيله بمدخل التيار المباشر للشاحن الشمسي (الأحمر إلى + والأسود إلى -).

صورة
صورة

أدخل مستشعر التربة من خلال الغدة الأخرى ، وقم بتوصيله إلى perma-proto وفقًا لمخطط الدائرة.

صورة
صورة

ألصق مسبار الثرمستور بالبطارية. سيؤدي ذلك إلى تقييد الشحن إلى نطاق درجة حرارة آمن أثناء ترك المشروع دون مراقبة بالخارج.

صورة
صورة

قد يؤدي الشحن في حالة السخونة الشديدة أو البرودة الشديدة إلى تلف البطارية أو نشوب حريق. يمكن أن يتسبب التعرض لدرجات حرارة عالية في حدوث تلف ويقصر من عمر البطارية ، لذا قم بإدخالها إلى الداخل إذا كانت درجة الحرارة أقل من درجة التجمد أو أعلى من 45 درجة / 113 فهرنهايت.

صورة
صورة

شد غدد الكابلات لعمل ختم مانع لتسرب الماء حول الكابلات الخاصة بها.

الخطوة 8: تحضير الألواح الشمسية

تحضير الألواح الشمسية
تحضير الألواح الشمسية

اتبع التعليمات الخاصة بي لتوصيل الكبل الخاص باللوحة الشمسية بجانب القابس الخاص بمجموعة كبل الطاقة DC المقاوم للماء.

الخطوة 9: اختبرها

قم بتجريبه
قم بتجريبه

قم بتوصيل البطارية وتشغيل الدائرة بالضغط على مفتاح الطاقة.

صورة
صورة

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

صورة
صورة

بمجرد تسجيل البيانات من المستشعر عبر الإنترنت ، يصبح من السهل إعداد وصفة لتنبيهات البريد الإلكتروني أو الرسائل النصية على موقع بوابة واجهة برمجة التطبيقات If This Then That. لقد قمت بتكوين لي لإرسال بريد إلكتروني لي إذا انخفض مستوى رطوبة التربة عن 50.

لاختباره دون انتظار جفاف المصنع ، أدخلت يدويًا نقطة بيانات لتغذية الرطوبة على Adafruit IO التي انخفضت عن الحد الأدنى. بعد لحظات قليلة ، وصل البريد الإلكتروني! إذا انخفضت مستويات التربة عن المستوى المحدد ، فسوف أتلقى بريدًا إلكترونيًا في كل مرة يتم فيها تحديث العلف حتى أقوم بسقي التربة. من أجل سلامة عقلي ، قمت بتحديث الكود الخاص بي لأخذ عينات من التربة بمعدل أقل بكثير من كل 15 دقيقة.

الخطوة 10: استخدمه في الخارج

استخدمه في الخارج!
استخدمه في الخارج!
استخدمه في الخارج!
استخدمه في الخارج!

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

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

إذا أعجبك هذا المشروع ، فقد تكون مهتمًا ببعض الآخرين:

  • فئة إنترنت الأشياء المجانية
  • عداد المشتركين في YouTube مع ESP8266
  • عرض تعقب الإحصائيات الاجتماعية مع ESP8266
  • شاشة عرض الطقس عبر WiFi مع ESP8266
  • عيد الحب الإنترنت

لمواكبة ما أعمل عليه ، تابعوني على YouTube و Instagram و Twitter و Pinterest و Snapchat.

موصى به: