مشروع حماية أعين الأطفال من الشاشات باستخدام ويموس اكتب تعليقُا

تم نشر هذا المشروع لجميع الأشخاص المهتمين في مجال تصنيع وابتكار المشاريع الإلكترونية والبرمجية، و نود التنويه أن موقع انا الكتروني يخلي مسؤوليته التامة في حال لم يعمل المشروع لدى العميل أو في حال الاستخدام الخاطئ للمكونات الإلكترونية والكهربائية التي قد تؤدي لحدوث الحرائق أو غيرها لا سمح الله.

شرح فكرة المشروع

  • في هذا المشروع، سنقوم بتصميم نموذج نظام ذكي لحماية أعين الأطفال من الشاشات (مثل التلفاز أو شاشات الحاسوب) داخل المنزل باستخدام لوحة Wemos D1 المعتمدة على الاتصال بالإنترنت، وحساس قياس المسافة بالموجات فوق الصوتية HC-SR04، مع إمكانية إرسال التنبيهات عبر تطبيق Telegram.
  • يعتمد النظام على حساس HC-SR04، حيث يتم تثبيت الحساس بشكل دقيق أمام أو أسفل الشاشة، لضمان المراقبة اللحظية والمستمرة للمسافة التي يفصل بينها وبين الطفل، وتجنب الجلوس القريب جداً الذي يؤدي إلى إجهاد العين وضعف النظر على المدى الطويل.
  • عند اكتشاف اقتراب الطفل وتجاوزه للمسافة الآمنة والصحية المسموح بها، يقوم النظام تلقائيًا بتفعيل إنذار محلي (Buzzer) لتنبيه الطفل بضرورة التراجع إلى الخلف، وفي نفس الوقت يرسل إشعارًا فوريًا عبر تطبيق Telegram إلى أولياء الأمور لإطلاعهم بشكل لحظي لتوجيه طفلهم.
  • يساعد هذا النظام على التدخل السريع لمعالجة العادات السلوكية الخاطئة للأطفال أمام الشاشات في بدايتها، مما يقلل من المخاطر المرتبطة بمشاكل الرؤية، جفاف العين، والإجهاد البصري، ويضمن الحفاظ على سلامة وصحة عيون الأطفال في الوقت المناسب قبل حدوث أي أضرار صحية.
  • وفي الختام، نسأل الله عز وجل أن يكون هذا العمل مفيدًا ونافعًا، وأن يساهم في تقديم الدعم اللازم وتسهيل حماية صحة الأطفال وتأمين سلامتهم البصرية باستخدام التقنيات الحديثة.

أدوات المشروع

  • اردوينو ويموس: عدد 1
  • كابل مايكرو USB: عدد 1
  • أسلاك توصيل ذكر لذكر 40 قطعة 20 سم Male to Male jumper wires
  • أسلاك توصيل من ذكر إلى أنثى 40 دبوس 20 سم wires 40pcs Male to Female
  • لوحة تجارب: عدد 1
  • طنان: عدد 1
  • حساس الترا سونيك: عدد 1

مخطط المشروع

الكود البرمجي

تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.
  • للتعرف على تجهيز لوحة أردوينو للبرمجة قم بزيارة الرابط التالي.
  • خطوات انشاء التلغرام البوت وربطه مع الويموس:

