- ما هو Node.js؟
- المكونات مطلوبة
- مخطط الرسم البياني
- إعداد إطار عمل Node.js
- تركيب مكتبة جوني فايف
- وميض LED مع Arduino و Node.js
- التحكم في سطوع LED باستخدام Arduino و Node.js Webserver
لقد رأينا العديد من الأمثلة على وميض LED باستخدام ميكروكنترولر مختلفة ولغات برمجة مختلفة. اليوم ، سوف نستخدم Node.js إطار عمل JavaScript شائع جدًا للتحكم في LED المتصل بـ Arduino Uno. سنستخدم أيضًا Node.js للتحكم في سطوع LED من صفحة ويب باستخدام Arduino. من خلال بعض التعديلات واستخدام ESP8266 ، يمكن تحويل هذا إلى مشروع إنترنت الأشياء حيث يمكن التحكم في LED من أي مكان.
ما هو Node.js؟
و نود.جي إس هو إطار جافا سكريبت على أساس استخدامها على نطاق واسع مبني على جافا سكريبت V8 محرك جوجل كروم وتطبيقها في تطوير I / O تطبيقات الويب المكثفة مثل تطبيقات صفحة واحدة، ومواقع الفيديو المتدفقة الخ
لقد أجرينا برنامجًا تعليميًا إعلاميًا سابقًا حول بدء استخدام Node.js و Raspberry Pi للتحكم في مؤشر LED. في هذا البرنامج التعليمي ، سوف نتبع الطريقة المماثلة ، أي سيتم التحكم في LED باستخدام طريقتين مثل:
- يومض LED البسيط عن طريق كتابة كود JavaScript في إطار عمل Node.js.
- التحكم في سطوع LED باستخدام إطار عمل Node.js وواجهة ويب من أي متصفح: سيعمل Arduino UNO كخادم ويب وستتم استضافة صفحة ويب HTML على جهاز كمبيوتر شخصي أو كمبيوتر محمول.
المكونات مطلوبة
المعدات:
- مجلس اردوينو UNO
- يؤدى
- المقاوم
البرمجيات:
- Arduino IDE: لتحميل الرسم التخطيطي على لوحة Arduino UNO.
- Firmata: هو بروتوكول للتواصل مع المتحكمات الدقيقة المختلفة من البرامج الموجودة على جهاز كمبيوتر أو هاتف ذكي وما إلى ذلك. يمكن تحميل برنامج Firmata الثابت في أي لوحة متحكم (مثل Arduino و Teensy) ويمكنه التحدث إلى أي كمبيوتر محمول أو كمبيوتر شخصي أو هاتف ذكي. تأتي مكتبة Firmata مع Arduino IDE ، لذلك لا داعي للتنزيل من أي مكان. لقد أجرينا برنامجًا تعليميًا حول التحكم في Arduino باستخدام Raspberry Pi باستخدام pyFirmata.
- Johnny-Five: Johnny-Five هي منصة تستند إلى JavaScript و IoT تستخدم لكتابة الرموز في JavaScript وتستخدم لإنشاء جسر بين لوحات Arduino والكمبيوتر. تم اختبار Johnny-Five مع مجموعة متنوعة من اللوحات المتوافقة مع Arduino مثل Arduino UNO و NANO و Promini وما إلى ذلك. في هذا البرنامج التعليمي ، يجب تنزيل مكتبة Johnny-Five لاستخدام جميع ميزاتها. سيتم شرح دليل التثبيت لاحقًا في هذا البرنامج التعليمي.
مخطط الرسم البياني
مخطط الدائرة أساسي للغاية ، نحتاج فقط إلى توصيل LED بـ Arduino.إعداد إطار عمل Node.js
قبل البدء في الترميز والتطوير ، يجب تنزيل Node.js وإعداده. لتنزيل بيئة Node.js ، ما عليك سوى اتباع الخطوات البسيطة.
الخطوة 1: - قم بتنزيل ملف.exe الخاص بـ Node.js من موقعه الرسمي على الإنترنت.
الخطوة 2: - قم بتشغيل ملف exe. واتبع التعليمات الواردة في برنامج التثبيت.
الخطوة 3: - أعد تشغيل الكمبيوتر كما هو موصى به في مستند Node.js وأيضًا لاستخدام جميع ميزات Node.js
الخطوة 4: - للتحقق مما إذا تم تثبيت العقدة ، افتح موجه الأوامر واكتب Node –v
الخطوة 5: - سيتم عرض إصدار Node.js مشيرًا إلى تثبيت Node.js.
تركيب مكتبة جوني فايف
الآن بعد تنزيل Node.js ، أنشئ مجلدًا جديدًا باسم "LED_Control" في المستندات للاحتفاظ بجميع ملفات المشروع في مكان واحد. سيتم الاحتفاظ بكل ملف مشروع في مجلد “ LED_Control ”. الآن قم بتنزيل مكتبة Johnny-Five في مجلد “ LED_Control ”. للتنزيل ، اتبع الخطوات أدناه:
الخطوة 1: - افتح موجه الأوامر
الخطوة 2: - انتقل إلى المجلد “ LED_Control ” باتباع أمر " cd "
الخطوة 3: - قم بتشغيل الأمر " npm install johnny-five"
الخطوة 4: - سيؤدي ذلك إلى تثبيت جميع تبعيات Johnny-Five.
الخطوة 5: - قم أيضًا بتثبيت المكتبات الضرورية المستخدمة في هذا البرنامج التعليمي للتحكم في سطوع LED. توجد ثلاث مكتبات مستخدمة هنا:
- صريح: غلاف خادم
- socket.i o: مكتبة WebSockets
- المسلسل t: غلاف المنفذ التسلسلي
الخطوة 5: - قم بتشغيل الأوامر التالية واحدة تلو الأخرى لتثبيت هذه المكتبات الثلاث.
npm تثبيت سريع npm تثبيت socket.io npm تثبيت serialport
كما ذكرنا سابقًا ، ينقسم المشروع إلى قسمين:
- أولاً ، اردوينو LED وامض مع Node.js
- ثانيًا ، التحكم في سطوع LED من واجهة الويب باستخدام Arduino و Node.js.
وميض LED مع Arduino و Node.js
لميض LED ، يجب إعداد Arduino للتواصل مع الكمبيوتر.
إعداد Arduino UNO لمصباح LED الوامض:
من أجل جعل Arduino UNO يقبل الأمر من الكمبيوتر المحمول إلى Control LED ، يجب تحميل البرامج الثابتة Firmata في Arduino UNO. لتحميل البرنامج الثابت Firmata ، ما عليك سوى اتباع هذه الخطوات البسيطة:
- قم بتوصيل Arduino UNO باستخدام كابل USB
- افتح Arduino IDE وحدد Arduino UNO board (إذا كنت تستخدم لوحة أخرى ، فحدد اللوحة المناسبة) من Tools
- حدد منفذ COM المناسب لـ Arduino UNO المتصل
- الآن ابحث عن رسم Firmata باستخدام القائمة -> ملف -> أمثلة -> Firmata -> StandardFirmata.
- قم بتحميل الرسم التخطيطي "StandardFirmata" بالانتقال إلى ملف -> تحميل.
سيؤدي هذا إلى تحميل Firmata Sketch على Arduino UNO والآن أصبح Arduino UNO جاهزًا لقبول أي أمر من الكمبيوتر.
برنامج الكتابة Node.js للوميض LED:
لكتابة برنامج Node.js ، افتح أي محرر نصوص (Notepad ، Notepad ++ ، إلخ) والصق الكود "blink_led" المرفق في نهاية هذا البرنامج التعليمي واحفظه بامتداد ".js" أي (blink_led.js) في مجلد “LED_Control” الذي تم إنشاؤه من قبل. سنناقش خطوات مهمة في ملف الشفرة blink_led.js.
حدد في البداية دبوس متحكم دقيق حيث يتم توصيل الصمام. في هذا المثال ، يتم توصيل مؤشر LED بـ Pin 5 من Arduino UNO. يمثل "var" في Node.js تعريفًا متغيرًا.
var led_pin = 5 ؛
و خمسة وجوني وحدة يحتاج إلى تدرج واحتياجات المجلس ليتم تحديده. الوحدات النمطية في Node.js هي مكتبات. ستصل الوظيفة " تتطلب () " إلى الوحدة.
var johnny_five = يتطلب ("johnny-five") ؛ var arduino_board = new johnny_five.Board () ؛
و console.log بيان مشابه لبيان المطبوعة وأنه ستتم طباعة الرسالة. ويتم ضبط دبوس LED على وضع الإخراج ويتم إعطاء التأخير المحدد لمصباح وميض.
console.log ("الصمام بدأ يومض!")؛ var led = new johnny_five.Led (led_pin) ؛ led.blink (100) ؛
الآن لتشغيل البرنامج ، اتبع الخطوات التالية:
- افتح موجه الأوامر
- حدد موقع مجلد "LED_Control" باتباع أمر "cd"
- قم بتشغيل الأمر "Node led_blink.js". إذا تم تنفيذه بنجاح ، فسيظهر "بدأ مؤشر LED في الوميض!" كما هو موضح في الصورة أدناه .
- سيبدأ المصباح في الوميض في Arduino UNO Pin 5.
- وينتهي هذا الجزء الأول من برنامجنا التعليمي ، أي وميض LED مع Node.js
التحكم في سطوع LED باستخدام Arduino و Node.js Webserver
على غرار وميض LED باستخدام Node.js ، سيحتوي هذا القسم أيضًا على بعض الأجزاء مثل إعداد Arduino UNO وإعداد واجهة الويب وكتابة برنامج Node.js.
إعداد Arduino UNO للتحكم في سطوع LED:
لإعداد Arduino UNO ، ما عليك سوى تحميل المخطط " arduino_control.ino " إلى لوحة Arduino UNO وهذا كل شيء. سيؤدي ذلك إلى إنشاء لوحة Arduino. يمكنك تنزيل الكود الكامل بملفات HTML من هنا. يحتوي كود “arduino_control.ino” على خطوات مهمة متضمنة.
في البداية ، تم تعيين معدل الباود عند 9600.
Serial.begin (9600) ؛
يبحث المنفذ التسلسلي دائمًا عن البايت الوارد ويتم كتابة البايت إلى Pin 5 وهو PWM Pin.
بينما (! Serial.available ()) ؛ analogWrite (5، Serial.read ()) ؛
هذا هو. سيؤدي هذا إلى ضبط Arduino على تثبيت البايت على دبوس PWM وسيغير سطوع LED.
إعداد واجهة الويب:
للتحكم في سطوع الصمام باستخدام واجهة الويب ، تتم كتابة جزء صغير من كود HTML ليكون له واجهة في المتصفح. للحصول على واجهة ، اتبع الخطوات البسيطة أدناه:
- أنشئ مجلدًا جديدًا باسم "عام" داخل مجلد "LED_Control" الذي تم إنشاؤه من قبل.
- الآن قم بتنزيل ملفي "index.html" و "style.css" وانقل كلا الملفين داخل المجلد "العام" الذي تم إنشاؤه في الخطوة الأولى أعلاه. يمكن تنزيل الملفات من هنا.
سيؤدي ذلك إلى إنشاء شريط تمرير على صفحة الويب للتحكم في سطوع LED باستخدام Node.js و Arduino.
يعد التحكم في LED من صفحة الويب أمرًا ممتعًا للتعلم ويمكن أن يتم ذلك باستخدام متحكم آخر عن طريق إنشاء خادم ويب واستضافة صفحة الويب على خادم الويب. تحقق من جميع المشاريع المتعلقة بخادم الويب هنا.
كتابة برنامج Node.js للتحكم في سطوع LED:
ستكون الخطوة التالية هي كتابة مخطط "brightness_control.js" باستخدام Node.js وتنفيذ الكود. سيكون تنفيذ الكود مشابهًا قليلاً لـ Blinking a LED مع Node.js.
لكتابة برنامج Node.js ، افتح أي محرر نصوص (Notepad ، Notepad ++ ، إلخ) والصق رمز "brightness_control" المرفق في نهاية هذا البرنامج التعليمي واحفظه بامتداد ".js" أي (brightness_control.js) في مجلد “LED_Control” الذي تم إنشاؤه من قبل. يمكنك أيضًا تنزيل الكود من هنا.
على غرار برنامج Blink Led Node.js ، سيستخدم هذا القسم أيضًا وحدات (مكتبة). قم بتضمين الوحدة النمطية "express" و "http" و "serial port".
var express = يتطلب ('express') ؛ التطبيق = صريح () ؛ الخادم = يتطلب ('http'). createServer (app) ؛ io = تتطلب ('socket.io'). listen (server) ؛ var SerialPort = يتطلب ("serialport") //. SerialPort
الآن قم بتعيين منفذ COM ومعدل الباود. لاحظ أنه في Windows ، سيكون دائمًا COM مع امتداد الرقم (COM6 ، COM4 ، COM24 وما إلى ذلك) ، لذلك حدد أدناه كما هو مطلوب بعد '/' مجموعة buadrate أيضا.
var serialPort = new SerialPort ("/ COM4"، {baudRate: 9600}) ؛
ابدأ في الاستماع إلى الخادم على المنفذ 8080.
server.listen (8080) ؛
اضبط السطوع على 0 مبدئيًا. ثم قم بتثبيت بيانات السطوع على وحدة الإدخال والإخراج باستخدام وحدة المقابس ، وهي وحدة مقبس ويب. ستتلقى البيانات من خلال واجهة الويب باستخدام بروتوكول مأخذ التوصيل.
io.sockets.on ('connect'، function (socket) { socket.on ('led'، function (data) { brightness = data.value؛ var buf = new Buffer (1)؛ buf.writeUInt8 (السطوع ، 0) ؛ serialPort.write (buf) ؛
الآن قم بإصدار قيمة سطوع LED التي تم الحصول عليها من المقبس إلى دبوس LED.
io.sockets.emit ('led'، {value: brightness})؛ }) ؛ socket.emit ('led'، {القيمة: السطوع})؛ }) ؛
الآن فقط لتصحيح الأخطاء ، أضف بيان طباعة في النهاية. Console.log هو بيان طباعة في Node.js.
console.log ("خادم الويب بدأ انتقل إلى" http: // localhost: 8080 "في المستعرض الخاص بك.")؛
الآن لتشغيل البرنامج باتباع الخطوات التالية:
- افتح موجه الأوامر
- حدد موقع مجلد "LED_Control" باتباع أمر "cd"
- قم بتشغيل الأمر "Node brightness_control.js". إذا تم تنفيذه بنجاح ، فسيظهر "تم بدء خادم الويب ، انتقل إلى" http: // localhost: 8080 "في المستعرض الخاص بك." فقط تحت الأمر .
- انتقل الآن إلى متصفحك واكتب "localhost: 8080" في عنوان url.
- لتغيير السطوع ، ما عليك سوى تحريك شريط التمرير من 0-255 قيمة.
و رمز كاملة وفيديو العمل يتم إرفاق كل أدناه. أيضًا إذا كان لديك أي شك أو اقتراح ، فيمكنك التواصل معنا عبر المنتدى أو التعليق أدناه. يمكن أيضًا تنزيل جميع ملفات الأكواد من هنا.