خانه > پروژه > کنترل لوازم خانگی با بلوتوث تلفن همراه(قسمت اول: راه اندازی ماژول HC-05)

کنترل لوازم خانگی با بلوتوث تلفن همراه(قسمت اول: راه اندازی ماژول HC-05)

در این آموزش می خواهیم با استفاده از بلوتوث یک موبایل اندرویدی یک ابزار (مثلا یک LED) را کنترل نماییم. برای ایجاد ارتباط بین موبایل و ابزار خارجی از ماژول های بلوتوث سری HC استفاده می کنیم. در این آموزش با این ماژول ها بیشتر آشنا می شویم.

 

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

پیش نیاز:

1- برای درک عملکرد سمت میکروکنترلر، نیاز است که آشنایی مقدماتی با میکروکنترلر AVR و مخصوصا ارتباط سریال(USART) داشته باشید.

2- آشنایی خیلی مقدماتی با عملکرد بلوتوث و نحوه برقراری ارتباط با آن

ماژول های سری HC:

این ماژول ها برای برقراری ارتباط از طریق بلوتوث به کار می روند که در شماره های مختلف به صورت زیر ساخته می شوند:

  • HC-03

  • HC-04

  • HC-05

  • HC-06

شماره های زوج فقط توانایی کارکرد در یکی از نقش های Master یا Slave را دارند اما شماره های فرد هم می توانند در نقش Master و هم در نقش Slave کار کنند. در نقش Master ماژول می تواند یک ابزار بلوتوث دیگر(مثلا یک موبایل) را پیدا کرده و شروع کننده ارتباط باشد. اما در نقش Slave ماژول باید منتظر شروع ارتباط از طرف ابزار دیگر باشد. در شماره های زوج برای مشخص کردن نقش کاری از یک پسوند M یا S بعد از نام استفاده می کنند. برای مثال HC-06-M فقط در نقش کاری Master  قابل استفاده است.

HC-05

معروف ترین ماژول در این خانواده HC-05 است که می تواند هم در نقش Master و هم در نقش Slave کار کند. اما چطور مشخص می شود که این ماژول در کدام نقش کار کند؟ برای اینکه به این سوال پاسخ دهیم باید با حالت های کاری این ماژول آشنا شویم. فقط دقت شود که بین نقش های کاری (Work Roles) و حالت های کاری(Work Mode)  اشتباه نشود. این ماژول  به طور کلی در دو حالت کاری قابل استفاده است: 1- حالت کارکرد عادی  2- حالت تنظیمات. در حالت تنظیمات، می توان مشخصات عملکردی این ماژول در حالت کارکرد عادی، از قبیل: نقش های کاری، سرعت انتقال داده، تعداد بیت انتقال وغیره، را تنظیم کرد. در حالت کارکرد عادی هم طبق تنظیمات ذخیره شده در ماژول می توان با ابزارهای بلوتوث جانبی جفت(Pair) شده و ارتباط برقرار نمود. البته در این قسمت از آموزش ما با حالت تنظیمات کاری نداریم و فقط با حالت کارکرد عادی کار می کنیم. در قسمت بعدی این آموزش به تنظیمات مختلف این ماژول پرداخته می شود.

شکل پایه ها

شکل پایه های HC-05 در تصویر زیر نمایش داده شده است:

 connecting-HC-05-bluetooth-module-to-Atmega8

توضیح پایه های مهم:

connecting HC-05 bluetooth module to Atmega8-2

* در مورد عملکرد این پایه ها در قسمت بعدی آموزش بیشتر صحبت می کنیم.

از ماژول HC-05 نمی توان به صورت مستقیم روی بردبورد استفاده کرد. بلکه باید با طراحی برد مناسب و استفاده از پین هدر آن را برای استفاده روی برد برد مناسب سازی کرد. پیشنهاد می شود در هنگام خرید این ماژول آن را به همراه برد راه انداز مناسب که امکان استفاده بر روی بردبورد وجود دارد تهیه نمایید. نمونه ای از این برد را در شکل زیر مشاهد می نمایید:

