- المكونات مطلوبة
- مخطط الرسم البياني
- جهاز استشعار درجة الحرارة والرطوبة DHT11
- برمجة NodeMCU ESP8266 مراقبة درجة الحرارة والرطوبة الحية
تحتوي وحدات التحكم الدقيقة على ذاكرة داخلية صغيرة لا تكفي لحفظ بيانات المستشعرات المولدة لفترة طويلة ، إما أن تضطر إلى استخدام بعض أجهزة الذاكرة الخارجية أو يمكنك حفظ البيانات على بعض السحابة باستخدام الإنترنت. أيضًا ، في بعض الأحيان يصبح من الصعب إدارته عند نشر المستشعر في بعض المواقع ذات الظروف القاسية حيث لا يستطيع الإنسان الوصول إليها أو يصعب زيارتها بشكل متكرر. لتصحيح هذا النوع من المشكلات ، نبحث دائمًا في الطرق التي نريد بها مراقبة بيانات المستشعر في الوقت الفعلي من أي مكان دون أي وجود مادي في ذلك المكان.
و قواعد البيانات في الوقت الحقيقي يمكن استخدامها في هذا السيناريو حيث لدينا لمجرد واجهة بعض تحكم والتي يمكن أن تكون متصلا بالإنترنت، ويمكن أن تكون قادرة على تبادل البيانات مع خادم سحابة. يمكن أن تكون بيانات الخادم مفيدة في مراقبة سلوك النظام في الوقت الفعلي ، وتحليلات قاعدة البيانات ، والتحليل والمعالجة الإحصائية ، والتفسير لحالة الاستخدام المستقبلية. هناك الكثير من منصات أجهزة إنترنت الأشياء والأنظمة الأساسية السحابية المتاحة لخدمة هذا الغرض. إذا وجدت صعوبات في العثور على النظام الأساسي المناسب لتطبيق إنترنت الأشياء الخاص بك ، فاتبع الرابط.
سبق أن قمنا بتغطية ThingSpeak و Adafruit IO والعديد من برامج إنترنت الأشياء الأخرى. سنقوم اليوم ببناء مشروع مماثل حيث سنستخدم مستشعر درجة الحرارة والرطوبة DHT11 ووحدة NodeMCU ESP8266 لتسجيل درجة الحرارة والرطوبة في الوقت الفعلي على خادم قاعدة بيانات Google Firebase.
سنقسم المشروع إلى قسمين. أولاً ، سنبدأ بتجميع مكونات الأجهزة وتحميل البرامج الثابتة فيه. وثانيًا ، سنستخدم Firebase للإعداد مع NodeMCU لتبادل البيانات في الوقت الفعلي. إذا كنت مستخدمًا جديدًا لـ ESP8266 أو Firebase ، فاتبع البرنامج التعليمي السابق الخاص بنا حول التحكم في LED باستخدام Firebase.
المكونات مطلوبة
- وحدة NodeMCU ESP8266
- جهاز استشعار درجة الحرارة والرطوبة DHT11
مخطط الرسم البياني
جهاز استشعار درجة الحرارة والرطوبة DHT11
تتميز وحدة DHT11 بمركب الرطوبة ودرجة الحرارة مع إخراج إشارة رقمية معايرة مما يعني أن وحدة مستشعر DHT11 هي وحدة مدمجة لاستشعار الرطوبة ودرجة الحرارة والتي تعطي إشارة خرج رقمية معايرة. يمنحنا DHT11 قيمة دقيقة جدًا للرطوبة ودرجة الحرارة ويضمن موثوقية عالية واستقرارًا طويل المدى. يحتوي هذا المستشعر على مكون قياس الرطوبة من النوع المقاوم ومكون قياس درجة الحرارة من نوع NTC مع متحكم دقيق 8 بت يحمل في ثناياه عوامل والذي يتمتع باستجابة سريعة وفعالة من حيث التكلفة ومتوفر في حزمة صف واحد مكون من 4 أسنان.
استخدمنا سابقًا ESP12E لتحديث قراءات DHT11 على خادم الويب ، بخلاف ذلك يمكنك التحقق من جميع المشاريع القائمة على DHT11 حيث استخدمنا DHT11 للتفاعل مع العديد من وحدات التحكم الدقيقة الأخرى مثل Arduino و PIC و Raspberry ومحطة الطقس المبنية باستخدامها.
برمجة NodeMCU ESP8266 مراقبة درجة الحرارة والرطوبة الحية
يتم تقديم البرنامج الكامل مع فيديو العمل في النهاية. نحن هنا نوضح بعض الأجزاء المهمة من الكود.
قم أولاً بتضمين مكتبات استخدام ESP8266 و Firebase.
#تضمن
قم بتنزيل وتثبيت المكتبات باتباع الروابط التالية:
github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h
github.com/bblanchon/ArduinoJson
أثناء التجميع ، إذا تلقيت خطأ مفاده أن مكتبة ArduinoJson.h غير مثبتة ، فيرجى تثبيتها باستخدام الرابط الموضح أعلاه.
سنبرمج NodeMCU لأخذ قراءات من مستشعر DHT11 ودفعه إلى Firebase كل 5 ثوانٍ من الفاصل الزمني. سنضع مسارًا لدفع البيانات. الآن معلمتان بمعنى. يتم إرسال الرطوبة ودرجة الحرارة في نفس المسار الأصلي ومسار طفل مختلف.
هاتان المعلمتان مهمتان جدًا للتواصل مع Firebase. سيؤدي تعيين هذه المعلمات إلى تمكين تبادل البيانات بين و ESP8266 و firebase. للعثور على هذه المعلمات لمشروعك ، اتبع برنامجنا التعليمي السابق حول إعداد Firebase.
#define FIREBASE_HOST "your-project.firebaseio.com" // عنوان اسم المشروع من firebase id #define FIREBASE_AUTH "Uejx9ROxxxxxxxxxxxxxxxxxxxxxxfQDDkhN" // المفتاح السري الذي تم إنشاؤه من firebase
بعد العثور على بيانات الاعتماد بنجاح ، فقط استبدل الكود أعلاه.
أدخل Wi-Fi SSID وكلمة المرور للاتصال بشبكتك.
#define WIFI_SSID "network_name" // أدخل اسم wifi الخاص بالمنزل أو العام #define WIFI_PASSWORD "password" // كلمة مرور wifi ssid
حدد دبوس بيانات DHT في NodeMCU. يمكنك استخدام أي دبوس GPIO رقمي في NodeMCU.
#define DHTPIN D4
تم تصميم مكتبة DHT لجميع أنواع DHT وتأتي مع خيار مستشعر DHT الذي تريد استخدامه على سبيل المثال DHT11 أو DHT22. ما عليك سوى اختيار مستشعر DHT المناسب والمتابعة.
#define DHTTYPE DHT11 // حدد نوع dht كـ DHT 11 أو DHT22 DHT dht (DHTPIN ، DHTTYPE) ؛
اتصل بشبكة Wi-Fi المحددة واتصل أيضًا بخادم قاعدة بيانات Firebase.
WiFi.begin (WIFI_SSID ، WIFI_PASSWORD) ؛ Firebase.begin (FIREBASE_HOST، FIREBASE_AUTH) ،
ابدأ في أخذ القراءة في pin D4 من NodeMCU.
dht.begin () ،
خذ قراءات الرطوبة ودرجة الحرارة من مستشعر DHT وحفظها كقيمة تعويم.
تعويم h = dht.readHumidity () ؛ // قراءة درجة الحرارة أو الرطوبة تستغرق حوالي 250 مللي ثانية! تعويم t = dht.readTemperature () ، // قراءة درجة الحرارة مئوية (الافتراضي)
فقط تحقق مما إذا كان مستشعر DHT موصلاً بشكل صحيح أو أنه غير تالف ويمكن لوحدة التحكم قراءة القراءات منه. إذا لم تظهر القراءات ، فمن المحتمل أن يكون المستشعر تالفًا ، فما عليك سوى إظهار رسالة خطأ والعودة للتحقق مرة أخرى دون المضي قدمًا.
if (isnan (h) - isnan (t)) {// تحقق مما إذا فشلت أي قراءات واخرج مبكرًا (للمحاولة مرة أخرى). Serial.println (F ("فشل القراءة من مستشعر DHT!")) ؛ إرجاع؛ }
طباعة بيانات المستشعر في الشاشة التسلسلية لتصحيح الأخطاء وحفظ قيم درجة الحرارة والرطوبة في شكل سلسلة لإرسالها إلى Firebase. لاحظ أيضًا أن الحد الأدنى للتأخير المطلوب بين قراءتين من مستشعر DHT11 هو ثانيتان ، لذلك استخدم دائمًا تأخيرًا أكبر من ثانيتين. لمعرفة المزيد عن DHT11 ، يمكنك البحث في ورقة البيانات الرسمية.
Serial.print ("الرطوبة:") ؛ Serial.print (ح) ؛ String fireHumid = String (h) + String ("٪") ؛ // تحويل رطوبة عدد صحيح إلى رطوبة سلسلة Serial.print ("٪ درجة الحرارة:") ؛ Serial.print (t) ؛ Serial.println ("° C") ؛ String fireTemp = String (t) + String ("° C") ؛ تأخير (4000) ؛
أخيرًا ، أرسل بيانات درجة الحرارة والرطوبة إلى Firebase في المسار "your-project.firebaseio.com/DHT11/Humidity/".
Firebase.pushString ("/ DHT11 / Humidity"، fireHumid) ؛ // مسار الإعداد وإرسال قراءات Firebase.pushString ("/ DHT11 / Temperature"، fireTemp) ؛ // مسار الإعداد وإرسال القراءات
يمكنك رؤية جميع البيانات في حساب Firebase الخاص بك. ما عليك سوى الانتقال إلى قسم " قاعدة البيانات " في " مشروعك " في " وحدة التحكم الخاصة بي " في Firebase.
لإعداد Firebase لإرسال البيانات ومراقبتها ، يمكنك الرجوع إلى برنامجنا التعليمي السابق.
يتم توفير الكود الكامل والفيديو لرصد درجة الحرارة والرطوبة على أساس إنترنت الأشياء أدناه.