الدرس الثامن : بناء جهاز لقياس درجة الحرارة والرطوبة
السلام عليكم ورحمة الله وبركاته
الدرس الثامن : بناء جهاز لقياس درجة الحرارة والرطوبة .
نبذة عن الدرس :
من خلال هذا الدرس سوف نقوم بعمل جهاز قادر على قراءة درجة الحرارة وايضا نسبة الرطوبة وذلك من خلال مستشعر الحرارة والرطوبة , ويتم عرضها على الشاشة الكريستالية , المقاومة المتغيرة لتغيير سطوع الشاشة .
متطلبات المشروع :
أردوينو اونو (Arduino Uno)
مستشعر الحرارة والرطوبة (DHT11 or DHT22)
مقاومة متغيرة (variable resistor)
الشاشة كريستالية(lcd 2*16 )
أسلاك توصيل (Jumper wire) .
لوحة تجارب (Breadborad)
الدائرة الكهربائية :
آلية عمل حساس الرطوبة والحرارة (DHT11) :
لدى هذا الحساس القدرة على قراءة درجة الحرارة والرطوبة في البيئة المحيطة به .
الفرق بين DHT11 و DHT22 :
معلومات عن الشاشة الكربستالية :
يوجد العديد من مقاسات الشاشات الكريستالية مثل 2*16 و 4*20 وفي هذا الدرس استخدمنا مقاس 2*16 وتعني إن الشاشة قادرة على عرض سطرين وكل سطر يحتوي على 16 حرف أو رمز.
الكود البرمجي :
في البداية نحتاج إلى إضافة مكتبة DHT والتي تسهل علينا التعامل مع حساس الرطوبة والحرارة.
أولا : نقوم بتحميل الملف المضغوط .
ثانيا :نقوم بتشغيل برنامج 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);
}
بعد رفع الكود للاردوينو أضف أحد مصادر الطاقة المذكورة في الدرس السابق لتنقل بها إلى أي مكان .
شرح الكود البرمجي :
#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);
هذه الدالة لجعل المؤشر في بداية السطر الثاني.
حل تحدي السابق :
التحدي مذكور في هذا المقال
يمكنك تحميل حل التحدي من هنا :
تحدي بسيط :
قم بجعل الشاشة تعرض فقط درجة الحرارة ثم تعرض درجة الرطوبة فقط لمدة 500 ملي ثانية لكل منهما .
التعليقات (4)
السلام عليكم
اولا
احب اشكركم على هذه الدروس الرائعة
- هل من الممكن وضع حساسين درجه حرارة / الرطوبه
بحيث يعمل الأول على تشغيل مصباح عند درجه حراره ٣٧ و ينطفئ عند درجه حراره ٣٧.٥ وقراء الرطوبه
ووضع مستشعر الاخر يعمل على تشغيل مبخره عندما تكون القراءة ٤٥ % و ينطفئ عند ٥٠% ويقراء درجه الحراره
هل ممكن ذلك ؟
وهل المستشعر دقيق جدا لهذا الشيء ؟!
أريد أن أعمل مفقسه نموذجية (حاضنه بيض).
اذا ممكن ارجو المساعده في الربط والبرمجه
وشكرا جزيلا
تم في الحقيقة واجهت مشكله !
الحل هنا https://github.com/adafruit/DHT-sensor-library/issues/62
حل التحدي ما يفتح معي 😅!
عرض المزيد.. جديد مقالاتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !