DHT11 و DHT22 استخدام مجس  الحرارة والرطوبة من نوع December 12, 2017 – Posted in: Arduino, Learn arduino – Tags: ,

في هذا التجربة سوف نتعلم كيفية استخدام مجس  الحرارة والرطوبة من نوع  DHT11 و DHT22  مع لوحة الاردوينو. وسيتم طباعة درجة حرارة الغرفة والرطوبة على شاشة الـ LCD .

القطع الطلوبة:

الأدوات التي تحتاجها لهذا المشروع هي:

مستشعر درجة الحرارة و الرطوبة DHT11 Arduino Uno R3
شاشة LCD 16×2 اسلاك توصيل ذكر/ذكر (Jumper Wires Male Male)
لوح توصيل حجم متوسط (Half size breadboard ) مقاومة متغيره  Potentiometer 10K Ω

حساسات DHT11/DHT22 :

اولا سوف نتحدث عن مستشعر dht11, dht22 هذه الأجهزة منتشرة  جدا بين هواة الالكترونيات لأنها رخيصة وتقدم دقة جيدة جدا , الان سنقوم بعرض  الفرق بين DHT11 و DHT22


في نطاق قياس درجة الحرارة يتراوح DHT22  من -40 إلى +125 درجة مئوية مع 0.5 درجة نسبة خطأ،
في حين  ان DHT11 يتراوح نطاق قياسه من 0 الى 50 درجة مئوية مع  درجتين دقة نسبة خطأ.
أيضا DHT22 لديه نطاق قياس رطوبة أفضل، من 0 إلى 100% مع 2-5% من الدقة نسبة خطأ.
في حين DHT11  نطاق قياس  الرطوب له يتراوح من 20 الى 90% مع  5% من الدقة نسبة خطأ.

يوجد صفتين  في DHT11 هي أفضل من DHT22 وهما:

اولا: معدل أخذ العينات (Sampling Rate) في مستشعر DHT11  هي 1Hz او قراءة كل ثانية، في حين  DHT22 معدل أخذ العينات هي 0.5Hz أو قراءة كل  ثانيتين.

ثانيا: DHT11  أصغر حجما.

اما من ناحية الدقة فإن DHT22 يتفوق على DHT11 و كذلك في نسبة الخطأ لدرجة الحرارة و الرطوبة
جهد التشغيل الكهربائي لكل من أجهزة الاستشعار هي 5-3 فولت ، في حين الحد الأقصى للتيار المستخدم عند القياس هو 2.5mA.

هذه  الحساسات  تتألف من مستشعر الرطوبة و NTC  مستشعر درجة الحرارة (أو الثرمستور) و IC على الجانب الخلفي للحساس .

حساسات DHTxx  لديها أربعة دبابيس وهي: VCC ، GND ، دبوس البيانات (Data Pin)  ودبوس لا يتم استخدامه. تتطلب هذه الحساسات  Pull-up resistor من  5Kالى 10K اوم للحفاظ على خط البيانات وكذلك من أجل تمكين الاتصال بين المستشعر و لوحة الاردوينو. هناك بعض الإصدارات من هذه الحساسات التي تأتي مع لوحة جانبية مدمجة مع pull-up resistor و لديها 3 دبابيس.

مبدأ عمل DHT11 :

في هذا التجربة  سنقوم بإستخدام المستشعر DHT11. بعد توصيل المستشعر إلى المتحكم، يقوم المتحكم MCU بإرسال نبضة بدء (Start signal ) للحساس لينقله من وضع الإستعداد إلى وضع التشغيل و بعد اكتمال وصول النبضه إلى الحساس و استجابته لهذه النبضة ، يرسل الحساس موجه تضم 40 Bit تضم اشارات الحرارة و الرطوبة إلى المتحكم الذي يقوم بدوره بمعالجتها و إظهار النتائج .

طريقة التوصيل

اولأ سوف نقوم بتوصيل مجس الرطوبة مع الاردوينو كما بالصورة التالية, المنفذ الموجب للمجس مع ال٥ فولت و السالب مع المنفذ الأرضي للاردوينو و اخيرأ منفذ الout  مع منفذ A0  للاردوينو

ثم نقوم بإضافة  LCD  ويتم توصيلها كما هو موضح بالصورة التالية :

في هذا المشروع سيتم توصيل الشاشة كالتالي :

Arduino LCD
Pin 12 RS pin
Pin 11 Enable pin
Pin 5 D4 pin
Pin 4 D5 pin
Pin 3 D6 pin
Pin 2 D7 pin

يمكن العودة إلى الدرس الخاص بتوصيل ال LCD للإطلاع على طريقة توصيلها من خلال الرابط التالي.

الكود البرمجي للأردوينو

أولا نحن بحاجة إلى تثبيت مكتبة الـDHT  التي يمكنك تنزيلها من  هنا أو من الموقع الرسمي للاردوينو هنا، ثم نضيفها الى المكتبات الخاصة بالاردوينو بالضغط على sketch>> include library >> add.Zip Laibrary
سقوم الان بشرح اهم الدوال و الاسطر البرمجية في الكود التالي:

 

لمحة عن الكود :

سيتم استخدام الدالة ()read11 ليتم قراءة البيانات من المستشعر

 

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