الدرس الثامن : بناء جهاز لقياس درجة الحرارة والرطوبة

وضاح العونيمنذ 8 سنوات

السلام عليكم ورحمة الله وبركاته

الدرس الثامن : بناء جهاز لقياس درجة الحرارة والرطوبة .

IMAGE.jpg

 

نبذة عن الدرس :

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

 

متطلبات المشروع :

أردوينو اونو (Arduino Uno)

مستشعر الحرارة والرطوبة (DHT11 or DHT22)

مقاومة متغيرة (variable resistor)

الشاشة كريستالية(lcd 2*16 )

أسلاك توصيل (Jumper wire) .

لوحة تجارب (Breadborad)

 

الدائرة الكهربائية :

 

الدائرة الكهربائية.jpg

 

آلية عمل حساس الرطوبة والحرارة (DHT11) :

لدى هذا الحساس القدرة على قراءة درجة الحرارة والرطوبة في البيئة المحيطة به .

 

الفرق بين DHT11 و DHT22 :

Untitled-1.jpg

 

معلومات عن الشاشة الكربستالية :

يوجد العديد من مقاسات الشاشات الكريستالية مثل 2*16 و 4*20  وفي هذا الدرس استخدمنا مقاس 2*16   وتعني إن الشاشة قادرة على عرض سطرين وكل سطر يحتوي على 16 حرف أو رمز.

 

الكود البرمجي :

في البداية نحتاج إلى إضافة مكتبة DHT  والتي تسهل علينا التعامل مع حساس الرطوبة والحرارة.

أولا : نقوم بتحميل الملف المضغوط  .

DHT library.zip

ثانيا :نقوم بتشغيل برنامج Arduino IDE .

ثالثا :نذهب إلى الشيفرة البرمجية ---< إدراج مكتبة  ---< أضف مكتبة ---< قم بإختيار الملف المضغوط .

رابعا : قم بإغلاق البرنامج ثم إعد تشغيله .

 


#include <LiquidCrystal.h>
#include "DHT.h"
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
int DHTPIN =3;
#define DHTTYPE DHT11   
DHT dht(DHTPIN, DHTTYPE); 
void setup() {
 dht.begin();
  lcd.begin(16, 2);
}

void loop() {
  int hum = dht.readHumidity();
  int tem = dht.readTemperature();  
  lcd.setCursor(0, 0);
  lcd.print("Humidity: ");
  lcd.print(hum);
  lcd.setCursor(0, 1);
  lcd.print("Temperature: ");
  lcd.print(tem);
  
  
  
  delay(500);
  }

 

بعد رفع الكود للاردوينو أضف أحد مصادر الطاقة المذكورة في الدرس السابق لتنقل بها إلى أي مكان .

https://3alam.pro/articles/microcontroller/waduino-series-power-source/

 

شرح الكود البرمجي :


#include <LiquidCrystal.h>

تعريف بالمكتبة الخاصة بالشاشة الكريستالية


#include "DHT.h"

المكتبة الخاصة لمستشعر الحرارة والرطوبة

 


LiquidCrystal lcd(8, 9, 10, 11, 12, 13);

دالة تحمل أرقام المنافذ الاردوينو المتصلة بالشاشة الكريستالية .

 


#define DHTTYPE DHT11

تعريف نوع مستشعر الحرارة والرطوبة المستخدم في درسنا وهو DHT11.

لو كنت تستخدم نوع DHT22  فقط قم بإستبدال النوع في الكود السابق .


DHT dht(DHTPIN, DHTTYPE);

دالة لتهيئة الحساس وتحمل متغيرين متغير يحمل رقم المنفذ واخر نوع المستشعر .

 


lcd.begin(16, 2);

تعريف بمقاس الشاشة المستخدمة وهو 2*16 .

 


int h = dht.readHumidity();

متغير لقراءة نسبة الرطوبة من المستشعر .


int t = dht.readTemperature();

متغير لقراءة درجة الحرارة من المستشعر .


lcd.setCursor(0, 0);

هذه الدالة لجعل المؤشر في بداية السطر الاول.


lcd.setCursor(0, 1);

هذه الدالة لجعل المؤشر في بداية السطر الثاني.

 

حل تحدي السابق :

التحدي مذكور في هذا المقال

https://3alam.pro/articles/microcontroller/ultrasonic-sensor-and-android/

يمكنك تحميل حل التحدي من هنا :

waduino_3.ino

 

تحدي بسيط :

قم بجعل الشاشة تعرض فقط درجة الحرارة ثم تعرض درجة الرطوبة فقط لمدة 500 ملي ثانية لكل منهما .

كلمات دليلية:
2
إعجاب
14211
مشاهدات
0
مشاركة
2
متابع
متميز
محتوى رهيب

التعليقات (4)

حيدر:

السلام عليكم 

اولا 

احب اشكركم على هذه الدروس الرائعة 

 

- هل من الممكن  وضع  حساسين درجه حرارة / الرطوبه 

بحيث يعمل الأول  على تشغيل مصباح عند درجه حراره ٣٧ و ينطفئ عند درجه حراره ٣٧.٥  وقراء الرطوبه 

ووضع مستشعر الاخر يعمل على تشغيل مبخره عندما تكون القراءة ٤٥ % و ينطفئ عند ٥٠% ويقراء درجه الحراره

هل ممكن ذلك ؟

وهل المستشعر دقيق جدا لهذا الشيء  ؟!

أريد أن أعمل مفقسه نموذجية (حاضنه بيض). 

اذا ممكن ارجو المساعده في الربط والبرمجه 

وشكرا جزيلا

صباح:

السلام عليكم من انطي فحص للكود   يطلع خطا عند الفحص

 

 

 

 

سليمان:

تم في الحقيقة واجهت مشكله !

الحل هنا https://github.com/adafruit/DHT-sensor-library/issues/62

Hanan:

حل التحدي ما يفتح معي 😅! 

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !