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

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

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

1- حالت های کاری ماژول HC-05

2- رفتن به مد تنظیمات

3- دستورات AT ماژول

4- تنظیم کردن ماژول در عمل

 

1- حالت های کاری ماژول HC-05:

همان طور که در قسمت قبلی آموزش اشاره شد این ماژول در حالت کلی در دو حالت یا مد کار می کند. 1- حالت عملکرد عادی(به تعبیر دیتاشیت Automatic Connection Work Mode)  که در این مد ماژول می تواند با ابزارهای بلوتوث دیگر جفت(pair) شده و ارتباط برقرار کند. به همین خاطر گاهی به این حالت Pairing هم گفته می شود. 2- حالت تنظیمات(به تعبیر دیتاشیت Order-Response Work Mode). در این حالت ماژول آمادگی این را دراد که از طریق ارتباط سریال یک سری دستوراتی را دریافت کرده(order) و به آن ها پاسخ های مناسبی بدهد(response). این ارتباط از طریق دستورات AT انجام می شود که در ادامه توضیح داده خواهد شد. در این قسمت از آموزش با مد تنظیمات این ماژول سروکار داریم.

این ماژول دارای دو مد تنظیمات است. مد تنظیمات1 (AT1) و مد تنظیمات 2(AT2). باز هم برای این که درک مطلب راحت تر شود اصلا ذهن خود را درگیر مد تنظیمات 2 نمی کنیم و فقط روی مد تنظیمات 1 تمرکز می کنیم! با اینکه گاهی اوقات مد تنظیمات 2 کاربردی تر بوده وبیشتر به کار می آید ولی در آخر بخش 3 چند سطری بیشتر در مورد آن صحبت نمی کنیم(خواهید فهمید چرا!!)!

2- رفتن به مد تنظیمات

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

 

 

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

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

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

پایه 34 این ماژول برای وارد شدن به مد تنظیمات است.  این ماژول پس از خریداری به طور پیش فرض دارای مشخصات عملکردی زیر است:

  • نقش Slave

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

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

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

حال فرض کنید ماژول در حالت کارکرد عادی خود قرار دارد. در این حالت اگر پایه 34 را به 1 منطقی وصل کنیم(حتما 3/3 ولت نه 5 ولت) ماژول به مد تنظیمات 1 می رود. به همین راحتی! اگر از برد راه انداز جلسه قبل استفاده می کنید کافیست برای رفتن به مد تنظیمات 1، سوئیچ موجود روی برد را فشار دهید. با رهاکردن سوئیچ دوباره ماژول به مد عملکرد عادی بر می گردد.

با وارد شدن به مد تنظیمات 1 ماژول از طریق پایه RXD خود آماده دریافت دستورات AT بوده و درصورت دریافت دستورات صحیح به آن ها پاسخ مناسب می دهد. یعنی دیگر مثل مد عادی داده دریافتی در پایه RXD را از طریق بلوتوث ارسال نمی کند. طبیعی است که تبادل داده در این مد هم مثل مد عادی با پروتوکل های ارتباط سریال انجام می شود. نکته مهمی که وجود دارد این است که تعداد بیت داده، نرخ تبادل، بیت پایان و بیت توازن در این حالت همانند حالت عملکرد عادی می باشد. یعنی اگر شما اولین بار است که وارد مد تنظیمات می شوید مشخصات ارتباط سریال در مد تنظیمات 1 به صورت زیر می باشد:

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

 در ادامه ابتدا دستورات AT ماژول را شرح داده و در نهایت نحوه تنظیم کردن ماژول در عمل را خواهیم آموخت.

3- دستورات AT ماژول HC-05

مجموعه دستورات این ماژول در راهنمایی تحت عنوان HC-03/05 Embedded Bluetooth Serial Communication Module 

AT command set  ارائه شده است که علاقه مندان می توانند به آن مراجعه کنند(در انتهای همین مقاله می توانید این فایل را دریافت نمایید). در اینجا به مهمترین آنها اشاره می کنیم.

نکته مهم: تمام دستورات AT که در ادامه می آید حتما باید با کاراکتر r\n\ یا با هگزادسیمال 0x0d  0x0a ختم شوند. یعنی هر دستوری که می فرستیم در نهایت باید این دو کاراکتر هم فرستاده شوند تا این دستور توسط ماژول دریافت شود. در بخش بعد خواهیم آموخت که چگونه نرم افزار ترمینال را تنظیم کنیم تا این دو کاراکتر به طور خودکار فرستاده شوند. نگران نباشید!

3-1 تست ماژول

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

این دستور فقط برای تست ماژول است. یعنی وقتی شما مدار مربوط به تنظیمات را می بندید(قسمت بعد) و نرم افزار ترمینال را تنظیم می کنید با فرستادن دو کاراکتر A و  T پشت سر هم(البته به همراه \r\n) اگر پاسخ OK را از ماژول دریافت کردید یعنی همه چیز درست است!

