- للتعرف على تجهيز لوحة أردوينو للبرمجة قم بزيارة الرابط التالي.
- خطوات انشاء التلغرام البوت وربطه مع الويموس:
المرحلة 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.
- مكتبة ArduinoJson.h.
- مكتبة Servo.h.
- للإطلاع على كيفية تحميل وتنصيب المكتبات قم بزيارة الرابط التالي.
- في حال لم يعمل هذا الكود البرمجي، قم بتحميل ملف الكود بالضغط على زر التحميل الموجود في الأسفل.
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
#include <Servo.h>
// — بيانات الشبكة وتلجرام —
const char* ssid = “Redmi A1”;
const char* pass = “19041904”;
const char* BOT_TOKEN = “8767103482:AAH6Zn4FRJ-NQ9RwCrnt3OTDLqPZK-L7Fbg”;
const char* CHAT_ID = “-1003617183721”;
// — تعريف الدبابيس —
const int BUZZER = D2;
const int SERVO_PIN = D1;
Servo myServo;
WiFiClientSecure client;
UniversalTelegramBot bot(BOT_TOKEN, client);
int botRequestDelay = 1000;
unsigned long lastTimeBotRan;
// دالة تنفيذ عملية فتح الباب
void openDoor(String chat_id) {
// تنبيه صوتي بسيط قبل الفتح
digitalWrite(BUZZER, HIGH);
delay(200);
digitalWrite(BUZZER, LOW);
// تحريك السيرفو لفتح القفل
myServo.write(90); // زاوية الفتح (عدلها حسب تركيب القفل لديك)
bot.sendMessage(chat_id, “🔓 تم فتح باب المنزل بنجاح!”, “”);
// انتظر 5 ثواني ثم أغلق القفل تلقائياً (للأمان)
delay(3000);
myServo.write(0); // زاوية الإغلاق
bot.sendMessage(chat_id, “🔒 تم إعادة إقفال الباب تأميناً للمنزل.”, “”);
}
void handleNewMessages(int numNewMessages) {
for (int i = 0; i < numNewMessages; i++) {
String chat_id = String(bot.messages[i].chat_id);
String text = bot.messages[i].text;
if (text == “/start”) {
String welcome = “🏠 نظام التحكم بباب المنزل الذكي\n”;
welcome += “/open : لفتح الباب عن بعد\n”;
welcome += “/status : للتحقق من حالة الاتصال\n”;
bot.sendMessage(chat_id, welcome, “”);
}
if (text == “/open”) {
bot.sendMessage(chat_id, “⏳ جاري معالجة طلب فتح الباب…”, “”);
openDoor(chat_id);
}
if (text == “/status”) {
bot.sendMessage(chat_id, “✅ النظام متصل والتحكم متاح.”, “”);
}
}
}
void setup() {
Serial.begin(115200);
pinMode(BUZZER, OUTPUT);
digitalWrite(BUZZER, LOW);
myServo.attach(SERVO_PIN);
myServo.write(0); // التأكد من أن الباب مغلق عند التشغيل
WiFi.begin(ssid, pass);
client.setInsecure();
Serial.print(“Connecting to WiFi…”);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}
Serial.println(“\n✅ WiFi Connected!”);
// إرسال رسالة تنبيه عند إعادة تشغيل الجهاز (لأغراض أمنية)
String welcomeMsg = “🏠 تم تشغيل نظام الباب الذكي بنجاح.\n”;
bot.sendMessage(CHAT_ID, welcomeMsg, “”);
}
void loop() {
if (millis() > lastTimeBotRan + botRequestDelay) {
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while (numNewMessages) {
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
lastTimeBotRan = millis();
}
}