#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <DHT.h>
// — إعدادات الحساس —
#define DHTPIN D4 // الدبوس المتصل بحساس DHT11
#define DHTTYPE DHT11 // نوع الحساس
DHT dht(DHTPIN, DHTTYPE);
// — بيانات الشبكة وتلجرام —
const char* ssid = “Redmi A1”;
const char* pass = “19041904”;
const char* BOT_TOKEN = “8604308627:AAEJnHjAbfa1r5z-g2zrNaVRiXmMn1wlNw0”;
const char* CHAT_ID = “-1004337592927”;
const int BUZZER = D2;
bool alertActive = false;
// عتبة درجة الحرارة لموجة الحر
const float TEMP_THRESHOLD = 35.0;
WiFiClientSecure client;
UniversalTelegramBot bot(BOT_TOKEN, client);
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(BUZZER, OUTPUT);
digitalWrite(BUZZER, LOW);
WiFi.begin(ssid, pass);
client.setInsecure();
Serial.print(“Connecting to WiFi…”);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}
Serial.println(“\nConnected!”);
bot.sendMessage(CHAT_ID, “🌱 نظام التذكير الذكي بري الحدائق يعمل الآن بنجاح.”, “”);
}
void loop() {
delay(2000);
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(t) || isnan(h)) {
Serial.println(“فشل قراءة حساس DHT!”);
return;
}
// التحقق من موجة الحر
if (t > TEMP_THRESHOLD) {
if (!alertActive) {
String alertMsg = “🚨 تنبيه بموجة حر: الحرارة مرتفعة جدًا (” + String(t
) + “°C)!\n\n”;
alertMsg += “⚠️ نصيحة زراعية:\n”;
alertMsg += “تجنب الري الآن إذا كنا في منتصف النهار لتفادي صدمة الجذور واحتراق الأوراق.\n”;
alertMsg += “📌 يُفضل جدولة الري ليكون في المساء (بعد غروب الشمس) أو الصباح الباكر لضمان امتصاص ممتاز للمياه وحماية النبات.”;
bot.sendMessage(CHAT_ID, alertMsg, “”);
alertActive = true;
}
// تفعيل جرس تنبيه خفيف (أو يمكنك إلغاؤه تماماً لتجنب الإزعاج نهاراً)
digitalWrite(BUZZER, HIGH);
delay(100);
digitalWrite(BUZZER, LOW);
} else {
if (alertActive) {
String safeMsg = “✅ تراجع موجة الحر وانخفاض الحرارة إلى ” + String(t) + “°C.”;
bot.sendMessage(CHAT_ID, safeMsg, “”);
alertActive = false;
}
digitalWrite(BUZZER, LOW);
}
}