NRF24L01: আরডুইনোর জন্য ওয়্যারলেস যোগাযোগের জন্য মডিউল

NRF24L01

সম্ভবত আপনাকে আরডুইনো বা অন্যান্য উপাদান ব্যবহার করে একটি ডিআইওয়াই (DIY) প্রজেক্ট তৈরি করতে হবে এবং ওয়্যারলেস যোগাযোগের প্রয়োজন হবে । এর মানে হলো, আপনার এমন কোনো মডিউল বা ডিভাইস থাকতে হবে যা আপনাকে আইআর (IR), আরএফ (RF), ব্লুটুথ, ওয়াইফাই (WiFi) ইত্যাদির মাধ্যমে ডেটা প্রেরণ করতে দেয়। অন্য কথায়, কোন ধরনের সিগন্যাল সবচেয়ে উপযুক্ত হবে তা নির্ধারণ করার জন্য আপনাকে আপনার প্রয়োজনগুলো স্পষ্টভাবে সংজ্ঞায়িত করতে হবে।

এক্ষেত্রে, আপনার জন্য NRF24L01 সম্পর্কে আমাদের একটি নির্দেশিকা রয়েছে । এটি একটি ওয়্যারলেস কমিউনিকেশন চিপ যা আপনাকে সিগন্যাল পাঠানো এবং গ্রহণ করার জন্য প্রয়োজনীয় সুবিধা দেবে। এটি যে ধরনের সিগন্যাল পরিচালনা করে তা হলো আরএফ (RF) বা রেডিও ফ্রিকোয়েন্সি; অর্থাৎ, দীর্ঘ-তরঙ্গদৈর্ঘ্যের তরঙ্গ এবং সেই কারণে কম-শক্তির তরঙ্গ, যা তড়িৎচুম্বকীয় বর্ণালীতে ৩ হার্টজ থেকে ৩০০ গিগাহার্টজ পর্যন্ত বিস্তৃত।

NRF24L01 কী?

NRF24L01

NRF24L01 হলো নর্ডিক সেমিকন্ডাক্টর দ্বারা নির্মিত একটি চিপ । যদি আপনি " কোনো পণ্য পাওয়া যায়নি " লেখাটি খুঁজে থাকেন , তবে জেনে রাখুন যে এই চিপটি কিছু প্রয়োজনীয় সহায়ক উপাদানসহ একটি ছোট পিসিবি-তে বসানো থাকে, যা মিলে একটি মডিউল তৈরি করে। আপনি এটি বিভিন্ন উপায়ে ব্যবহার করতে পারেন, যার মধ্যে একটি হলো এটিকে আরডুইনোর সাথে সংযুক্ত করা, যা আমি আপনাকে পরে দেখাবো।

NRF24L01, এর নাম থেকেই বোঝা যায়, এটি একটি ওয়্যারলেস কমিউনিকেশন ডিভাইস যা রেডিও ফ্রিকোয়েন্সি (RF) ব্যবহার করে এবং ২.৪ গিগাহার্টজ – ২.৫ গিগাহার্টজ ফ্রিকোয়েন্সিতে কাজ করে । এটি লাইসেন্সবিহীন ব্যান্ড যা বিনামূল্যে ব্যবহার করা যায়। আপনারা জানেন, অন্যান্য ব্যান্ডগুলো সংরক্ষিত এবং ট্রান্সমিশনের জন্য অর্থ প্রদান করতে হয়। এর সাথে একটি ট্রান্সমিটার এবং একটি রিসিভারও রয়েছে।

নির্দিষ্টভাবে বলতে গেলে, আপনি ২.৪০০ মেগাহার্টজ থেকে ২.৫২৫ মেগাহার্টজ পর্যন্ত ফ্রিকোয়েন্সি ব্যান্ড ব্যবহার করতে পারবেন, যেখানে ১ মেগাহার্টজ ব্যবধানে থাকা ১২৫টি চ্যানেল থেকে বেছে নেওয়ার সুযোগ রয়েছে । তবে, ওয়াই-ফাই নেটওয়ার্ক, এই ফ্রিকোয়েন্সিতে চালিত ড্রোন ইত্যাদি ব্যবহারের ক্ষেত্রে ২.৪ গিগাহার্টজ ফ্রিকোয়েন্সি ব্যবহার করার পরামর্শ দেওয়া হয় না, কারণ এটি ইন্টারফেয়ারেন্স বা প্রতিবন্ধকতা সৃষ্টি করবে। তাই, ২.৫০১ মেগাহার্টজ এবং তার উপরের ফ্রিকোয়েন্সি ব্যবহার করা শ্রেয়।

