مشروع أردوينو للتنبيه عن تجاوز مدة غسل اليدين لأصحاب الوسواس القهري اكتب تعليقُا

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

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

  • في هذا المشروع سنقوم بتصميم نموذج نظام ذكي للتنبيه عن تجاوز مدة غسل اليدين، مخصص بشكل خاص للأشخاص الذين يعانون من الوسواس القهري، وذلك باستخدام لوحة أردوينو مع حساس الماء، وشاشة LCD، وضوء LED، وطنان صوتي.
  • يعتمد الجهاز على حساس ماء مُثبَّت تحت الصنبور، يقوم برصد بدء استخدام الماء عند فتح الصنبور، ليبدأ بعد ذلك عدّ الوقت بشكل تلقائي. في حال لم تتجاوز مدة غسل اليدين دقيقة واحدة، لا يصدر الجهاز أي تنبيه، مما يسمح بغسل اليدين بشكل طبيعي ومريح.
  • أما في حال تجاوزت المدة دقيقة واحدة، يتم تشغيل ضوء LED أصفر وصدور صوت طنان، بالإضافة إلى عرض عبارة تنبيهية على شاشة LCD من نوع 16×2، تنبّه المستخدم إلى أن المدة قد تجاوزت الحد المعقول. يهدف هذا التنبيه إلى مساعدة الأشخاص على تقليل التصرفات القهرية المرتبطة بالنظافة بشكل تدريجي، بطريقة غير مزعجة ولكن فعّالة.
  • يسعى هذا النظام إلى تقديم دعم عملي وسلوكي للأشخاص المصابين بالوسواس القهري، من خلال التنبيه بلطف عند تجاوز الحدود الطبيعية لسلوك غسل اليدين، مما يُسهم في تحسين جودة حياتهم وتقليل التوتر المرتبط بالعادات القهرية.
  • في الختام، نرجو أن يكون هذا المشروع نافعًا بإذن الله، وأن يُسهم في تحقيق التوازن النفسي والسلوكي لمرضى الوسواس القهري، فالصحة النفسية لا تقل أهمية عن الصحة الجسدية.

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

مخطط المشروع

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

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

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); // العنوان I2C الخاص بالشاشة

const int sensorPin = 2; // حساس الماء
const int buzzerPin = 3; // الطنان
const int ledPin = 4; // الليد

unsigned long startTime = 0;
bool isTouchingWater = false;
const unsigned long duration = 60000; // مدة دقيقة واحدة (بالميلي ثانية)

void setup() {
pinMode(sensorPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);

lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print(“Hand Wash Timer”);

Serial.begin(9600); // لمراقبة حالة الحساس
}

void loop() {
int sensorValue = digitalRead(sensorPin);
Serial.print(“Sensor: “);
Serial.println(sensorValue);

if (sensorValue == HIGH) { // عند ملامسة الماء
if (!isTouchingWater) {
isTouchingWater = true;
startTime = millis();
}

unsigned long currentTime = millis();
unsigned long elapsedTime = currentTime – startTime;

lcd.setCursor(0, 1);
lcd.print(“Time: “);
lcd.print(elapsedTime / 1000); // بالثواني
lcd.print(” s “);

if (elapsedTime >= duration) {
digitalWrite(ledPin, HIGH);
digitalWrite(buzzerPin, HIGH);
lcd.setCursor(0, 0);
lcd.print(“Too long! Stop! “);
} else {
digitalWrite(ledPin, LOW);
digitalWrite(buzzerPin, LOW);
}
} else {
if (isTouchingWater) {
// عند التوقف عن ملامسة الماء
lcd.setCursor(0, 0);
lcd.print(“Hand Wash Timer “);
}

isTouchingWater = false;
digitalWrite(ledPin, LOW);
digitalWrite(buzzerPin, LOW);
lcd.setCursor(0, 1);
lcd.print(“No water touch “);
}

delay(200);
}

اترك تعليقاً

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

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

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

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