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

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

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

  • في هذا المشروع سنقوم بتصميم نموذج نظام إلكتروني ذكي للتذكير بأوقات تقديم الرعاية للأشخاص المصابين بطيف التوحّد باستخدام لوحة Arduino Uno.

  • يعتمد النظام على وحدة التوقيت الحقيقي DS3231 لتحديد الوقت والتاريخ بدقة عالية، حيث يتم ربطها مع لوحة Arduino للتحكم في تشغيل الطنّان (Buzzer) و الصمام الضوئي (LED).

  • عند وصول الوقت إلى المواعيد المبرمجة مسبقًا، يقوم النظام بتفعيل تنبيه صوتي لطيف عبر الطنّان مع تنبيه ضوئي بواسطة LED، وذلك لتذكير المرافق أو وليّ الأمر بمواعيد تقديم الرعاية، مثل أوقات الأنشطة اليومية، وما الى ذلك.

  • يمكن برمجة النظام للعمل في أوقات محددة خلال اليوم وفق برنامج الرعاية الخاص بكل حالة، مما يساعد على الالتزام بالروتين اليومي الذي يُعدّ عنصرًا مهمًا في رعاية الأشخاص المصابين بالتوحّد.

  • يساهم هذا النظام في تنظيم أوقات الرعاية بدقة، وتقليل النسيان والضغط على المرافقين، كما يساعد على توفير بيئة أكثر استقرارًا وراحة للأشخاص ذوي طيف التوحّد.

  • وفي الختام نسأل الله عز وجل أن يكون هذا العمل مفيدًا ونافعًا، وأن يساهم في دعم الرعاية الإنسانية وتبسيط الحياة اليومية باستخدام التقنيات الحديثة.

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

مخطط المشروع

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

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

#include <Wire.h>
#include <RTClib.h>

// ===== تعريف النغمات (لحن هادئ مناسب للتوحد) =====
#define NOTE_C5 523
#define NOTE_E5 659
#define NOTE_G5 784

RTC_DS3231 rtc;

#define BUZZER_PIN 3
#define LED_PIN 4

// حالة تنفيذ الأنشطة اليومية
bool activityDone[5] = {false, false, false, false, false};

// =====================
// لحن تنبيهي هادئ
// =====================
void reminderTone() {
digitalWrite(LED_PIN, HIGH);

int melody[] = {NOTE_C5, NOTE_E5, NOTE_G5, NOTE_E5};
int durations[] = {300, 300, 500, 600};

for (int i = 0; i < 4; i++) {
tone(BUZZER_PIN, melody[i], durations[i]);
delay(durations[i] + 50);
}

noTone(BUZZER_PIN);
digitalWrite(LED_PIN, LOW);
}

// =====================
// ضبط الوقت يدويًا عبر Serial
// =====================
void checkSerialSetTime() {
if (Serial.available()) {
String cmd = Serial.readStringUntil(‘\n’);
cmd.trim();

if (cmd.startsWith(“SET”)) {
int y, m, d, h, min, s;
int r = sscanf(cmd.c_str(),
“SET %d %d %d %d %d %d”,
&y, &m, &d, &h, &min, &s);

if (r == 6) {
rtc.adjust(DateTime(y, m, d, h, min, s));
Serial.println(“🕒 تم ضبط الوقت بنجاح”);
} else {
Serial.println(“❌ صيغة خاطئة”);
Serial.println(“استعمل: SET YYYY MM DD HH MM SS”);
}
}
}
}

void setup() {
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);

Serial.begin(9600);
Wire.begin();

if (!rtc.begin()) {
Serial.println(“❌ RTC غير موجود”);
while (1);
}

Serial.println(“🧩 نظام تذكير رعاية التوحدي جاهز”);
Serial.println(“⏰ الأنشطة اليومية: 08 – 10 – 12 – 14 – 16”);
Serial.println(“🕒 لضبط الوقت: SET YYYY MM DD HH MM SS”);
}

void loop() {
checkSerialSetTime();

DateTime now = rtc.now();
int hour = now.hour();
int minute = now.minute();

Serial.print(“الوقت الحالي: “);
Serial.print(hour);
Serial.print(“:”);
Serial.println(minute);

// ⏰ 08:00
if (hour == 8 && minute == 0 && !activityDone[0]) {
Serial.println(“🧘‍♂️ جلسة التنظيم الحسي والتهدئة”);
reminderTone();
activityDone[0] = true;
}

// ⏰ 10:00
if (hour == 10 && minute == 0 && !activityDone[1]) {
Serial.println(“🧠 نشاط تنمية المهارات المعرفية”);
reminderTone();
activityDone[1] = true;
}

// ⏰ 12:00
if (hour == 12 && minute == 0 && !activityDone[2]) {
Serial.println(“🍽️ وجبة غذائية مع تدريب على الاستقلالية”);
reminderTone();
activityDone[2] = true;
}

// ⏰ 14:00
if (hour == 14 && minute == 0 && !activityDone[3]) {
Serial.println(“🎨 نشاط ترفيهي منظم (رسم أو لعب تربوي)”);
reminderTone();
activityDone[3] = true;
}

// ⏰ 16:00
if (hour == 16 && minute == 0 && !activityDone[4]) {
Serial.println(“🗣️ جلسة التواصل البصري وتنمية النطق”);
reminderTone();
activityDone[4] = true;
}

// 🔄 إعادة تفعيل الأنشطة لليوم الجديد
if (hour == 0 && minute == 1) {
for (int i = 0; i < 5; i++) activityDone[i] = false;
Serial.println(“🔄 تم إعادة ضبط الأنشطة لليوم الجديد”);
}

delay(1000);
}

اترك تعليقاً

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

تحديثات مهمة للعملاء في السعودية بدءًا من 1 يناير 2026م

يرجى الاطلاع على تفاصيل التحديثات عبر الرابط التالي:

اضغط هنا
إغلاق هذا الإشعار يُعد تأكيدًا على أنك قرأت التحديثات وفهمتها.