آردوینو Arduinoمطالب علمی

ارسال و دریافت String با استفاده از NRF

در دنیای کامپیوتر و برنامه نویسی به مجموعه از داده های از نوع کاراکتر اصطلاحا رشته یا String گفته می شود. این نوع از داده ها با تشکیل یک مجموعه از کاراکترهای مشخص توانایی ایجاد کلمات را برای ما امکان پذیر کرده اند. راه های بسیاری برای ارسال داده ها وجود دارد که روش های متفاوت سیمی و بی سیم را شامل می شود. در این مقاله قصد داریم این داده ها را با استفاده از ماژول NRF و Arduino ارسال کنیم. با این ماژول و امکانات و نحوه کار با آن در پست های قبلی آشنا شده اید.

ابتدا نگاهی اجمالی به مشخصات کلی این ماژول ارزان و پرکاربرد می اندازیم:

  • ولتاژ کاری : 3.3V
  • فرکانس کاری : 2.4GHz
  • نرخ انتقال داده : 2MBPS
  • جریان مصرفی : در حد mA
  • مدولاسیون:  GFSK
  • دارای کریستال 16MHz
  • ارتباط با ماژول های دیگر تا 6 ماژول و ایجاد شبکه محلی

کاربرد NRF

  • رادیو کنترل ها
  •  شبکه های سنسوری
  • VoiP
  • گجت های پوشیدنی

برای ایجاد یک سیستم ارتباطی بی سیم به یک فرستنده و گیرنده نیاز داریم. برای فرستنده از یک برد Arduino و یک ماژول NRF و در طرف گیرنده نیز از همین اجزا استفاده می کنیم و برای مشاهده داده های منتقل شده از Serial Monitor در نرم افزار Arduino استفاده می کنیم.

 

شماتیک مداری ارسال و دریافت String با استفاده از NRF

nrf ardino en 1

 

در اینجا برد UNO را به صورت پیشفرض انتخاب کرده ایم ولی تلاش شده تا اتصالات به صورت یونیورسال باشد هر برد Arduino امکان پیاده سازی داشته باشد. پین های CE و CSN را میتوان برای هر پایه دیجیتال تعریف کرد در اینجا ما از پایه 7و8 استفاده کردیم.

سورس کد فرستنده ارسال و دریافت String با استفاده از NRF

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8);

const byte rxAddr[6] = "00001";

void setup()
{
  radio.begin();
  radio.setRetries(15, 15);
  radio.openWritingPipe(rxAddr);
  
  radio.stopListening();
}

void loop()
{
  const char text[] = "ECA";
  radio.write(&text, sizeof(text));
  
  delay(1000);
}

سورس کد گیرنده ارسال و دریافت String با استفاده از NRF

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8);

const byte rxAddr[6] = "00001";

void setup()
{
  while (!Serial);
  Serial.begin(9600);
  
  radio.begin();
  radio.openReadingPipe(0, rxAddr);
  
  radio.startListening();
}

void loop()
{
  if (radio.available())
  {
    char text[32] = {0};
    radio.read(&text, sizeof(text));
    
    Serial.println(text);
  }
}

 

برای کامپایل برنامه به کتابخانه NRF برای Arduino نیاز داریم. نصب کتابخانه های Arduino هم در پست های قبلی آموزش داده شده است.

لینک کتابخانه : https://github.com/nRF24/RF24/archive/master.zip

 

در این برنامه از 3 کتابخانه استفاده شده است

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

برای تست و استفاده از برنامه میتوانید با استفاده از ابزار Serial Monitor درArduino IDE متن منتقل شده از طرف فرستنده را در سمت گیرنده مشاهده کنید.

 

نوشته های مشابه

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

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

دکمه بازگشت به بالا