این پست راهنمای راه اندازی ماژول فرستنده/گیرنده RF 433MHz با آردوینو است که در این پست نحوه کار آنها را توضیح می دهیم و یک نمونه پروژه آردوینو را با شما به اشتراک می گذاریم که می توانید هنگام استفاده از ماژول RF433 در پروژه های خود از آن استفاده کنید.

ماژول فرستنده/گیرنده RF 433MHz

توضیحات ماژول فرستنده/گیرنده RF 433MHz

در طول این آموزش ما از فرستنده FS1000A و گیرنده مربوطه استفاده خواهیم کرد، اما دستورالعمل های ارائه شده با سایر ماژول های فرستنده/گیرنده 433 مگاهرتز نیز به روشی مشابه کار می کنند. این ماژول‌های RF در بین سازندگان آردوینو بسیار محبوب هستند و در طیف گسترده‌ای از برنامه‌های کاربردی که نیاز به کنترل بی‌سیم دارند استفاده می‌شوند.

این ماژول ها بسیار ارزان هستند و می توانید آنها را با هر میکروکنترلری، اعم از Arduino، ESP8266 یا ESP32 استفاده کنید.

مشخصات گیرنده RF 433MHz

  • محدوده فرکانس: 433.92 مگاهرتز
  • مدولاسیون: ASK
  • ولتاژ ورودی: 5 ولت

مشخصات فرستنده RF 433MHz

  • محدوده فرکانس: 433.92 مگاهرتز
  • ولتاژ ورودی: 3-12 ولت
راهنمای کامل راه اندازی ماژول فرستنده/گیرنده RF 433MHz با آردوینو

نحوه کار پروژه آردوینو با ماژول فرستنده/گیرنده RF 433MHz

در این بخش، یک مثال ساده می سازیم که پیامی را از یک آردوینو به برد آردوینو دیگری با استفاده از ماژول های RF فرکانس 433 مگاهرتز ارسال می کند. یک برد آردوینو به یک فرستنده 433 مگاهرتز متصل می شود و “Hello World!” را ارسال می کند و برد دیگر آردوینو به یک گیرنده 433 مگاهرتز متصل خواهد شد که پیام های ارسال شده از فرستنده را دریافت کند و نمایش دهد.

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

برای راه اندازی این پروژه به قطعات زیر نیاز دارید

  •  دو عدد برد اردوینو
  • فرستنده گیرنده 433 مگا هرتز
  • بردبورد
  • سیم های اتصال

نصب کتابخانه مورد نیاز

کتابخانه RadioHead راه آسانی برای راه اندازی و کار با فرستنده/گیرنده 433 مگاهرتز با آردوینو فراهم می کند. برای نصب این کتابخانه در Arduino IDE قدم های زیر را دنبال کنید:

  • برای دانلود کتابخانه RadioHead اینجا را کلیک کنید.حالا شما باید یک پوشه .zip در پوشه Downloads خود داشته باشید.
  • کتابخانه RadioHead را از حالت فشرده خارج کنید.
  • پوشه کتابخانه RadioHead را به پوشه کتابخانه های نصب Arduino IDE منتقل کنید.
  • آردوینو IDE خود را مجددا راه اندازی کنید.

کتابخانه RadioHead تقریباً با تمام ماژول های RF موجود در بازار کار می کند. در اینجا می توانید اطلاعات بیشتری در مورد کتابخانه RadioHead بخوانید.

مدار فرستنده

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

راهنمای کامل راه اندازی ماژول فرستنده/گیرنده RF 433MHz با آردوینو

برنامه فرستنده

کد زیر را روی برد آردوینو که به عنوان فرستنده عمل می کند آپلود کنید. این کد بر اساس یکی از مثال های ارائه شده توسط کتابخانه RadioHead است.

#include <RH_ASK.h>
#include <SPI.h> // Not actually used but needed to compile

RH_ASK driver;

void setup()
{
    Serial.begin(9600);	  // Debugging only
    if (!driver.init())
         Serial.println("init failed");
}

void loop()
{
    const char *msg = "Hello World!";
    driver.send((uint8_t *)msg, strlen(msg));
    driver.waitPacketSent();
    delay(1000);
}

