آموزش آردوینوپروژه های آردوینو

اتصال ماژول رادیویی 433 مگاهرتز به آردوینو

هنگامی که صحبت از اضافه کردن قابلیت های بی سیم به پروژه ها می شود، فرستنده و گیرنده ASK با فرکانس 433 مگاهرتز به دلیل قیمت پایین، استفاده آسان و جامعه پشتیبانی بالا، انتخاب رایجی در میان مهندسان، توسعه دهندگان و علاقمندان هستند. بنابراین در این آموزش تصمیم گرفته ایم فرستنده و گیرنده ASK 433 مگاهرتزی را به برد آردوینو وصل کنیم و در این فرآیند تمام جزئیات ماژول، نحوه کار و مشکلات احتمالی مربوط به ماژول را به شما اطلاع خواهیم داد.

اگر به کار با ماژول های ASK علاقمند هستید این مطلب را هم ببینید: راه اندازی ماژول ASK با آردوینو 

فرستنده رادیویی 433Mhz

ماژول رادیویی ASK با فرکانس 433 مگاهرتز به صورت جفت فرستنده و گیرنده عرضه میشود. ابتدا فرستنده را بررسی میکنیم.

توجه: این ماژول ها با پس زمینه قرمز، سبز و آبی موجود هستند و از لحاظ عملکرد یکسان هستند.

ماژول فرستنده 433mhz

  • Data داده های دیجیتال که باید فرستاده شوند به این پایه داده میشوند.
  • VCC پایه تغذیه ماژول است. ولتاژ کاری دستگاه 3.3 تا 12 ولت می باشد. لطفا توجه داشته باشید که برد دستگاه به طور مستقیم با ولتاژ تغذیه مرتبط است. به این معنی که دادن ولتاژ بیشتر می تواند برد بیشتری را برای ارسال داده ها فراهم کند.
  • GND پایه زمین ماژول فرستنده RF است.
  • ANT پینی است که به آنتن خارجی متصل می شود. برای بهبود برد باید یک سیم لحیم کاری 17.3 سانتی متری را به این پین بچسبانید.

گیرنده RF 433 مگاهرتز

حالا نوبت به قسمت گیرنده میرسد، تصویر پین های این ماژول را در تصویر زیر مشاهده میکنید:

گیرنده RF 433 مگاهرتز

  • ANT همانطور که مشخص است مربوط به آنتن ماژول میباشد.
  • GND اولین پایه زمین ماژول است.
  • GND دومین پایه زمین ماژول است. هر دو پایه زمین به صورت داخلی به هم متصل هستند، بنابراین می توانید از یکی از آنها استفاده کنید.
  • VCC برق ماژول 433 مگاهرتز را تامین می کند. برخلاف فرستنده، گیرنده به ولتاژ تغذیه 5 ولت نیاز دارد.
  • VCC برق ماژول گیرنده را تامین می کند. پین های VCC به صورت داخلی متصل هستند، بنابراین می توانید از یکی از آنها استفاده کنید.
  • NC هیچ چیز به این پین ماژول گیرنده متصل نمیشود.
  • DAT این پین خروجی داده ماژول است.
  • GND این سومین پایه زمین ماژول است. این پین نیز به صورت داخلی به پایه های زمین دیگر متصل است.

ماژول رادیویی RF 433 مگاهرتز چگونه کار می کند؟

همانطور که قبلاً اشاره کردیم، این ماژول از تکنیک مدولاسیون Amplitude Shift Keying برای ارسال داده های دیجیتال روی فرکانس رادیویی استفاده می کند. در کلید زنی تغییر دامنه، دامنه موج حامل بسته به سیگنال دیجیتال ورودی تغییر می کند.

نحوه کار ماژول رادیویی RF 433 مگاهرتز