3-2 دریافت و تغییر نام ماژول

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

این دستور در دو حالت کار برد دارد. 1 برای فهمیدن نام فعلی ماژول  2- برای تغییر نام ماژول

در حال اول کافیست دستور زیر را در نرم افزار ترمینال بنویسیم:

آنگاه ماژول در پاسخ نام ماژول را برای ما می فرستد. برای مثال اگر نام ماژول را تا به حال تغییر نداده باشیم نام پیش فرض آن را می فرستد:

در صورت بروز هرگونه مشکل ممکن است پیام FAIL دریافت کنیم.

و در حالت دوم نیز می توان نام دلخواه برای آن برگزید:

در این صورت نام ماژول تغییر کرده و پاسخ OK دریافت می کنیم.

3-3 دریافت  و تغییر نقش ماژول

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

دقیقا مشابه دستور قبلی هم می توان نقش کاری ماژول را فهمید و همچنین آن را تغییر داد. برای تنظیم روی نقش Slave کافیست به جای <param>، عدد 0 را فرستاد و برای Master عدد 1 را. به طور پیش فرض(بعد از خرید) این پارامتر 0 می باشد.

3-4 دریافت و تغییر پارامترهای ارتباط سریال

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

این دستور 3 پارامتر دارد.

پارامتر اول مربوط به نرخ ارسال یا baud rate هست که یکی از اعداد: 4800،  9600،  19200،  38400،  57600،  115200،  230400،  460800،  921600،  1382400 بر حسب بیت بر ثانیه می باشد.

پارامتر دوم مربوط به تعداد بیت پایان هست که اگر 0 باشد یعنی تعداد بیت پایان 1 بیت هست و اگر 1 باشد یعنی تعداد بیت پایان 2 تا هست.

پارامتر سوم مربوط به بیت توازن هست. اگر 0 باشد توازن نداریم. اگر 1 باشد یعنی توازن فرد و اگر 2 باشد یعنی توازن زوج هست. برای مثال اگر تا به حال تنظیمات ماژول خود را تغییر نداده اید با اجرای دستور زیر:

پاسخی که دریافت می کنید به صورت زیر است:

که همان تنظیمات پیش فرض ماژول می باشد. و اگر مثلا بخواهیم نرخ ارسال را به 19200 افزایش دهیم می توانیم از دستور زیر استفاده کنیم:

3-5 دریافت و تغییر رمز عبور

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

در هنگام متصل شدن هر وسیله جانبی(از جمله موبایل) به ماژول از شما درخواست رمز ورود می شود. این رمز به طور پیش فرض معمولا 1234 می باشد. با کمک این دستور می توان رمز عبور فعلی را فهمید و یا آن را تغییر داد.

3-6 بازگردانی تنظیمات به شرایط از پیش تعیین شده

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

این دستور تنظیمات گفته شده در بالا را به صورت زیر تغییر می دهد:

  • نقش Slave

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

  • رمز عبور: 1234

این ماژول داری دستورات بسیار دیگری هم می باشد که برای اطلاعات بیشتر می توانید به راهنمایی که در بالا گفته شده مراجعه کنید.

و اما مد تنظیمات 2! به نظر شما مد تنظیمات 1 چه مشکلی دارد که نیاز به مد تنظیمات دیگری باشیم؟! فرض کنید شما ماژول را از بازار خریده و با توضیحاتی که در بالا گفتیم تنظیمات آن را تغییر می دهید. مثلا مشخصات ارتباط سریال آن را عوض می کنید. بعد از گذشت مدتی دوباره سراغ ماژول می روید. می خواهید نقش ماژول را از Slave به Master تغییر دهید. اما فراموش می کنید مثلا نرخ انتقال سریال آن چقدر است. حال اگر بخواهید از مد تنظیمات 1 استفاده کنید به مشکل می خورید. چرا؟ چون مد تنظیمات 1 از همان نرخ انتقال ذخیره شده در ماژول استفاده می کند که شما آن را فراموش کرده اید! برای همین مجبوریم از مد تنظیمات 2 بهره ببریم. مد تنظیمات 2 فارغ از هر تنظیماتی که در ماژول ذخیره شده است از تنظیمات ثابت زیر بهره می برد:

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

بنابراین کافیست تنظیمات ارتباط سریال کامپیوتر را هم به صورت فوق انجام داده و با دستورات مناسب تنظیمات ذخیره شده در ماژول را فهمید و یا آن ها را تغییر داد.

حال پرسش این است که چگونه به مد تنظیمات 2 برویم؟ پاسخ: با استفاده از پایه 34! اگر ابتدا تغذیه ماژول را وصل کنیم و سپس پایه 34 را به 1 منطقی وصل کنیم به مد 1 می رویم و اگر ابتدا پایه 34 را به 1 منطقی وصل کنیم و سپس تغذیه ماژول را وصل کنیم به مد 2 می رویم. اگر از برد راه انداز استفاده می کنید(که حتما می کنید!) برای رفتن به مد 2 کافیست در هنگام وصل تغذیه ماژول سوئیچ تنظیمات مد را پایین نگه دارید.

