وبلاگ آموزشی جم ترونیک

آموزش کامل راه‌اندازی ماژول بلوتوث hc05 با برد آردوینو

آموزش راه اندازی ماژول بلوتوث hc05

hc05 یک ماژول بلوتوث با امکانات فراوان است که می‌تواند در دو مد Master و Slave ، پورت سریال را به‌صورت بی‌سیم در اختیار شما بگذارد. ازاین‌رو می‌توانید از این ماژول در طراحی خانه‌های هوشمند، هدست‌های بی‌سیم و … استفاده کنید. با استفاده از ماژول HC05 می‌توان دیتا را در فواصل معین (10 الی 33 متر) با استفاده از پروتکل بلوتوث دریافت و ارسال کرد. مزیتی که ماژول بلوتوث دارد این است که می‌تواند دیتا را از آردوینو، میکروکنترلر، تلفن همراه و…… به‌صورت سریال به ماژول انتقال داد و سپس خود ماژول دیتا را از طریق پروتکل بلوتوث ارسال خواهد کرد. همچنین می‌تواند دیتا را از طریق پروتکل بلوتوث دریافت کند و سپس آن‌ها را به سریال تبدیل کرده و به کاربر تحویل دهد. ماژول‌های سری HC به دو صورت با پسوند اعداد زوج و فرد وارد بازار می‌شوند. ماژول‌ها با پسوند اعداد زوج فقط می‌توانند در مد Master یا Slave باشند. در این مقاله از جم ترونیک با نحوه اتصال این ماژول بلوتوث به برد آردوینو و استفاده از آن می‌پردازیم.

قطعه‌های موردنیاز

  1. میکروکنترلر Arduino UNO
  2. ماژول بلوتوث hc05
  3. سیم جامپر نری به مادگی

آموزش نحوه اتصال ماژول hc05 و برد آردوینو

نحوه اتصال برای دریافت اطلاعات از ماژول و مشاهده بر روی سریال مانیتور

همان‌طور که گفته شد ماژول HC05 از طریق ارتباط سریال با آردوینو ارتباط برقرار می‌کند و Arduino Uno دارای یک پورت سریال است که پین شماره 0  و 1 به ترتیب پین‌های Rx و Tx آن هستند. در واقع این پورت سریال سخت‌افزاری است. به این دلیل که می‌خواهیم از پورت سریال سخت‌افزاری به‌عنوان رابط دیتا میان آردوینو و کامپیوتر استفاده کنیم، دیگر نمی‌توانیم ماژول بلوتوث را به پین شماره 0 و 1 متصل کنیم، برای این منظور از باید روی دو پین از پین‌های آردوینو، پورت سریال نرم‌افزاری اضافه کنیم (به این معنی که از دو پین دیجیتال به‌عنوان پورت سریال استفاده کنیم). برای ایجاد پورت سریال نرم‌افزاری از کتابخانه softwareSerial استفاده می‌شود. پس ما در برنامه‌نویسی دو پین شماره 2 و 3 را با استفاده از کتابخانه softwareSerial به پورت سریال نرم‌افزاری تبدیل می‌کنیم. 

همان‌طور که در شکل بعد مشاهده می‌کنید ماژول بلوتوث  HC05 دارای 6 پایه به شرح زیر است:

  • VCC : تغذیه ماژول در محدوده 6-3.6 ولت است. با این که سطح منطقی پایه‌های ارتباط سریال 3.3v است. اما به دلیل وجود رگولاتور در ماژول، آن را به 5v آردوینو وصل می‌کنیم.
  • GND : زمین
  • STATE: تعیین وضعیت اتصال
  • EN : تنظیم جهت ورود به تنظیمات AT Command
  • RX : دریافت اطلاعات از طریق پروتکل سریال
  • TX : ارسال اطلاعات از طریق پروتکل سریال
آموزش اتصال ماژول بلوتوث به آردوینو
پین‌های ماژول بلوتوث hc05

