پروژه الکترونیکپروژه های اینترنت اشیاپروژه های رزبری پای

کنترل LED با Node.js در وب سرور رزبری پای (کنترل Raspberry pi از اینترنت)

سلام. پروژه کنترل LED با Node.js در وب سرور رزبری پای (کنترل Raspberry pi از اینترنت) را آماده کردیم.

کنترل پین های Raspberry pi از طریق اینترنت

در آموزش های قبلی Raspberry Pi ، ما برای کنترل Raspberry Pi از Python ، C ، Flask و … استفاده کرده ایم. امروز از یک محیط بسیار مشهور مبتنی بر JavaScript استفاده خواهیم کرد. Node.js ابتدا برای گوگل کروم توسعه داده شد و سپس توسط گوگل متن باز شد. در اینجا با استفاده از صفحه وب و Node.js میتوانیم پین های GPIO رزبری پای را کنترل کنیم.

در این آموزش ، ما با استفاده از دو روش ، یک چراغ متصل به Raspberry Pi را کنترل خواهیم کرد.

  1. به سادگی یک کد JavaScript را با استفاده از Node.js برای چشمک زدن LED می نویسیم.
  2. یک صفحه HTML را با دو دکمه برای روشن و خاموش کردن LED ایجاد خواهیم کرد. این صفحه وب HTML در رزبری پای میزبانی می شود و می تواند در هر مرورگر وب باز شود. بنابراین در اینجا Raspberry Pi به عنوان وب سرور عمل خواهد کرد.

آموزش نصب Node.js در رزبری پای

ما با استفاده از دستورات زیر Node.js را در صفحه خود نصب خواهیم کرد.

مرحله 1: ابتدا با استفاده از این دستور نسخه arm برد رزبری پای خود را بررسی کنید.

uname -m

برای من ، نسخه 7 است.

مرحله 2: دستور زیر را در ترمینال قرار دهید و فراموش نکنید نسخه رزبری پای خود را در لینک قرار دهید.

wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armv[version]l.tar.gz

مرحله 3: پرونده ها را با استفاده از دستور زیر استخراج کنید.

tar -xvf node-v4.6.1-linux-armv[version]l.tar.gz

مرحله 4: در آخر ، این دستورات را اجرا کنید تا فایلهای مهم به دایرکتوی محلی نیز اضافه شود.

cd node-v4.3.1-linux-armv[version]l
sudo cp -R * /usr/local/

Node.js اکنون در Raspberry Pi نصب شده است. برای تأیید با استفاده از این دستور ، نسخه Node را بررسی کنید.

node –version

قبل از ساختن سرور Node.js ، ابتدا خواهیم دید که چگونه یک اسکریپت بنویسیم تا یک چراغ را با استفاده از node.js چشمک بزند.

ال ای دی چشمک زن با استفاده از Node.js

برای کنترل GPIO در Raspberry Pi با استفاده از Node.js از ماژول onoff استفاده خواهیم کرد.

ما از npm package manager برای نصب ماژول onoff با استفاده از دستور زیر استفاده خواهیم کرد

npm install onoff

در حال حاضر ، ما یک اسکریپت برای چشمک زدن LED خواهیم نوشت. ویرایشگر nano را باز کنید و با استفاده از دستور زیر ، نام زیر را به پرونده بدهید.

nano blink_led.js

توضیحات اسکریپت LED چشمک زن با Node.js

ابتدا متغیرهای led ، Delay و GPIO را اعلام کنید. من از GPIO 4 رزبری پای برای اتصال LED استفاده می کنم.

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.
حتما ببینید :  آموزش راه اندازی سنسور هال با رزبری پای
var Gpio = require('onoff').Gpio; 
var LED = new Gpio(4, 'out'); 
var blinkInterval = setInterval(blinkLED, 500); 

اکنون ، ما یک عملکرد برای شروع چشمک زدن مینویسیم.

function blinkLED() {
  if (LED.readSync() === 0) { 
    LED.writeSync(1); //فعال کردن خروجی
  } else {
    LED.writeSync(0); //غیر فعال کردن خروجی

 }
}

به همین ترتیب ، یک عملکرد را برای متوقف کردن چشمک زدن مینویسیم.

function endBlink() { 
  clearInterval(blinkInterval); 
  LED.writeSync(0); 

  LED.unexport(); 
}
setTimeout(endBlink, 10000); 

کد کامل Node.js برای چراغ چشمک زن در پایان این پروژه آورده شده است. بنابراین کد را در پرونده led_blink.js که قبلاً با استفاده از دستور nano ایجاد کرده ایم ، کپی و جایگذاری کنید ، فایل را با استفاده از Ctrl + x و سپس Y ذخیره کنید.