connecting HC-05 bluetooth module to Atmega8-3

پروژه عملی

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

لوازم مورد نیاز:

1- ماژول HC-05 به همراه برد راه انداز

2- میکروکنترلر Atmega8

3- برد برد

4- منبع تغذیه 5 ولت(می توانید از آداپتور 12 ولت و رگولاتور 7805 استفاده کنید.)

5- مقاومت های 1 کیلواهم و 2 کیلو اهم و 330 اهم

6- LED

7- LCD کاراکتری(اختیاری)

همگی موارد بالا 1 عدد لازم هست به اضافه سیم به میزان لازم!

گام اول: اتصال HC-05 به میکروکنترلر

ابتدا مانند شکل زیر ماژول را به میکرو کنترلر متصل می کنیم. دقت کنید که تغذیه HC-05 را می توان به صورت مستقیم از 5 ولت تامین کرد(چون در داخل برد راه انداز رگولاتور 3/3 ولتی وجود دارد). اما در مورد پایه های TXD و RXD قضیه اندکی متفاوت است. پایه RXD در ماژول HC-05 در حالت 1 منطقی 3/3 ولت می دهد و چون میکروکنترلر ATmega8 ولتاژ 3/3 را در حالت ورودی 1 منطقی می خواند پس می توان مستقیم این پایه را به TXD میکروکنترلر وصل کرد. اما پایه TXD میکروکنترلر در حالت 1 منطقی 5 ولت می دهد که نمی توان آن را به طور مستقیم به HC-05 وصل کرد(در درازمدت باعث آسیب به پایه RXD ماژول می شود). بنابراین با استفاده از یک مدار تقسیم ولتاژ سطح ولتاژ آن را تا زیر 3/3 باید کاهش داد. البته در این قسمت از پروژه فقط داده از سمت ماژول به میکرو منتقل می شود پس فعلا اگر قسمت سبزرنگ مدار را وصل هم نکنید مشکلی ندارد اما برای کاربردهای بعدی اگر بخواهید داده ای را از میکرو به ماژول(با هدف ارسال از طریق بلوتوث) بفرستید باید وصل کنید.

connecting HC-05 bluetooth module to Atmega8-4

به طور اختیاری اگر دوست داشتید یک LCD کاراکتری هم به میکروکنترلر متصل کنید تا داده دریافتی از طریق بلوتوث را روی LCD نمایش دهید.

گام دوم: برنامه سمت میکروکنترلر

بین میکروکنترلر و ماژول HC-05 یک ارتباط سریال تمام دوطرفه(Full Duplex) برقرار است. یعنی همزمان هم میکروکنترلر می تواند به ماژول داده بفرستد و هم ماژول به میکروکنترلر. در این بخش فرض می کنیم که فقط ماژول به میکروکنترلر داده ارسال می کند. ماژول هر داده ای را که از طریق بلوتوث دریافت کند از طریق پایه TXD خود به میکرو ارسال می کند و همچنین هر داده دریافتی از طریق پایه RXD را از طریق بلوتوث به ابزارهای جفت شده(در صورت وجود) ارسال می کند. اما برای تبادل موفق داده بین ماژول و میکروکنترلر باید تنظیمات ارتباط سریال در دو طرف مشترک باشد. ماژول HC-05 پس از خریداری به صورت پیش فرض روی یک سری پارامترهایی تنظیم شده است. در صورت تمایل می توان با ورود به حالت تنظیمات آن ها را تغییر داد. همانطور که گفتیم در مورد حالت تنظیمات در قسمت بعدی آموزش بیشتر صحبت می کنیم. اما تنظیمات پیشفرض این ماژول به این صورت است:

  • نقش Slave

  • حالت عملکرد عادی

  • تبادل سریال 8 بیتی، 1 بیت توقف، بدون بیت توازن با نرخ تبادل 9600 بیت برثانیه

بنابراین واحد ارتباط سریال میکروکنترلر را هم به همین صورت باید تنظیم کنیم.

برنامه سمت میکروکنترلر به صورت زیر است:

گام سوم: سمت موبایل

