I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

أتمتة الروافع والمصاعد الميكانيكية باستخدام Arduino و Laravel: جسر بين الكود والواقع

أتمتة الروافع والمصاعد الميكانيكية باستخدام Arduino و Laravel: جسر بين الكود والواقع كثير مننا كمبرمجين بنقضي حياتنا كلها جوه شاشات الكمبيوتر، بنكتب كود (Code)

أتمتة الروافع والمصاعد الميكانيكية باستخدام Arduino و Laravel: جسر بين الكود والواقع
Reading Count: 3

أتمتة الروافع والمصاعد الميكانيكية باستخدام Arduino و Laravel: جسر بين الكود والواقع

كثير مننا كمبرمجين بنقضي حياتنا كلها جوه شاشات الكمبيوتر، بنكتب كود (Code) في بيئة افتراضية، ونشوف النتايج في المتصفح. بس دايماً بيكون فيه "نقص" في التجربة، وهو إننا مش بنشوف أثر الكود ده في العالم الحقيقي. تخيل لو تقدر تضغط على زرار من لوحة تحكم (Dashboard) على موقعك، فتتحرك رافعة (Elevator) ميكانيكية قدامك في الحقيقة؟ ده هو جوهر إنترنت الأشياء (IoT) والربط بين البرمجة والعتاد (Hardware).

الخطوة الأولى: التجهيز التقني والربط بين العالمين

المشروع ده بيعتمد على تلات أركان أساسية: السيرفر (Laravel)، وسيط الاتصال (Serial Communication)، والمتحكم الدقيق (Arduino). الفكرة إن لارفل هي العقل المدبر اللي بياخد الأمر، والأردوينو هو "العضلات" اللي بتنفذ الحركة الميكانيكية.

تجهيز الأردوينو (Arduino Setup) لاستقبال الأوامر

الأردوينو مش بيفهم أوامر HTTP مباشرة، فإحنا بنخليه يسمع للـ Serial Port. لما نبعت حرف معين من السيرفر، الموتور (Stepper Motor أو Servo) يبدأ يتحرك. إليك مثال بسيط لكود الأردوينو:


#include 

Servo myElevator;

void setup() {
  Serial.begin(9600);
  myElevator.attach(9);
}

void loop() {
  if (Serial.available() > 0) {
    char command = Serial.read();
    if (command == 'U') {
      myElevator.write(180); // تحريك الرافعة للأعلى
    } else if (command == 'D') {
      myElevator.write(0);  // تحريك الرافعة للأسفل
    }
  }
}

ربط Laravel مع Hardware عبر Serial Communication

بما إن لارفل بيشتغل على السيرفر، والـ Serial Port موجود على الجهاز المتصل بالأردوينو، محتاجين نستخدم مكتبة زي php-serial أو نستخدم سكربت بسيط بلغة بايثون كوسيط (Bridge) بين قاعدة بيانات لارفل والمنفذ المادي. في لارفل، هنعمل Controller بسيط يكتب الأمر في ملف أو قاعدة بيانات، والسكربت التاني بيقرأه ويبعته للأردوينو.

مثال لكود الـ Controller في لارفل:


public function moveElevator(Request $request) {
    $command = $request->input('action'); // 'U' أو 'D'
    // هنا بنبعت الأمر للملف اللي بيتحكم في الـ Serial
    file_put_contents('/dev/ttyUSB0', $command);
    return response()->json(['status' => 'success']);
}

التحديات اللي ممكن تقابلك في مشروع الـ IoT

  • استقرار الاتصال: الـ Serial connection ممكن يقطع، لازم تعمل معالجة للأخطاء (Error Handling) في الكود بتاعك.
  • الأمان: بما إنك بتتحكم في "عتاد" ملموس، لازم تتأكد إن الأوامر محمية ومفيش أي حد يقدر يبعت أمر حركة إلا بصلاحيات (Permissions) كاملة.
  • تزامن البيانات: لازم يكون فيه feedback من الأردوينو للارفل عشان نعرف حالة المصعد هل هو حالياً فوق ولا تحت.

خاتمة: نصيحة من أخ

يا صديقي، المجال ده بيفتح لك أبواب مش عند أي حد. المبرمج اللي بيفهم Hardware بيتحول من مجرد "كاتب كود" لـ "صانع حلول". ابدأ بمشاريع بسيطة زي دي، متخافش من التوصيلات الكهربائية، وأهم حاجة جرب واغلط. كل مرة الرافعة مش هتتحرك فيها، هتعرف معلومة جديدة تخليك أشطر. طور نفسك في لغات زي C++ للأردوينو، وافهم كويس إزاي الـ APIs بتكلم الأجهزة المادية، وهتلاقي نفسك في مكان تاني خالص في سوق العمل.


Share

Related posts

Jul 14, 2026 • 1 min read
Reading Count: 5
ازاي تربط Laravel مع Arduino وتتحكم في الأجهزة الميكانيكية (IoT)

ازاي تربط Laravel مع Arduino وتتحكم في الأجهزة الميكانيكية (IoT) كثير مننا كمبرمجين ويب (Web Develop...

Jul 14, 2026 • 1 min read
Reading Count: 7
بناء نظام حجز تذاكر حافلات (Bus Transit) متزامن بدون أخطاء في لارافيل (Laravel)

بناء نظام حجز تذاكر حافلات (Bus Transit) متزامن بدون أخطاء في لارافيل (Laravel) تخيل معايا السيناريو...

Jul 13, 2026 • 1 min read
Reading Count: 8
ازاي تبني نظام فلترة عقاري احترافي باستخدام Laravel Eloquent

ازاي تبني نظام فلترة عقاري احترافي باستخدام Laravel Eloquent أهلاً بك يا صديقي المبرمج. أكيد جالك في...