ارتباط دو ماژول بلوتوث HC05 با یکدیگر

مدارهای مخابراتی و ارتباط بیسیم جایگاه ویژه ای در دستگاه های الکترونیکی دارند. سیم کشی های فراوان بین دستگاه ها همیشه باعث شلوغی و ازدحام شده و نیز احتمال تداخل و نویز افزون می گردد. به همین روی استفاده از ماژول های فرستنده و گیرنده دیتا برای ارتباط دو دستگاه الکترونیکی علاوه بر اینکه سیم کشی های زائد را حذف می کند، باعث نصب راحت تر سیستم شده و امکان جابجایی در یک محیط را برای دستگاه آسان تر می کند.

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

ما در این مقاله تصمیم داریم یکی از ماژول های نسبتا ارزان قیمت و پرقدرت (از نظر اتصال خوکار) را که تقریبا فراوان نیز می باشد برای ایجاد یک لینک ارتباطی مطمئن معرفی کنیم و نحوه اتصال دو ماژول را به یکدیگر شرح دهیم. ماژول انتخاب شده ماژول بلوتوث HC05 می باشد که اندازه کوچکی داشته و به دلیل داشتن فرکانس کاری بالا (حدود 2.4GHz) امکان انتقال اطلاعات با سرعت بالا را نیز دارا می باشد. مسئله بعدی برد مفید این ماژول است که در محیط بسته در حدود 5 متر و در محیط باز حدودا 10 متر را تحت پوشش قرار می دهد.

یکی از قابلیت های بسیار جالب ماژول بولوتوث HC-05 امکان تعریف و اتصال دو ماژول به یکدیگر می باشد ک در اصطلاح می توان با چند دستور ساده، دو ماژول را به هم لینک کرد. در این حالت ماژول ها پس از روشن شدن به طور خودکار همدیگر را پیدا کرده و پس از 2 الی 3 ثانیه به هم متصل می شوند. از دیگر ویژگیهای این ماژول اینست که در هر شرایطی اگر ولتاژ یکی از ماژول ها قطع شود، به محض وصل مجدد سریعاً به ماژول جفت شده متصل می شود. این امر حتی در صورتی که فاصله دو ماژول از یکدیگر زیادتر از حد مجاز شده و مجددا به اندازه مناسب بازگردد اتفاق می افتد و در واقع یک لینک ارتباطی مطمئن دوطرفه بین دوستگاه ایجاد می کند. پروتکل ارتباطی در ماژول بلوتوث HC05 پروتکل سریال بوده و براحتی می توان توسط میکروکنترلر اطلاعات را تا فاصله 10 متر انتقال داد.

برای لینک کردن دو ماژول بلوتوث HC-05 ابتدا بایستی مداری مطابق شکل زیر ایجاد کرده و هر کدام از ماژول ها را با دستوراتی خاص توسط ترمینال کامپیوتر Setup کرد. این تنظیمات در داخل حافظه ماژول Bluetooth ذخیره شده و با قطع برق از بین نمی رود.

 

HC-05-bluetooth-schematic
 

مرحله بعد انتخاب یک نرم افزار ترمینال خوب برای ویندوز می باشد. ما نرم افزار رایگان RelaTerm را ترجیح می دهیم. این نرم افزار محیط پرقدرتی داشته و امکان انتقال AT Command ها را با کاراکترهای پایان خط CR و LF فراهم می آورد که لازمه ارتباط صحیح با ماژول است. (نکته ای که باید مدنظر داشته باشید اینست که برای تنظیم ماژول بلوتوث HC05 در مد AT Command حتما باید هر دستور با جفت کاراکترهای CRLF پایان یابد). نرم افزار ترمینال RealTerm را می توانید از لینک زیر دانلود نمایید:

دانلود نرم افزار ترمينال RealTerm

پس از دانلود و نصب نرم افزار ترمینال RealTerm باید یک ماژول USB به سریال خوب مثل CP2102 یا CH340 ویا FT232 تهیه کرده و پس از نصب درایورهای مربوطه و پیدا کردن نام پورت سریال مجازی (COMx) در Device Manager وارد سربرگ Port در نرم افزار RealTerm شوید و پس از انتخاب نام پورت مناسب و باودریت (Baud) مناسب (38400) روی دکمه Open کلیک نمایید تا پورت مورد نظر باز شود. (این دکمه معمولا بصورت پیشفرض فعال است و باید یک بار کلیک شود تا غیر فعال شده و مجددا کلیک شود تا پورت باز شود).

 

 

پس از باز شدن پورت وارد سربرگ Send شوید و در جلوی فیلد اول، تیک هر دو گزینه CR+ و LF+ را بزنید. سپس برای اطمینان از صحت اتصال، عبارت AT را با حروف کوچک یا بزرگ (اهمیتی ندارد) در فیلد اول نوشته و کلید Send ASCII را کلیک کنید. اگر ارتباط با ماژول بلوتوث HC05 برقرار شود باید عبارت OK در قسمت بالای صفحه نمایش داده می شود.

 

 

SLAVE و MASTER (فرمانده و فرمانپذیر)

یکی از نکاتی که در سیستم های ارتباطی و حتی اجتماعی و نظامی وجود دارد اطمینان از انجام یک عمل و پرهیز ار اختلال و درگیری و بی نظمی است. برای تحقق این امر همیشه باید یک عنصر فرمانده بوده و عنصر دیگر فرمانپذیر باشد تا همیشه گوش بفرمان بوده و دستورات ارسال شده را بدون بازخورد اجرا کند. در سیستم های مخابراتی و بیسیم و مخصوصا در شبکه هایی با چند عنصر معمولا “یکی” از عناصر MASTER یا فرمانده می باشد و دیگران (به هر تعداد) SLAVE یا فرمانپذیر. در طراحی چنین سیستمی هرگز اختلال ایجاد نمی شود. برای ارتباط دو ماژول بلوتوث HC05 با یکدیگر نیز بایستی یکی SLAVE و دیگری MASTER تعریف شود. این قضیه فقط به پروتکل های ارتباطی دو ماژول و نحوه ارتباط با یکدیگر برمی گردد و برای ما که در لایه اتصال داده (Data Link) کار می کنیم عملا دو ماژول هیچ تفاوتی با یکدیگر نداشته و براحتی می توان همانند دو رشته سیم TX و RX به این لینک ارتباط بیسیم نگاه کرد. (با توجه به مدل لایه ای بلوتوث در شکل های زیر، ما در لایه Middle ware layer (میان افزار) و در بخش RFcomm کار می کنیم که مر بوط به شبیه سازی پورت سریال می باشد. همچنین اگر مدل لایه ای بلوتوث با مدل معیار OSI مورد قیاس قرار گیرد ما در لایه Data Link قرار داریم)

 

 

 

 

تنظیم ماژول بلوتوث SLAVE

برای تنظیم یکی از ماژول های بلوتوث HC05 به عنوان SLAVE بایستی با دستور AT+ROLE=0 مد کاری ماژول را به SLAVE تغییر دهیم. نکته بعدی تنظیم باود ریت (Baud) یا همان سرعت انتقال اطلاعات است. در رشته دستورات زیر با دستور AT+UART=9600,0,0 سرعت ارتباط دیتا را روی 9600 تنظیم می کنیم. این عدد می تواند بین 4800 تا 1382400 باشد. دو عدد بعدی نیز برای تنظیم یک عدد Stop bit (بیت توقف) و بدون بیت توازن می باشد. مرحله آخر بدست آوردن آدرس سخت افزاری یا MAC آدرس ماژول است. برای این منظور از دستور ?AT+ADDR یا دستور ساده تر AT+ADDR (بدون علامت سوال) استفاده می کنیم. نتیجه بصورت یک عدد چند قسمتی که با علامت : از هم جدا شده اند نمایش داده می شود. این عدد را در جایی یادداشت می کنیم تا بعدا وارد ماژول دیگر نماییم.

AT+ROLE=0
AT+UART=9600,0,0
AT+ADDR

 

