جافا سكريبت في عالم الأنظمة المدمجة: من المصباح إلى إنترنت الأشياء

مدرب بايثون أونلاين للمبتدئين

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

ابدأ الدورة

جافا سكريبت في عالم الأنظمة المدمجة: من المصباح إلى إنترنت الأشياء



عندما نسمع "الأنظمة المدمجة" (embedded systems)، تتبادر إلى أذهاننا عادةً ارتباطات بلغات C أو C++ أو في أسوأ الأحوال Python على Raspberry Pi. ولكن ماذا لو أخبرتك أن جافا سكريبت - نفس اللغة التي تكتب بها الواجهة الأمامية والخلفية - تتسلل بنشاط متزايد إلى عالم المتحكمات الدقيقة وأجهزة الاستشعار والأجهزة الذكية؟



نعم، لم تسمع خطأ. تطوير الأنظمة المدمجة باستخدام جافا سكريبت ليست مزحة، بل هي اتجاه عملي يكتسب زخماً بفضل ظهور أطر عمل مثل Espruino و Johnny-Five. اليوم سنتعرف على كيفية جعل "صديقك الحديدي" يومض بمصابيح LED، ويقرأ البيانات من أجهزة الاستشعار، ويرسلها إلى السحابة - وكل ذلك باستخدام جافا سكريبت الخالص.



لماذا جافا سكريبت في الأنظمة المدمجة؟ ثلاثة أسباب قوية



قد يبدو من الغريب جر لغة برمجة نصية إلى عالم الموارد المحدودة. إليك ثلاث حجج تقلب المفاهيم:



  • عتبة دخول منخفضة. إذا كنت تعرف JS بالفعل (ومن لا يعرفها الآن؟)، فلن تحتاج لتعلم C والتعامل مع المؤشرات. كل خبرتك - من الواجهة الأمامية أو Node.js - تنتقل إلى العتاد.
  • النمذجة الأولية السريعة. يمكن كتابة برنامج ثابت (firmware) بلغة JS في أمسية واحدة. لا حاجة لانتظار التجميع أو إعادة البرمجة - فالعديد من المنصات تدعم التحميل المباشر للكود عبر Wi-Fi أو USB.
  • النظام البيئي لإنترنت الأشياء. تتناسب جافا سكريبت تماماً مع بنية الأجهزة "الذكية": يمكنك التكامل بسهولة مع MQTT و HTTP و WebSockets والخدمات السحابية (AWS IoT, Google Cloud IoT).


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



الأدوات: ما نستخدمه



قبل كتابة الكود، دعنا نحدد "العتاد". الخيارات الأكثر شيوعاً للأنظمة المدمجة بلغة JS:



  • Espruino - متحكم دقيق يفهم جافا سكريبت "خارج الصندوق". يعمل على STM32، وله مفسر JS مدمج. مثالي للتعلم.
  • Raspberry Pi Pico + Espruino - متحكم دقيق غير مكلف (4 دولارات فقط)، يمكن تحميل برنامج Espruino الثابت عليه.
  • Johnny-Five + Arduino - كلاسيكي. تكتب JS على الكمبيوتر، ويدير Johnny-Five عبر بروتوكول Firmata متحكم Arduino. مناسب لمن لديهم Arduino بالفعل.
  • Node.js على Raspberry Pi (لينكس كامل) - إذا كنت لا تحتاج فقط إلى إضاءة LED، بل إلى تشغيل خادم ويب وإدارة GPIO والكاميرات - اختر Pi 4/5.


في هذه المقالة، سنركز على Espruino و Johnny-Five، لأنهما يقدمان تجربة JS نقية دون طبقات إضافية.



نكتب الكود: إضاءة LED بلغة JS



لنبدأ بـ "Hello, World!" في عالم الأنظمة المدمجة - إضاءة LED وامضة. قم بتوصيل LED (مع مقاوم 220 أوم) بالدبوس D13 على Espruino (أو بالدبوس 13 على Arduino).



مثال 1: Espruino (JS أصلي)



// توصيل الدبوس D13 كمخرجvar led = LED1; // LED مدمج على Espruino

// دالة الوميضfunction blink() { led.toggle(); // تبديل الحالة console.log('LED is', led.read() ? 'ON' : 'OFF');}

// تعيين فاصل زمني 500 مللي ثانيةsetInterval(blink, 500);


قم بتحميل هذا الكود عبر Espruino Web IDE (أو عبر الطرفية). سيبدأ LED في الوميض بتردد 1 هرتز. لاحظ: نستخدم setInterval - تماماً كما في المتصفح أو Node.js. لا سجلات ولا مؤقتات ولا مقاطعات بلغة C - فقط JS.



مثال 2: Johnny-Five + Arduino



إذا كان لديك Arduino، قم بتثبيت مكتبة Johnny-Five عبر npm:



npm install johnny-five                

المدونات

توصيات الكتب