داشتن دو یا چند آردوینو که بتوانند به صورت بی سیم با یکدیگر ارتباط برقرار کنند، دنیایی از امکانات مانند نظارت از راه دور داده های سنسور، کنترل ربات ها، اتوماسیون خانگی و غیره را در اختیار شما قرار می دهد.
و وقتی صحبت از یک راهحل RF دو طرفه کمهزینه اما قابل اعتماد میشود، هیچ چیز بهتر از ماژول فرستنده گیرنده nRF24L01+ Nordic Semiconductor نیست .
ماژول nRF24L01+ با کمتر از دو دلار به صورت آنلاین در دسترس است و آن را به یکی از مقرون به صرفه ترین گزینه های ارتباط داده در دسترس تبدیل می کند.
بررسی اجمالی سخت افزار
فرکانس رادیو
ماژول nRF24L01+ برای کار در باند فرکانس جهانی ISM 2.4 گیگاهرتز طراحی شده است و از مدولاسیون GFSK برای انتقال داده استفاده می کند. سرعت انتقال داده قابل تنظیم است و می توان آن را روی 250kbps، 1Mbps یا 2Mbps تنظیم کرد.
باند 2.4 گیگاهرتز یکی از باندهای صنعتی، علمی و پزشکی (ISM) است که در سطح بینالمللی برای دستگاههای کم مصرف بدون مجوز رزرو شده است. دستگاه هایی مانند تلفن های بی سیم، دستگاه های بلوتوث، دستگاه های ارتباط میدان نزدیک (NFC) و شبکه های کامپیوتری بی سیم (WiFi) از فرکانس های ISM استفاده می کنند.
قدرت
ولتاژ کاری ماژول از 1.9 تا 3.9 ولت متغیر است. لطفاً به خاطر داشته باشید که تغذیه ماژول با 5 ولت به احتمال زیاد به ماژول nRF24L01+ شما آسیب می رساند.
علیرغم این واقعیت که ماژول در ولتاژ 1.9 ولت تا 3.6 ولت کار می کند، پین های منطقی 5 ولت تحمل دارند، بنابراین نیازی به مترجم سطح منطقی ندارید.
توان خروجی ماژول را می توان به صورت 0 dBm، -6 dBm، -12 dBm یا -18 dBm برنامه ریزی کرد. در 0 dBm، ماژول در طول انتقال تنها 12 میلی آمپر مصرف می کند که کمتر از مصرف یک LED است.
و بهترین بخش این است که تنها 26 میکروآمپر در حالت آماده به کار و 900 نانوآمپر در حالت خاموش کردن برق مصرف می کند. به همین دلیل است که این دستگاه بی سیم برای برنامه های کم مصرف است.
رابط SPI
nRF24L01+ از طریق یک SPI 4 پین (رابط سریالی جانبی) با حداکثر سرعت داده 10 مگابیت در ثانیه ارتباط برقرار می کند.
همه پارامترها، از جمله کانال فرکانس (125 کانال قابل انتخاب)، توان خروجی (0 dBm، -6 dBm، -12 dBm یا -18 dBm)، و نرخ داده (250kbps، 1Mbps، یا 2Mbps) را می توان از طریق رابط SPI پیکربندی کرد. .
اتوبوس SPI از مفهوم یک استاد و یک برده استفاده می کند. در اکثر پروژه های ما، آردوینو به عنوان اصلی و ماژول nRF24L01+ به عنوان برده عمل می کند.
برخلاف گذرگاه I2C، باس SPI تعداد محدودی برد دارد. بنابراین میتوانید از حداکثر دو SPI Slave (دو ماژول nRF24L01+) در یک آردوینو استفاده کنید.
مشخصات فنی
در اینجا مشخصات آمده است:
محدوده فرکانس | باند ISM 2.4 گیگاهرتز |
حداکثر نرخ داده هوا | 2 مگابیت بر ثانیه |
فرمت مدولاسیون | GFSK |
حداکثر توان خروجی | 0 dBm |
ولتاژ منبع تغذیه عملیاتی | 1.9 ولت تا 3.6 ولت |
حداکثر جریان عملیاتی | 13.5 میلی آمپر |
حداقل جریان (حالت آماده به کار) | 26μA |
ورودی های منطقی | تحمل 5 ولت |
محدوده ارتباطی | 800+ متر (خط دید) |
برای اطلاعات بیشتر لطفا به دیتاشیت زیر مراجعه کنید.
ماژول nRF24L01+ -در مقابل ماژول nRF24L01+ PA/LNA
تراشه nRF24L01+ در ماژول های مختلفی استفاده می شود که دو مورد از رایج ترین آنها در زیر ذکر شده است.
اولین مورد از یک آنتن داخلی استفاده می کند که به آن اجازه می دهد جمع و جورتر باشد. با این حال، آنتن کوچکتر به معنای برد انتقال کوتاهتر است. با استفاده از این ماژول می توانید در فاصله 100 متری ارتباط برقرار کنید. البته که بیرون در فضای باز است. دامنه آن در داخل خانه کمی ضعیف تر می شود، به خصوص به دلیل دیوارها.
دومی یک کانکتور SMA و یک آنتن اردک دارد، اما این تنها تفاوت نیست. این شامل یک تراشه توسعه دهنده برد RFX2401C است که مدارهای سوئیچینگ PA، LNA و گیرنده ارسال را ترکیب می کند. این ماژول را قادر می سازد تا برد انتقال قابل توجهی تا 1000 متر را به دست آورد.
نکته : به جز این تفاوت، هر دو ماژول با قابلیت drop-in سازگار هستند. اگر پروژه خود را با یکی میسازید، میتوانید آن را از برق جدا کرده و بدون ایجاد تغییر در سیستم، از دیگری استفاده کنید.
PA و LNA دقیقا چیست؟
PA مخفف Power Amplifier است. این فقط سیگنالی را که توسط تراشه +nRF24L01 ارسال می شود تقویت می کند. LNA مخفف Low-Noise Amplifier است و وظیفه آن تقویت سیگنال بسیار ضعیف دریافتی از آنتن (معمولاً زیر میکروولت یا -100 dBm) تا سطح مفیدتر (معمولاً حدود 0.5 تا 1 ولت) است
تقویت کننده کم نویز مسیر دریافت (LNA) و تقویت کننده توان مسیر انتقال (PA) از طریق یک دوبلکسر به آنتن متصل می شوند که دو سیگنال را ایزوله می کند و از بارگذاری بیش از حد خروجی PA نسبتاً قدرتمند به ورودی حساس LNA جلوگیری می کند. برای اطلاعات بیشتر این مقاله را در digikey.com بخوانید .
ماژول nRF24L01+ چگونه کار می کند؟
فرکانس کانال RF
ماژول nRF24L01+ داده ها را در فرکانس خاصی که به عنوان کانال شناخته می شود، ارسال و دریافت می کند . برای اینکه دو یا چند ماژول با یکدیگر ارتباط برقرار کنند، باید در یک کانال باشند. این کانال می تواند هر فرکانسی در باند ISM 2.4 گیگاهرتز یا به طور دقیق تر، هر فرکانسی بین 2.400 تا 2.525 گیگاهرتز (2400 تا 2525 مگاهرتز) داشته باشد.
هر کانال کمتر از 1 مگاهرتز از پهنای باند را اشغال می کند. این به ما 125 کانال ممکن با فاصله 1 مگاهرتز می دهد.
این بدان معناست که nRF24L01+ می تواند در 125 کانال مختلف کار کند و به شما این امکان را می دهد که شبکه ای از 125 مودم مستقل را در یک مکان بسازید.
نکته: در نرخ دادههای هوایی 250 کیلوبیت بر ثانیه و 1 مگابیت بر ثانیه، هر کانال کمتر از 1 مگاهرتز از پهنای باند را اشغال میکند، بنابراین یک شکاف بین دو کانال 1 مگاهرتز وجود دارد. با این حال، برای سرعت داده هوا 2 مگابیت بر ثانیه، 2 مگاهرتز پهنای باند مورد نیاز است (بیشتر از وضوح تنظیم فرکانس کانال RF). بنابراین، در حالت 2 مگابیت بر ثانیه، فاصله 2 مگاهرتز را بین دو کانال حفظ کنید تا از عدم همپوشانی کانالها و کاهش مکالمه متقابل اطمینان حاصل کنید.
فرکانس کانال RF کانال انتخابی شما با استفاده از فرمول زیر محاسبه می شود:
به عنوان مثال، اگر کانال 108 را برای انتقال داده انتخاب کنید، فرکانس کانال RF 2508 مگاهرتز (2400 + 108) خواهد بود.
شبکه چند گیرنده nRF24L01+
nRF24L01+ دارای ویژگی معروف به Multiceiver است. مخفف Multi ple Transmitter Single Reiver می باشد.
در یک شبکه چند گیرنده، هر کانال RF به طور منطقی به شش کانال داده موازی به نام لوله های داده تقسیم می شود . به عبارت دیگر، لوله داده یکی از شش کانال منطقی در یک کانال فیزیکی RF است. هر لوله داده آدرس منحصر به فرد خود را دارد که به عنوان آدرس لوله داده شناخته می شود. فقط یک لوله داده می تواند یک بسته را در یک زمان دریافت کند.
یک شبکه چند گیرنده در زیر نشان داده شده است.
برای درک یک شبکه چند گیرنده، گیرنده اولیه را تصور کنید که به عنوان گیرنده هاب عمل می کند و داده ها را از شش گره فرستنده مختلف به طور همزمان جمع آوری می کند. گیرنده هاب می تواند در هر زمان از گوش دادن به انتقال تغییر کند.
پروتکل ShockBurst پیشرفته
nRF24L01+ از ساختار بسته ای به نام Enhanced ShockBurst استفاده می کند. دارای پنج فیلد است:
ساختار اصلی شوکبارست فقط دارای فیلدهای Preamble، Address، Payload و Cyclic Redundancy Check (CRC) بود. با معرفی Packet Control Field (PCF) ، Shockburst پیشرفته عملکردی را برای ارتباطات پیشرفتهتر اضافه کرد.
این ساختار جدید به چند دلیل عالی است.
- این برنامه از بارهای با طول متغیر با یک مشخص کننده طول بار پشتیبانی می کند و به بارهای قابل حمل از 1 تا 32 بایت امکان می دهد.
- به هر بسته ارسال شده یک شناسه بسته اختصاص داده می شود که به گیرنده اجازه می دهد تا تشخیص دهد که آیا پیام جدید است یا ارسال مجدد شده است.
- هر پیام حاوی فیلدی است که از گیرنده میخواهد تأییدیه ارسال کند.
nRF24L01 + کنترل خودکار بسته ها
برای درک بهتر نحوه تعامل دو ماژول nRF24L01+ با یکدیگر، سه سناریو را مرور می کنیم.
- معامله با تاییدیه:این یک نمونه از یک سناریوی مثبت است. در این حالت فرستنده با ارسال یک بسته داده به گیرنده ارتباط را آغاز می کند. پس از ارسال بسته، فرستنده تقریباً 130 میکرو ثانیه منتظر می ماند تا تأییدیه (ACK) برسد. گیرنده پس از دریافت موفقیت آمیز بسته، ACK را ارسال می کند. هنگامی که فرستنده ACK را دریافت کرد، تراکنش پایان می یابد.
- تراکنش با یک بسته داده گم شده:
این یک سناریوی منفی است که در آن به دلیل از دست دادن بسته نیاز به ارسال مجدد است. فرستنده پس از ارسال بسته منتظر ACK می شود.
اگر فرستنده آن را در مدت زمان تأخیر ارسال مجدد خودکار (ARD) دریافت نکند، بسته مجددا ارسال می شود. هنگامی که گیرنده بسته ارسال مجدد را دریافت می کند، ACK را ارسال می کند که تراکنش را پایان می دهد.
- تراکنش با تأیید گمشده:این یکی دیگر از سناریوهای منفی است که در آن به دلیل از بین رفتن ACK نیاز به ارسال مجدد است. از آنجا که فرستنده ACK را دریافت نکرده است، معتقد است که بسته گم شده است (حتی اگر گیرنده بسته را در اولین تلاش دریافت کرده است).در نتیجه، فرستنده بسته را پس از وقفه زمانی Auto-Retransmit-Delay مجددا ارسال می کند. هنگامی که گیرنده بسته ای را با همان شناسه قبلی دریافت می کند، آن را دور انداخته و دوباره ACK را ارسال می کند. هنگامی که فرستنده ACK را دریافت کرد، تراکنش پایان می یابد.
تراشه nRF24L01+ کل فرآیند انتقال بسته را بدون دخالت میکروکنترلر انجام می دهد.
پین اوت ماژول nRF24L01+
بیایید نگاهی به پینآوتهای هر دو ماژول nRF24L01+ بیاندازیم.
GNDپین زمین است. دارای یک علامت مربع برای تشخیص آن از سایر پین ها.
VCCبرق ماژول را تامین می کند. می تواند از 1.9 تا 3.9 ولت متغیر باشد. می توانید آن را به خروجی 3.3 ولت آردوینو متصل کنید. لطفاً به خاطر داشته باشید که اتصال آن به پین 5 ولت به احتمال زیاد به ماژول nRF24L01+ شما آسیب می رساند.
CE (فعال کردن تراشه)یک پین فعال-بالا است. وقتی فعال باشد، nRF24L01 بسته به حالت، ارسال یا دریافت می کند.
CSN (Chip Select Not)یک پین فعال-پایین است که معمولاً HIGH نگه داشته می شود. وقتی این پین پایین میآید، nRF24L01 شروع به گوش دادن به دادهها در پورت SPI خود میکند و آنها را بر اساس آن پردازش میکند.
SCK (ساعت سریال)پالس های ساعت را از استاد باس SPI می پذیرد.
MOSI (Master Out Slave In)ورودی SPI برای nRF24L01 است.
MISO (Master In Slave Out)خروجی SPI nRF24L01 است.
IRQیک پین وقفه است که می تواند در صورت وجود داده های جدید برای پردازش، به Master اطلاع دهد.
سیم کشی ماژول nRF24L01+ به آردوینو
اکنون که همه چیز را در مورد نحوه عملکرد ماژول nRF24L01+ می دانیم، می توانیم آن را به آردوینو متصل کنیم.
برای شروع، پایه VCC ماژول را به 3.3 ولت آردوینو و پایه GND را به زمین وصل کنید. پین های CSN و CE را می توان به هر پین دیجیتالی در آردوینو متصل کرد. در مورد ما، آنها به پین های دیجیتال #8 و #9 متصل می شوند.
بیایید پین های SPI را سیم کشی کنیم. توجه داشته باشید که هر برد آردوینو دارای یک مجموعه منحصربهفرد از پینهای SPI است که باید بر اساس آن متصل شوند. برای بردهای آردوینو مانند UNO/Nano V3.0، این پین ها دیجیتال 13 (SCK)، 12 (MISO)، 11 (MOSI) و 10 (SS) هستند.
اگر از برد آردوینو دیگری استفاده میکنید، قبل از ادامه، اسناد رسمی مکانهای پین SPI را بررسی کنید .
به یاد داشته باشید، شما باید دو چنین مدار بسازید. یکی به عنوان فرستنده و دیگری به عنوان گیرنده عمل خواهد کرد. هر دو سیم کشی یکسانی دارند.
وقتی همه چیز را وصل کردید، آماده رفتن هستید!
نصب کتابخانه
کتابخانه های زیادی برای ماژول nRF24L01+ موجود است، اما یکی از محبوب ترین آنها RF24 است . این کتابخانه مدت زیادی است که وجود داشته است. استفاده از آن برای مبتدیان ساده است در حالی که هنوز هم برای کاربران پیشرفته چیزهای زیادی فراهم می کند. ما از این کتابخانه در مثال های خود استفاده خواهیم کرد.
برای نصب کتابخانه، به Sketch > Include Library > Manage Libraries بروید… منتظر بمانید تا مدیر کتابخانه فهرست کتابخانه را دانلود کند و لیست کتابخانه های نصب شده را به روز کند.
جستجوی خود را با وارد کردن ” rf24 ” فیلتر کنید. به دنبال کتابخانه توسط TmRh20 بگردید . روی آن ورودی کلیک کنید و سپس Install را انتخاب کنید.
کد مثال آردوینو – برای فرستنده
مثالهای زیر نحوه راهاندازی یک پیوند ساده یک طرفه بین فرستنده و گیرنده را نشان میدهند. فرستنده به سادگی یک پیام سنتی “Hello World” را به گیرنده می فرستد، که آن را در پنجره نمایشگر سریال نمایش می دهد.
این کدی است که ما برای فرستنده خود استفاده خواهیم کرد.
//Include Libraries
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
//create an RF24 object
RF24 radio(9, 8); // CE, CSN
//address through which two modules communicate.
const byte address[6] = "00001";
void setup()
{
radio.begin();
//set the address
radio.openWritingPipe(address);
//Set module as transmitter
radio.stopListening();
}
void loop()
{
//Send message to receiver
const char text[] = "Hello World";
radio.write(&text, sizeof(text));
delay(1000);
}
توضیح کد
طرح با گنجاندن کتابخانه های لازم آغاز می شود. کتابخانه SPI.h ارتباطات SPI را مدیریت می کند، در حالی که کتابخانه های nRF24L01.h و RF24.h ماژول را کنترل می کنند.
//Include Libraries
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
سپس یک شی RF24 ایجاد می کنیم. سازنده این شی دو عدد پین را به عنوان آرگومان می پذیرد که سیگنال های CE و CSN به آنها متصل می شوند.
//create an RF24 object
RF24 radio(9, 8); // CE, CSN
در مرحله بعد، یک آرایه بایت برای ذخیره آدرس لوله مورد استفاده دو ماژول nRF24L01+ برای برقراری ارتباط ایجاد می کنیم.
//address through which two modules communicate.
const byte address[6] = "00001";
آدرس لوله نباید “00001” باشد، اما می تواند هر رشته 5 کاراکتری مانند “node1” باشد. به سادگی اطمینان حاصل کنید که فرستنده و گیرنده هر دو از یک آدرس استفاده می کنند.
با یک آدرس لوله، می توانید یک ماژول خاص را در شبکه خود انتخاب کنید و با آن ارتباط برقرار کنید. اگر شبکه شما دارای چندین ماژول باشد، این کار مفید است.
در بخش setup از begin()
تابع برای مقداردهی اولیه شی رادیو و به دنبال آن openWritingPipe()
تابع تنظیم آدرس فرستنده استفاده می کنیم.
radio.begin();
//set the address
radio.openWritingPipe(address);
در نهایت از stopListening()
تابع برای تنظیم ماژول به عنوان فرستنده استفاده می کنیم.
//Set module as transmitter
radio.stopListening();
در بخش حلقه، ابتدا یک آرایه از کاراکترها ایجاد می کنیم و پیام Hello world را در آن ذخیره می کنیم.
ما از write()
تابع برای ارسال پیام به گیرنده استفاده می کنیم. این تابع دو آرگومان می گیرد: پیامی که باید ارسال شود و تعداد بایت هایی که در آن وجود دارد.
const char text[] = "Hello World";
radio.write(&text, sizeof(text));
مهم است که توجه داشته باشید که می توانید پیام هایی با طول حداکثر 32 بایت ارسال کنید، زیرا این حداکثر اندازه بسته ای است که nRF24L01+ می تواند مدیریت کند.
این write()
تابع یک مقدار bool را برمیگرداند که میتوانید از آن برای بررسی اینکه آیا دادهها به درستی توسط گیرنده دریافت شده است یا خیر استفاده کنید. وقتی داده ها به گیرنده می رسند، TRUE را برمی گرداند. در غیر این صورت، FALSE را برمی گرداند.
همچنین، توجه به این نکته مهم است که این write()
تابع برنامه را تا زمانی که یک تأییدیه دریافت کند یا تمام تلاشهای ارسال مجدد را تمام کند، متوقف میکند.
کد مثال آردوینو – برای گیرنده
این کدی است که ما برای گیرنده خود استفاده خواهیم کرد.
//Include Libraries
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
//create an RF24 object
RF24 radio(9, 8); // CE, CSN
//address through which two modules communicate.
const byte address[6] = "00001";
void setup()
{
while (!Serial);
Serial.begin(9600);
radio.begin();
//set the address
radio.openReadingPipe(0, address);
//Set module as receiver
radio.startListening();
}
void loop()
{
//Read the data if available in buffer
if (radio.available())
{
char text[32] = {0};
radio.read(&text, sizeof(text));
Serial.println(text);
}
}
توضیح کد
به جز چند تغییر، این کد بسیار شبیه به کد فرستنده است.
در ابتدای تابع راه اندازی، ارتباط سریال را آغاز می کنیم. سپس با استفاده از openReadingPipe()
تابع، همان آدرس لوله را به عنوان فرستنده تنظیم می کنیم. این امر فرستنده و گیرنده را قادر می سازد تا با یکدیگر ارتباط برقرار کنند.
اولین آرگومان تابع openReadingPipe()
مشخص می کند که کدام لوله برای خواندن باز شود. از آنجایی که حداکثر شش لوله را می توان همزمان برای خواندن باز کرد، محدوده احتمالی 0-5 است. در مورد ما، لوله 0 برای خواندن باز شد. آرگومان دوم آدرس 40 بیتی لوله ای است که باید باز شود.
//set the address
radio.openReadingPipe(0, address);
پس از آن، ماژول را به عنوان یک گیرنده پیکربندی می کنیم و شروع به دریافت داده می کنیم. ما از startListening()
تابع برای انجام این کار استفاده می کنیم.
//Set module as receiver
radio.startListening();
این available()
روش در بخش حلقه برای بررسی اینکه آیا دادهای برای خواندن در دسترس است یا خیر استفاده میشود. این روش در صورت موجود بودن داده، TRUE و در غیر این صورت FALSE را برمیگرداند.
if (radio.available())
{
char text[32] = {0};
radio.read(&text, sizeof(text));
Serial.println(text);
}
هنگامی که داده در دسترس است، آرایه ای از 32 کاراکتر پر از صفر برای ذخیره آن ایجاد می شود. سپس داده ها از بافر خوانده می شوند و با استفاده از read(&text, sizeof(text))
روش در آرایه کاراکتر ما ذخیره می شوند.
در نهایت پیام دریافتی بر روی مانیتور سریال چاپ می شود. اگر همه چیز خوب است، مانیتور سریال شما باید به این شکل باشد.
راه هایی برای بهبود برد ماژول nRF24L01+
یک پارامتر کلیدی برای یک سیستم ارتباطی بی سیم محدوده ارتباطی است. این اغلب هنگام انتخاب راه حل RF عامل تعیین کننده است. بنابراین بیایید در مورد آنچه که می توانیم برای بهبود دامنه ماژول خود انجام دهیم صحبت کنیم.
نویز منبع تغذیه را کاهش دهید
مداری که سیگنال فرکانس رادیویی (RF) تولید می کند به نویز منبع تغذیه بسیار حساس است. سر و صدای منبع تغذیه، اگر کنترل نشود، می تواند به طور قابل توجهی محدوده ای را که می توانید به دست آورید کاهش دهد.
مگر اینکه منبع تغذیه یک باتری مستقل باشد، احتمال زیادی وجود دارد که خروجی برق نویز داشته باشد. برای جلوگیری از ورود این نویز به سیستم، توصیه می شود که یک خازن فیلتر 10 میکروفن در سراسر خط منبع تغذیه تا حد امکان نزدیک به ماژول nRF24L01+ قرار داده شود.
ساده ترین راه برای کاهش صدای منبع تغذیه استفاده از یک آداپتور ارزان قیمت برای ماژول nRF24L01+ است.
این آداپتور دارای یک کانکتور مادگی 8 پین است که می توانید ماژول nRF24L01+ خود را وصل کنید. می تواند هر دو نسخه ماژول nRF24L01+ را در خود جای دهد، یکی با آنتن یکپارچه و دیگری با آنتن خارجی (PA/LNA).
همچنین دارای یک کانکتور 2 پین برای ورودی برق و یک کانکتور نر 6 پین برای اتصالات SPI و وقفه است.
از آنجایی که آداپتور دارای یک تنظیم کننده ولتاژ 3.3 ولت داخلی و خازن های فیلتر است، می توانید با خیال راحت آن را با منبع تغذیه 5 ولت تغذیه کنید.
فرکانس کانال را تغییر دهید
محیط خارجی همچنین می تواند منبع نویز برای مدارهای RF باشد، به خصوص اگر شبکه های همسایه روی یک کانال تنظیم شده باشند.
از آنجایی که وایفای عمدتاً از کانالهای فرکانس پایینتر استفاده میکند، توصیه میشود برای جلوگیری از تداخل این سیگنالها، از بالاترین 25 کانال nRF24L01+ خود استفاده کنید.
از نرخ داده کمتر استفاده کنید
با سرعت 250 کیلوبیت بر ثانیه، nRF24L01+ بالاترین حساسیت گیرنده -94dBm را دارد. با این حال، در سرعت داده 2 مگابایت در ثانیه، حساسیت گیرنده به -82dBm کاهش می یابد. یعنی در 250 کیلوبیت بر ثانیه، گیرنده تقریباً ده برابر حساس تر از 2 مگابیت در ثانیه است و به آن اجازه می دهد تا سیگنال های ضعیف تر را ده برابر رمزگشایی کند.
در نتیجه، کاهش نرخ داده می تواند به طور قابل توجهی محدوده ای را که می توانید به دست آورید بهبود بخشد. به علاوه، سرعت 250 کیلوبیت در ثانیه برای اکثر پروژه های ما کافی است.
حساسیت گیرنده (Rx) به چه معناست؟
حساسیت گیرنده حداقل سطح توانی است که گیرنده می تواند سیگنال RF را در آن تشخیص دهد. هر چه قدر مطلق یک عدد منفی بیشتر باشد، حساسیت گیرنده بیشتر است. برای مثال، حساسیت گیرنده 94-dBm، 12dB از حساسیت گیرنده 82-dBm بهتر است.
استفاده از توان خروجی بالاتر
تنظیم حداکثر توان خروجی نیز می تواند به گسترش دامنه ارتباط کمک کند. nRF24L01+ از انواع سطوح توان خروجی، از جمله 0dBm، -6dBm، -12dBm و -18dBm پشتیبانی می کند. انتخاب توان خروجی 0dBm سیگنال های قوی تری را به هوا ارسال می کند اما انرژی بیشتری مصرف می کند.
ترجمه از https://lastminuteengineers.com/nrf24l01-arduino-wireless-communication/
آخرین دیدگاهها