جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-23 12:53
ملخص
الهدف من هذا المشروع هو إنشاء جهاز مضغوط قادر على مراقبة ظروف النبات المنزلي. يمكّن الجهاز المستخدم من التحقق من مستوى رطوبة التربة ومستوى الرطوبة ودرجة الحرارة ودرجة الحرارة "التي تشبه الإحساس" من هاتف ذكي باستخدام تطبيق Blynk. بالإضافة إلى ذلك ، سيتلقى المستخدم تنبيهًا عبر البريد الإلكتروني عندما تصبح الظروف غير مناسبة للمصنع. على سبيل المثال ، سيتلقى المستخدم تذكيرًا بري النبات عندما تنخفض مستويات رطوبة التربة عن المستوى المناسب.
الخطوة 1: المتطلبات
يستخدم هذا المشروع جهاز Sparkfun ESP32 ، ومستشعر DHT22 ، ومستشعر رطوبة التربة من الطوب الإلكتروني. بالإضافة إلى ذلك ، يلزم توفر شبكة wifi وتطبيق Blynk. على نحو مفضل ، يجب إنشاء حاوية مقاومة للماء لاحتواء الشيء ESP32. بينما يستخدم هذا المثال منفذًا قياسيًا لمصدر طاقة ، فإن إضافة بطارية قابلة لإعادة الشحن ولوحة شمسية ووحدة تحكم في الشحن ستمكن الجهاز من أن يتم تشغيله من خلال الطاقة المتجددة.
الخطوة 2: Blynk
إلى الآن ، قم بتنزيل تطبيق Blynk وأنشئ مشروعًا جديدًا. لاحظ رمز المصادقة - سيتم استخدامه في الكود. أنشئ أدوات عرض جديدة في تطبيق Blynk وحدد الدبابيس الافتراضية المقابلة المحددة في الكود. اضبط الفاصل الزمني للتحديث للدفع. يجب تعيين رقم التعريف الشخصي الافتراضي لكل عنصر واجهة مستخدم.
الخطوة 3: Arduino IDE
قم بتنزيل Arduino IDE. اتبع إرشادات التنزيل الخاصة ببرنامج تشغيل الشيء ESP32 والعرض التوضيحي لضمان اتصال wifi. قم بتنزيل مكتبات Blynk و DHT المضمنة في الكود. املأ رمز المصادقة وكلمة مرور wifi واسم مستخدم wifi والبريد الإلكتروني في الرمز النهائي. استخدم الكود التجريبي لجهاز استشعار رطوبة التربة للعثور على القيم الدنيا والقصوى لنوع التربة. سجل واستبدل هذه القيم في الكود النهائي. استبدل القيم الدنيا لدرجة الحرارة ورطوبة التربة والرطوبة للنبات في الكود النهائي. قم بتحميل الكود.
الخطوة 4: قم ببنائه
أولاً ، قم بتوصيل مستشعر رطوبة التربة بـ 3.3 فولت ، والأرضي ، ودبوس الإدخال 34. لاحظ أنه جزء لا يتجزأ من ضبط المفتاح على A لأنه سيتم استخدام الإعداد التناظري لهذا المستشعر. بعد ذلك ، قم بتوصيل مستشعر DHT بـ 3.3 فولت ، والأرضي ، ودبوس الإدخال 27. يتطلب مستشعر DHT22 مقاومة 10 كيلو أوم بين VCC ودبوس إخراج البيانات. تأكد من مراجعة مخطط DHT للتأكد من توصيله بشكل صحيح. قم بتكوين ESP32 داخل حاوية مقاومة للماء باستخدام مستشعر الرطوبة في التربة ومستشعر DHT فوق السطح. اتصل بمصدر طاقة واستمتع بالبيانات عن بيئة مصنعك.
الخطوة 5: الكود
// المكتبات المضمنة
#define BLYNK_PRINT المسلسل
# تضمين # تضمين # تضمين # تضمين "DHT.h"
// معلومات مستشعر DHT
#define DHTTYPE DHT22 // DHT 22 (AM2302) ، AM2321 #define DHTPIN 27 // دبوس رقمي متصل بمستشعر DHT DHT dht (DHTPIN ، DHTTYPE) ؛ // تهيئة مستشعر DHT.
// تحديد دبابيس الإدخال والمخرجات
حساس التربة int = 34 ؛ // تحديد رقم التعريف الشخصي للإدخال التناظري المتصل بجهاز استشعار الرطوبة
int output_value ؛ // تعريف كإخراج
int moisturelevel ؛ // تعريف كإخراج
إخطار int = 0 ؛ // تعريف تم الإبلاغ عنه كـ 0
التأخير الزمني int = 60000L ؛ // ضبط جهاز ضبط الوقت للتشغيل للحصول على البيانات مرة واحدة كل دقيقة أو 60 ألف ميلي ثانية
// تعيين القيم الدنيا للنبات
int min_moisture = 20 ؛ int min_temperature = 75 ؛ الحد الأدنى للرطوبة = 60 ؛
// يجب أن تحصل على Auth Token في تطبيق Blynk.
char auth = "Auth_Token_Here" ؛
// بيانات اعتماد WiFi الخاصة بك.
char ssid = "Wifi_Network_Here" ؛ char pass = "Wifi_Password_Here" ؛
توقيت BlynkTimer.
// ترسل هذه الوظيفة وقت تشغيل Arduino كل ثانية إلى Virtual Pin (5).
// في التطبيق ، يجب ضبط تردد قراءة الأداة على PUSH. هذا يعني // أنك تحدد عدد مرات إرسال البيانات إلى تطبيق Blynk.
void Sensors () // الوظيفة الرئيسية لقراءة المستشعرات والدفع إلى blynk
{output_value = analogRead (التربة_المستشعر) ؛ // اقرأ الإشارة التناظرية من مستشعر التربة وعرِّفها على أنها قيمة الإخراج // قم بتخطيط الإخراج_vlaue من القيم الدنيا والقيم القصوى إلى 100 و 0 وتقييد بين 0 و 100 // استخدم رمز العينة والمراقب التسلسلي للعثور على min و القيم القصوى لجهاز الاستشعار الفردي ونوع التربة لتحسين مستوى رطوبة المعايرة = تقييد (خريطة (قيمة الإخراج ، 1000 ، 4095 ، 100 ، 0) ، 0 ، 100) ؛ تعويم h = dht.readHumidity () ؛ // قراءة الرطوبة العائمة t = dht.readTemperature () ؛ // قراءة درجة الحرارة على أنها مئوية (الافتراضي) float f = dht.readTemperature (true) ؛ // قراءة درجة الحرارة على أنها فهرنهايت (isFahrenheit = true) // حساب مؤشر الحرارة بالفهرنهايت (الافتراضي) float hif = dht.computeHeatIndex (f، h)؛ // تحقق مما إذا كانت أي قراءات فشلت والخروج مبكرًا (للمحاولة مرة أخرى). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Failed to read from DHT sensor!"))؛ إرجاع؛ } // هذا يربط الوصلات بالدبابيس الافتراضية المحددة في الأدوات في تطبيق Blynk Blynk.virtualWrite (V5 ، moisturelevel) ؛ // أرسل مستوى الرطوبة إلى الدبوس الافتراضي 5 Blynk.virtualWrite (V6، f)؛ // أرسل درجة الحرارة إلى الوضع الافتراضي pin 6 Blynk.virtualWrite (V7 ، h) ؛ // أرسل الرطوبة إلى الدبوس الافتراضي 7 Blynk.virtualWrite (V8 ، hif) ؛ // أرسل مؤشر الحرارة إلى الدبوس الافتراضي 8
إذا (تم الإخطار == 0)
{if (moisturelevel <= min_moisture) // إذا كان مستوى الرطوبة يساوي أو أقل من القيمة الدنيا {Blynk.email ("Email_Here"، "Plant Monitor"، "Water Plant!")؛ تأخير // إرسال بريد إلكتروني إلى water plant} (15000) ؛ // يجب أن تفصل بين رسائل البريد الإلكتروني في Blynk 15 ثانية. تأخير 15000 مللي ثانية إذا (f <= min_temperature) // إذا كانت درجة الحرارة تساوي أو تقل عن الحد الأدنى للقيمة {Blynk.email ("Email_Here"، "Plant Monitor"، "Temperature Low!")؛ // أرسل بريدًا إلكترونيًا يشير إلى انخفاض درجة الحرارة
}
تأخير (15000) ؛ // يجب أن تفصل بين رسائل البريد الإلكتروني في Blynk 15 ثانية. تأخير 15000 مللي ثانية إذا (h <= min_humidity) // إذا كانت الرطوبة تساوي أو تقل عن الحد الأدنى للقيمة {Blynk.email ("Emial_Here"، "Plant Monitor"، "Humidity Low!")؛ // إرسال بريد إلكتروني بأن الرطوبة منخفضة} إخطار = 1 ؛ timer.setTimeout (تأجيل زمني * 5 ، resetNotified) ؛ // مضاعفة timeedelay بعدد الدقائق المطلوبة بين تكرار رسائل التحذير الإلكترونية}}
إعادة تعيين باطلNotified () // وظيفة تسمى لإعادة تعيين تردد البريد الإلكتروني
{الإعلام = 0 ؛ }
الإعداد باطل()
{Serial.begin (9600) ، // Debug console Blynk.begin (auth ، ssid ، pass) ؛ // الاتصال بـ blynk timer.setInterval (تأخير زمني ، أجهزة استشعار) ؛ // قم بإعداد وظيفة ليتم استدعاؤها كل دقيقة أو ما تم تعيينه للتأجيل الزمني على dht.begin () ؛ // تشغيل مستشعر DHT}
// يجب أن تحتوي الحلقة الفارغة على blynk.run والمؤقت فقط
حلقة باطلة () {Blynk.run () ، // تشغيل blynk timer.run () ؛ // يبدأ BlynkTimer}
موصى به:
كيفية إنشاء جهاز مراقبة النبات باستخدام Arduino: 7 خطوات
كيفية إنشاء شاشة مراقبة النبات باستخدام Arduino: في هذا البرنامج التعليمي سوف نتعلم كيفية اكتشاف رطوبة التربة باستخدام مستشعر الرطوبة ووميض مؤشر LED أخضر إذا كان كل شيء على ما يرام وشاشة OLED و Visuino
كيفية اكتشاف أمراض النبات باستخدام التعلم الآلي: 6 خطوات
كيفية اكتشاف أمراض النبات باستخدام التعلم الآلي: لطالما كانت عملية اكتشاف النباتات المريضة والتعرف عليها عملية يدوية ومملة تتطلب من البشر فحص جسم النبات بصريًا مما قد يؤدي غالبًا إلى تشخيص غير صحيح. كما تم التنبؤ بأن العالم
مراقبة التسارع باستخدام Raspberry Pi و AIS328DQTR باستخدام Python: 6 خطوات
مراقبة التسارع باستخدام Raspberry Pi و AIS328DQTR باستخدام Python: أعتقد أنه وفقًا لبعض قوانين الفيزياء. - Terry Riley يستخدم الفهد تسارعًا مذهلاً وتغييرات سريعة في السرعة عند المطاردة. أسرع مخلوق على الشاطئ من حين لآخر يستخدم سرعته القصوى للقبض على الفريسة. ال
جهاز مراقبة الطقس ESP32 Based M5Stack M5stick C مع DHT11 - مراقبة درجة الحرارة والرطوبة ومؤشر الحرارة على M5stick-C مع DHT11: 6 خطوات
جهاز مراقبة الطقس ESP32 Based M5Stack M5stick C مع DHT11 | مراقبة درجة الحرارة والرطوبة ومؤشر الحرارة على M5stick-C مع DHT11: مرحبًا يا رفاق ، في هذه التعليمات سوف نتعلم كيفية واجهة مستشعر درجة حرارة DHT11 مع m5stick-C (لوحة تطوير بواسطة m5stack) وعرضها على شاشة m5stick-C. لذلك في هذا البرنامج التعليمي سوف نقرأ درجة الحرارة والرطوبة وأمبير. الحرارة أنا
اكتشاف أمراض النبات باستخدام Qualcomm Dragonboard 410c: 4 خطوات
اكتشاف أمراض النبات باستخدام Qualcomm Dragonboard 410c: مرحبًا بالجميع ، نشارك في مسابقة Inventing the Future with Dragonboard 410c برعاية مشروع Embarcados و Linaro و Baita.AVoID (Agro View Disease) هدفنا هو إنشاء نظام مضمن قادر على التقاط الصورة والعملية واكتشاف نقاط البيع