آموزش راه اندازی ماژول بلوتوث HC-05{جلسه سی و دوم}
مقدمه
در دنیای امروز بلوتوث در همه جا وجود دارد. بلوتوث به عنوان یک راه عالی برای انتقال مقادیر کمی داده به صورت بی سیم در فواصل کوتاه (کمتر از 100 متر) است. که به دلیل استفاده در تلفن همراه قابلیت های زیادی دارد.
یکی از مقرون به صرفه ترین و پرکاربردترین ماژول های بلوتوث HC-05 است .
در این جلسه ابتدا یاد میگیریم که چگونه داده ها را بین HC-05 و گوشی هوشمند خود ارسال و دریافت کنید. در قسمت بعدی نحوه پیکربندی HC-05 با استفاده از دستورات AT را به شما آموزش خواهیم داد. و در آخرین آموزش، نحوه برقراری ارتباط دو برد آردوینو به صورت بی سیم با استفاده از ماژول های بلوتوث HC-05 را یاد می گیرید.
سخت افزار HC-05
هر یک از این ماژول ها حاوی یک گیرنده بلوتوث هستند، به این معنی که هم قادر به ارسال و هم دریافت داده هستند. این ماژول از پروتکل ارتباطی سریال برای ارتباط بیسیم استفاده میکند و میتوان آن را در دو مد فرستنده و گیرنده تنظیم کرد. در مد فرستنده، چندین دستگاه میتوانند به ماژول بلوتوث اتصال یابند وسپس ماژول بلوتوث داده را با همه آنها به اشتراک می گذارد. در مد گیرنده، به دستگاه فرستنده اتصال می یابد و فقط میتواند داده را با فرستنده به اشتراک بگذارد.
HC-05 دارای برد اسمی 10 متر در فضای باز است. دامنه آن در داخل خانه کمی ضعیف تر می شود، به خصوص به دلیل دیوارها.
وضعیت عملکرد
HC-05 از دو حالت ارتباطی متمایز استفاده می کند:
- حالت AT
- حالت داده.
در حالت AT ، میتوانید تنظیمات مختلفی از ماژول HC-05 مانند نام، نرخ باود، کد پین و سرعت داده را پیکربندی کنید.
در حالت داده ، ماژول HC-05 به عنوان یک دروازه داده عمل می کند. هنگامی که HC-05 داده ها را دریافت می کند، هدرها و تریلرهای بلوتوث را حذف کرده و به پورت UART می فرستد. هنگامی که داده ها در پورت UART نوشته می شوند، HC-05 یک بسته بلوتوث می سازد و آن را از طریق اتصال بی سیم بلوتوث ارسال می کند.
نقش های اتصال
ماژول بلوتوث HC-05 می تواند در دو نقش اصلی کار کند:
- Master
- Slave
در مد Slave، ماژول HC-05 منتظر می ماند تا دستگاه های دیگر اتصال را آغاز کنند. این نقش پیشفرض ماژول است و معمولاً در پروژههایی استفاده میشود که میخواهید با استفاده از تلفن هوشمند چیزهایی را کنترل کنید.
درنقش Master ،ماژول HC-05 به طور فعال سایر دستگاههای بلوتوث را جستجو میکند و تلاش میکند اتصال را آغاز کند. این وضعیت در پروژه هایی که دو میکروکنترلر نیاز به ارتباط بی سیم دارند کاربرد دارد.
برای جابهجایی بین نقشها، باید ماژول HC-05 را با قرار دادن آن در حالت AT و ارسال دستورات AT روی پورت UART پیکربندی کنید.
قدرت
حداکثر ولتاژ کاری تراشه 3.3 ولت است. بنابراین، ماژول شامل یک رگولاتور خطی 3.3 ولت است که اجازه می دهد تا از ولتاژ 3.6 ولت تا 6 ولت برای تامین برق ماژول استفاده شود.
توجه به این نکته ضروری است که ماژول HC-05 دارای سطح منطقی 3.3 ولت است، بنابراین ما نمی توانیم پایه Rx ماژول HC-05 را مستقیماً به یک پایه دیجیتال روی یک میکروکنترلر 5 ولت مانند Arduino UNO متصل کنیم. به عبارت دیگر، پین Rx در ماژول HC-05 تحمل 5 ولت را ندارد. بنابراین، قبل از اتصال به ماژول HC-05، سیگنال Tx میکروکنترلر باید به 3.3 ولت کاهش یابد.
مصرف فعلی ماژول HC-05 بستگی به وضعیتی دارد که در آن قرار دارد.
Mode | Current Consumption |
Connected with data transfer | 45 mA |
Connected Idle | 8 mA |
وضعیت LED
بسیاری از ماژولهای HC-05 دارای LED داخلی هستند.
برای نشان دادن وضعیت با سرعت های مختلف چشمک می زند:
-
- هنگامی که روشن می شود، ماژول وارد حالت جفت شدن بلوتوث می شود و LED به سرعت در حدود 2 هرتز چشمک می زند.
- هنگامی که ماژول با یک دستگاه جفت می شود، الگوی فلاش LED به دو فلاش سریع و به دنبال آن یک مکث تغییر می کند و سپس تکرار می شود.
- هنگامی که ماژول در حالت AT قرار می گیرد، LED با سرعت آهسته و ثابت چشمک می زند.
حالت AT
حالت AT حالت پیکربندی است که در آن میتوانید دستورات سبک AT را به ماژول HC-05 ارسال کنید تا تنظیمات آن مانند نام، نرخ باود، رمز عبور و غیره را تغییر دهید.
به طور معمول، ماژول HC-05 در حالت داده است. برای قرار دادن آن در حالت AT، باید هنگام روشن کردن ماژول، دکمه روی برد را فشار داده و نگه دارید. سپس LED با سرعت آهسته و پیوسته شروع به چشمک زدن می کند که نشان می دهد ماژول در حالت AT قرار دارد.
هنگامی که در حالت AT هستید، می توانید دستورات AT را از طریق پورت UART به ماژول ارسال کنید. ماژول به دستورات پاسخ میدهد، دستورات معمولاً با “AT+” شروع می شوند و سپس دستور خاصی مانند “AT+NAME?” نام ماژول را پرس و جو می کند یا “AT+NAME=MyHC05” نام را به “MyHC05” تغییر می دهد.
دستورات AT باید با نرخ باود مشخص شده برای حالت AT ارسال شوند که اغلب با نرخ باود استفاده شده برای انتقال داده متفاوت است. نرخ باود پیشفرض برای حالت AT مقدار 38400 bps است، اما در صورت لزوم میتوان آن را تغییر داد.
پین های ماژول
ماژول شش پین دارد:
- STATE می تواند برای تعیین وضعیت فعلی ماژول HC-05 استفاده شود. زمانی که ماژول جفت نشده است، پین State در حالت LOW و زمانی که ماژول جفت شده است، HIGH است.
- RXD پین داده های سریال را از میکروکنترلر دریافت می کند. باید به TX میکروکنترلر متصل شود. دقت کنید که این پین تحمل 5 ولت را ندارد. بنابراین، قبل از اتصال ماژول به یک میکروکنترلر 5 ولت، سیگنال Tx میکروکنترلر باید به 3.3 ولت کاهش یابد.
- TXDپین داده های سریال را به میکروکنترلر می فرستد. باید به RX میکروکنترلر متصل شود.
- GNDپایه زمین است که برای هر دستگاه دیگری که به ماژول متصل است مشترک است.
- VCCبرای ولتاژ تغذیه مثبت ماژول است. این سیگنال تغذیه ولتاژ از طریق یک رگولاتور 3.3 ولت به تراشه HC-05 هدایت می شود. که مقدار آن باید بین 3.6 تا 6 ولت باشد.
- EN به پین فعال تنظیم کننده روی برد متصل می شود و توسط یک مقاومت 220k به بالا کشیده می شود. پایین کشیدن این پین رگولاتور را غیرفعال می کند و در نتیجه HC-05 را خاموش می کند.
کنترل ماژول
یک رابط سریال تمام چیزی است که برای کنترل ماژول بلوتوث HC-05 و ارسال داده از طریق آن لازم است. اساساً مانند خط لوله داده عمل میکند: دادههای سریالی که به ماژول میروند (از پین RXD)، از اتصال بلوتوث خارج میشوند. داده هایی که از سمت بلوتوث وارد می شوند از سمت سریال (از پین TXD خارج می شوند).
برای راه اندازی این خط داده، یک فرآیند دو مرحله ای را دنبال می کنیم:
-
- ماژول HC-05 را به دستگاهی که قادر به ارسال و دریافت اطلاعات سریال است، مانند آردوینو یا هر میکروکنترلر با UART وصل کنید.
- در سمت بلوتوث، ما یک اتصال بی سیم بین ماژول HC-05 و دستگاه دیگری که دارای بلوتوث فعال است، مانند تلفن اندرویدی برقرار می کنیم. این اتصال شامل یک فرآیند جفتسازی شبیه به اتصال هر دستگاه بلوتوث دیگری به یکدیگر است. همچنین به یک برنامه ترمینال روی گوشی خود نیاز دارید که بتواند از طریق بلوتوث ارتباط برقرار کند. برای این منظور، توصیه می کنیم از «ترمینال بلوتوث سریال» که در فروشگاه پلی استور موجود است استفاده کنید. با این حال، بسیاری از گزینه های رایگان دیگر نیز وجود دارد که می توانید آنها را بررسی کنید.
به طور خلاصه، ما فقط باید رابط سریال بین HC-05 و میکروکنترلر را تنظیم کنیم و سپس HC-05 را با دستگاه بلوتوث دیگر جفت کنیم.
سیم کشی ماژول
به جای اتصال ماژول HC-05 به UART سخت افزاری آردوینو، از SoftwareSerial استفاده می کنیم و پایه های RX و TX را به هر یک از پایه های دیجیتال آزاد آردوینو متصل می کنیم.
بنابراین، TXD ماژول HC-05 به D3 آردوینو، RXD به D2و GND به GND و VCC به 5 ولت متصل می شود. پین های TXD و RXD می توانند به هر پین دیجیتال (به جز 0 و 1) متصل شوند. پس اگر پینهای 2 و 3 برای موارد دیگر نیاز دارید، می توانید آنها را تغییر دهید.
نکته: پین Rx در ماژول HC-05 تحمل 5 ولت را ندارد. بنابراین، نمیتوانید پایه Rx را مستقیماً به پین دیجیتال آردوینو (5V MCU) متصل کنید. سیگنال Tx از آردوینو باید به 3.3 ولت کاهش یابد. ساده ترین راه استفاده از یک مقاومت است. یک مقاومت 1K بین Rx و D2 آردوینو و یک مقاومت 2K بین Rx و GND ، کار مورد نظر را انجام می دهند.
پس به طور خلاصه:
ماژول HC-05 | آردوینو | توضیحات | |
VCC | 5 ولت | – | |
GND | GND | – | |
TXD | D3 | – | |
RXD | D2 | در صورت استفاده از 5 ولت MCU از شیفتر سطح استفاده کنید |
نحوه اتصال نیز به صورت زیر است:
کد
با کمی خلاقیت از آردوینو به عنوان یک واسطه بین خود و ماژول HC-05 استفاده کنیم.
#include <SoftwareSerial.h> //Create software serial object to communicate with HC-05 SoftwareSerial mySerial(3, 2); //HC-05 Tx & Rx is connected to Arduino #3 & #2 void setup() { //Begin serial communication with Arduino and Arduino IDE (Serial Monitor) Serial.begin(9600); //Begin serial communication with Arduino and HC-05 mySerial.begin(9600); Serial.println("Initializing..."); Serial.println("The device started, now you can pair it with bluetooth!"); } void loop() { if(Serial.available()) { mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port } if(mySerial.available()) { Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port } delay(20); }
بعد از آپلود کردن کد پنجره سریال مانیتور باز می شود، سریال مانیتور را با نرخ باود 9600 باز کنید. پیامی به صورت زیر مشاهده می شود:
“!The device started, now you can pair it with bluetooth”.
اتصال به موبایل
1. مطمئن شوید که ماژول روشن است. LED داخلی باید به سرعت در حدود 2 هرتز چشمک بزند که نشان می دهد قابل کشف است.
2. بلوتوث گوشی خود را روشن کنید.
3. نماد بلوتوث لمس کنید و آن را نگه دارید ، سپس روی «Pair new device» ضربه بزنید و چند ثانیه صبر کنید.
4. روی نام دستگاهی که قصد دارید با دستگاه خود جفت شود (در مورد ما HC-05) ضربه بزنید.
5. در صورت درخواست رمز، 1234 را به عنوان رمز وارد کنید. این رمز پیشفرض ماژول HC-05 است.
6. یک برنامه ترمینال بلوتوث که بر روی گوشی هوشمند خود نصب کنید. بهتر است برنامه Android “Serial Bluetooth Terminal” که در پلی استور است نصب کنید.
7. برنامه “Serial Bluetooth Terminal” را اجرا کنید. روی نماد در گوشه سمت چپ بالا کلیک کنید و “Devices” را برگزینید.
8. در بین لیست دستگاههای که ظاهر می شود “HC-05” را انتخاب کنید.
9. شما باید یک پیام “اتصال” دریافت کنید. LED داخلی HC-05 باید به دو چشمک سریع و سپس یک مکث تغییر کند.
10. در کادر ورودی واقع در پایین برنامه چیزی را تایپ کنید که باید فورا در پنجره سریال مانیتور آردوینو نشان داده شود. این کار را می توانید به صورت معکوس هم انجام دهید یعنی اینکه در پنجره سریال مانیتور تایپ کنید و روی گوشی آن را بخوانید.
دیدگاهتان را بنویسید