এর স্পেসিফিকেশন অনুযায়ী, এটি ১.৯ থেকে ৩.৬ ভোল্টে চলে, তাই আপনি সহজেই এটিকে আরডুইনো বোর্ডের ৩.৩ ভোল্ট সংযোগ, ব্যাটারি, বা এমনকি ওই ভোল্টেজ সরবরাহকারী কোনো পাওয়ার সাপ্লাই দিয়েও চালাতে পারবেন। এছাড়াও, আপনি এর ট্রান্সমিশন স্পিড ২৫০ Kbps, ১ Mbps, এবং সর্বোচ্চ ২ Mbps-এর মধ্যে কনফিগার করতে পারবেন।

এই চিপটি প্রেরণ এবং গ্রহণ উভয়ের জন্যই একাধিক ডিভাইস থেকে একযোগে সর্বোচ্চ ছয়টি সংযোগ সামলাতে পারে । এর ফলে আপনি কোনো সমস্যা ছাড়াই বিভিন্ন স্থান থেকে ডেটা প্রেরণ বা গ্রহণ করতে পারবেন। আর যদি আপনি যোগাযোগের দৃঢ়তা বা নির্ভরযোগ্যতা নিয়ে চিন্তিত হন, তবে চিপটির মধ্যেই বিল্ট-ইন লজিক সার্কিট্রি রয়েছে যা ডেটার ত্রুটি সংশোধন করে এবং প্রয়োজনে তথ্য পুনরায় পাঠায়, ফলে প্রসেসরকে এই কাজটি থেকে অব্যাহতি দেয়।

এটি SPI বাস ব্যবহার করে নিয়ন্ত্রণ করা যায় , ফলে আর্ডুইনো দিয়ে এটি নিয়ন্ত্রণ করা খুব সহজ। এছাড়াও, NRF24L01-এর ডেটা পিনগুলো কোনো সমস্যা ছাড়াই ৫ ভোল্ট পর্যন্ত গ্রহণ করতে পারে। এর স্ট্যান্ডবাই অবস্থায় বিদ্যুৎ খরচ বেশ কম, তাই এটি নিয়ে চিন্তার কোনো কারণ নেই এবং চালু থাকা অবস্থায়ও এটি খুব বিদ্যুৎ-সাশ্রয়ী, ডেটা আদান-প্রদানের জন্য মাত্র ১৫ মিলিঅ্যাম্পিয়ার বিদ্যুৎ প্রয়োজন হয়।

বাজারে আপনি NRF24L01 চিপ ব্যবহার করে এমন বিভিন্ন ধরণের মডিউল পাবেন ; এগুলোর মধ্যে পার্থক্য শুধু সহায়ক উপাদান বা অ্যান্টেনার ধরনের মতো কয়েকটি খুঁটিনাটি বিষয়ে। কয়েকটিতে PCB-র উপর একটি জিগজ্যাগ অ্যান্টেনা প্রিন্ট করা থাকে, যার পরিসীমা প্রায় ২০-৩০ মিটার। অন্যগুলোতে অ্যামপ্লিফায়ারসহ আরও শক্তিশালী বাহ্যিক অ্যান্টেনা ব্যবহারের সুবিধা রয়েছে, যা পরিসীমা ৭০০ মিটার থেকে ১ কিলোমিটার পর্যন্ত বাড়িয়ে দেয়।