چند نکته مهم:
 برای تنظیم ماژول بلوتوث HC05 بایستی وارد مد کاری AT Command شویم این مد با اتصال پایه 34 ماژول به خط 3.3+ بدست می آید.
 ولتاژ کاری ماژول بلوتوث HC-05 نباید از 3.3 ولت تجاوز کند. این امر روی تمام ورودی ها نیز صادق است و وجود تقسیم مقاومت روی خط RX ماژول به همین دلیل می باشد.
 دستور AT+BAUD=x,y,z فقط برای تنظیم سرعت در حالت کاربردی و دیتا می باشد و سرعت پیشفرض ماژول در مد AT Command هیچ تغییری نمی کند و بصورت پیشفرض بر روی 38400 می باشد.

 

تنظیم ماژول بلوتوث MASTER

پس از تنظیم ماژل بلوتوث اول، نوبت به تنظیم ماژول بلوتوث بعدی می رسد. برای این ماژول نیز در ابتدا با دستور AT+ROLE=1 مد کاری ماژول را به حالت MASTER تغییر می دهیم. سپس با دستور AT+UART=9600,0,0 سرعت ارتباط دیتا را روی 9600 تنظیم می کنیم. این سرعت هر چه هست حتما باید با ماژول SLAVE برابر باشد. در بخش بعدی با استفاده از دستور AT+CMODE=0 به ماژول اطلاع می دهیم که فقط و فقط باید به ماژول دیگر با آدرس مشخص متصل شود (این آدرس را با دستور بعدی مشخص می کنیم). در این صورت ماژول MASTER به هیچ ماژول دیگری به غیر از آدرس مشخص شده متصل نخواهد شد. در نهایت با دستور AT+BIND=x,y,z آدرسی را که از ماژول SLAVE به دست آورده بودیم به ماژول MASTER معرفی میکنیم. نکته مهم اینست که آدرس بدست آمده از SLAVE یک عدد چند قسمتی می باشد که با علامت : از هم جدا شده است ولی موقع تعریف برای MASTER با دستور AT+BIND حتما باید بجای علامت : از علامت , استفاده کنیم.

AT+ROLE=1
AT+UART=9600,0,0
AT+CMODE=0
AT+BIND=2016,8,82295

 

اتصال دو ماژول بلوتوث HC05 به یکدیگر

پس از تنظیم دو ماژول بلوتوث HC-05 بصورت SLAVE و MASTER نوبت به آزمایش اتصال دو ماژول به یکدیگر می رسد. برای این منظور باید ماژول ها را از مد AT Command خارج کنیم. برای خارج شدن از مد دستور و ورود به مد کاربردی باید پایه 34 ماژول ها را به GND یا زمین متصل کنیم. مداری مطابق شکل زیر برای هر دو ماژول می بندیم:

 

 

پس از وصل تغذیه مشاهده می کنید که LED های قرمز به مدت چند ثانیه چشمک زده و سپس هر دو LED سبز روشن می شود که به معنای اتصال دو ماژول به یکدیگر می باشد. LED های قرمز نیز با فرمت دیگری شروع به فلاش زدن می کنند (هر دو ثانیه دو چشمک سریع) همچنین در برخی از ماژول های بلوتوث HC05 جدید یک LED کوچک SMD آبی بر روی برد وجود دارد که موازی با LED قرمز عمل می کند و وضعیت دستگاه را نمایش می دهد. به عنوان یک ایده می توانید از خروجی LED سبز یک سیم به یکی از ورودی های میکرو متصل کرده و از اتصال لینک ارتباطی مطلع شوید.

 

 