این تکنیک مدولاسیون بسیار شبیه به تکنیک مدولاسیون دامنه است، زیرا از دو سطح استفاده می کند، که گاهی اوقات از آن به عنوان کلیدگذاری تغییر دامنه باینری یاد می شود. شماتیک بالا نحوه عملکرد انتقال ASK را نشان می دهد. برای منطق 1 موج حامل ارسال می شود و برای منطق 0 هیچ سیگنالی ارسال نمی شود.

مزیت ASK نسبت به تکنیک های دیگر مانند FSK و PSK این است که مدار فرستنده و گیرنده بسیار ساده است و هزینه ساخت این فرستنده و گیرنده بسیار پایین است. نقطه ضعف ASK این است که به دلیل فرکانس کاری پایین بسیار مستعد نویز و تداخل است. راه حل این مشکل ارسال داده ها با نرخ نسبتا کم و انجام بررسی های CRC در قسمت نرم افزاری است.

سوالات متداول درباره ماژول RF 433 مگاهرتز

برد ماژول های RF 433 مگاهرتز چقدر است؟

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

چرا 433 مگاهرتز اینقدر محبوب است؟

مصرف برق دستگاه های 433 مگاهرتز نسبتاً کم است و با سایر استانداردهای اتوماسیون خانگی اختصاصی مانند Z-Wave یا Zigbee قابل مقایسه است. این باعث می‌شود 433 مگاهرتز برای دستگاه‌هایی که با باتری کار می‌کنند مانند سنسورها یا دکمه‌های بی‌سیم نیز مناسب باشد.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

آیا فرکانس های بالاتر بهتر نفوذ می کنند؟

فرکانس های پایین تر وضوح کمتری تولید می کنند اما عمق نفوذ بیشتری به بدن دارند. فرکانس‌های بالاتر وضوح بیشتری تولید می‌کنند، اما عمق نفوذ محدود است.

مدار اتصال ماژول 433MHz به آردوینو

برای این پروژه شما میتوانید از هر نوع برد آردوینو مثل اونو، نانو، پرو مینی یا … استفاده کنید.

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

  • 2 * برد آردوینو (نانو، اونو یا پرو مینی)
  • ماژول فرستنده و گیرنده 433 مگاهرتز
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

مدار این فرستنده و گیرنده آردوینو در زیر نشان داده شده است. اتصال ماژول فرستنده به آردوینو بسیار ساده است. پایه VCC ماژول را به پایه 5 ولت آردوینو وصل کنید و پایه GND ماژول را به GND برد آردوینو وصل کنید. پایه داده باید به پایه D12 آردوینو متصل شود. در اینجا در سمت فرستنده RF، از آردوینو پرو مینی استفاده کرده ایم.

مدار اتصال ماژول 433MHz به آردوینو 

سیم کشی ماژول گیرنده نیز بسیار ساده است و بار دیگر فقط باید سه اتصال برقرار کنید. VCC ماژول و پایه‌ زمین را به پایه‌ های 5V و GND آردوینو وصل کنید و پین خروجی داده را به پایه D12 آردوینو وصل کنید. برای گیرنده ما از Arduino Nano استفاده کرده ایم.

توجه: کتابخانه داخلی از پین D12 به عنوان پین پیش فرض استفاده می کند، بنابراین استفاده از پین D12 کد را بسیار آسان می کند.

کد آردوینو برای ماژول 433 مگاهرتز ASK

کد برقراری ارتباط بین دو ماژول RF 433 مگاهرتز بسیار ساده و قابل درک است. ما فقط باید کتابخانه RadioHead را اضافه کنیم. دانلود کتابخانه RadioHead

هنگامی که فایل Zip را دانلود کردید، باید کتابخانه را با رفتن به نرم افزار آردوینو در منوی Sketch > Include Library > Add.ZIP Library نصب کنید و سپس باید فایل کتابخانه Radiohead را که دانلود کرده اید انتخاب کنید. پس از انجام این کار می توانیم کد خود را شروع کنیم.

کد فرستنده 433 مگاهرتز