المرحلة 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 بالتفصيل

  • لإنشاء المجموعة، اضغط:
    • ☰ (القائمة)
    • New Group
  • اختر أي شخص (يمكن حذفه لاحقًا)
  • اكتب اسم المجموعة:
  • مثال: 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: ما يجب اضافته في الكود

  • اسم شبكة الواي فاي (SSID): اسم الشبكة التي سيتصل بها الـ Wemos: مثلا:

  • const char* ssid = “Redmi A1”;
  • كلمة مرور الواي فاي (PASS): مثلا:
  • const char* pass = “19041904”;
  • توكن البوت (Bot Token): هو المفتاح الذي يسمح للأردوينو بالتواصل مع البوت بدونه لا يمكن إرسال رسائل
  • ⚠️ مهم: يجب أن يبقى سري، مثلا:
  • const char* BOT_TOKEN = “8767103482:AAH6Zn4FRJ-NQ9RwCrnt3OTDLqPZK-L7Fbg”;
  • معرّف المحادثة (Chat ID): يحدد إلى أين تُرسل الرسائل، مثلا:

  • const char* CHAT_ID = “-1003617183721”;
  • قبل رفع الكود الى اللوحة، يجب عدم تركيب الاسلاك مع لوحة الويموس حتى اكتمال عملية الرفع.
  • كما يجب تنزيل المكتبات التالية:
  • مكتبة ESP8266WiFi.h.
  • مكتبة WiFiClientSecure.h.
  • مكتبة UniversalTelegramBot.h.
  • للإطلاع على كيفية تحميل وتنصيب المكتبات قم بزيارة الرابط التالي.
  • في حال لم يعمل هذا الكود البرمجي، قم بتحميل ملف الكود بالضغط على زر التحميل الموجود في الأسفل.
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
// — إعدادات حساس المسافة HC-SR04 —
#define TRIG_PIN D3  // الدبوس المتصل بـ TRIG
#define ECHO_PIN D4  // الدبوس المتصل بـ ECHO
// — بيانات الشبكة وتلجرام —
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 childTooClose = false;
bool alertActive = false;
unsigned long closeStartTime = 0;
// — إعدادات النظام —
const float SCREEN_DISTANCE_THRESHOLD = 50.0; // إذا كانت المسافة أقل من 50 سم يعني أن الطفل يقترب جداً من الشاشة
const unsigned long MAX_TIME_CLOSE = 15000;    // الحد الأقصى للبقاء بالقرب من الشاشة بالملي ثانية (15 ثانية)
WiFiClientSecure client;
UniversalTelegramBot bot(BOT_TOKEN, client);
void setup() {
  Serial.begin(115200);
  // إعداد دبابيس الحساس والجرس
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, 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(“\nConnected!”);
  bot.sendMessage(CHAT_ID, “👁️ نظام حماية أعين الأطفال من الشاشات نشط ويعمل الآن.”, “”);
}
void loop() {
  delay(500); // فحص المسافة كل نصف ثانية
  // إرسال نبضة لطلب القراءة من الحساس
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  long duration = pulseIn(ECHO_PIN, HIGH);
  // حساب المسافة بالسنتيمتر
  float distance = duration * 0.0343 / 2.0;
  // التحقق من صحة القراءة لتفادي الإنذارات الخاطئة
  if (duration == 0 || distance > 400) {
    return;
  }
  Serial.print(“Child Distance: “);
  Serial.print(distance);
  Serial.println(” cm”);
  // التحقق مما إذا كان الطفل قريباً جداً من الشاشة
  if (distance < SCREEN_DISTANCE_THRESHOLD) {
    // الطفل قريب الآن
    if (!childTooClose) {
      // رصد لحظة الاقتراب وبدء حساب الوقت
      closeStartTime = millis();
      childTooClose = true;
      Serial.println(“الطفل قريب جداً من الشاشة، بدء المؤقت…”);
    } else {
      // الطفل ما زال قريباً، نتحقق من المدة المنقضية
      if (millis() – closeStartTime > MAX_TIME_CLOSE) {
        if (!alertActive) {
          String alertMsg = “⚠️ تنبيه: الطفل يقترب جداً من الشاشة لفترة طويلة!\n”;
          alertMsg += “👁️ يرجى الابتعاد عن الشاشة لحماية عينيه.”;
          bot.sendMessage(CHAT_ID, alertMsg, “”);
          alertActive = true;
        }
        // إطلاق جرس الإنذار لتنبيه الطفل بالابتعاد
        digitalWrite(BUZZER, HIGH);
        delay(100);
        digitalWrite(BUZZER, LOW);
        delay(100);
      }
    }
  } else {
    // الطفل ابتعد عن الشاشة وأصبح في مسافة آمنة
    if (alertActive) {
      bot.sendMessage(CHAT_ID, “✅ تم الابتعاد عن الشاشة.”, “”);
      alertActive = false;
    }
    childTooClose = false;
    digitalWrite(BUZZER, LOW);
  }
}

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *