Node.js Raspberry Pi GPIO - Blinking LED

রাস্পবেরি পাই এবং এর জিপিআইও ব্যবহার করে এলইডি জ্বালানোর উপায় শিখুন

আউটপুট জন্য GPIO ব্যবহার করে

এই অধ্যায়ে আমরা একটি রাস্পবেরি পাই এবং এর জিপিআইও ব্যবহার করব একটি এলইডি জ্বালাতে।

আমরা GPIO নিয়ন্ত্রণ করতে অনফ মডিউল সহ Node.js ব্যবহার করি।

একটি LED আলোর জন্য, আমরা একটি GPIO পিনকে "আউটপুট" হিসাবে ব্যবহার করি এবং এটি চালু এবং বন্ধ করার জন্য একটি স্ক্রিপ্ট তৈরি করি (ফ্ল্যাশিং)।

আমাদের কি দরকার?

এই অধ্যায়ে আমরা একটি LED বাতি নিয়ন্ত্রণ করার একটি সহজ উদাহরণ তৈরি করব।

এর জন্য আপনার প্রয়োজন:

বিভিন্ন উপাদানের বর্ণনার জন্য উপরের তালিকার লিঙ্কগুলিতে ক্লিক করুন।

💡দ্রষ্টব্য:

LED এর প্রকারের উপর নির্ভর করে আপনি যে প্রতিরোধকটি ব্যবহার করছেন তা আমরা যা ব্যবহার করি তার থেকে আলাদা হতে পারে। বেশিরভাগ ছোট LED-এর জন্য শুধুমাত্র একটি ছোট রোধের প্রয়োজন হয়, প্রায় 200-500 ওহম। আপনি যে সঠিক মানটি ব্যবহার করেন তা সাধারণত গুরুত্বপূর্ণ নয়, তবে প্রতিরোধকের মান যত ছোট হবে, LED তত উজ্জ্বল হবে।

সার্কিট নির্মাণ

এখন আমাদের ব্রেডবোর্ডে সার্কিট তৈরি করার সময়।

আপনি যদি ইলেকট্রনিক্সে নতুন হন, আমরা রাস্পবেরি পাই এর জন্য পাওয়ার সাপ্লাই বন্ধ করার পরামর্শ দিই। এছাড়াও এটির ক্ষতি এড়াতে একটি অ্যান্টি-স্ট্যাটিক ম্যাট বা গ্রাউন্ডিং স্ট্র্যাপ ব্যবহার করুন।

রাস্পবেরি পাই সঠিকভাবে বন্ধ করতে কমান্ডটি ব্যবহার করুন:

pi@jassifteam:~ $ sudo shutdown -h now

রাস্পবেরি পাই-তে এলইডি ফ্ল্যাশিং বন্ধ করার পরে, রাস্পবেরি পাই থেকে পাওয়ার প্লাগটি টানুন (বা এটির সাথে সংযুক্ত পাওয়ার স্ট্রিপটি বন্ধ করুন)।

প্লাগটি সঠিকভাবে বন্ধ না করে টানলে মেমরি কার্ডের ক্ষতি হতে পারে।

সার্কিট ডায়াগ্রাম

Raspberry Pi 3 with Breadboard. Simple LED circuit

Raspberry Pi 3 with Breadboard. Simple LED circuit

উপরের সার্কিট ডায়াগ্রামটি দেখুন।

রাস্পবেরি পাইতে:প্রথম জাম্পার তারের মহিলা পা মাটিতে সংযুক্ত করুন। আপনি যেকোনো GND পিন ব্যবহার করতে পারেন। এই উদাহরণে আমরা শারীরিক পিন 9 (GND, সারি 5, বাম কলাম) ব্যবহার করেছি।
ব্রেডবোর্ডে:প্রথম জাম্পার তারের পুরুষ পা ডানদিকে গ্রাউন্ড বাস কলামের সাথে সংযুক্ত করুন। আপনার ব্রেডবোর্ডের পুরো কলামটি সংযুক্ত আছে, তাই কোন সারি তা বিবেচ্য নয়। এই উদাহরণে আমরা এটিকে সারি 1 এ সংযুক্ত করেছি
রাস্পবেরি পাইতে:দ্বিতীয় জাম্পার তারের মহিলা পা একটি GPIO পিনের সাথে সংযুক্ত করুন। এই উদাহরণে আমরা শারীরিক পিন 7 (GPIO 4, সারি 4, বাম কলাম) ব্যবহার করেছি।
ব্রেডবোর্ডে:দ্বিতীয় জাম্পার তারের পুরুষ পা আপনার পছন্দের টাই-পয়েন্ট লাইনের সাথে সংযুক্ত করুন। এই উদাহরণে আমরা এটিকে সারি 5, কলাম A-তে সংযুক্ত করেছি
ব্রেডবোর্ডে:রোধের একটি পা ডান পাশের গ্রাউন্ড বাস কলামের সাথে সংযুক্ত করুন। আপনার ব্রেডবোর্ডের পুরো কলামটি সংযুক্ত আছে, তাই কোন সারি তা বিবেচ্য নয়। এই উদাহরণে আমরা এটিকে সারি 5 এর সাথে সংযুক্ত করেছি
ব্রেডবোর্ডে:রোধের অন্য পা ডান পাশের টাই-পয়েন্ট লাইনে সংযুক্ত করুন। এই উদাহরণে আমরা সারি 5, কলাম J ব্যবহার করেছি
ব্রেডবোর্ডে:LED-এর ক্যাথোড লেগ (শর্ট লেগ) রোধকে GND-এর মতো একই টাই-পয়েন্ট লাইনের সাথে সংযুক্ত করুন। এই উদাহরণে আমরা সারি 5, কলাম F ব্যবহার করেছি
ব্রেডবোর্ডে:GPIO পিন থেকে জাম্পারের মতো একই টাই-পয়েন্ট সারিতে LED-এর অ্যানোড লেগ (লম্বা পা) সংযুক্ত করুন। এই উদাহরণে আমরা সারি 5, কলাম E ব্যবহার করেছি

