آموزش پروژه محور node js (Node.js چیست؟)

آموزش پروژه محور node js
آموزش پروژه محور node js

در این پروژه ما از یک پلتفرم جاوا اسکریپت بسیار محبوب به نام Node.js برای کنترل LED متصل به Arduino Uno استفاده می کنیم. همچنین از Node.js برای کنترل روشنایی LED از طریق یک صفحه وب با استفاده از آردوینو استفاده خواهیم کرد. برای شروع مقاله اولین موضوعی که به آن پردازیم پاسخ به این پرسش است که Node.js چیست؟ 

Node.js چیست؟

در پاسخ به پرسش متداول Node.js چیست؟ این گونه می توان تعریف کرد که Node.js یک پلتفرم سمت سرور مبتنی بر موتور جاوا اسکریپت گوگل کروم می باشد و در توسعه برنامه های وب فشرده ورودی/خروجی مانند برنامه های تک صفحه ای، سایتهای پخش ویدئو و غیره کاربرد دارد.

المان های مورد نیاز:

سخت افزار:
  • برد UNO آردوینو
  • led
  • مقاومت

نرم افزارهای مورد نیاز :

  • Arduino IDE: برای آپلود برنامه
  • Firmata: این یک پروتکل برای ارتباط با میکروکنترلرهای مختلف از نرم افزار روی لپتاپ ، تلفن هوشمند و غیره است. سیستم عامل Firmata را می توان در هر برد میکروکنترلر (مانند Arduino ، Teensy)دانلود کرد و قادر است با هر لپ تاپ ، رایانه یا تلفن هوشمند ارتباط بر قرار کند.
  • Johnny-Five: Johnny-Five پلتفرم مبتنی بر جاوا اسکریپت و IoT است که برای نوشتن کدها در جاوا اسکریپت استفاده می شود و برای ایجاد پلی بین بردهای آردوینو و لپتاپ استفاده می شود. Johnny-Five با انواع بردهای سازگار با Arduino مانند Arduino UNO ، NANO ، Promini و غیره تست شده است. در این آموزش ، کتابخانه Johnny-Five را باید دانلود کنید.

دیاگرام مدار:

Circuit-Diagram-for-Controlling-an-LED-using-Nodejs-and-Arduino

راه اندازی Node.js:

قبل از شروع برنامه نویسی ، Node.js باید دانلود و راه اندازی شود.

1. فایلexe Node.js را از وب سایت رسمی آن دانلود کنید.

2. exe. را اجرا کنید و دستورالعمل های داده شده در نصب را دنبال کنید.

Setting-Up-Node.js-Framework

3.لپتاپ خود را مجدداً ری استارت کنید.
4. برای بررسی اینکه آیا node نصب شده است ، Command Prompt را باز کرده و Node –v را تایپ کنید.

How-to-Check-Nodejs-is-Insatalled

5.ورژن Node.js نمایش داده می شود که نشان دهنده ی نصب Node.js است.

نصب کتابخانه johnny-five:

اکنون پس از دانلود Node.js ، یک پوشه جدید با نام “LED_Control” در Documents ایجاد کنید تا همه پروژه ها در یک document نگهداری شوند. حال کتابخانه Johnny-Five را در پوشه “LED_Control” دانلود کنید. برای دانلود ، مراحل زیر را دنبال کنید:

  1.  Command Prompt را باز کنید
  2. با دستور “cd” به پوشه “LED_Control” بروید.
  3.  دستور “npm install johnny-five” را تایپ کنید.

Installing-Johny-Five-in-the-System_0

 

4. با این کار Johnny-Five نصب می شود.

5. همچنین کتابخانه های ضروری مورد استفاده در این آموزش برای کنترل روشنایی LED را نصب کنید. از سه کتابخانه در اینجا استفاده می شود:

 

express: HTTP server wrapper

socket.io: WebSockets library

serialport: Serial port wrapper

دستورات زیر را یکی یکی اجرا کنید تا این سه کتابخانه نصب شود.

Installing-Johnny-Five-Express-Library_0

Installing-Johnny-Five-SocketIO-Library_0

Installing-Johnny-Five-Serial-Port-Library_0

همانطور که قبلاً گفته شد ، پروژه به دو بخش تقسیم می شود:

1- LED چشمک زن Arduino با Node.js
2- کنترل روشنایی LED ازطریق وب با استفاده از Arduino و Node.js.

چشمک زدن LED:

برای اینکه Arduino UNO فرمان Laptop to Control LED را بپذیرد ، سیستم عامل Firmata باید در Arduino UNO دانلود شود. برای دانلود Firmata Firmata ، کافی است مراحل ساده زیر را دنبال کنید:

Arduino UNO را با استفاده از کابل USB متصل کنید
Arduino IDE را باز کرده و Arduino UNO board را از Tools انتخاب کنید.
پورت COM متصل به Arduino UNO را انتخاب کنید
اکنون فایل Firmata را با استفاده از Menu -> File -> Examples -> Firmata -> StandardFirmata پیدا کنید.
با رفتن به مسیر File -> Upload فایل “StandardFirmata” را آپلود کنید.
با این کار Firmata Sketch بر روی Arduino UNO دانلود می شود و اکنون Arduino UNO آماده پذیرش هرگونه دستور از لپتاپ است.

 

