كود البحث

كود أردوينو وفيديو لمستشعر DHT11 لدرجة الحرارة والرطوبة

كود أردوينو وفيديو لمستشعر DHT11 لدرجة الحرارة والرطوبة

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

DHT11 Module

بحلول نهاية هذا البرنامج التعليمي، ستتمكن من قراءة درجة الحرارة بالدرجة المئوية والفهرنهايت والكلفن، فضلاً عن قراءة مستويات الرطوبة من مستشعر DHT11. لمزيد من الإيضاح، تأكد من مشاهدة الفيديو عند الأوقات المشار إليها (في الفيديو عند 00:00).

شرح الأجهزة

يتكون حساس DHT11 من ثلاثة أطراف: الأرضي، والطاقة، والبيانات. الطرف الأرضي يتصل بأرضية الأردوينو، بينما يتصل طرف الطاقة بمصدر 5 فولت من الأردوينو. طرف البيانات مسؤول عن الاتصال بين الأردوينو والحساس، مما يسمح للأردوينو بقراءة قيم درجة الحرارة والرطوبة.

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

تفاصيل ورقة البيانات

المصنّعإيه إس إيه آي آر
رقم القطعةDHT11
جهد المنطق/الإدخال والإخراج3.3-5.5 فولت
جهد التغذية3.3-5.5 فولت
تيار الإخراج (لكل قناة)0.5 ميلي أمبير
التيار الأقصى (لكل قناة)2.5 ميلي أمبير
إرشادات تردد PWMغير متوفر
عتبات منطقية للمدخلات0.3*Vدي ديإلى 0.7*Vدي دي
هبوط الجهد / Rمقاومة المصرف-المصدر عند التشغيل/ التشبعغير متاح
الحدود الحرارية0 إلى 60 درجة مئوية
حزمةحزمة DIP ذات 4 أطراف
ملاحظات / متغيراتمنخفض التكلفة وسهل الاستخدام

  • جهد التشغيل بين 3.3 فولت و5.5 فولت.
  • الحد الأقصى لتيار الخرج 2.5 mA.
  • نطاق درجات الحرارة من 0 إلى 60 درجة مئوية.
  • نطاق الرطوبة من 20٪ إلى 90٪.
  • استخدم مقاوم سحب للأعلى على دبوس البيانات للحصول على قراءات مستقرة.
  • تأكد من التوصيل السليم لتجنب المدخلات العائمة.
  • انتبه إلى قطبية معكوسة عند توصيل الطاقة.
  • أجّل القراءات لمدة لا تقل عن 1 ثانية للحصول على نتائج دقيقة.

تعليمات الأسلاك

Arduino wiring for DHT11 Temperature and humidity sensor
Arduino wiring for DHT11 Temperature and humidity sensor

لتوصيل حساس DHT11 بلوحة الأردوينو الخاصة بك، اتبع الخطوات التالية:

أولاً، قم بتوصيل دبوس الأرضي في حساس DHT11 (عادةً أسود أو بني) بالأرضي (GND) على لوحة الأردوينو. بعد ذلك، قم بتوصيل دبوس الطاقة في DHT11 (عادةً أحمر) بمخرج 5V على الأردوينو. أخيراً، قم بتوصيل دبوس البيانات (عادةً أصفر أو أبيض) بالدبوس الرقمي 2 على الأردوينو. تأكد من استخدام مقاوم سحب للأعلى (حوالي 10 كيلوأوم) بين دبوس البيانات ودبوس الطاقة لضمان اتصال مستقر.

أمثلة على الكود ودليل إرشادي

في كود الأردوينو، نبدأ بتضمين ملف الترويسة الضروري لمستشعر DHT11:

#include 

يستورد هذا السطر المكتبة التي تحتوي على الدوال اللازمة للتفاعل مع مستشعر DHT11. بعد ذلك، نقوم بإنشاء مثيل لفئة DHT11:

dht11 DHT11; // create object of DHT11

يقوم هذا السطر بتهيئة كائن DHT11 الذي سنستخدمه لقراءة البيانات من المستشعر. يتم تعريف الدبوس المتصل بـ DHT11 كما يلي:

#define dhtpin 2 // set the pin to connect to DHT11

هذا يعيّن دبوس البيانات للمستشعر إلى الدبوس 2 على لوحة الأردوينو. فيloop()في الدالة، نقرأ بيانات المستشعر:

DHT11.read(dhtpin);// initialize the reading

يبدأ هذا السطر عملية القراءة، ويمكن الوصول إلى الرطوبة باستخدام:

int humidity = DHT11.humidity;// get humidity

قيمة الرطوبة مخزنة في المتغيرhumidity، والذي يُطبع بعد ذلك على شاشة المراقبة التسلسلية إلى جانب قيم درجات الحرارة المحوَّلة إلى سيلسيوس وفهرنهايت وكلفن.

عرض توضيحي / ما الذي تتوقعه

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

طوابع زمنية للفيديو

  • 00:00- مقدمة عن مستشعر DHT11
  • 01:30تعليمات التوصيل الكهربائي
  • 02:15- نظرة عامة على الشيفرة
  • 03:00- تشغيل الكود والمخرجات المتوقعة

الصور

Arduino wiring for DHT11 Temperature and humidity sensor
Arduino wiring for DHT11 Temperature and humidity sensor
DHT11 Module
DHT11 Module
DHT11 Module
DHT11 Module
53-This is the Arduino code and video for a DHT11 temperature and humidity sensor.
اللغة: C++
/*
 * This is the Arduino code for the DHT11 module to read temperature and humidity.
 * This code can display temperature in:
 * C is used to get Celsius.
 * F is used to get Fahrenheit.
 * K is used for Kelvin.
 * Watch the video https://youtu.be/FjZBt6eU9b4
 * 
 * Written by Ahmad Nejrabi for Robojax Video
 * Date: January 4, 2018, in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * 
 */

// header file from GitHub: https://github.com/adidax/dht11
#include <dht11.h>

dht11 DHT11; // create object of DHT11
#define dhtpin 2 // set the pin to connect to DHT11

void setup() {
    Serial.begin(9600);// setting up serial monitor

}

void loop() {
  DHT11.read(dhtpin);// initialize the reading
  //code for Robojax.com video
  int humidity = DHT11.humidity;// get humidity

   Serial.print(getTemp('C'));
   Serial.print("C ");
   Serial.print(getTemp('F'));
   Serial.print("F ");
   Serial.print(getTemp('K'));
   Serial.print("K ");
   Serial.print(" humidity:");
   Serial.print (humidity);
   Serial.println("% ");
   Serial.println();
 delay(500);
}


/*
 * getTemp(char type)
 * type character of upper case.
 * C is used to get Celsius.
 * F is used to get Fahrenheit.
 * K is used for Kelvin.
 */
float getTemp(char type) {
    float temp = (float)DHT11.temperature;//get temp
  if(type =='F')
  {
    return temp * 1.8 + 32;// convert to Fahrenheit
  }else if(type =='K')
  {
    return temp + 274.15;// convert to Kelvin
  }else{
   return temp; 
  }
  
}

الموارد والمراجع

ملفات📁

مكتبات أردوينو (ملف مضغوط)

Fritzing File

دليل المستخدم