#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 2 // توصيل DHT22 بالمنفذ D2
#define DHTTYPE DHT22 // تحديد نوع الحساس
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // العنوان 0x27 وحجم الشاشة 16x2
void setup() {
lcd.begin(16, 2); // تمرير عدد الأعمدة والصفوف عند استدعاء begin()
lcd.backlight(); // تشغيل الإضاءة الخلفية
dht.begin(); // تشغيل حساس DHT22
}
void loop() {
float temp = dht.readTemperature(); // قراءة درجة الحرارة
float hum = dht.readHumidity(); // قراءة الرطوبة
if (isnan(temp) || isnan(hum)) { // التحقق مما إذا كانت البيانات المستلمة صحيحة أم لا
lcd.setCursor(0, 0); // تحديد موضع الكتابة في السطر الأول
lcd.print("Sensor Error! "); // طباعة رسالة خطأ عند فشل قراءة البيانات
} else {
lcd.setCursor(0, 0); // تحديد موضع الكتابة في السطر الأول
lcd.print("Temp: "); // طباعة نص "Temp: "
lcd.print(temp); // طباعة قيمة درجة الحرارة
lcd.print(" C "); // طباعة وحدة القياس "C"
lcd.setCursor(0, 1); // تحديد موضع الكتابة في السطر الثاني
lcd.print("Humidity: "); // طباعة نص "Humidity: "
lcd.print(hum); // طباعة قيمة نسبة الرطوبة
lcd.print("% "); // طباعة رمز النسبة المئوية "%"
}
delay(2000); // تأخير لمدة ثانيتين قبل تحديث البيانات مرة أخرى
}