راه اندازی یک ارتباط رادیویی با NRF24l01 و آردوینو

مقدمه

امروزه برقراری ارتباط بیسیم و ساخت یک شبکه بیسیم برای تبادل اطلاعات و نیز پروژه های IOT اهمیت بسیار بالایی دارد. در این آموزش نحوه برقراری یک ارتباط بیسیم بین دو بورد آردوینو و ساخت یک شبکه با استفاده از ماژول NRF24L01 را خواهید آموخت.

آنچه در این آموزش یاد می گیرید

  • ماژول NRF24l01 چیست و چگونه کار می کند؟
  • اتصال دو بورد آردوینو به یکدیگر و ایجاد یک ارتباط بیسیم
  • ایجاد شبکه ای از ماژول های NRF

ماژول NRF24L01 چیست و چگونه کار می کند؟

راه های مختلفی برای ایجاد یک ارتباط بیسیم از جمله بلوتوث، – وای فای و … وجود دارد، یکی از روش های ارزان قیمت و ساده و درعین حال موثر استفاده از ماژول NRF24L01 می باشد.

ماژول NRF24L01 یک ماژول فرستنده و گیرنده (Transceiver) است یعنی می تواند اطلاعات را ارسال و نیز دریافت کند. این ماژول در فرکانس 2.4 گیگاهرتز و مدولاسیون GFSK کار می کند و قادر است در فضای آزاد داده ها را تا حداکثر سرعت 2Mbps و برد 100 متر (برای مدل های دارای آنتن خارجی تا 1 کیلومتر) انتقال دهد.

parameter ResponseTypical value
Working voltage 3.3 v
Current usage in send mode 11.3 mA
Current usage in receive mode 12.3 mA
Current usage in sleep mode 900 nA
Temareture range-40 to +85 C
price2.5 $

از ویژگی های مثبت این ماژول قابلیت ایجاد شبکه است، هر ماژول NRF می تواند به 6 ماژول NRF دیگر متصل گردد.

بنابراین قیمت مناسب، راحتی استفاده، ابعاد کوچک، قابلیت شبکه سازی، بورد بالا و سرعت انتقال داده مناسب ماژول NRF24l01 را به گزینه خوبی برای پروژهای بیسیم و IOT تبدیل کرده است.

ماژول NRF24L01 از طریق پروتکل SPI با میکروکنترلر ارتباط برقرار می کند و دارای 8 پایه می باشد:

PinOperation
GNDCircuit ground
VccCircuit supply voltage(3.3V)
CEChip Enable
CSNSPI Chip Select
SCKConnection CLK
MOSIReceiving data from Master
MISOSending data to Master
IRQIntrupt pin

اتصال دو بورد آردوینو به یک دیگر و ایجاد ارتباط بیسیم

برای ارتباط دو بورد آردینو به یکدیگر نیاز به دو ماژول NRF24L01 داریم، یکی را به عنوان مستر و دیگری را به عنوان اسلیو در نظر می گیریم. در این مثال با استفاده از یک ولوم در سمت مستر، سروو موتور سمت اسلیو را کنترل می کنیم.

لوازمی که به آن احتیاج دارید

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

آردوینو UNO R3 × 2
ماژول انتقال بیسیم اطلاعات +NRF24L01 × 2

نرم افزار های مورد نیاز

Arduino IDE

سیم بندی

اتصالات مستر و اسلیو را بصورت برقرار کنید.

پایه های CSN و CE می توانند به هر پایه دیجیتالی متصل شوند.

پایه های SPI ماژول باید به پایه های SPI بورد متصل گردند.

کد

برای استفاده از ماژول NRF24L01 با آردوینو از کتابخانه RF24 استفاده می کنیم، می توانید این کتابخانه را از لینک زیر دانلود کنید.

دانلود کتابخانه RF24

دقت داشته باشید برای برقراری ارتباط به دو برنامه مجزا برای مستر و اسلیو نیاز خواهید داشت.

مستر

کد زیر را بر روی یکی از دو بورد آردوینوی خود آپلود کنید.

اسلیو

کد زیر را برروی آردوینو دیگر خود آپلود کنید.


بگذارید نگاهی جزئی تر به کد استفاده شده در این مثال بیاندازیم:


شی(Object) لازم برای ماژول را با مشخص کردن پایه های CS و CSN می سازد.


تعیین آدرس برای نودها، دقت داشته باشید برای برقراری ارتباط، آدرس فرستنده و گیرنده باید یکسان باشد.


گیرنده را برای فرستنده تعیین می کند.


فرستنده را برای گیرنده تعیین می کند.


مقدار توان مصرفی را برای ماژول مشخص می کند، این مقدار باید با توجه به فاصله فرستنده و گیرنده از یکدیگر تعیین گردد.


ماژول را در مد فرستنده قرار می دهد.


ماژول را در مد گیرنده قرار می دهد.


داده را با تعیین کردن اندازه آن، ارسال می کند.


در صورت دریافت داده ای در گیرنده، مقدار 1 را برمی گرداند.


داده را با تعیین کردن اندازه آن دریافت کرده و در متغیر data ذخیره می کند.

ایجاد شبکه ای از ماژول های NRF

با استفاده از ماژول NRF24L01 می توانید شبکه ای بیسیم درست کرده و اطلاعات را در شبکه خود جا به جا کنید.

در این مثال می خواهیم با ایجاد یک شبکه با سه اسلیو، براساس داده دما، مقدار ولوم و وضعیت کلید که از مستر ارسال می شود، در اسلیوها عملیاتی خاص انجام دهیم.

برای ساخت شبکه دو روش وجود دارد، روش ساده تر این است که مانند مثال قبل عمل کرده و حداکثر 6 آدرس مجزا تعریف کنیم تا اطلاعات را از طریق 6 اسلیو به مستر ارسال کنیم.

در روش دوم، از روش درختی برای شبکه سازی استفاده می شود درنتیجه مستر اصلی تنها با زیر مجموعه خود در ارتباط است و هر زیرمجموعه بصورت درختی گسترش پیدا می کند درنتیجه می توانیم شبکه ای شامل حداکثر 3125 ماژول NRF24L01 بسازیم بنابراین این روش از روش اول موثرتر است.

سیم بندی

کد

برای استفاده از این روش باید از کتابخانه RF24Network استفاده کنید، می توانید این کتابخانه را از لینک زیر دانلود کنید:
دانلود کتابخانه RF24Network

مستر


Node01 

Node02


Node03

یک گام جلوتر

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

Share this post

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

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