راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو

الکترونیک و رباتیک -> ماژول ها و سنسور ها 1272 3 کاربر آکادمی پارتینه

راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو

معرفی پروتکل زیگبی (ZigBee)

زیگبی نوعی شبکه بی‌سیم است که در انستیتو مهندسان برق و الکترونیک با کد IEEE 802.15.4 استاندارد‌سازی شده است. در فناوری ZigBee طراحی به نحوی است که سیگنال‌های رادیویی دیجیتال با انرژی کم (low power) در شبکه‌های‌ شخصی (PAN) با وسعت و برد کم توزیع شده و پهنای باند به دست آمده نیز کم است. در قبال از دست دادن پهنای باند انتقالی و برد پوشش، قیمت مقرون به صرفه و مصرف بسیار کم انرژی به دست می‌آید.

شبکه بی‌سیم ZigBee نسبت به شبکه های بی سیم دیگر نظیر Bluetooth و WiFi  ارزان‌تر است و در شبکه هایی کاربرد دارد که ارسال داده‌ با نرخ و مصرف انرژی پایین مورد نیاز باشد. از طرفی زیگبی در مقایسه با وای فای و بلوتوث سرعت انتقال داده کمتری دارد، علت این تفاوت را می‌توان در هدف از طراحی این فناوری دانست که به منظور صرف‌ جویی در مصرف انرژی بوده و برای ایجاد شبکه هایی مورد استفاده قرار می‌گیرد که به انتقال داده‌های کم، بهره‌وری انرژی و شبکه ای ایمن نیاز دارند. به کمک این نوع طراحی، استفاده از ZigBee، به نسبت دیگر انواع شبکه‌های بی‌سیم هزینه‌ی کمتری دارد.

به طور کلی بسیاری از افراد دو اصطلاح XBee و ZigBee اشتباه گرفته و به‌جای هم استفاده می‌کنند؛ همانطور که اشاره شد ZigBee پروتکل استاندارد برای شبکه‌های بی‌سیم است. در حالی که XBee محصولی است که از پروتکل‌های مختلف ارتباط بی سیم از جمله ZigBee ، Wi-Fi و...پشتیبانی می‌کند. در این پروژه به طور عمده روی ماژول Xbee / Xbee-PRO  تمرکز شده که از فریمور ZigBee تشکیل شده و به راه‌اندازی آن توسط بورد آردوینو خواهیم پرداخت. به این صورت که ماژول XBee متصل‌شده به آردوینو به عنوان یک گیرنده عمل کرده و با سایر ماژول های XBee که به صورت سریال به لپ تاپ متصل شده‌اند، به صورت بی سیم ارتباط برقرار می‌کند.

مواد اولیه :
# عنوان تعداد لینک
0 کابل USB 1 لینک خرید
1 خرید برد آردوینو 1 لینک خرید

مرحله 1 : اتصالات و دیاگرام مداری

راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو

ماژول XBee می تواند به عنوان یک هماهنگ‌کننده (Coordinator)، مسیریاب (Router) و یا یک پایان‌افزار‌(End Device) عمل کند. بنابراین ضروری است که قبل از اتصال به آردوینو  برای کار در حالت دلخواه، توسط یک نرم‌افزار به نام XCTU پیکربندی شود. نرم‌افزار XCTU یک نرم افزار چندمنظوره برای ارتباط با ماژول های شرکت دیجی (DIGI) می‌باشد. با استفاده از این نرم افزار می‌توان با ماژول‌های زیگبی این شرکت توسط کامپیوتر ارتباط سریال برقرار کرد. برای اتصال ماژول XBee با لپ‌تاپ از مبدل USB به سریال یا رابط USB براي ماژول‌هاي زيگبي (XBee Explorer) استفاده می‌شود. به این صورت که آن را به رابط و توسط کابل USB به لپ‌تاپ متصل می‌کنیم. در صورت عدم دسترسی به رابط USB، می توان از آردوینو به عنوان یک رابط USB به سریال استفاده کرد. کافیست ماژول را مانند آنچه که در دیاگرام نشان داده شده به آردوینو متصل کرده و یک sketch خالی را بر روی آردوینو آپلود کنید تا مانند یک مبدل USB به سریال رفتار کند. 

مرحله 2 : پیکربندی ماژول زیگبی

راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو

نرم افزار XCTU را از این لینک دانلود و نصب کنید. پس از  نصب نرم‌افزار، آن را باز کرده و مطمئن شوید که ماژول به درستی متصل شده است. 

گام اول: بر روی گزینه search کلیک کنید. در این مرحله تمامی دستگاه‌های RF متصل شده به لپ تاپ شناسایی می‌شوند که در اینجا باید یک ماژول XBee شناسایی شود.

گام دوم: پورت سریال بورد آردوینو را انتخاب کرده و بر روی Next کلیک کنید.

گام سوم: در این گام، پارامترهای مربوط به پورت USB را مطابق شکل زیر تنظیم کرده و بر روی Finish کلیک کنید.

گام چهارم: دستگاه شناسایی شده را انتخاب کرده و روی گزینه Add selected device کلیک کنید. با این کار ماژول XBee به پنل XCTU اضافه می‌شود.

گام پنجم: در این گام باید تنظیمات لازم را بر روی ماژول XBee پیاده کنید. برای این کار می‌توانید از دستورات AT استفاده کنید یا داده‌ها را به صورت دستی وارد نمایید. همانطور که در تصویر مشاهده می‌کنید، حرف R که در مشخصات ماژول در سمت چپ نرم‌افزار مشاهده می‌شود، به معنی قرار دادن Xbee در حالت مسیریاب (Router) است. در این پروژه ماژول را برای قسمت فرستنده در حالت هماهنگ‌کننده (Coordinator) قرار می‌دهیم.

گام ششم: در این مرحله به منظور ارتباط با سایر ماژول های XBee ، باید داده‌های ID ، MY و DL را تنظیم کنید. شناسه (ID) برای تمامی ماژول‌های متصل به هم یکسان است. تنها پارامترهای MY و DL تغییر می‌کنند. به عبارت دیگر پارامتر MY برای گیرنده XBee تبدیل به DL و برای ماژول فرستنده (coordinator) تبدیل به MY می‌شود. پارامتر CE در حالت هماهنگ‌کننده (coordinator) تنظیم کرده و روی گزینه Write کلیک کنید.

گام هفتم: پس از اعمال تنظیمات فوق در ماژول فرستنده، نوبت به تنظیم ماژول دوم یعنی XBee گیرنده می‌رسد. مشابه فرآیند قبلی، پارامترهای  DL ، MY را تنظیم‌کرده و CE را در حالت پایان‌افزار‌ (End Device) قرار می‌دهیم.

گام هشتم: در این مرحله ماژول‌های XBee آماده برقراری ارتباط با آردوینو هستند. ماژول XBee فرستنده را به لپ‌تاپ و ماژول گیرنده را به آردوینو متصل کرده و سپس توسط  لپ‌تاپ ، فرمان را به قسمت گیرنده ارسال کنید. دیاگرام مداری قسمت گیرنده به صورت زیر است.

 

مرحله 3 : کدنویسی و تنظیات نرم‌افزاری

راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو راه‌اندازی ماژول زیگبی (XBee) توسط آردوینو

برنامه‌ی پیاده‌سازی شده به این صورت است که با ارسال کاراکتر "a" نشانگر به صورت پایدار روشن شده، با دریافت کاراکتر "b" نشانگر چشمک بزند و برای سایر کاراکترها LED خاموش باقی می‌ماند.کد ساده و به راحتی قابل درک است. تنها با استفاده از تابع Serial.available () کاراکترهای دریافتی بررسی خواهند شد، با استفاده از تابعSerial.read () ذخیره شده و در نهایت با کاراکترهای "a" و "b"مطابقت داده می‌شوند. در صورت تطابق نشانگر مطابق دستورات اعمال شده روشن می‌شود. در پایان آموزش سورس کد به صورت کامل برای ماژول گیرنده ارائه شده است. کد را در آردوینو گیرنده آپلود کنید.

برای فرمان دادن به قسمت فرستنده ، از ترمینال XCTU استفاده می‌شود. به این صورت که بر روی آیکون Console در نزدیکی گزینه settings و سپس بر روی گزینه Open کلیک کرده تا XBee به لپ‌تاپ متصل شود و کاراکتر"a" را وارد کنید. با این کار که LED به مدت دو ثانیه روشن شده و با وارد کردن کاراکتر"b"پنج مرتبه چشمک می‌زند.

int led = 13;
int received = 0;
int i;
void setup() {
  Serial.begin(9600); 
  pinMode(led, OUTPUT);
}