در شکل بعد نحوه اتصال ماژول را به آردوینو مشاهده می‌کنید که پین TXD به پین 2، پین RXD به پین 3، پین VCC به 5v و پین GND ماژول به GND آردوینو متصل می‌شود. در این پروژه از پین‌های EN و State استفاده نمی‌کنیم.

نحوه اتصال ماژول بلوتوث به آردوینو
نحوه اتصال ماژول بلوتوث به آردوینو

۲. آموزش نحوه اتصال برای روشن خاموش‌کردن یک LED

در این حالت چون با پورت سریال سخت‌افزاری کاری نداریم، مطابق شکل زیر به‌جای پین‌های 2 و 3، آن پین TXD ماژول را به RXD آردوینو و پین RXD ماژول را به TXD آردوینو (به ترتیب پین‌های 0 و 1) متصل می‌کنیم.

آموزش اتصال برد آردوینو به ماژول بلوتوث
نحوه اتصال ماژول بلوتوث و LED به آردوینو

۳. آموزش اتصال آردوینو به کامپیوتر

ابتدا آردوینو را به‌وسیله پورت USB به کامپیوتر متصل کنید .اگر مراحل کار را به‌درستی انجام داده باشید باید LED موجود بر روی برد ماژول بلوتوث HC05 به‌صورت سریع چشمک بزند و به این معنی است که ماژول آماده برقراری با یک دیوایس است.

۴. برنامه روشن و خاموش‌کردن یک LED با استفاده از ماژول بلوتوث

توضیح روند کد: ابتدا باید پینی را که LED ما به آن وصل می‌شود (پین 13) و متغیری که در آن داده‌های حاصل از تلفن هوشمند را ذخیره خواهیم کرد، تعیین کنیم. در بخش راه‌اندازی باید پین LED را به‌عنوان خروجی تعریف کنیم و آن را در low تنظیم کنید. همان‌طور که قبلاً نیز اشاره شد، از ارتباط سریال استفاده خواهیم کرد؛ بنابراین، باید ارتباط سریال را با نرخ 38400 baud شروع کنیم که نرخ پیش‌فرض baud ماژول بلوتوث است. در بخش حلقه با تابع Serial.available() بررسی خواهیم کرد که آیا اطلاعات در دسترس پورت سریال وجود دارد که باید خوانده شود. این بدان معنی است که وقتی داده‌ها را به ماژول بلوتوث می‌فرستیم، این عبارات صحیح خواهند بود؛ بنابراین، با استفاده از تابع Serial.read() آن داده‌ها را می‌خوانیم و آن را در متغیر state  قرار می‌دهیم؛ بنابراین، اگر آردوینو کاراکتر ‘0’ را دریافت کند، LED را خاموش می‌کند و با استفاده از تابع Serial.println()، عبارت “LED:OFF” را به تلفن هوشمند، از طریق پورت سریال ارسال می‌کند. علاوه بر این، متغیر state را به 0 ریست می‌کنیم تا دو خط فوق، فقط یک‌بار اجرا شوند. در اینجا توجه داشته باشید که متغیر state عدد صحیح است؛ بنابراین، وقتی کاراکتر ‘0’ را از یک لپ‌تاپ یا تلفن هوشمند دریافت می‌کنیم، مقدار واقعی متغیر state عدد صحیح 48 است که مطابق با کاراکتر ‘0’ باتوجه‌به جدول ASCII است. به همین دلیل، در عبارت “if”متغیر state را با کاراکتر ‘0’ مقایسه می‌کنیم. از طرف دیگر، اگر کاراکتر دریافتی ‘1’ باشد، LED روشن می‌شود و عبارت “LED:ON” ارسال می‌کند.

۵. کنترل آردوینو با استفاده از لپ‌تاپ یا رایانه شخصی از طریق ارتباط بلوتوث

ابتدا باید لپ‌تاپ خود را به ماژول بلوتوث HC-05 جفت کنیم و می‌توانیم آن را از طریق تنظیمات بلوتوث لپ‌تاپ انجام دهیم. لپ‌تاپ، ماژول HC-05 را پیدا می‌کند و با استفاده از رمز عبور 1234، دیوایس‌ها را جفت می‌کنیم.