اپلیکیشن های اندروید زیادی وجود دارند که با استفاده از آن ها شما می توانید به طور سریال از طریق بلوتوث داده ارسال نمایید. برای مثال یکی از این اپلیکیشن ها BlueTerm است که این کار را انجام می دهد.

اپلیکیشن BT Ersal هم توسط خود بنده با نرم افزار Basic4Android یا همون B4A نوشته شده که محیطش فارسی هست و اختصاصا برای همین پروژه نوشتم(اگر فرصتی پیش آمد آموزش B4A برای نوشتن اپلیکیشن های کاربردی مثل این را داخل ساخت قرار می دهیم.). در شکل زیر محیط این اپلیکیشن را مشاهده می کنید:

connecting HC-05 bluetooth module to Atmega8-5

با بازکردن اپلیکیشن، در صورت خاموش بودن بلوتوث تلفن همراه، با نمایش پیغام مناسب به طور خودکار روشن می شود. سپس با لمس گزینه آبی رنگ “جستجوی بلوتوث” ماژول HC-05 را با همین نام پیدا کرده و به آن متصل می شویم. اگر اپلیکیشن در هنگام اتصال از شما درخواست رمز عبور نمود معمولا رمز عبور این ماژول 0000 یا 1234 می باشد. اگر اتصال با موفقیت انجام شود سرعت چشمک زدن LED روی برد راه انداز کم تر می شود. بعد از اتصال موفق کافیست کلید دو حالته خاکستری رنگ را لمس کنیم. می بینیم که LED خاموش و روشن می شود. همچنین می توان با لمس قسمت “متنی را وارد کنید” هر متن دلخواه را به ماژول بفرستید. ماژول آن را دریافت کرده و به میکرو می فرستد اما هیچ تاثیری در LED ندارد! فقط با فرستادن عدد 1 می توان آن را روشن و با 0 آن را خاموش نمود.

دریافت اپلیکیشن BTErsal:

در اینجا قسمت اول آموزش به پایان رسید. قسمت بعدی را از دست ندهید.

نظرات و سوالات خود را در زیر این مطلب بیان فرمایید.

درباره ی مدیر سایت

۱۲ دیدگاه

  1. حمید رضا اسدی

    سلام با آیا باhc-06فرقی دارد

  2. سلام. ببخشید من B4A کار نکردم. میشه با اندروید استودیو اپلیکیشن مربوطه رو ساخت ؟

  3. سلام ذوست عزیز فایل hex رو از کجا میشه دانلود کرد؟

  4. با سلام من پروژه دانشگلهی دارم که باید تا اواخر خرداد تحویل بدم.سورس پروژه را ندارم.عنوان پروژه مدار پخش کننده صوتی با اکولایزر هست که با میکرو atmega 8 انجام میشه سورس همراه کارت sd موجود هست اما برای ماژول بلوتوث hc05 چیزی پیدا نکردم.
    فرقی نمیکند سورس برنامه c باشه یا بیسیک اگر می شود آموزش و کد سورس برنامه را قرار دهید.باتشکر

  5. با سلام.مهندس من یه برنامه avr دارم و برای پروژم نیاز دارم که تمام جزییات برنامرو بدونم.شما میتونید قبول کنید؟

  6. سلام با عرض تشکر

    ببخشید گوشی من اتصال برقرار میکنه.led ماژول هم با فرکانس کم شروع به روشن خاموش میکنه.
    ولی led روشن نمیشه. دلیلش چی میتونه باشه؟

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

  7. میشه لطفی بکنین سورس برنامه نویسی
    اندرویدش رو بزارین؟

  8. با سلام و خسته نباشید.
    اپلیکشن با چه برنامه ای ساخته شده.
    اگه بخواییم کمی تغییرش بدیم چه میشه کرد؟

    • سلام.
      با Basic4Android‌نوشته شده.
      این نرم افزار برای نوشتن اپلیکیشن های کاربردی ساده مثل این راحت ترین راهه.

  9. اگه میشه اموزش برنامه نویسی اندرویش رو بگذارین.ممنون

پاسخ دهید

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