আপনার সার্কিট এখন সম্পূর্ণ হওয়া উচিত এবং আপনার সংযোগগুলি উপরের চিত্রের মতো হওয়া উচিত।

এখন রাস্পবেরি পাই শুরু করার এবং এটির সাথে যোগাযোগ করার জন্য একটি Node.js স্ক্রিপ্ট লেখার সময়।

রাস্পবেরি পাই এবং Node.js ফ্ল্যাশিং LED স্ক্রিপ্ট

এখন যেহেতু আমরা সবকিছু সেট আপ করেছি, আমরা LED চালু এবং বন্ধ করার জন্য একটি স্ক্রিপ্ট লিখতে পারি।

আমাদের Node.js স্ক্রিপ্টগুলি ধরে রাখার জন্য একটি ডিরেক্টরি তৈরি করে শুরু করা যাক:

pi@jassifteam:~ $ mkdir nodetest

আমাদের নতুন ডিরেক্টরি দেখুন:

pi@jassifteam:~ $ cd nodetest

এখন ন্যানো এডিটর ব্যবহার করে "blink.js" নামে একটি নতুন ফাইল তৈরি করা যাক:

pi@jassifteam:~ $ nano blink.js

ফাইলটি এখন বিল্ট-ইন ন্যানো এডিটর দিয়ে খোলা এবং সম্পাদনা করা যেতে পারে।

নিম্নলিখিত কোড লিখুন বা পেস্ট করুন:

blink.js

let Gpio = require('onoff').Gpio; //include onoff to interact with the GPIO
let LED = new Gpio(4, 'out'); //use GPIO pin 4, and specify that it is output
let blinkInterval = setInterval(blinkLED, 250); //run the blinkLED function every 250ms

function blinkLED() { //function to start blinking
  if (LED.readSync() === 0) { //check the pin state, if the state is 0 (or off)
    LED.writeSync(1); //set pin state to 1 (turn LED on)
  } else {
    LED.writeSync(0); //set pin state to 0 (turn LED off)
  }
}

function endBlink() { //function to stop blinking
  clearInterval(blinkInterval); // Stop blink intervals
  LED.writeSync(0); // Turn LED off
  LED.unexport(); // Unexport GPIO to free resources
}

setTimeout(endBlink, 5000); //stop blinking after 5 seconds

কোড সংরক্ষণ করতে "Ctrl+x" টিপুন। "y" দিয়ে নিশ্চিত করুন এবং "Enter" দিয়ে নাম দিন।

কোড চালান:

pi@jassifteam:~ $ node blink.js

এখন LED আবার বন্ধ করার আগে 5 সেকেন্ড (10 বার) ফ্ল্যাশ করা উচিত!

অনুশীলন করুন

Node.js-এর কোন মডিউলটি সাধারণত একটি রাস্পবেরি পাইতে একটি LED জ্বালাতে ব্যবহৃত হয়? নির্বাচন করুন.

gpio মডিউল
✗ ভুল! "gpio" Node.js-এ একটি বৈধ মডিউল নয়
অনফ মডিউল
✓ ঠিক আছে! "অনফ" মডিউলটি সাধারণত রাস্পবেরি পাই GPIO নিয়ন্ত্রণের জন্য ব্যবহৃত হয়
নেতৃত্বাধীন মডিউল
✗ ভুল! Node.js-এ "led" একটি বৈধ মডিউল নয়
রাস্পবেরি মডিউল
✗ ভুল! "রাস্পবেরি" Node.js-এ একটি বৈধ মডিউল নয়