نحوه کار کد فرستنده

ابتدا کتابخانه RadioHead ASK را اضافه کنید.

#include <RH_ASK.h>

این کتابخانه برای کار به کتابخانه SPI نیاز دارد. بنابراین، شما همچنین باید کتابخانه SPI را نیز اضافه کنید.

#include <SPI.h>

پس از آن، یک شی RH_ASK به نام driver ایجاد کنید.

در setup()، شی RH_ASK را با استفاده از متد init() مقداردهی اولیه کنید.

Serial.begin(9600); // Debugging only
if (!driver.init())
    Serial.println("init failed");

در loop() پیام خود را می نویسیم و ارسال می کنیم. پیام در متغیر msg ذخیره می شود. لطفاً توجه داشته باشید که پیام باید از نوع char باشد.

const char *msg = "Hello World!";
 

این پیام حاوی متن “hello world!” میباشد، اما می توانید هر چیزی را که می خواهید ارسال کنید به شرطی که در قالب char باشد.

در پایان پیام خود را بصورت زیر ارسال می کنیم:

driver.send((uint8_t *)msg, strlen(msg));
driver.waitPacketSent();

پیام هر یک ثانیه ارسال می شود، اما می توانید این زمان تاخیر را تنظیم کنید.

delay(1000);

مدار گیرنده

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

راهنمای کامل راه اندازی ماژول فرستنده/گیرنده RF 433MHz با آردوینو

برنامه گیرنده

کد زیر را در آردوینو متصل به گیرنده آپلود کنید. این بر اساس یکی از مثال های ارائه شده توسط کتابخانه RadioHead است.

#include <RH_ASK.h>
#include <SPI.h> // Not actualy used but needed to compile

RH_ASK driver;

void setup()
{
    Serial.begin(9600);	// Debugging only
    if (!driver.init())
         Serial.println("init failed");
}

void loop()
{
    uint8_t buf[12];
    uint8_t buflen = sizeof(buf);
    if (driver.recv(buf, &buflen)) // Non-blocking
    {
      int i;
      // Message with a good checksum received, dump it.
      Serial.print("Message: ");
      Serial.println((char*)buf);         
    }
}

نحوه کار کد گیرنده

مشابه برنامه قبلی، با اضافه کتابخانه های لازم شروع می کنید:

#include <RH_ASK.h>
#include <SPI.h>

یک شی RH_ASK به نام driver ایجاد می کنید:

RH_ASK driver;

در setup() شی RH_ASKobject را مقداردهی اولیه کنید.

void setup(){
    Serial.begin(9600); // Debugging only
    if (!driver.init())
    Serial.println("init failed");
}

در  loop() باید بافری را تنظیم کنیم که با اندازه پیامی که دریافت می کنیم مطابقت داشته باشد. “hello world!” دارای 12 کاراکتر شما باید اندازه بافر را مطابق با پیامی که دریافت می کنید تنظیم کنید (فضاها و علائم نگارشی نیز حساب می شوند).

uint8_t buf[12];
uint8_t buflen = sizeof(buf);

سپس، بررسی کنید که آیا پیام معتبری دریافت کرده اید. اگر پیام معتبری دریافت کردید، آن را در مانیتور سریال چاپ کنید.

if (driver.recv(buf, &buflen)) {
    int i;
    // Message with a good checksum received, dump it.
    Serial.print("Message: ");
    Serial.println((char*)buf);
}

نتیجه

در این پروژه فرستنده در حال ارسال پیام “hello world!” به گیرنده از طریق RF در هز ثانیه میباشد. این پیام ها در مانیتور سریال گیرنده نمایش داده می شوند. شکل زیر آنچه را که باید در مانیتور سریال Arduino IDE خود ببینید را نشان می دهد.

راهنمای کامل راه اندازی ماژول فرستنده/گیرنده RF 433MHz با آردوینو

جمع بندی

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

منبع: https://randomnerdtutorials.com/rf-433mhz-transmitter-receiver-module-with-arduino/
برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]
بازگشت به لیست

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

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