DHT11 و DHT22 استخدام مجس الحرارة والرطوبة من نوع December 12, 2017 – Posted in: Arduino, Learn arduino – Tags: arduino_learn, Learn arduino
في هذا التجربة سوف نتعلم كيفية استخدام مجس الحرارة والرطوبة من نوع DHT11 و DHT22 مع لوحة الاردوينو. وسيتم طباعة درجة حرارة الغرفة والرطوبة على شاشة الـ LCD .
القطع الطلوبة:
الأدوات التي تحتاجها لهذا المشروع هي:
-
Arduino Uno – R3 (china)₪ 35.0
-
Breadboard Jumper Wire 65pcs₪ 16.0
-
Product on saleHALF-SIZE BREADBOARD₪ 11.0
-
DHT22 Temperature and Humidity Sensor Module₪ 45.0
-
DHT22 Humidity and Temperature Sensor₪ 37.0
-
DHT11 Temperature and Relative Humidity Sensor Module₪ 29.0
-
STANDARD LCD 20X4₪ 45.0
-
Standard LCD 16×2₪ 25.0
حساسات 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
سقوم الان بشرح اهم الدوال و الاسطر البرمجية في الكود التالي:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <LiquidCrystal.h> #include <dht.h> #define dataPin A0 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); dht DHT; void setup() { lcd.begin(16,2); void loop() { int readData = DHT.read11(dataPin); float t = DHT.temperature; float h = DHT.humidity; lcd.setCursor(0,0); lcd.print("Temp.: "); lcd.print(t); lcd.print((char)223); lcd.print("C"); lcd.setCursor(0,1); lcd.print("Humi.: "); lcd.print(h); lcd.print(" %"); delay(2000); } |
لمحة عن الكود :
سيتم استخدام الدالة ()read11 ليتم قراءة البيانات من المستشعر
1 |
int readData = DHT.read11(dataPin); |
ثم الحصول على قيم درجة الحرارة و الرطوبة و يتم وضع القيم في متغيرات.
1 2 |
float t = DHT.temperature; float h = DHT.humidity; |
1 Comment
majed December 16, 2020 - 08:42
كيف اوصل حساس الحركه مع هذه الدائره؟