ما کد خود را با فرستنده بی سیم آردوینو شروع می کنیم. برای فرستنده از برد آردوینو نانو استفاده کرده ایم و باید کتابخانه RH_ASK.h را فراخوانی کنیم. و همچنین باید کتابخانه SPI را نیز فراخوانی کنیم زیرا برای کامپایل کد پروژه مورد نیاز است.

#include <RH_ASK.h>
#include <SPI.h> // فقط برای کامپایل شدن کد مورد نیاز است

سپس یک نمونه برای کتابخانه RK_ASK ایجاد می کنیم و نام آن را درایور می گذاریم.

RH_ASK driver;

در ادامه یک پین دیجیتال برای اتصال ال ای دی ایجاد میکنیم.

#define LED_PIN 2

در مرحله بعد، ما تابع setup خود را داریم، در تابع setup ابتدا ارتباط سریال را با نرخ 9600 baud مقداردهی می کنیم و تابع driver.init() را فراخوانی می کنیم تا بررسی کنیم که فرستنده موجود است یا خیر. بعد، LED_PIN را به عنوان خروجی تعریف میکنیم.

void setup() {
  Serial.begin(9600);    // برای دیباگ کردن پروژه
  if (!driver.init())
    Serial.println("init failed");
 }

در مرحله بعد تابع loop() را داریم، در تابع حلقه یک داده اشاره گر از نوع کاراکتری به نام *msg می سازیم و Hello World را در آن قرار میدهیم. در نهایت با کمک تابع driver.send((uint8_t *)msg, strlen(msg)) پیام را ارسال می کنیم. هر 200 میلی ثانیه ارسال داده ها را تکرار میکنیم.

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

کد گیرنده 433Mhz

کد آردوینو پرو مینی در گیرنده دقیقاً مشابه فرستنده است فقط کمی تغییرات دارد. ما کد خود را با گنجاندن تمام کتابخانه های مورد نیاز مانند بخش فرستنده شروع می کنیم.

#include <RH_ASK.h>
#include <SPI.h> // فقط برای کامپایل شدن کد مورد نیاز است

حالا یک پین LED تعریف می کنیم و یک نمونه برای ماژول RH ASK ایجاد می کنیم.

#define LED_PIN 2
RH_ASK driver;

سپس تابع Void Setup() را داریم، در تابع setup ارتباط سریال را مقداردهی اولیه می کنیم تا بررسی کنیم گیرنده درست کار می کند یا نه و همچنین پین LED را به عنوان خروجی تنظیم می کنیم.

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

سپس تابع void loop() خود را داریم، در تابع حلقه مقداری آرایه برای نگهداری و پردازش داده های دریافتی تعریف می کنیم.

void loop() {
  uint8_t buf[RH_ASK_MAX_MESSAGE_LEN];
  uint8_t buflen = sizeof(buf);
  if (driver.recv(buf, &buflen)) // Non-blocking  {
    int i;
    driver.printBuffer("Got:", buf, buflen); // چاپ داده ها
  }
}

کد پروژه همینجا به پایان میرسد.

نحوه کار پروژه فرستنده و گیرنده RF آردوینو

ویدئوی زیر نحوه عملکرد مدار را نشان می دهد. ما دو آردوینو را طوری پیکربندی کرده‌ایم که فرستنده آردوینو بسته‌های TX را ارسال می‌کند و آردوینو گیرنده پیام های دریافت شده را در سریال مانیتور نمایش میدهد.

 

اگر در کار با ماژول 433 مگاهرتز مشکل دارید، ابتدا باید خطوط برق خود را بررسی کنید همانطور که قبلا ذکر شد ولتاژ عملکرد دستگاه 3.3 تا 5 ولت است. اگر ولتاژ بیشتر یا کمتر از آن باشد، ماژول کار نمی کند یا احتمال آسیب دیدن دارد.

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

موارد موجود در فایل : سورس کامل

5 (2 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

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

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