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

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

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

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

  • يعتمد النظام على حساس مسافة يُثبت على جانبي المركبة.

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

  • كما تُعرض عبارة تحذيرية على شاشة LCD لتنبيه السائق.

  • يساهم هذا النظام في تقليل حوادث الاصطدام الجانبي، ويزيد من وعي السائق بمحيط مركبته.

  • لذا نسأل الله تعالى أن يُسهم هذا المشروع في تعزيز السلامة المرورية وحماية الأرواح.

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

مخطط المشروع

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

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

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

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

LiquidCrystal_I2C lcd(0x27, 16, 2);

#define SAFE_DISTANCE 12 // المسافة الآمنة (بالسنتيمترات)
#define WARNING_DISTANCE 8 // مسافة التحذير
#define CRITICAL_DISTANCE 5 // مسافة الخطر

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

lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print(“Blind Spot Alert”);
delay(2000);
lcd.clear();
}

void loop() {
int distance = getDistance();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Distance: “);
lcd.print(distance);
lcd.print(” cm”);

checkBlindSpot(distance);
delay(1500);
}

int getDistance() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);

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

void checkBlindSpot(int distance) {
noTone(BUZZER_PIN);
digitalWrite(LED_PIN, LOW);

if (distance <= CRITICAL_DISTANCE) {
lcd.setCursor(0, 1);
lcd.print(“!! DANGER !!”);
for (int i = 0; i < 5; i++) {
tone(BUZZER_PIN, 3000, 100);
digitalWrite(LED_PIN, HIGH);
delay(100);
digitalWrite(LED_PIN, LOW);
delay(100);
}
} else if (distance <= WARNING_DISTANCE) {
lcd.setCursor(0, 1);
lcd.print(“Caution! “);
for (int i = 0; i < 3; i++) {
tone(BUZZER_PIN, 2000, 200);
digitalWrite(LED_PIN, HIGH);
delay(300);
digitalWrite(LED_PIN, LOW);
delay(300);
}
} else {
lcd.setCursor(0, 1);
lcd.print(“Safe Zone”);
}
}

اترك تعليقاً

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