آموزش کنترل آردوینو با ماژول بلوتوث

هنگامی که دیوایس‌ها را در دیوایس منیجر لپ‌تاپ جفت می‌کنیم، در زیرشاخه Ports (COM & LPT)، دو ورودی جدید با نام”Standard Serial over Bluetooth link”  ظاهر می‌شوند. از اینجا، می‌توانیم شماره پورت سری COM را که از طریق آن دیوایس‌ها ارتباط برقرار می‌کنند، مشاهده کنیم.

آموزش کنترل آردوینو با ماژول بلوتوث
نحوه انتخاب پورت COM

LED را روشن و خاموش می‌کنیم و عبارتی را به لپ‌تاپ ارسال می‌کنیم.

۶. طراحی یک محیط کنترل آردوینو با استفاده از ماژول بلوتوث

ابتدا کد زیر را برای ایجاد یک محیط کنترل وضعیت LED در Arduino IDE اجرا می‌کنیم.

برای فعال‌کردن ارتباط سریال، باید کتابخانه سریال را وارد کنیم و یک مورد سریالی ایجاد کنیم. همچنین یک متغیر String را برای وضعیت led تعریف کنیم. در قسمت setup باید اندازه پنجره برنامه را تنظیم کرده و ارتباط سریال را شروع کنیم. در مورد شماره درگاه COM، در اینجا باید یکی از دو پورت COM را که قبلاً در دیوایس منیجر مشاهده کرده بودیم، امتحان کنیم. خط بعدی، بافر بودن پورت سریال را تعیین می‌کند و در مورد ما، آن را تا زمانی که یک خط جدید وجود ندارد تعریف می‌کند. در واقع خط جدید زمانی موجود است که آردوینو هر بار به دلیل تابع println() عبارت”LED: OFF” یا”LED:ON”  را ارسال می‌کند. در مرحله بعد، با استفاده از تابع serialEvent() بررسی می‌کنیم که آیا داده‌های موجود که باید خوانده شود، در پورت سریال وجود دارد. در این صورت، با استفاده از تابع readStringUntil()، داده‌ای را که از درگاه سریال آردوینو ارسال شده است، می‌خوانیم. در این مورد عبارت”LED: OFF”  یا “LED: ON” است.

بیشتر بخوانید: ماژول بلوتوث چیست؟

در تابع main() که به طور مداوم تکرار می‌شود (اسم تابع آن در IDE مشخص نیست، هر کدی که داخل یک تابع خاص نباشد فقط داخل تابع main() است.)، تمام گرافیک‌ها و تابع‌های برنامه را تهیه می‌کنیم؛ بنابراین، ابتدا به تنظیم رنگ پس‌زمینه، رنگ کامل، اندازه و رنگ قلم نیاز داریم و با استفاده از تابع ()rect دو دکمه را ترسیم می‌کنیم. با استفاده از تابع ()text، تمام متن را چاپ می‌کنیم؛ از جمله عبارت ledStatus که از آردوینو آمده است. چیزی که اکنون باقی‌مانده است، عملکرد دکمه‌ها است؛ بنابراین، با استفاده از اولین عبارت “if” ناحیه دکمه “Turn ON” را محدود می‌کنیم. بنابراین، وقتی دکمه را فشار دهید، کاراکتر “1” از طریق پورت سریال به آردوینو ارسال می‌شود و LED را روشن می‌کند. از خطوط بعدی برای برجسته‌کردن دکمه هنگام فشار استفاده می‌شود. همین روش برای دکمه “Turn OFF” انجام می‌شود.

آموزش کنترل آردوینو با ماژول بلوتوث
کار با فضای کنترل وضعیت LED با بلوتوث