برای تست سریع این مجموعه پایه های TX و RX یکی از ماژول ها را به ترمینال کامپیوتر متصل کرده و پایه های TX و RX ماژول دیگر را با یک قطعه سیم به هم متصل می کنیم. سپس ترمینال را باز کرده و سرعت را روی 9600 یا هر چیزی که با دستور AT+UART تعریف کرده ایم تنظیم می کنیم و پورت را باز می کنیم. بدین ترتیب با تایپ در ترمینال، کاراکتر ها به ماژول دوم منتقل شده و مجددا به سمت ما ارسال می شود که به این شیوه اصطلاحاً Echo می گویند. بنابراین با این روش براحتی می توانید دستگاه های مختلف را بیسیم کرده و با فاصله از هم قرار دهید. برای دستگاه های 3 ولتی هیچ نیازی به تقسیم مقاومتی نیز نمی باشد ولی برای دستگاه های 5 ولتی حتما به یک رگولاتور 3.3 ولت برای تغذیه ماژول و تقسیم مقاومتی برای پایه ورودی ماژول (RX) نیاز می باشد. پایه TX ماژول برای 1 منطقی ولتاژ 3.3 ولت را به خروجی می فرستد و با توجه به اینکه اکثر میکرو کنترلرها ولتاژ 2.4 تا 5 ولت را به عنوان 1 منطقی تشخیص می دهند (در یک آزمایش دقیق این مقدار تشخیص داده شد) نیازی به Logic Converter بر روی پایه TX ماژول احساس نمی شود. (به طور کلی طبق دیتاشیت میکروکنترلرهای ای وی آر 0 منطقی برابر با 0 ولت تا VCC*0.3 می باشد که برای میکروی 5 ولتی چیزی بین 0 تا 1.5 ولت است و 1 منطقی بین VCC*0.6 تا VCC می باشد که برای میکروی تغذیه شده با ولتاژ 5 ولت برابر با 3 تا 5 ولت است).

 

 

منبع

بازدیدها: 2013

8 دیدگاه دربارهٔ «ارتباط دو ماژول بلوتوث HC05 با یکدیگر»

  1. سلام وخسته نباشید .من با استفاده از راهنمایی هاتون این سیستم رو راه اندازی کردم و درحالت اکو هم تست کردم. اما میخواستم به txو.rx فرستنده سوکتusb وصل کنم تا پرینتر رو بطور بی سیم به pc وصل کنم .لطفا اگه امکان دارد و عملی هست راهنمایی کنید واگه امکان ندارد بفرمایید تا دیگه الکی سعی نکنم

  2. خیلی ممنون از راهنماییتون .ببخشید برای بار کد خوان هم میشه از اتصال بی سیم دو ماژول استفاده کرد.؟
    یا اصلا چه وسیله هایی رو بی سیم کرد؟

    • خواهش می کنم.
      فقط برای ارتباط قطعات الکترونیکی مثل میکروکنترلرها با یکدیگر و یا ارتباط میکروکنترلر با دستگاههای بلوتوث دار مثل موبایل و لپ تاپ قابل استفاده است.

  3. سلام وقت بخیر . ببخشید این ماژول امکان این رو داره که دیتای صدا رو دریافت و پخش کنه؟ یا مثلا با فرمان دادن به ماژول صدای گوشیو کم و زیاد کنه؟

    • سلام این ماژول پورت سریال رو در داخل گوشی باز میکنه و برای انتقال صدا و تغییر ولوم صدا مناسب نیست مگر با نوشتن نرم افزار مخصوص در سمت گوشی. توصیه میشه از ماژول صوتی استفاده کنید. ماژول‌های بلوتوث رو مثل ماژول‌های USB در کامپیوتر تصور کنید، اگز ماژول USB به سریال به کامپیوتر متصل کنید بعنوان پورت سریال و برای تبادل دیتا شناسایی میشه، اگر ماژول کارت صوتی به USB متصل کنید بعنوان دستگاه صوتی شناسایی میشه، اگر ماوس و کیبرد و جوی استیک متصل کنید بعنوان ابزار کنترلی شناسایی میشه. در بلوتوثِ موبایل هم همینطوره. ماژول HC-05 بعنوان پورت سریال شناسایی میشه، ماژول‌های صوتی بعنوان ورودی خروجی صوتی و اگر دکمه کنترل صدا هم داشته باشن بعنوان کنترل صوت میشه از اونها استفاده کرد و نیازی هم به نوشتن نرم افزار جانبی نخواهند داشت.

  4. سلام من میخوام چند جفت بلوتوث صوتی کنار هم کار کنند بطوری که هر بار همون جفت قبلی با هم کار کنن وتداخل ایجاد نشه چه ماژولی رو پیشنهاد میدید

دیدگاه‌ها غیرفعالند.