اتصال ماژول XBee به Raspberry Pi

 در این آموزش ما ماژول XBee را به برد Raspberry Pi متصل خواهیم کرد که به عنوان یک گیرنده عمل می کند و باعث می شود از طریق ارتباط بی سیم با یک ماژول XBee دیگر  که به طور سری با لپ تاپ متصل است ارتباط برقرار کند.

 


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

۱ عدد Raspberry Pi با سیستم عامل Raspbian نصب شده است
۲ عدد ماژول XBee Pro S2C (هر مدل دیگری قابل استفاده است)
۱ عدد برد XBee explorer (اختیاری)
۱ عدد برد Xbee Breakout (اختیاری)
کابل USB
LED ها


 

پیکربندی ماژول های XBee با استفاده از XCTU

 ماژول XBee می تواند به عنوان هماهنگ کننده ، روتر یا End دیوایس عمل کند اما برای کار در حالت دلخواه نیاز به پیکربندی دارد. بنابراین، قبل از استفاده از ماژول های XBee با Raspberry Pi، باید این ماژول ها را با استفاده از نرم افزار XCTU پیکربندی کنیم.

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

اگر هیچ برد مبدلی ندارید، از یک برد Arduino می توان به عنوان دستگاه USB به سریال استفاده کرد که به راحتی می تواند با XBee و لپ تاپ ارتباط برقرار کند. فقط برنامه را در آردوینو بارگذاری کنید و سپس می تواند مانند مبدل USB به سریال رفتار کند.

 

پیکربندی ماژول های XBee:

در اینجا در این آموزش، از صفحه Explorer برای پیکربندی ماژول های XBee استفاده شده است.

نرم افزار XCTU را از این لینک بارگیری و نصب کنید. پس از بارگیری و نصب نرم افزار XCTU ، آن را باز کرده و از اتصال صحیح ماژول XBee خود اطمینان حاصل کنید. پورت COM برد Arduino را در مدیر دستگاه بررسی کنید.

۱. بر روی دکمه جستجو کلیک کنید. با این کار تمام دستگاه های RF متصل به لپ تاپ به شما نشان داده می شود. در این مورد فقط یک ماژول XBee را نشان می دهد.

اتصال

 

۲. پورت Serial board Explorer / Arduino board را انتخاب کرده و بر روی Next کلیک کنید.

Connect-Arduino-for-Interfacing-Xbee-

 

۳. در پنجره بعدی، پارامترهای پورت USB را مطابق شکل زیر تنظیم کرده و بر روی Finish کلیک کنید.

Set-Port-for-Connecting-Arduino-with-Xbee

 

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

Xbee-Connected-with-Arduino-UNO.

 

۵. اکنون، می توانید ماژول XBee خود را در این پنجره پیکربندی کنید. می توانید از دستورات AT استفاده کنید یا داده ها را به صورت دستی قرار دهید. همانطور که مشاهده می کنید، در پنل سمت چپ R نشان داده شده است که به معنی XBee در حالت روتر است. ما باید آن را برای قسمت فرستنده هماهنگ کنیم.

ابتدا با کلیک بر روی  Update Firmware نرم افزار را به روز کنید.

 

Update-XBee-Firmware-for-Interfacing-with-Arduino

 

۶. گروه دستگاه خود را که در پشت ماژول XBee شما موجود است انتخاب کنید. مجموعه عملکرد و نسخه سیستم عامل را همانطور که در زیر مشخص شده است انتخاب کنید و بر روی Update کلیک کنید.

 

Setup-Firmware-Update-of-Xbee-for-Interfacing-with-Arduino

 

۷. برای ایجاد ارتباط با XBee دیگر، باید داده های ID ، MY و DL را بدهید. شناسه برای هر دو ماژول یکسان است. فقط مبادله داده های MY و DL یعنی MY برای گیرنده XBee به DL فرستنده XBee (هماهنگ کننده) تبدیل می شود و DL برای گیرنده XBee به MY فرستنده XBee تبدیل می شود. CE را به عنوان Coordinator انتخاب کنید و سپس دکمه رایت را بزنید. همانطور که در زیر نشان داده شده است.

 

Configure-Xbee-for-interfacing-with-Arduino

 ATDL  ATMY ATID
 XBee 1 coordinator  ۱۲۳۴  ۵۶۷۸ ۲۲۴۴
 XBee 2 end device  ۵۶۷۸  ۱۲۳۴ ۲۲۴۴

 

۸- پس از رایت داده های بالا در قسمت فرستنده، آنها را از برد Explorer جدا کنید و ماژول XBee دوم را در آن متصل کنید. همان روند بالا را تکرار کنید فقط تغییرات DL ، MY و CE است. همانطور که XBee دوم را به عنوان End دیوایس تنظیم خواهیم کرد، بنابراین در منوی کشویی CE قسمت End دیوایس را انتخاب کنید و دکمه رایت را بزنید.

