تراشه nRF24L01 انتخاب مناسب برای ارسال و دریافت اطلاعات بدون خطا است چیزی که در ماژول های HMTR یا حتی در RFMXX ها یا به کلی وجود نداشت یا این که مشکلات خاص خود را داشت. مدولاسیون ارتباطی ماژول فرستنده گیرنده NRF24L01 به صورت GFSK است , همان مدولاسیونی که در تکنولوژی BLUETOOTH استفاده شده و به صورت انحصاری در دست چند شرکت بزرگ مثل BLUETOOTH و NORDIC SEMICONDUCTOR و TEXAS INSTRUMENT و چند شرکت دیگر قرار دارد. فرکانس ارتباطی ماژول فرستنده گیرنده NRF24L01 2.4 گیگا هرتز است که این خاصیت آن ویژگی های زیادی را برای ما به ارمغان می آورد ! از جمله کوچک شدن سایز آنتن که حتی میتوان از خود PCB به صورت یک آنتن استفاده کرد , مورد دیگر هم به دلیل فرکانس بالا بسیار راحت تر از دیوار یا اجسام دیگر عبور می کند و با عث می شود که برد بیشتری هم به ما بدهد , می توانید فرکانس RFM12 یا HMTR را با این چیپ مقایسه کنید ! می بینید که فرکانس این سری از ماژول ها حداقل چند برابر آن ها است. ماژول فرستنده گیرنده NRF24L01 به صورت دو طرفه کار می کند و در کل شما فقط به 2 عدد از این چیپ ها برای ارتباط لازم دارید (مشابه RDM12) دیتا ریت این چیپ حداکثر 2 مگا بیت بر ثانیه است که می توان از آن برای انتقال اطلاعات سنگینی مشابه صوت و یا حتی ویدئو استفاده کرد. وجود یک طبقه تقویت کننده بر روی ماژول فرستنده گیرنده NRF24L01 و وجود آنتن باعث گشته تا برد ماژول به طرز چشمگیری افزایش یابد.
ویژگیهای nRF24L01
ماژول NRF24L01 یک ماژول بیسیم کوچک و قدرتمند است که برای ارتباطات بیسیم در فواصل کوتاه و بلند استفاده میشود. این ماژول بر اساس تکنولوژی RF (Radio Frequency) کار میکند و برای ارسال و دریافت دادهها در فرکانس 2.4 گیگاهرتز (GHz) استفاده میشود. در ادامه برخی از ویژگیهای این ماژول را معرفی میکنیم.
- فرکانس عملیاتی: این ماژول در فرکانس 2.4 گیگاهرتز فعالیت میکند، که متعلق به باند ISM است. این باند برای استفاده عمومی در بسیاری از کشورها مجاز است و برای ارتباطات بیسیم شناخته شده است.
- قدرت خروجی: ماژول NRF24L01 قدرت خروجی قابل تنظیمی دارد که امکان انتقال دادهها در فاصلههای مختلف را فراهم میکند. با تنظیم قدرت خروجی، میتوانید بین برد کوتاه و برد بلند مدت تنظیم کنید.
- سرعت انتقال داده: ماژول NRF24L01 قابلیت ارسال و دریافت دادهها با سرعت بالا را دارد. بسته به تنظیمات و حالتهای مختلف، میتواند سرعت انتقال دادهها را تا حدود 2 مگابیت در ثانیه (Mbps) داشته باشد.
- آنتن: ماژول دارای آنتن چیپی مدمج است که امکان انتقال و دریافت سیگنالها را فراهم میکند. برخی نسخههای ماژول امکان اتصال آنتن خارجی را نیز دارند. مشابه همین کالا که از نوع PA+LNA است.
- پروتکل ارتباطی: ماژول NRF24L01 از پروتکل ارتباطی مبتنی بر SPI (Serial Peripheral Interface) برای ارتباط با میکروکنترلر یا سایر دستگاهها استفاده میکند. این پروتکل امکان ارتباط دوطرفه و تبادل دادههای دیجیتال را فراهم میکند.
- قابلیت شبکهبندی: با استفاده از ماژول NRF24L01، میتوان شبکههای بیسیم را با چندین دستگاه متصل به یکدیگر ایجاد کرد. این قابلیت امکان ارسال دادهها بین دستگاههای مختلف را فراهم میکند.
در کل، ماژول NRF24L01 یک گزینه مناسب برای ارتباطات بیسیم در فواصل کوتاه و بلند است و به عنوان یک ماژول کارآمد و پرکاربرد در پروژههای الکترونیکی استفاده میشود.
پایههای PinOut در ماژول فرستنده گیرنده nRF24L01
پایههای خروجی یا همان Pinout روی برد به صورت چاپ شده قرار دارند. کافیست طبق همان موارد اقدام به بررسی و اتصال پایههای ماژول nRF24L01 به آردوینو یا میکروکنترلر مورد نظرتان کنید. بردهای NRF نسخههای متنوعی دارند به همین دلیل هر کدام تفاوتهایی در پایههای PinOut دارند. برای تشخیص هم بایستی از چاپ راهنمای رو برد استفاده کرد. هم بایستی به دیتاشیت ماژول مراجعه کرد. این تراشهها به علت کوچک بودن و قیمت اقتصادی در پروژههای بسیاری از جمله خانه هوشمند و یا هوشمند سازی صنعتی کاربرد دارند. معمولترین روش برای شناخت پایههای GPIO برد nRF24L01 مراجعه به دیتاشیت تراشه و یا تصاویر شماتیک آن است. این موضوع کاملا فنی مهندسی است و برای راه اندازی تراشه و یا طراحی مدار کاربردی است. به صورت پیش فرض ماژول NRF24L01 از پروتکل SPI برای برقراری ارتباط استفاده میکند.
ویژگی های خاص ماژول nRF24L01
- طبقه تقویت کننده گیرنده و فرستنده داخلی
- حداکثر دیتاریت تا 2 مگابیت بر ثانیه در فضای باز
- جریان مصرفی بسیار پایین (12 میلی آمپر)
- دارای رگولاتور داخلی و بی نیاز از تأمین ولتاژ های مختلف
- مجهز به تکنولوژِی پیشرفته SHOCKBURST
- قابلیت اتصال چند ماژول به هم از طریق بی سیم و ایجاد یک شبکه محلی
- قابلیت تحمل ولتاژ 5 ولت بر روی پین های دیتا
- سایز کوچک چیپ و نیاز به قطعات خارجی کم
به همراه ماژول nRF24L01 چه اقلامی باید خریداری شود؟
برای استفاده از ماژول NRF24L01، علاوه بر خود ماژول، باید برخی کالاهای دیگر را نیز خریداری کنید تا بتوانید به درستی از آن استفاده کنید.
1- میکروکنترلر: برای کنترل و ارتباط با ماژول NRF24L01، نیاز به یک میکروکنترلر مانند Arduino، Raspberry Pi، STM32 و غیره دارید. بسته به نیاز و ترجیح شما میتوانید یک میکروکنترلر مناسب انتخاب کنید.
2- برد توسعه: برای برنامهنویسی و آزمایشهای اولیه، میتوانید از یک برد توسعه مرتبط با میکروکنترلر خود استفاده کنید. بردهایی مانند Arduino Uno، Arduino Nano، STM32 Nucleo و Raspberry Pi میتوانند گزینههای مناسبی باشند.
3- منبع تغذیه: برای تامین تغذیه ماژول NRF24L01 و میکروکنترلر، به یک منبع تغذیه مناسب نیاز دارید. این ممکن است شامل باتریها، آداپتورها، سیمها و غیره باشد.
4- آنتن: برخی نسخههای ماژول NRF24L01 دارای آنتن چیپی مدمچ هستند. اما در صورت نیاز به برد بیشتر، ممکن است نیاز به آنتن خارجی باشید. در این صورت، باید یک آنتن بیرونی مناسب با همخوانی با ماژول NRF24L01 را خریداری کنید.
5- سیمها و کانکتورها: برای اتصال ماژول NRF24L01 به میکروکنترلر و دیگر اجزای مدار، ممکن است به سیمها و کانکتورهای مناسب نیاز داشته باشید. به عنوان مثال، سیمهای جامپر و کابلهای SPI برای ارتباط با میکروکنترلر میتوانند مورد نیاز باشند.
همچنین، برای توسعه و برنامهریزی، ممکن است نیاز به نرمافزارها و کتابخانههای مرتبط با میکروکنترلر خود داشته باشید. بسته به میکروکنترلر انتخابی، نرمافزارها و کتابخانههای متفاوتی وجود دارند که شما میتوانید از آنها برای توسعه برنامههای خود استفاده کنید. لطفاً توجه داشته باشید که اقلام اشاره شده فقط شامل کالاهای عمومی است و بهتر است مطابق با نیازهای خود و میکروکنترلر انتخابی، کالاهای مورد نیاز خود را بررسی و تهیه کنید.
تفاوت ماژول nRF24L01 و ماژول nRF24L01+PA+LNA چیست؟
پیش از هرچیزی لازم است بدانید که ماژولهای nRF24L01 دارای مدلهای متنوعی هستند. ولی دو مدل بسیار کاربردی از این مدل، nRF24L01 بدون آنتن و nRF24L01+PA/LNA است که مدل دومی دارای آنتن و برد مسافتی بالاتری است. مدل اولی که کوچکتر است دارای آنتن داخلی و روبردی است. ابعاد بسیار کوچکتر و مصافت ارسال کمتری دارد. در فضای باز تا 100 متر قابلیت ارسال دادهها را دارد. در فضاهای سربسته و ساختمانها این مصافت بسیار کمتر خواهد بود. و اما مدل دوم که بزرگتر بوده و دارای آنتن است. تفاوت عمدهای که دارد در استفاده از تراشه RFX2401C است. به ظاهر پورت SMA روی برد و قابلیت نصب آنتن آن، تفاوت عمده است. ولی تفاوت مهم این دو برد در دارا بودن تراشه RFX2401C که یک تقویت کننده فرستنده در باند ISM است. این تراشه در کنار استفاده از آنتن 2.4GHz قابلیت ارسال دادهها تا مصافت 1000 متر را فراهم میکند. مجددا این مصافت هم در فضای باز و شرایط استاندارد تعریف میشود. در فضای بسته و ساختمانی چنین مصافتی دست یافتنی نخواهد بود.
راه اندازی برد nRF24L01 با آردوینو
اتصال سختافزاری:
اتصال VCC ماژول NRF24L01 به منبع تغذیه 3.3 ولت
اتصال GND ماژول NRF24L01 به مرجع زمین (GND) آردوینو
اتصال سیگنال CE ماژول NRF24L01 به پین دلخواهی روی آردوینو (مثلاً پین 9)
اتصال سیگنال CSN ماژول NRF24L01 به پین دلخواهی روی آردوینو (مثلاً پین 10)
اتصال سیگنال SCK ماژول NRF24L01 به پین SCK (پین 13) آردوینو
اتصال سیگنال MOSI ماژول NRF24L01 به پین MOSI (پین 11) آردوینو
اتصال سیگنال MISO ماژول NRF24L01 به پین MISO (پین 12) آردوینو
نصب کتابخانه:
در نرمافزار آردوینو، برای استفاده از ماژول NRF24L01، باید کتابخانه RF24 را نصب کنید. برای این کار، به قسمت "مدیریت کتابخانهها" بروید، جستجوی "RF24" را انجام دهید و کتابخانه RF24 را نصب کنید.
کد برنامه:
در نرمافزار آردوینو، یک برنامه جدید ایجاد کنید. در بالای کد، با استفاده از دستور #include <RF24.h>، کتابخانه RF24 را وارد کنید. سپس، شیء RF24 را مطابق دستور RF24 radio(9, 10); ایجاد کنید. در تابع setup()، ماژول را آمادهٔ استفاده کنید.
void setup() {
radio.begin();
radio.openWritingPipe(0xF0F0F0F0E1LL); // آدرس فرستنده را در اینجا تعیین کنید
}
در تابع loop()، دادههایی را که میخواهید ارسال کنید، ارسال کنید:
void loop() {
char text[] = "Hello, World!"; // متنی که میخواهید ارسال کنید
radio.write(&text, sizeof(text));
delay(1000); // تاخیر یک ثانیه بین هر ارسال
}
برنامه را بر روی آردوینو آپلود کنید و نتیجه را بررسی کنید. این تنظیمات و کد نمونه به عنوان یک مثال اولیه برای راهاندازی ماژول NRF24L01 با آردوینو است. با توجه به نیازهای خود، میتوانید تنظیمات و کد را سفارشی کنید و از قابلیتهای پیشرفتهتر ماژول NRF24L01 بهرهبرداری کنید.
#include <SPI.h>
#include <RF24.h>
RF24 radio(9, 10); // پین CE و CSN ماژول NRF24L01 را در اینجا تعیین کنید
void setup() {
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(0xF0F0F0F0E1LL); // آدرس فرستنده را در اینجا تعیین کنید
}
void loop() {
char text[] = "Hello, World!"; // متنی که میخواهید ارسال کنید
radio.write(&text, sizeof(text));
Serial.println("Sent: " + String(text));
delay(1000); // تاخیر یک ثانیه بین هر ارسال
}
لطفاً توجه داشته باشید که قبل از اجرای کد، مطمئن شوید کتابخانه RF24 را در نرمافزار آردوینو نصب کردهاید. همچنین، قبل از اتصال ماژول NRF24L01 به آردوینو، اتصالات سختافزاری را مطابق با توضیحات قبلی بررسی کنید. پس از آپلود کد به آردوینو و اجرای آن، متن "Hello, World!" به عنوان یک پیام ارسال میشود. این پیام را میتوانید از طریق سریال مانیتور دریافت کنید و تأیید کنید که ارسال با موفقیت انجام شده است. لطفاً توجه داشته باشید که این نمونه کد تنها برای فرستنده است و برای دریافت پیامها توسط یک ماژول NRF24L01 دیگر، باید کد مشابهی بر روی ماژول دریافتکننده نصب شود.
راه اندازی nRF24L01 با میکروپایتون
برای راهاندازی ماژول NRF24L01 با میکروپایتون، میتوانید از کتابخانه RF24 برای ارتباط با ماژول استفاده کنید. در زیر مراحل راهاندازی را برای میکروپایتون توضیح میدهیم. ابتدا باید کتابخانه RF24 را بر روی سیستم خود نصب کنید. برای نصب کتابخانه RF24، میتوانید از مدیر بسته pip استفاده کنید. در خط فرمان، دستور pip install nrf24 را اجرا کنید. سپس میتوانید کد برنامه را در میکروپایتون تایپ کنید. در ادامه یک نمونه کد برای فرستنده با استفاده از ماژول NRF24L01 را میتوانید بررسی کنید.
from nrf24 import NRF24
radio = NRF24()
radio.begin(0, 0, 25, 24) # پین CE و CSN ماژول NRF24L01 را در اینجا تعیین کنید
radio.openWritingPipe(b'address') # آدرس فرستنده را در اینجا تعیین کنید
message = "Hello, World!" # متنی که میخواهید ارسال کنید
radio.write(message.encode('utf-8'))
در این کد، ابتدا کتابخانه NRF24 را وارد میکنیم و یک شیء رادیو NRF24 ایجاد میکنیم. سپس با استفاده از متد begin()، ماژول NRF24L01 را آماده به کار میکنیم و با استفاده از متد openWritingPipe()، آدرس فرستنده را تعیین میکنیم. در ادامه، پیام مورد نظر را با استفاده از متد write() ارسال میکنیم. برای اجرای برنامه ابتدا بایستی کد برنامه را در یک فایل با پسوند .py ذخیره کنید. مانند nrf24_sender.py. از طریق خط فرمان یا محیط IDE میکروپایتون، برنامه را اجرا کنید. لطفا توجه داشته باشید که در کد نمونه فوق، تنها قسمت فرستنده آمده است. برای دریافت پیامها با استفاده از یک ماژول NRF24L01 دریافتکننده، باید کد مشابهی را بر روی آن اجرا کنید. همچنین، مطمئن شوید که پینهای CE و CSN متناسب با تنظیمات سختافزاری خود در کد تعیین شدهاند.
آموزش ارتباط دو طرفه توسط ماژول NRf24l01 آردوینو
گر توجه کرده باشید در آموزش قبلی دو برد آردوینو به وسیلهی NRF با همدیگر ارتباط یک طرفه برقرار میکردند به صورتی که یکی از آردوینوها فقط به صورت فرستنده و آردوینو دیگر فقط به صورت گیرنده عمل میکرد.در این پست ارتباط دوطرفه به وسیلهی nrf24l01 را آموزش میدهیم به صورتی که آردوینو هم بتواند اطلاعات دریافت کند و هم اطلاعات ارسال کند. در ادامه آموزش با مرجع تخصصی آردوینو همراه باشید.
راه اندازی ماژول nRF24L01 آردوینو
nRF24L01 ماژولی برای انتقال داده به صورت بی سیم می باشد و در مواردی مانند:هدست های بی سیم ، کنسول های بازی مانند ps3، اتوماسین خانگی، سیستم های مسیر یاب مانند GPS و …. استفاده می شود. این ماژول در نوع آنتن دار و بدون آنتن ارا,ه میشود که برد آنتن دار ۱۱۰۰ متر و بدون آنتن آن ۱۰۰ متر می باشد. nRF24L01 ماژول یک ماژول بسیار عالی برای ارسال و دریافت اطلاعات بدون خطا می باشد در مقابسه با ماژول های HMTR از امکانات بسیار بیشتری برخورد دار می باشند.
مشخصات
- کاربری
- استفاده نیمه صنعتی
- نوع ماژول
- مخابراتی
- تعداد قطعات
- 16 عدد
- ابعاد فیبر
- 15 * 29 میلی متر
- تعداد فیبر
- 1 عدد
- سطح تجربه مورد نیاز
- نیمه حرفه ای
- ولتاژ مورد نياز
- 3.3 یا 5 ولت DC
- فیبر مدار چاپی
- فایبرگلاس دورو
- چاپ مس
- دارای چاپ مشکی
- تعداد پایه ها
- 8 پایه
- اقلام همراه محصول
- ندارد
- کشور سازنده
- چین
- وزن
- 9 گرم
- فرکانس
- 2.4 GHz
- نوع کانکتور
- پین هدر
- معماری پردازنده
- فرکانسی - رادیویی
- پروتکل ارتباطی
- SPI
- فرمت پایه ها
- طبق دیتاشیت مربوطه
- ارتباط UART
- ندارد
- پردازنده
- NRF24L01
- سرعت
- 2 مگا بایت بر ثانیه
- وضعیت مونتاژ
- آماده به کار
- حساسیت
- کمتر از 90- دسی بل
- برد مفید
- 250 متر طبق ادعای سازنده
- ماژول sim800l
- سیم کارت
- منبع تغذیه
- آنتن GSM
- کابل USB به سریال
- خازن 1000 میکروفاراد
- ماژول کاهنده LM2596
برای ساخت قایق رباتیک تجهیزات متنوعی لازم است. یکی از این موارد ریموت کنترل است. بسته به اینکه چه متراژی برای کنترل از راه دور مد نظر است. بایستی تجهیز مناسب را انتخاب کنید. برای این منظور یا بایستی از ریموت کنترل و گیرنده آماده و مخصوص رباتیک استفاده کنید. یا اینکه از ماژولهای فرستنده گیرنده رادیویی به خصوص مدل nRF به همراه یک برد میکروکنترلر استفاده شود. در حالت دوم نیازمند برنامه نویسی خواهید بود.
اتصالات باتریها را بررسی کنید. همگی از یک نمونه باشند و اتصالات کامل و استاندارد باشند.
ولقطعات مورد نیاز برای راه اندازی ماژول sim800l عبارتند از:
توسط همین ماژول هم میتوانید اقدام به اجرای درخواستتان کنید. البته اگر فقط بخواهید یک سلول باتری لیتیومی را مدیریت شارژ کنید، همان گزینه ماژول TP4056 مناسب خواهد بود.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.