اکنون برنامه آماده است؛ بنابراین وقتی روی دکمه run کلیک می‌کنیم، این برنامه به طور خودکار ارتباط بلوتوث بین لپ‌تاپ و آردوینو را فعال می‌کند. ماژول بلوتوث HC-05 هر دو ثانیه شروع به چشمک زدن می‌کند. این نشان می‌دهد ماژول متصل است و قادر خواهیم بود با استفاده از لپ‌تاپ خود، LED را کنترل کنیم.

آموزش اتصال آردوینو به اندروید

۱. ارسال یک عبارت توسط آردوینو به گوشی

ابتدا بلوتوث گوشی هوشمند اندروید خود را روشن کنید تا دستگاه‌های موجود را جست‌وجو کند.

آموزش اتصال آردوینو به گوشی

پس از یافتن دستگاهی به نام HC05 بر روی آن کلیک کنید:

آموزش اتصال آردوینو به گوشی

اکنون عدد 1234 را به‌عنوان پسورد برای آن وارد کنید و به ماژول کانکت شوید:

آموزش اتصال آردوینو به گوشی

بعد از کانکت شدن، LED  موجود بر روی ماژول هر دو ثانیه یک‌بار چشمک می‌زند. به برنامه‌ای جهت کنترل آردوینو نیاز داریم. برای این منظور اپلیکیشن‌های زیادی در Play Store وجود دارد که با کد آردوینویی که نوشتیم، کار خواهد کرد. بااین‌حال، برنامه ای از سایت melec.ir برای این آموزش با استفاده از برنامه آنلاین MIT App Inventor تهیه کردیم. این برنامه، یک برنامه کاربردی عالی و آسان برای ساختن برنامه اندرویدی است.

. با استفاده از دکمه اتصال، تلفن هوشمند را به ماژول بلوتوث وصل خواهیم کرد و متن وضعیت موجود در زیر این دکمه، به ما می‌گوید که آیا با موفقیت به هم وصل شده‌ایم یا خیر. با استفاده از دکمه‌های “روشن” و “خاموش”، می‌توانیم LED را روشن یا خاموش کنیم. متن بالای دکمه‌ها، مطلبی است که آردوینو هنگام فشار دادن یک دکمه خاص، به تلفن هوشمند ارسال می‌کند.

آموزش اتصال آردوینو به گوشی

۲. دریافت اطلاعات از آردوینو

ابتدا همانند کتابخانه softwareSerial را از لینکی قرار دادیم، دانلود و نصب کنید. (برای نصب آن به مسیر Sketch-> Include Library -> Add .ZIP Library بروید و فایل زیپ دانلود شده را انتخاب کنید.)

۳. ارسال داده به آردوینو از طریق ماژول بلوتوث

مطابق کد زیر، ابتدا کتابخانه را include می‌کنیم، سپس در تابع setup()، مقدار baud rate هر دو پورت سریال سخت‌افزاری و نرم‌افزاری را تعیین می‌کنیم. یک while می‌گذاریم که صبر کند تا پورت سریال وصل شود و در آخر در تابع loop() کدی می‌نویسیم که اگر داده‌ای از پورت نرم‌افزاری دریافت کرد، آن را در سریال مانیتور نمایش دهد.

جمع‌بندی

در این پروژه نحوه اتصال ماژول بلوتوث به گوشی هوشمند یا لپ‌تاپ را آموختیم. دیدیم که می‌توان با استفاده از یک برنامه اندروید، می‌توان به میکروکنترلر آردوینو فرمان داد، حال این فرمان می‌تواند روشن‌کردن یک LED باشد، فعال‌کردن یک رله باشد. از این ماژول می‌توان برای باز کردن یک درب استفاده کرد. ماژول بلوتوث در بعضی از کاربردهای اینترنت اشیا قابل‌استفاده است؛ بنابراین به‌طورکلی برای انتقال اطلاعات با درنظرگرفتن محدودیت‌هایش قابل‌استفاده است. از مثال LED می‌توانید نحوه کارکرد کلی کار با ماژول را بیاموزید و برای پروژه‌های دیگر خود از ابن ماژول استفاده کنید.

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

بازگشت به لیست

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

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