۹. ماژول های XBee ما آماده ارتباط با Raspberry Pi هستند. فرستنده XBee را با Raspberry Pi به لپ تاپ و گیرنده XBee متصل خواهیم کرد. سپس با استفاده از لپ تاپ به قسمت گیرنده دستور دهید.

شماتیک مدار برای قسمت گیرنده

اتصالات رابط ماژول ZigBee با Raspberry PI در شماتیک مدار نشان داده شده است.

Circuit-Diagram-Interfacing-XBee-Module-with-Raspberry-Pi

 

اتصالات:

Tx (پین ۲) XBee -> Tx پین رزبری پای
Rx (pin3) از XBee -> Rx پین Raspberry Pi
Gnd (pin10) XBee -> GND پین Raspberry Pi
Vcc (Pin1) XBee -> 3.3v پین Raspberry Pi
Led به GPIO 23 متصل است

 

 راه اندازی ارتباط سریال

اکنون، Raspberry Pi را برای ارتباط سریال راه اندازی می کنیم. به طور پیش فرض، درگاه سریال سخت افزار Pi غیرفعال شده است. بنابراین، ما باید آن را قبل از شروع اتصال فعال کنیم.

۱. در ترمینال، دستور raspi-config را اجرا کنید.

۲. به گزینه ۵ گزینه های Interfacing رفته و enter را بزنید. اکنون گزینه Serial را انتخاب کرده و آن را فعال کرده و سپس ذخیره کنید.

 

از ترمینال خارج شوید و همه چیز برای تنظیم ارتباط بین Raspberry Pi و XBee آماده است. GPIO14 و ۱۵ به ترتیب به عنوان Tx و Rx عمل می کنند و این موارد در پورت / dev / ttyS0 برد موجود است.

یک اسکریپت پایتون می نویسیم برای هر زمانی که “a” را از طرف فرستنده XBee دریافت کردیم LED روشن شود .

برنامه نویسی Raspberry Pi برای ارتباطات XBee

در پایان برنامه کامل پایتون برای رابط کاربری XBee با Raspberry Pi آورده شده است.

ابتدا باید کتابخانه های time ، سریال و RPi.GPIO را با استفاده از import وارد کنیم.

import time
import serial
import RPi.GPIO as GPIO

 ویژگی های اتصال سریال را بنویسید، پورت ، Baudrate و Parities را به صورت زیر تعریف کنید.

ser = serial.Serial(
    port='/dev/ttyS0',
    baudrate = 9600,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1            
 )
برای ارسال پیام ها به سمت فرستنده می توانید از تابع ser.write استفاده کنید.
    #ser.write(str.encode('Write counter: %d \n'%(counter)))
    #time.sleep(1)
    #counter += 1
برای دریافت پیام ها باید از تابع ser.readline استفاده کنیم. پیام ورودی را در یک متغیر ذخیره کنید و شرایط را بررسی کنید. اگر پیام دریافتی “a” است ، LED را به مدت ۳ ثانیه روشن کرده و سپس LED را خاموش کنید.
    x=ser.readline().strip()
    print(x)
    if x == 'a':
        GPIO.output(23,GPIO.HIGH)
        time.sleep(3)
..
..

آزمایش ارتباط بی سیم XBee با استفاده از Raspberry Pi

برای دادن فرمان به قسمت فرستنده ، از ترمینال کنسول XCTU استفاده خواهیم کرد. روی نماد کنسول نزدیک گزینه تنظیمات کلیک کنید. سپس بر روی دکمه Open کلیک کنید تا XBee به لپ تاپ متصل شود.

‘a’ را در گزارش کنسول وارد کنید. خواهید دید که LED به مدت ۳ ثانیه روشن می شود و سپس خاموش می شود.

Complete-XBee-Arduino-Setup

 

برنامه کامل

Code

#!/usr/bin/env python
import time
import serial
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(23,GPIO.OUT)
ser = serial.Serial(
    port='/dev/ttyS0',
    baudrate = 9600,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1             
 )
counter=0       
      
while 1:
    #ser.write(str.encode('Write counter: %d \n'%(counter)))
    #time.sleep(1)
    #counter += 1
    x=ser.readline().strip()
    print(x)
    if x == 'a':
        GPIO.output(23,GPIO.HIGH)
        time.sleep(3)
    else:
        GPIO.output(23,GPIO.LOW)

 


مطالب پیشنهادی برای شما


 

 

محمد صداقتی
Latest posts by محمد صداقتی (see all)

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

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