عملکرد پایه 31:

پایه 31 که نام آن LED1 می باشد برای نشان دادن مد کاری است. بر روی برد راه انداز این پایه به یک LED قرمز وصل شده است. در مدهای کاری عادی و تنظیمات1 این LED با فرکانس 2 هرتز چشمک می زند. اما در مد تنظیمات 2 کمی آرام تر و با فرکانس 1 هرتز چشمک می زند.

4- تنظیم کردن ماژول در عمل

4-1 مبدل USB به سریال

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

این مبدل ها بسیار ارزان قیمت بوده و در مدل های مختلفی در بازار یافت می شوند. فقط کافیست برای خرید دقت نمایید که مبدلی که می خرید دارای انتخابگر سطح ولتاژ 3/3 ولت باشد. در شکل زیر چند مدل از این مبدل ها را میبینید:

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

با دقت در طرح های فوق می توان جامپر یا کلید دوحالته مربوط به سطح ولتاژ 3/3 و 5 ولت را مشاهده نمود. مدلی که من از آن استفاده کردم در شکل زیر مشخص است که با قیمت پایینی در بازار یافت می شود:

 

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

 

4-2 مدار تنظیمات

برای این کار کافیست که مبدل قسمت قبل را به USB کامپیوتر متصل کرده و مطابق مدار زیر آنرا به ماژول HC-05 متصل کنید:

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

دقت کنید: چون جامپر در موقعیت 3/3 ولت قرار دارد پایه های RXD و TXD مبدل را مستقیم به ماژول متصل نمودیم.

توجه: بهتر است عادت کنیم تا تنظیمات را در مد 2 انجام دهیم. برای این کار کافیست قبل از اینکه تغذیه ماژول(سیم قرمز در شکل فوق) را وصل نماییم سوئیچ روی برد راه انداز را پایین نگه داریم. با این کار سرعت چشمک زدن LED روی ماژول نصف حالت عملکرد عادی می شود.

4-3 سمت کامپیوتر

 با اتصال مبدل به کامپیوتر، سیستم عامل پیامی مبنی بر نصب درایور آن می کند. اگر به اینترنت وصل باشید درایور آن به طور خودکار نصب می شود. بعد از شناخته شدن مبدل توسط کامپیوتر نوبت به نرم افزاری می رسد که با پورت سریال ارتباط برقرار نماییم. نرم افزارهای زیادی برای ارتباط با پورت سریال وجود دارد. معمولا در برخی از ویندوزها نرم افزار معروف Hyper Terminal وجود دارد. اگر ویندوز شما این نرم افزار را نداشت می توانید نسخه مناسب را از اینترنت دریافت کنید. نسخه مناسب ویندوز 7 نیز در انتهای این مطلب قابل دریافت هست. نرم افزارهای دیگری هم به طور مشابه همین کار را انجام می دهند. به طور مثال اگر از Codevision برای برنامه نویسی میکرو استفاده می کنید از Terminal این نرم افزار نیز می توانید استفاده کنید. حال همه چیز آماده است تا دستورات دلخواه خود را به ماژول بفرستیم. در ادامه نحوه تنظیمات Hyper Terminal و فرستادن دستورات AT را در ویدئوی زیر مشاهده فرمایید:

 

 فایل های مورد نیاز را می توانید از کادر زیر دریافت نمایید:

دانلود:

دیتاشیت ماژول بلوتوث HC-05

دستورات AT برای تنظیمات ماژول HC-05

نرم افزار Hyper Terminal برای ویندوز 7

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

سوالات و نظرات خود را در پایین همین مطلب و در بخش دیدگاه ها بیان فرمایید.

یاعلی.

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

۴ دیدگاه

  1. سلام بسیار بسیار عالی بود. فقط اگه به این سوال بنده جواب بدید ممنون میشم. اگر بخوام ماژول بلوتوث نقش master بازی کنه یعنی مثلا به یکی از پایه های ماژول پالس بدم و ماژول اثر این پالس رو از طریق بلوتوث روی موبایلم نشون بده، اتصالات و تنظیمات چطوری میشه؟ اینکه ماژول چطوری درحالت master میذاریم رو توضیح دادین و فهمیدم. میخواستم بدونم ایا اتصالات تغییر میکنه؟ یا کار دیگه ای هم باید انجام بدیم؟

  2. با سلام و عرض خسته نباشید
    گاهی اوقات موقع عوض کردن تنظیمات بعضی ایتم ها مثلا پسورد ارور ۱D میده و گاهی هم بعداز وارد کردن دستور جواب OK یا FAIL نمیده میشه لطفا راهنمایی کنید
    ممنون

  3. ممنون از اطلاعتتون که در اختیار ما گذاشتید خدا خیرتون بده.

پاسخ دادن به fateme لغو پاسخ

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