তবে, প্রকৃত পরিসীমা বিভিন্ন কারণের দ্বারা সীমিত থাকে , যেমন পথের বাধা, অন্যান্য উপাদান বা সংকেত থেকে আসা শব্দ বা হস্তক্ষেপ, ট্রান্সমিশন গতি, পাওয়ার সাপ্লাই ভোল্টেজ (বেশি ভোল্টেজে বেশি দূরত্ব অতিক্রম করা যায়), ইত্যাদি। উদাহরণস্বরূপ, আপনি যদি সর্বোচ্চ ২ এমবিপিএস (Mbps) গতিতে ট্রান্সমিট করতে চান, তবে এটি দূরত্বের উপর একটি উল্লেখযোগ্য প্রভাব ফেলবে, যা এটিকে সর্বোচ্চ মাত্র ২ বা ৩ মিটারে সীমাবদ্ধ করে দেবে। কম গতিতে, আপনি সেই দূরত্ব বাড়াতে সক্ষম হতে পারেন।

ESP8266
সম্পর্কিত নিবন্ধ:
ESP8266: আরডুইনোর জন্য ওয়াইফাই মডিউল

এটি কেনার আগে আপনার কী জানা দরকার?

NRF40L01 অ্যান্টেনা

NRF24L01 একটি অত্যন্ত সাশ্রয়ী চিপ যা বিভিন্ন ধরনের প্রকল্পে ব্যবহার করা যায়। উদাহরণস্বরূপ, যদি এটির সাথে কোনো বাহ্যিক অ্যান্টেনা না থাকে, তবে আপনি এটি মাত্র €0.65-এ কিনতে পারেন। বাহ্যিক অ্যান্টেনা সহ মডেলটির দাম কিছুটা বেশি, তবে তাও বেশ সস্তা এবং সাধারণত €1.7-এর বেশি হয় না।

আপনার কাছে যদি অন্য কোনো প্রেরণ বা গ্রহণকারী ডিভাইস না থাকে, তাহলে আপনাকে দুটি NRF24L01 মডিউল কিনতে হবে—একটি আপনি যেখানে প্রেরণ করতে চান তার এক পাশে এবং অন্যটি অপর পাশে ব্যবহারের জন্য। আপনার প্রয়োজন অনুসারে, উভয়ই ট্রান্সমিটার বা রিসিভার হিসেবে কাজ করবে।

পিনআউট এবং NRF24L01 এর মাউন্টিং

পিনআউট NRF40L01 XNUMX

সমাবেশ হিসাবে, এটি বেশ সহজ। দ্য NRF24L01 এর 8 টি পিন রয়েছে, সুতরাং এটির পিনআউটটি খুব সহজ এই চিত্রটিতে আপনি কীভাবে দেখতে পাচ্ছেন তা আমি বুঝতে পারি। ডানদিকে আপনি একটি বোর্ডের পিন ডায়াগ্রাম দেখতে পারেন Arduino UNO এবং মডিউলটির প্রতিটি পিন কীভাবে এর সাথে যুক্ত হবে।

আপনি বুঝতেই পারছেন, NRF24L01 বোর্ডটি আরডুইনোর GND এবং 3.3V পিন ব্যবহার করে চালিত হয় । মনে রাখবেন, 5V সিগন্যাল ব্যবহার করবেন না, অন্যথায় মডিউলটি ক্ষতিগ্রস্ত হবে।

আরডুইনোর সাথে একীকরণ

আরডুইনো (সার্কিট) সহ 2 টি এনআরএফ 24 ল01

এখন যেহেতু আপনি জানেন NRF24L01 কী, কীভাবে এটিকে সংযোগ ও শক্তি সরবরাহ করতে হয় এবং এই কয়েকটি সস্তা ডিভাইস দিয়ে কী কী প্রকল্প করা যায়, তাই পরবর্তী পদক্ষেপ হলো আপনাকে একটি প্রোগ্রামিং উদাহরণ দেখানো , যাতে আপনি আপনার Arduino IDE দিয়ে পরীক্ষা-নিরীক্ষা শুরু করতে পারেন। মনে রাখবেন যে, আপনি সোর্স কোডে আপনার প্রেরিত ডেটার ফরম্যাট পরিবর্তন করতে পারেন।

l298n
সম্পর্কিত নিবন্ধ:
L298N: আরডুইনোর জন্য মোটর নিয়ন্ত্রণের জন্য মডিউল

