- للتعرف على تجهيز لوحة أردوينو للبرمجة قم بزيارة الرابط التالي.
- خطوات انشاء التلغرام البوت وربطه مع الويموس:
المرحلة 1: إنشاء بوت Telegram
- افتح تطبيق Telegram
- في البحث اكتب:
BotFather
- ستجده بحساب موثق ✔️
- اضغط Open
- اضغط Create a New Bot
- سيطلب منك كتابة:
- ✔️ اسم البوت (Bot Name)
- مثال: Smart Alert System
- ✔️ اسم المستخدم في الخانة الثالثة (username_bot)
- ⚠️ مهم: يجب أن ينتهي بـ bot وبدون مسافات
- مثال: smart_1950_bot (يجب الا يكون مستعمل مسبقا)
- بعدها اضغط Create Bot
- بعدها سيعطيك التوكن (TOKEN)، ستظهر لك رسالة مثل:
123456789:AAAbbbCCCxxxYYYzzz
- 📌 هذا التوكن مهم جدا
- 👉 اضغط Copy احتفظ به جيدًا
المرحلة 2: إنشاء مجموعة Telegram بالتفصيل
- لإنشاء المجموعة، اضغط:
- اختر أي شخص (يمكن حذفه لاحقًا)
- اكتب اسم المجموعة:
- مثال:
Home Alerts
- اضغط على OK
- لاضافة البوت للمجموعة، اولا عد الى الصفحة الرئيسية للتلغرام
- اكتب اسم المستخدم username_bot في خانة البحث
- اضغط على Start
- اضغط على اسمها من الأعلى
- اختر: Add to Group or Channel
- ابحث عن اسم المجموعة وأضفه اليها
- ✔️ فعّل خاصية Manage Group وكل الخاصيات التي تحتها
- اضغط Add bot as Admin
المرحلة 3: الحصول على CHAT ID (أهم خطوة)
- في المجموعة اكتب رسالة: hello ثم ارسلها
- افتح المتصفح واكتب:
- https://api.telegram.org/botTOKEN/getUpdates
- 📌 استبدل:
- كلمة TOKEN ← بالتوكن الخاص بك الذي نسخته مسبقا واحتفظت به
- ستظهر لك بيانات JSON مثل:
{"ok": true,"result": [{"message": {"chat": {"id": -1001234567890,"title": "Home Alerts"}}}]}
- 📌 انسخ رقم id الفريد الذي سيظهر لك: مثلا هنا 1001234567890-
- 👉 هذا هو: CHAT_ID
المرحلة 4: إعداد Arduino IDE + Wemos
- افتح Arduino IDE
- File → Preferences
- أضف هذا الرابط: http://arduino.esp8266.com/stable/package_esp8266com_index.json
- لتثبيت البورد، اختر: Tools → Board → Boards Manager
- ابحث: ESP8266
- اضغط Install
- لاختيار البورد، اختر:Tools → Board → LOLIN (Wemos) D1 R1
المرحلة 5: ما يجب اضافته في الكود
- قبل رفع الكود الى اللوحة، يجب عدم تركيب الاسلاك مع لوحة الويموس حتى اكتمال عملية الرفع.
- كما يجب تنزيل المكتبات التالية:
- مكتبة ESP8266WiFi.h.
- مكتبة WiFiClientSecure.h.
- مكتبة UniversalTelegramBot.h.
- للإطلاع على كيفية تحميل وتنصيب المكتبات قم بزيارة الرابط التالي.
- في حال لم يعمل هذا الكود البرمجي، قم بتحميل ملف الكود بالضغط على زر التحميل الموجود في الأسفل.
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
// — بيانات الشبكة وتلجرام —
const char* ssid = “Redmi A1”;
const char* pass = “19041904”;
const char* BOT_TOKEN = “8604308627:AAEJnHjAbfa1r5z-g2zrNaVRiXmMn1wlNw0”;
const char* CHAT_ID = “-1004337592927”;
// — تعريف الدبابيس (Pins) —
const int LEAK_SENSOR = D4; // حساس تسرب المياه
const int BUZZER = D2; // الإنذار الصوتي
bool alertActive = false;
WiFiClientSecure client;
UniversalTelegramBot bot(BOT_TOKEN, client);
void setup() {
Serial.begin(115200);
pinMode(LEAK_SENSOR, INPUT);
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(“\nWiFi Connected!”);
String startupMsg = “نظام كشف تسرب المياه من السقف جاهز للعمل.”;
bot.sendMessage(CHAT_ID, startupMsg, “”);
}
void loop() {
int sensorRead = digitalRead(LEAK_SENSOR);
// في حساسات التسرب، غالباً ما تكون الحالة HIGH عند وجود الماء
if (sensorRead == HIGH) {
if (!alertActive) {
digitalWrite(BUZZER, HIGH);
String alertMsg = “⚠️ تنبيه خطر: تم اكتشاف تسرب مياه من السقف!”;
bot.sendMessage(CHAT_ID, alertMsg, “”);
alertActive = true;
}
// إطلاق صفارة متقطعة للإنذار
digitalWrite(BUZZER, HIGH);
delay(200);
digitalWrite(BUZZER, LOW);
delay(200);
} else {
// إذا عاد الحساس لحالة الجفاف
if (alertActive) {
String safeMsg = “تحديث: توقف اكتشاف المياه، الوضع عاد للطبيعي.”;
bot.sendMessage(CHAT_ID, safeMsg, “”);
digitalWrite(BUZZER, LOW);
alertActive = false;
}
}
delay(500);
}