Node.js Raspberry Pi GPIO - LED and Pushbutton

রাস্পবেরি পাইতে ইনপুট এবং আউটপুট উভয় ব্যবহার করে LED এবং পুশ বোতাম নিয়ন্ত্রণ করতে শিখুন

ইনপুট এবং আউটপুট উভয় ব্যবহার করে

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

এর জন্য আমরা "আউটপুট" হিসাবে একটি GPIO পিন ব্যবহার করেছি।

এই অধ্যায়ে আমরা "ইনপুট" হিসাবে আরেকটি GPIO পিন ব্যবহার করব।

5 সেকেন্ডের জন্য ফ্ল্যাশ করার পরিবর্তে, আপনি যখন ব্রেডবোর্ডের সাথে সংযুক্ত একটি বোতাম টিপবেন তখন LED আলোকিত হওয়া উচিত।

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

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

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

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

💡দ্রষ্টব্য:

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

এই অধ্যায়ে আমরা শেষ অধ্যায়ে আমরা যে সার্কিটগুলি তৈরি করেছি তা তৈরি করব, যাতে আপনি উপরে তালিকাভুক্ত কিছু অংশের সাথে পরিচিত হবেন।

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

এখন আমাদের ব্রেডবোর্ডে সার্কিট তৈরি করার সময়। শেষ অধ্যায়ে আমরা যে সার্কিটটি তৈরি করেছি তা শুরুর পয়েন্ট হিসেবে ব্যবহার করি।

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

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

pi@jassifteam:~ $ sudo shutdown -h now

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

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

Raspberry Pi 3 with Breadboard. LED and Button circuit

Raspberry Pi 3 with Breadboard. LED and Button circuit

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

শেষ অধ্যায়ে আমরা যে সার্কিট তৈরি করেছি তা দিয়ে শুরু করা যাক:

রাস্পবেরি পাইতে:একটি জাম্পার তারের মহিলা পা 5V পাওয়ার পিনের সাথে সংযুক্ত করুন। আমাদের উদাহরণে আমরা শারীরিক পিন 2 (5V, সারি 1, ডান কলাম) ব্যবহার করেছি।
ব্রেডবোর্ডে:ডান পাশের পাওয়ার বাসের সাথে 5V পাওয়ারের সাথে সংযুক্ত জাম্পার তারের পুরুষ পা সংযুক্ত করুন। আপনার ব্রেডবোর্ডের পুরো কলামটি সংযুক্ত আছে, তাই কোন সারি তা বিবেচ্য নয়। আমাদের উদাহরণে আমরা এটিকে সারি 1 এ সংযুক্ত করেছি
ব্রেডবোর্ডে:পরিখা জুড়ে ফিট করার জন্য পুশ বোতামটি সংযুক্ত করুন। আমাদের উদাহরণে এটি 13 এবং 15 সারি, কলাম E এবং F এর সাথে যোগ দেয়
ব্রেডবোর্ডে:1k ওহম প্রতিরোধকের একটি পা ডান পাশের গ্রাউন্ড বাস কলামের সাথে সংযুক্ত করুন এবং অন্য পাটি ডান পাশের টাই-পয়েন্ট সারিতে পুশ বোতামের ডান পাশের পায়ের একটির সাথে সংযুক্ত করুন। আমাদের উদাহরণে আমরা একপাশকে টাই-পয়েন্ট সারি 13, কলাম J এর সাথে সংযুক্ত করেছি এবং অন্য দিকটি নিকটতম স্থল বাসের গর্তের সাথে সংযুক্ত করেছি।
ব্রেডবোর্ডে:ডান পাওয়ার বাস থেকে ডান টাই-পয়েন্ট লাইনে পুশ বোতামের অন্য পায়ের সাথে সংযোগকারী একটি পুরুষ-থেকে-পুরুষ জাম্পার তার সংযুক্ত করুন। আমাদের উদাহরণে আমরা একপাশকে টাই-পয়েন্ট সারি 15, কলাম J, এবং অন্য পাশের নিকটতম পাওয়ার বাস হোলের সাথে সংযুক্ত করেছি।
রাস্পবেরি পাইতে:একটি জাম্পার তারের মহিলা পা একটি GPIO পিনের সাথে সংযুক্ত করুন। আমাদের উদাহরণে আমরা শারীরিক পিন 11 ব্যবহার করেছি (GPIO 17, সারি 6, বাম কলাম)
ব্রেডবোর্ডে:জাম্পার তারের পুরুষ পাটি বাম টাই-পয়েন্ট লাইনের সাথে সরাসরি গ্রাউন্ড সংযোগ পায়ের বিপরীতে পুশ বোতাম লেগ দিয়ে সংযুক্ত করুন। আমাদের উদাহরণে আমরা এটিকে সারি 13, কলাম A-তে সংযুক্ত করেছি

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

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

রাস্পবেরি পাই এবং Node.js LED এবং বোতাম স্ক্রিপ্ট

"nodetest" ডিরেক্টরিতে যান এবং "buttonled.js" নামে একটি নতুন ফাইল তৈরি করুন:

pi@jassifteam:~ $ nano buttonled.js

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

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

buttonled.js

var Gpio = require('onoff').Gpio; //include onoff to interact with the GPIO
let LED = new Gpio(4, 'out'); //use GPIO pin 4 as output
let pushButton = new Gpio(17, 'in', 'both'); //use GPIO pin 17 as input, and 'both' button presses, and releases should be handled

pushButton.watch(function (err, value) { //Watch for hardware interrupts on pushButton GPIO, specify callback function
  if (err) { //if an error
    console.error('There was an error', err); //output error message to console
  return;
  }
  LED.writeSync(value); //turn LED on or off depending on the button state (0 or 1)
});

function unexportOnClose() { //function to run when exiting program
  LED.writeSync(0); // Turn LED off
  LED.unexport(); // Unexport LED GPIO to free resources
  pushButton.unexport(); // Unexport Button GPIO to free resources
};

process.on('SIGINT', unexportOnClose); //function to run when user closes using ctrl+c

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

কোড চালান:

pi@jassifteam:~ $ node buttonled.js

এখন আপনি যখন বোতাম টিপবেন তখন LED আলোকিত হওয়া উচিত এবং আপনি এটি ছেড়ে দিলে বন্ধ হয়ে যাবে।

Ctrl+c দিয়ে প্রোগ্রাম শেষ করুন।

অনুশীলন করুন

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

listen()
✗ ভুল! "শুনুন()" অনফ মডিউলে একটি বৈধ পদ্ধতি নয়
observe()
✗ ভুল! "observe()" অনফ মডিউলে একটি বৈধ পদ্ধতি নয়
watch()
✓ ঠিক আছে! "ঘড়ি()" পদ্ধতিটি অনফ মডিউলে বোতাম ইনপুট পরিচালনা করতে ব্যবহৃত হয়
monitor()
✗ ভুল! "monitor()" অনফ মডিউলে একটি বৈধ পদ্ধতি নয়