আপনি একটি স্ট্রিং, একটি ইন্টিজার, একটি ফ্লোটিং-পয়েন্ট সংখ্যা ইত্যাদি পাঠাতে এবং গ্রহণ করতে পারেন। আপনি যদি নতুন হন, তবে আমি আমাদের আরডুইনো প্রোগ্রামিং গাইডটি পড়ার পরামর্শ দেব । এটি আপনাকে আপনার প্রথম প্রজেক্টগুলো তৈরি করতে সাহায্য করবে। আর NRF24L01-এর একটি নির্দিষ্ট উদাহরণ হিসেবে, এখানে একটি স্ট্রিং পাঠানো এবং গ্রহণ করার জন্য প্রয়োজনীয় কোডগুলো দেওয়া হলো ।

যে কোডটি আপনাকে অবশ্যই Arduino IDE-তে লিখতে হবে এবং ট্রান্সমিটার হিসেবে ব্যবহৃত NRF24L01-এর সাথে সংযুক্ত Arduino বোর্ডটি প্রোগ্রাম করতে হবে :

#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
 
const int pinCE = 9;
const int pinCSN = 10;
RF24 radio(pinCE, pinCSN);
 
// Single radio pipe address for the 2 nodes to communicate.
const uint64_t pipe = 0xE8E8F0F0E1LL;
 
char data[16]="Aquí tu mensaje" ;
 
void setup(void)
{
   radio.begin();
   radio.openWritingPipe(pipe);
}
 
void loop(void)
{
   radio.write(data, sizeof data);
   delay(1000);
}

এখানে সেই কোডটি দেওয়া হলো যা আপনাকে Arduino IDE-তে প্রবেশ করিয়ে, রিসিভার হিসেবে ব্যবহৃত NRF24L01-এর সাথে সংযুক্ত বোর্ডে সংরক্ষণ করতে হবে :

# অন্তর্ভুক্ত <nRF24L01.h>
# অন্তর্ভুক্ত <আরএফ 24 h>
# অন্তর্ভুক্ত <আরএফ 24_কনফিগ
# এসপিআইইচ> অন্তর্ভুক্ত করুন

কনট ইন্ট পিনসিই = 9;
কনট ইন্ট পিনসিএনএস = 10;
আরএফ 24 রেডিও (পিনসিইসি, পিনসিএসএন);

// যোগাযোগের জন্য দুটি নোডের একক রেডিও পাইপ ঠিকানা।
কনট uint64_t পাইপ = 0xE8E8F0F0E1LL;

চর ডেটা [16];

অকার্যকর সেটআপ (অকার্যকর)
{
সিরিয়াল.বেগিন (9600);
রেডিও.বেগিন ();
Radio.openReadingPype (1, পাইপ);
radio.startListening ();
}

অকার্যকর লুপ (অকার্যকর)
{
যদি (রেডিও.ভয়েবল ())
{
int done = রেডিও.ড্রেড (ডেটা, মাপের ডেটা);
সিরিয়াল.প্রিন্টলন (ডেটা);
}
}

এর মাধ্যমে, আপনার প্রয়োজনীয় সবকিছুই থাকবে এবং আপনি একটি কম্পিউটার থেকে শব্দ বা টেক্সট স্ট্রিং পাঠিয়ে দেখতে পারবেন যে অন্যটি সেগুলো কীভাবে গ্রহণ করে । ডেটা দেখার মাধ্যম হিসেবে কনসোল ব্যবহার করতে, আর্ডুইনো বোর্ডের সাথে ইউএসবি-র মাধ্যমে সংযুক্ত দুটি কম্পিউটার ব্যবহার করুন। আপনার কাছে থাকা মডিউল বা আপনার দেওয়া কনফিগারেশনের উপর নির্ভর করে সেগুলোকে একটি যুক্তিসঙ্গত দূরত্বে রাখুন, এবং আপনি অন্য কম্পিউটারের স্ক্রিনে প্রথম কোডে প্রবেশ করানো অক্ষরগুলো দেখতে শুরু করবেন…


Google-এ পছন্দের উৎস হিসেবে যোগ করুন