برای اجرای اسکریپت ، ترمینال را باز کرده و دستور زیر را تایپ کنید :

node blink_led.js

اسکریپت LED چشمک زن با Node.js

خواهید دید که LED به مدت 10 ثانیه چشمک می زند و بعد از آن دیگر چشمک نمی زند. کار کامل در ویدیوی داده شده در پایان این آموزش را بررسی کنید.

مدار چشمک زدن LED با Node.js

تصویر زیر شماتیک مدار ال ای دی چشمک زن با Node.Js و رزبری پای را نشان میدهد.

مدار چشمک زدن LED با Node.js

قطعات مورد نیاز

  1. برد رزبری پای
  2. ال ای دی

ساخت وب سرور رزبری پای + اسکریپت Node.Js

در اینجا می خواهیم سرور وب خود را بسازیم که از طریق آن بتوانیم پین های GPIO برد Raspberry pi  را با استفاده از یک صفحه وب کنترل کنیم.

برای این کار ، ابتدا باید یک صفحه HTML بسازیم و یک اسکریپت بنویسیم تا بتواند وظیفه back-end را انجام دهد ، یعنی برای کنترل GPIO.

مرحله 1: یک دایرکتوری تهیه کنید تا تمام پرونده ها در یک مکان ذخیره شوند.

mkdir nodejs_server

مرحله 2: درون پوشه nodejs_server یک پوشه دیگر برای ذخیره فایل HTML ایجاد کنید.

cd nodejs_server
mkdir views

مرحله 3: اگر می خواهید تصاویر را به صفحه html خود اضافه کنید ، باید پوشه دیگری را به نام public در پوشه اصلی یعنی در پوشه nodejs_server ایجاد کنید. در پوشه public ، پوشه image را ایجاد کرده و تمام تصاویر را در این پوشه ذخیره کنید.

مرحله 4: اکنون ، ما صفحه HTML را می سازیم. برای این کار ، به دایرکتوری views رفته و ویرایشگر متن نانو را با نام فایل index.ejs باز کنید.

کد HTML زیر را در ویرایشگر متن نانو کپی کنید و آن را ذخیره کنید.

<meta name="viewport" content="width=500, initial-scale=1"> 

<div class="BorderMargin">
<image src = '/images/circuitdigest.jpg' alt="LED" style="width:500px;height:250px;" align="left">
<h1>Welcome to Nodejs Server</h1>

<form action="/led/on" method="post">
<button type="submit" class="button">LED On </button>

<button type="submit" formmethod="post" formaction="/led/off" class="button button3">LED Off</button>
</form>
<a>Led Status: <%=status %></a>
</div>

مرحله 5: اکنون ، ما باید کد JavaScript را بنویسیم. ما در حال استفاده از فریم ورک node express برای پاسخگویی به درخواست های http انجام شده توسط کاربر هستیم.

حتما ببینید :  پروژه مکان یاب GPS با برد STM32 + آموزش کامل و فیلم

ویرایشگر متن nano terminal را باز کنید و پرونده index.js را در پوشه nodejs_server قرار دهید ، سپس کد اسکریپت جاوا و این پرونده را کپی و جایگذاری کنید.

var express = require('express'); 
var app = express();
var path = require('path');
var gpio = require('rpi-gpio');

gpio.setup(7, gpio.DIR_OUT);
app.set('view engine', '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'));
return res.render('index', {status: "Led is On"});
    });
});

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 install

مرحله 7: اکنون ، سرور شما آماده کار است. برای راه اندازی سرور محلی ، دستور زیر را در دایرکتوری nodejs_server اجرا کنید

node index.js

شما یک پیام را در ترمینال مشاهده می کنید که سرور شما در پورت تعریف شده شروع به کار می کند.

ساخت وب سرور رزبری پای + اسکریپت Node.Js

مرحله 8: اکنون مرورگر خود را باز کرده و URL رزبری پای را با شماره درگاه یعنی 3000 باز کنید.

فیلم عملکرد

اطمینان حاصل کنید که رزبری پای شما و دستگاهی که میخواهید با آن ال ای دی را کنترل کنید در یک شبکه قرار داشته باشند. صفحه زیر را در مرورگر مشاهده خواهید کرد.

کنترل پین های Raspberry pi از طریق اینترنت

اکنون دکمه LED On را فشار دهید تا ال ای دی روشن شود و سپس دکمه LED Off را فشار دهید تا ال ای دی خاموش شود. فیلم زیر نحوه کار پروژه را نشان میدهد.

دانلود فیلم پروژه وب سرور Node.js با رزبری پای

موارد موجود در فایل : سورس کامل چشمک زن و وب سرور ، شماتیک

برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
برچسب ها

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن