برقراری یک ارتباط بیسیم با 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

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

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

برد آردوینو UNO × 2
ماژول NRF24L01 × 2

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

Arduino IDE

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

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

 

سیم بندی

نکته

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

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

کد

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

کتابخانه RF24

 

نکته:

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

Master 

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

Slave

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


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


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


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


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


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


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


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


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


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


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


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

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

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

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

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

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

سیم بندی

کد

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

کتابخانه RF24Network

Master 


Node01 


Node02


Node03

یک گام جلوتر

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

Share this post

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

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