کدنویسی:

برای نوشتن یک برنامه Node.js هر ویرایشگر متنی (Notepad ، Notepad ++ ) را باز کنید و کد ‘blink_led’ ضمیمه شده در انتهای این آموزش را کپی کرده و با پسوند ‘.js’ یعنی (blink_led.js) در پوشه “LED_Control” سیو کنید.

ابتدا پین میکروکنترلر را در جایی که led متصل است تعریف می کنیم. در این مثال ، LED به پین 5 Arduino UNO متصل است. ‘var’ در Node.js نشان دهنده متغیر است.

ماژول johnny-five باید معرفی شود و برد باید انتخاب شود. ماژول ها در node jsهمان کتابخانه ها هستند. تابع «()require» دستور دسترسی به ماژول را می دهد.

دستور console.log شبیه دستور print است و پیام را چاپ می کند. و پین LED روی حالت خروجی تنظیم شده و یک delay برای چشمک زدن led تعریف می کنیم.

حال برای اجرای برنامه مراحل زیر را دنبال کنید:

Command Prompt را باز می کنیم.
با دستور “cd” پوشه “LED_Control” را پیدا می کنیم.
دستور ‘Node led_blink.js’ را تایپ می کنیم . اگر با موفقیت اجرا شود ، نشان می دهد “!LED has Started Blinking”

Writing-Nodejs-Program-for-Blinking-LED

LED در Pin 5 شروع به چشمک زدن می کند.
حال سراغ پروژه ی دوم می رویم.

کنترل روشنایی LED:

برای راه اندازی Arduino UNO ، فقط فایل”arduino_control.ino” را در برد Arduino UNO دانلود کنید و تمام. با این کار برد آردوینو راه اندازی می شود. می توانید کد کامل را با فایل های HTML از اینجا دانلود کنید. کد “arduino_control.ino” مراحل زیر را شامل می شود.

در ابتدا نرخ بادریت 9600 تعیین شده است.

پورت سریال پین 5 است.

با این کار Arduino می تواندمقدار پین را بخواند و روشنایی LED را به نسبت ان تغییر بدهد.

راه اندازی وب:

برای کنترل روشنایی led با استفاده از وب ، یک قطعه کوچک از کد HTML نوشته شده است تا دارای یک ارتباط با مرورگر باشد. مراحل زیر را دنبال کنید:

یک پوشه جدید با نام “public” در داخل پوشه “LED_Control” ایجاد کنید.

اکنون فایل های “index.html” و “style.css” را دانلود کرده و هر دو فایل را در داخل پوشه “public” قرار دهید . فایلها را می توانید از اینجا دانلود کنید.

Designing-the-Web-Interface-for-Controlling-LED-using-Nodejs-and-Arduino

یک نوار متحرک در صفحه وب ایجاد می شود تا روشنایی LED را با استفاده از Node.js و Arduino کنترل کند.

Web-Interface-for-Controlling-LED-using-Nodejs-and-Arduino

کدنویسی:
مرحله بعدی نوشتن فایل “brightness_control.js” با استفاده از Node.js و اجرای کد است.
برای نوشتن یک برنامه Node.js هر ویرایشگر متنی (Notepad ، Notepad ++ ) را باز کنید و کد “brightness_control” را که در انتهای این آموزش ضمیمه شده است کپی کرده و با پسوند “.js” یعنی (brightness_control.js) در پوشه “LED_Control” سیو کنید. همچنین می توانید کد را از اینجا دانلودکنید.

حالا پورت COM وبادریت را تعیین کنید.

ابتدا روشنایی را روی 0 تنظیم کنید. سپس داده های روشنایی را با ماژول socket، که websocket module است ، به IO متصل کنید. داده ها توسط وب با استفاده از پروتکل socket دریافت می شود.

اکنون مقدار روشنایی LED را ازsocketبه پین LED منتقل کنید.

 

اکنون فقط برای دی باگ کردن ، یک دستور چاپ در پایان اضافه می کنیم.

حال مراحل زیر دنبال کنید:

Command Prompt را باز کنید.
با دستور “cd” پوشه “LED_Control” را پیدا کنید
دستور ‘Node brightness_control.js’ را تایپ کنید. در صورت اجرای موفقیت آمیز ، عبارت”Web Server Started go to “http://localhost:8080” in your Browser”را نشان میدهد.

Writing-Nodejs-Program-to-Control-Brightness-of-LED

حالا به مرورگر خود بروید و “localhost: 8080” را در آدرس url تایپ کنید.
برای تغییر روشنایی ،می توانید نوار ایجاد شده را حرکت دهید.

Controlling-an-LED-using-Nodejs-and-Arduinoکد کامل: