DHT11: كل شيء عن المستشعر لقياس درجة الحرارة والرطوبة

DHT11

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

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

ما هو DHT11؟

El DHT11 عبارة عن مستشعر بسيط يقيس درجة الحرارة والرطوبة، الكل في واحد. أ) نعم لن تضطر إلى شراء جهازي استشعار بشكل منفصل. يبلغ سعره حوالي 2 يورو ، لذا فهو رخيص جدًا ، على الرغم من أنه يمكنك أيضًا العثور عليه مثبتًا على وحدة (مثبتة على PCB لسهولة الاستخدام) كما هو معتاد في هذا النوع من المكونات الإلكترونية لـ Arduino. في حالة اللوحة ، تشتمل على مقاوم سحب 5 كيلو أوم ومصباح LED ينبهنا إلى العملية.

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

منتجات مماثلة

DHT22

يوجد منتج مشابه لـ DHT11 قد تكون مهتمًا به. أنه في DHT22. إنه أيضًا مستشعر درجة حرارة ورطوبة مدمج ، لكن في هذه الحالة يكون سعره أعلى قليلاً ، حوالي 4 يورو. دقة قياس درجة الحرارة هي اختلاف بنسبة 5٪ أيضًا مثل DHT11 ، ولكن على عكس ذلك ، فهي تتجاوز نطاق الرطوبة بين 20 و 80٪. لذلك ، قد تكون مهتمًا بـ DHT22 للمشاريع التي تحتاج فيها إلى قياس الرطوبة من 0 إلى 100٪.

La تكرار جمع البيانات إنه أيضًا ضعف مثيله في DHT11 ، في DHT22 ، يتم أخذ عينات 2 في الثانية بدلاً من عينة واحدة في الثانية من DHT1. أما بالنسبة لدرجة الحرارة ، فيمكن قياسها من -11 درجة مئوية إلى + 40 درجة مئوية بمزيد من الدقة ، حيث يمكنها قياس كسور الدرجات ، وعلى وجه التحديد يمكنها تقدير الاختلافات في موجب / ناقص 125 درجة مئوية.

Pinout والميزات وورقة البيانات

دبوس DHT11

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

  • 3,5v إلى 5v امدادات الطاقة
  • 2,5mA الاستهلاك الحالي
  • إشارة الخرج الرقمية
  • تتراوح درجة الحرارة من 0 درجة مئوية إلى 50 درجة مئوية
  • دقة قياس درجة الحرارة عند 25 درجة مئوية بتغير 2 درجة مئوية
  • دقة قياس درجة الحرارة 8 بت ، 1 درجة مئوية
  • يمكن قياس الرطوبة من 20٪ RH إلى 90٪ RH
  • دقيق للرطوبة بنسبة 5٪ RH لدرجات حرارة بين 0-50 درجة مئوية
  • الدقة هي 1٪ رطوبة نسبية ، ولا يمكنها التقاط اختلافات أقل من ذلك
  • ورقة بيانات صائد الفئران

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

يتم تحويل الإشارة التناظرية ، وهي اختلاف في الجهد ، من المستشعر إلى تنسيق رقمي ليتم إرسالها إلى متحكم Arduino. ينتقل في إطار 40 بت التي تتوافق مع معلومات الرطوبة ودرجة الحرارة التي تم التقاطها بواسطة DHT11. أول مجموعتين من 8 بتات للرطوبة ، أي أهم 16 بت في هذا الإطار. ثم المجموعتان المتبقيتان 2 بت لدرجة الحرارة. أي أنه يحتوي على اثنين بايت للرطوبة واثنين بايت لدرجة الحرارة. على سبيل المثال:

شنومكس شنومكس شنومكس شنومكس شنومكس شنومكس شنومكس شنومكس شنومكس شنومكس

في هذه الحالة ، 0011 0101 0000 0010 هي قيمة الرطوبة ، و 0001 1000 0000 0000 هي درجة الحرارة. الجزء الأول للجزء الصحيح والجزء الثاني للأرقام العشرية. أما بالنسبة إلى 0011 1001 ، فهذا يعني أن آخر 8 بت هي التكافؤ لتجنب الأخطاء. بهذه الطريقة يمكنك التحقق من صحة كل شيء أثناء الإرسال. إنه يتوافق مع مجموع البتات السابقة ، لذلك إذا كان المجموع يساوي التكافؤ ، فسيكون صحيحًا. في المثال الذي وضعته ، لن يكون كذلك ، لأنه كما ترون لا يتوافق ... هذا من شأنه أن يشير إلى الفشل.

بمجرد معرفة ذلك ، فإن الشيء التالي على المستوى الفني لـ DHT11 الذي يجب ملاحظته هو الدبابيس. ال جهات الاتصال أو pinout من هذا الجهاز بسيط ، لأنه يحتوي على 4 منها فقط. أحد المسامير مخصص للطاقة أو Vcc ، والآخر للإدخال / الإخراج لنقل البيانات ، ودبوس NC غير متصل ، و GND للاتصال الأرضي.

التكامل مع اردوينو

توصيل DHT11 بالاردوينو

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

من ناحية أخرى ، يجب توصيل دبوس الطاقة بـ اتصال 5 فولت من Arduino ، بهذه الطريقة سيتم تزويد المستشعر بالطاقة بالكامل مع GND و Vcc ، لكن البيانات الآن مفقودة. لنقل البيانات من مستشعر DHT11 إلى لوحة Arduino ، يمكنك استخدام أي من المدخلات الرقمية ، مثل الرقم 7 الذي يظهر في الصورة ... الآن لديك كل شيء جاهزًا لاستخدامه بمجرد إنشاء الكود اللازم في اردوينو IDE ...

إذا كان المستشعر بعيدًا في مشروعك وستستخدم كبلًا أطول من 20 مترًا ، فاستخدم مقاوم سحب 5 كيلو ، بالنسبة للكابلات الأكبر يجب أن يكون أكبر نسبيًا. لاحظ أنه إذا كنت تستخدم طاقة 3,5 فولت بدلاً من 5 فولت ، فيجب ألا يزيد طول الكابل عن 20 سم بسبب انخفاض الجهد.

تذكر أن ما يوصون به هو أخذ القياسات كل 5 ثوان ، على الرغم من أن تكرار أخذ العينات الذي يمكن أن يعمل به DHT11 أعلى ، إلا أنه إذا تم إجراؤه بشكل متكرر فقد لا يكون بنفس الدقة.

كود في Arduino IDE

الذهاب مباشرة إلى الكود ، قل ذلك في اردوينو إيد يمكنك استخدام عدد من المكتبات الموجودة مع الميزات التي ستجعل حياتك أسهل مع DHT11. على سبيل المثال ، واحد منهم هو الذي يوفر Adafruit. تذكر أن لدينا دليلًا للمبتدئين يبدأ بـ Arduino في ملف PDF يمكنك القيام به تحميل مجاني من هنا ويمكن أن تساعدك.

بمجرد تثبيت المكتبة المقابلة ، يمكنك التعليق على ادخل الكود للتحكم في مستشعر درجة الحرارة والرطوبة DHT11 لمشروعك مع Arduino. على سبيل المثال:

#include "DHT.h"

const int DHTPin = 7;     
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println("Midiendo...");
 
   dht.begin();
}
 
void loop() {
   delay(2000);
 
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println("Fallo en la lectura del sensor DHT11");
      return;
   }
 
 
   Serial.print("Humedad relativa: ");
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperatura: ");
   Serial.print(t);
   Serial.print(" ºC ");
}


كن أول من يعلق

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.