چهارشنبه , 27/05/20
خانه / دسته‌بندی نشده / کنترل لوازم خانگی با استفاده از بلوتوث تلفن همراه(قسمت اول)

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

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

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

پیش نیاز:

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

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

ماژول های سری 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)  اشتباه نشود.

این ماژول  به طور کلی در دو حالت کاری قابل استفاده است: ۱- حالت کارکرد عادی  ۲- حالت تنظیمات. در حالت تنظیمات، می توان مشخصات عملکردی این ماژول در حالت کارکرد عادی، از قبیل: نقش های کاری، سرعت انتقال داده، تعداد بیت انتقال وغیره، را تنظیم کرد. در حالت کارکرد عادی هم طبق تنظیمات ذخیره شده در ماژول می توان با ابزارهای بلوتوث جانبی جفت(Pair) شده و ارتباط برقرار نمود. البته در این قسمت از آموزش ما با حالت تنظیمات کاری نداریم و فقط با حالت کارکرد عادی کار می کنیم. در قسمت بعدی این آموزش به تنظیمات مختلف این ماژول پرداخته می شود.

شکل پایه ها

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

connecting HC-05 bluetooth module to Atmega8

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

onnecting-HC-05-bluetooth-module-to-Atmega8

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

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

connecting HC-05 bluetooth module to Atmega8-2

پروژه عملی

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

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

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

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

۳- برد برد

۴- منبع تغذیه ۵ ولت(می توانید از آداپتور ۱۲ ولت و رگولاتور ۷۸۰۵ استفاده کنید.)

۵- مقاومت های ۱ کیلواهم و ۲ کیلو اهم و ۳۳۰ اهم

۶- LED

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

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

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

ابتدا مانند شکل زیر ماژول را به میکرو کنترلر متصل می کنیم. دقت کنید که تغذیه HC-05 را می توان به صورت مستقیم از ۵ ولت تامین کرد(چون در داخل برد راه انداز رگولاتور ۳/۳ ولتی وجود دارد).

اما در مورد پایه های TXD و RXD قضیه اندکی متفاوت است. پایه RXD در ماژول HC-05 در حالت ۱ منطقی ۳/۳ ولت می دهد و چون میکروکنترلر ATmega8 ولتاژ ۳/۳ را در حالت ورودی ۱ منطقی می خواند پس می توان مستقیم این پایه را به TXD میکروکنترلر وصل کرد. اما پایه TXD میکروکنترلر در حالت ۱ منطقی ۵ ولت می دهد که نمی توان آن را به طور مستقیم به HC-05 وصل کرد(در درازمدت باعث آسیب به پایه RXD ماژول می شود).

بنابراین با استفاده از یک مدار تقسیم ولتاژ سطح ولتاژ آن را تا زیر ۳/۳ باید کاهش داد. البته در این قسمت از پروژه فقط داده از سمت ماژول به میکرو منتقل می شود پس فعلا اگر قسمت سبزرنگ مدار را وصل هم نکنید مشکلی ندارد اما برای کاربردهای بعدی اگر بخواهید داده ای را از میکرو به ماژول(با هدف ارسال از طریق بلوتوث) بفرستید باید وصل کنید.

connecting HC-05 bluetooth module to Atmega8-4

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

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

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

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

  • نقش Slave
  • حالت عملکرد عادی
  • تبادل سریال ۸ بیتی، ۱ بیت توقف، بدون بیت توازن با نرخ تبادل ۹۶۰۰ بیت برثانیه

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

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

 

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

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

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

connecting HC-05 bluetooth module to Atmega8-5

با بازکردن اپلیکیشن، در صورت خاموش بودن بلوتوث تلفن همراه، با نمایش پیغام مناسب به طور خودکار روشن می شود. سپس با لمس گزینه آبی رنگ “جستجوی بلوتوث” ماژول HC-05 را با همین نام پیدا کرده و به آن متصل می شویم. اگر اپلیکیشن در هنگام اتصال از شما درخواست رمز عبور نمود معمولا رمز عبور این ماژول ۰۰۰۰ یا ۱۲۳۴ می باشد. اگر اتصال با موفقیت انجام شود سرعت چشمک زدن LED روی برد راه انداز کم تر می شود.

بعد از اتصال موفق کافیست کلید دو حالته خاکستری رنگ را لمس کنیم. می بینیم که LED خاموش و روشن می شود. همچنین می توان با لمس قسمت “متنی را وارد کنید” هر متن دلخواه را به ماژول بفرستید. ماژول آن را دریافت کرده و به میکرو می فرستد اما هیچ تاثیری در LED ندارد! فقط با فرستادن عدد ۱ می توان آن را روشن و با ۰ آن را خاموش نمود.

در اینجا قسمت اول آموزش به پایان رسید. قسمت بعدی آموزش به جزئیات بیشتر و همچنین نحوه تنظیمات ماژول بلوتوث پرداخته است.

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

درباره ی admin

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

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