مشروع التنبيه عن وجود رسائل في صندوق البريد باستخدام اردوينو اكتب تعليقُا

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

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

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

  • يعتمد النظام على حساس مسافة يتم تثبيته داخل صندوق البريد.

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

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

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

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

مخطط المشروع

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

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

#include <Wire.h>

#define TRIG_PIN 12
#define ECHO_PIN 13
#define BUZZER_PIN 3
#define LED_PIN 4

// مسافة اكتشاف الرسالة داخل صندوق البريد (مثلاً 5 سم)
#define MAIL_DISTANCE 5

void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);

}

void loop() {
int distance = getDistance();

if (distance > 0 && distance <= MAIL_DISTANCE) {

digitalWrite(LED_PIN, HIGH);
tone(BUZZER_PIN, 1500);
} else {

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

delay(500);
}

// دالة حساب المسافة بالموجات فوق الصوتية
int getDistance() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);

long duration = pulseIn(ECHO_PIN, HIGH, 30000); // timeout
int distance = duration * 0.034 / 2;
return distance;
}

اترك تعليقاً

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

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

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

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