- المواد المطلوبة
- تثبيت Node.js على Raspberry Pi
- يومض مؤشر LED باستخدام Node.js
- Node.js LED وميض البرنامج النصي والشرح
- مخطط الدائرة لوميض LED باستخدام Node.js
- فطيرة التوت
في دروس Raspberry Pi السابقة ، استخدمنا العديد من لغات البرمجة والبرامج المختلفة للتحكم في Raspberry Pi بما في ذلك Python و C المضمن و Flask وما إلى ذلك لتوسيع أفق لوحة Raspberry Pi القوية ، سنستخدم اليوم بيئة شائعة جدًا تعتمد على JavaScript (Node.js) للتحكم في Raspberry Pi GPIOs محليًا وعالميًا من خلال إعداده كخادم ويب. في البداية ، تم تطوير Node.js من أجل Google Chrome ولكن لاحقًا تم فتحه بواسطة Google.
في هذا البرنامج التعليمي ، سنتحكم في مؤشر LED متصل بـ Raspberry Pi ، باستخدام طريقتين
- أولاً ، سنقوم ببساطة بكتابة رمز JavaScript باستخدام Node.js لميض مؤشر LED
- في الطريقة الثانية ، سننشئ صفحة HTML بها زرين لتشغيل وإيقاف LED. ستتم استضافة صفحة الويب بتنسيق HTML على Raspberry Pi ويمكن فتحها على أي متصفح ويب. لذلك هنا سوف يعمل Raspberry Pi كخادم ويب
المواد المطلوبة
- لوحة Raspberry Pi مع Raspbian مثبتة فيها
- يؤدى
في هذا البرنامج التعليمي ، أستخدم مراقب خارجي باستخدام كابل HDMI للاتصال بـ Raspberry Pi. إذا لم يكن لديك شاشة ، يمكنك استخدام عميل SSH (معجون) أو خادم VNC للاتصال بـ Raspberry pi باستخدام الكمبيوتر المحمول أو الكمبيوتر. إذا وجدت أي صعوبة ، فاتبع دليل Raspberry Pi الخاص بنا.
تثبيت Node.js على Raspberry Pi
سنقوم بتثبيت Node.js في لوحتنا باستخدام الأوامر التالية.
الخطوة 1: - تحقق أولاً من إصدار الذراع الخاص بلوحة raspberry pi باستخدام هذا الأمر.
uname -m
في حالتي ، الإصدار هو 7.
الخطوة 2: - قم بتنزيل برنامج التثبيت عن طريق نسخ هذا الرابط في الجهاز. لا تنس تغيير الإصدار في الرابط أدناه.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
الخطوة 3: - استخراج الملفات باستخدام الأمر أدناه
tar -xvf node-v4.6.1-linux-armvl.tar.gz
الخطوة 4: - أخيرًا ، قم بتنفيذ هذه الأوامر لإضافة الملفات المهمة إلى الدلائل المحلية أيضًا.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
تم تثبيت Node.js الآن في Raspberry Pi الخاص بك. تحقق من إصدار العقدة للتأكيد باستخدام هذا الأمر.
العقدة - الإصدار
قبل الانتقال إلى إنشاء خادم Node.js ، سنرى أولاً كيفية كتابة برنامج نصي ليومض مؤشر LED باستخدام node.js (حزمة npm onoff).
يومض مؤشر LED باستخدام Node.js
للتحكم في GPIO على Raspberry Pi باستخدام Node.js ، سنستخدم الوحدة النمطية onoff.
سوف نستخدم الآلية الوقائية الوطنية مدير مجموعة لتثبيت ONOFF حدة باستخدام الأمر أدناه
npm التثبيت onoff
الآن ، سوف نكتب نصًا لوميض الصمام. افتح محرر nano وقم بتسمية الملف باستخدام الأمر
نانو blink_led.js
إذا كنت مبتدئًا في Node.js وحزمه ، فيمكنك توثيق npm لفهم البرنامج النصي بشكل أفضل.
Node.js LED وميض البرنامج النصي والشرح
أولاً ، قم بالإعلان عن متغيرات الصمام والتأخير و GPIO. أنا أستخدم Raspberry Pi GPIO 4 لتوصيل مؤشر LED.
var Gpio = يتطلب ('onoff'). Gpio؛ var LED = Gpio جديد (4 ، 'out') ؛ var blinkInterval = setInterval (blinkLED، 500) ؛
الآن ، سنقوم بعمل وظيفة لبدء الوميض.
الوظيفة blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1) ؛ // ضبط الإخراج إلى 1 ie turn led on} else {LED.writeSync (0)؛ // ضبط الإخراج على 0 ie turn led off }}
وبالمثل ، قم بعمل وظيفة لإيقاف الوميض
الوظيفة endBlink () {clearInterval (blinkInterval) ؛ LED.writeSync (0) ؛ LED.unexport () ، // Unexport GPIO to free Resources} setTimeout (endBlink، 10000) ؛
يتم تقديم رمز Node.js الكامل لـ Blinking LED في نهاية هذا البرنامج التعليمي. لذا انسخ الكود والصقه في الملف led_blink.js ، الذي أنشأناه مسبقًا باستخدام أمر nano ، واحفظ الملف باستخدام Ctrl + x ، ثم اضغط على Y واضغط على Enter.
لتشغيل البرنامج النصي ، افتح Terminal واكتب الأمر التالي:
العقدة blink_led.js
سترى أن مؤشر LED يومض لمدة 10 ثوانٍ وبعد ذلك سيتوقف عن الوميض. تحقق من العمل الكامل في الفيديو المقدم في نهاية هذا البرنامج التعليمي.
مخطط الدائرة لوميض LED باستخدام Node.js
فطيرة التوت
الآن ، تعال إلى الجزء المثير للاهتمام ، هنا سنصنع خادم الويب الخاص بنا والذي يمكننا من خلاله التحكم في GPIO الخاص بـ Raspberry pi باستخدام صفحة ويب.
لهذا ، نحتاج أولاً إلى إنشاء صفحة HTML وكتابة برنامج نصي لأداء مهمة النهاية الخلفية ، أي للتحكم في RPi GPIO.
الخطوة 1: - قم بعمل دليل لتخزين جميع الملفات في مكان واحد.
mkdir nodejs_server
الخطوة 2: - داخل مجلد nodejs_server ، قم بإنشاء مجلد آخر لحفظ ملف HTML.
cd nodejs_server mkdir آراء
الخطوة 3: - إذا كنت ترغب في إضافة الصور إلى صفحة HTML الخاص بك، ثم يجب عليك ان تجعل مجلد باسم آخر الجمهور داخل الدليل الرئيسي أي في nodejs_server المجلد. في المجلد العام ، أنشئ مجلد صور وقم بتخزين جميع الصور في هذا المجلد.
الخطوة 4: - الآن ، سنقوم بإنشاء صفحة HTML. لهذا، انتقل إلى وجهات النظر والدليل المفتوح نانو محرر النص مع اسم الملف index.ejs
لا يوجد شيء رائع في النص. إنه مجرد ملف HTML لإنشاء زر تشغيل وإيقاف.
انسخ والصق كود HTML أدناه في محرر نصوص نانو واحفظه.
مرحبًا بك في خادم Nodejs
حالة الصمام: <٪ = الحالة٪>الخطوة 5: - الآن ، علينا كتابة كود JavaScript. نحن نستخدم إطار عمل node express للرد على طلبات http التي يقوم بها المستخدم.
يمكنك اتباع الرابط لمعرفة المزيد عن Node Express.
افتح Terminal وافتح محرر نصوص nano باستخدام اسم ملف index.js في مجلد nodejs_server ، ثم انسخ والصق كود جافا النصي أدناه وهذا الملف.
var express = يتطلب ('express') ؛ تطبيق var = express () ؛ var path = يتطلب ('path') ؛ var gpio = يتطلب ('rpi-gpio') ؛ gpio.setup (7، gpio.DIR_OUT) ، app.set ("عرض المحرك" ، "ejs") ؛ app.use (express.static (path.join (__ dirname، 'public'))) ؛ console.log (path.join (__ dirname، 'public')) ؛ app.get ('/'، function (req، res) { res.render ('index'، {status: "Press Button"})؛ })؛ app.post ('/ led / on'، function (req، res) { gpio.write (7، true، function (err) { if (err) throw err؛ console.log ('Written True to pin')؛ console.log (path.join (__ dirname، 'public'))؛ عودة res.render ('index'،{الحالة: "Led قيد التشغيل"}) ؛ }) ؛ }) ؛ app.post ('/ led / off'، function (req، res) { gpio.write (7، false، function (err) { if (err) throw err؛ console.log ('Written False to pin')؛ console.log (path.join (__ dirname، 'public'))؛ return res.render ('index'، {status: "Led is Off"})؛ })؛ })؛ app.listen (3000، function () { console.log ('Server Started on Port: 3000!') })
الخطوة 6: - داخل دليل nodejs_server ، يتعين علينا تنفيذ الأمر التالي لتثبيت مكتبات node.js
تثبيت npm
الخطوة 7: - الآن ، خادمك جاهز للعمل. لبدء الخادم المحلي ، قم بتشغيل الأمر التالي داخل دليل nodejs_server
index.js العقدة
سترى رسالة في الجهاز تفيد بأن الخادم الخاص بك قد بدأ في المنفذ المحدد.
الخطوة 8: - افتح الآن متصفحك وافتح عنوان URL الخاص بـ Raspberry Pi برقم المنفذ أي raspberrypi: 3000
تأكد من أن raspberry pi والكمبيوتر المحمول الذي تفتح فيه المتصفح متصلان بنفس الشبكة.
سترى الصفحة التالية في المتصفح.
الآن ، اضغط على زر LED On لتشغيل LED وزر LED Off لإيقاف تشغيل LED.