توسعه دانشمقالات

ماژول HC-05 آردوینو؛ آموزش اتصال، کدنویسی و کنترل بلوتوث

 

ماژول HC-05 آردوینو یکی از ساده‌ترین راه‌ها برای اضافه کردن ارتباط
بی‌سیم Bluetooth به پروژه‌های Arduino است. این ماژول اطلاعات سریال را میان برد
و تجهیزاتی مانند گوشی موبایل یا لپ‌تاپ منتقل می‌کند؛ به همین دلیل در پروژه‌های
کنترل از راه دور، ارسال داده، رباتیک و اتوماسیون کاربرد زیادی دارد.در این آموزش از معرفی HC-05 و پایه‌های آن شروع می‌کنیم و سپس سراغ اتصال به Arduino،
ارتباط با گوشی، تنظیمات AT، حالت Master و Slave و یک پروژه کنترل رله می‌رویم.
در کنار این موارد، نکات مهم مربوط به سطح منطقی RX، Baud Rate و مشکلات رایج اتصال
را هم بررسی خواهیم کرد.

📌 ماژول HC-05 آردوینو در یک نگاه

نوع ماژول
Bluetooth Serial
رابط ارتباطی
UART
منطق داخلی
3.3V
حالت‌ها
Data / AT
نقش‌ها
Master / Slave
کاربرد اصلی
ارتباط بی‌سیم سریال

 

ماژول HC-05 آردوینو چیست؟

HC-05 در اصل یک رابط Bluetooth-to-Serial است. یعنی داده‌ای که از طریق UART
دریافت می‌کند، می‌تواند به‌صورت بی‌سیم منتقل شود و اطلاعات دریافتی از Bluetooth
نیز دوباره در اختیار Arduino قرار بگیرد.

همین ساختار ساده باعث شده راه‌اندازی این ماژول نسبتاً آسان باشد؛ Arduino
می‌تواند با همان منطق ارتباط سریال با HC-05 صحبت کند و نیازی نیست برنامه‌نویس
مستقیماً وارد جزئیات پیچیده ارتباط Bluetooth شود.

💡 HC-05 را مثل یک پل بی‌سیم ببینید

Arduino اطلاعات را از UART ارسال می‌کند؛ HC-05 این داده‌ها را از طریق
Bluetooth منتقل می‌کند و سمت مقابل نیز داده را دوباره به شکل سریال دریافت می‌کند.
بنابراین در بسیاری از پروژه‌های ساده، Bluetooth تقریباً مثل یک کابل سریال بی‌سیم عمل می‌کند.

 

حالت Data و AT در HC-05 چه تفاوتی دارند؟

هنگام استفاده معمول از ماژول، حالت Data Mode وظیفه انتقال
اطلاعات را بر عهده دارد. داده‌های ورودی از UART به Bluetooth فرستاده می‌شوند
و اطلاعات دریافت‌شده نیز از همین مسیر به Arduino می‌رسند.

در مقابل، AT Mode برای تنظیم پارامترهای داخلی ماژول استفاده می‌شود.
تغییر نام، تنظیم برخی پارامترهای ارتباطی و مدیریت بعضی ویژگی‌های Bluetooth
از طریق فرمان‌های AT انجام می‌شود.

⚠️ Data Mode را با AT Mode اشتباه نگیرید

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

 

HC-05 در حالت Master و Slave

نقش Slave زمانی مفید است که ماژول منتظر برقراری ارتباط از
سمت یک دستگاه دیگر باشد. ارتباط با گوشی موبایل یکی از رایج‌ترین نمونه‌های همین حالت است.

نقش Master شرایط متفاوتی دارد و به ماژول اجازه می‌دهد برای
پیدا کردن و برقراری ارتباط با دستگاه مقابل اقدام کند. چنین ساختاری در پروژه‌هایی
که دو برد باید مستقیماً با Bluetooth به هم متصل شوند، کاربرد بیشتری دارد.

📱 Slave

منتظر اتصال دستگاه دیگر می‌ماند و برای ارتباط HC-05 با گوشی گزینه رایجی است.

🔗 Master

برای جست‌وجو و برقراری ارتباط با یک دستگاه Bluetooth دیگر استفاده می‌شود.

 

پایه های HC-05

چیدمان پایه‌ها میان بردهای مختلف HC-05 ممکن است کمی متفاوت باشد؛ بنابراین
نوشته روی همان بردی که در اختیار دارید ملاک نهایی اتصال خواهد بود.
در نسخه‌های رایج معمولاً VCC، GND، TXD، RXD، STATE و EN یا KEY دیده می‌شود.

پایه وظیفه
VCC تغذیه
GND زمین
TXD ارسال داده سریال
RXD دریافت داده سریال
STATE وضعیت اتصال
EN / KEY کنترل حالت ماژول

 

ماژول HC-05 آردوینو

ولتاژ HC-05 چقدر است؟

یکی از مهم‌ترین نکات در زمان سیم‌کشی، تفاوت میان ولتاژ تغذیه برد ماژول
و ولتاژ منطقی تراشه است. بسیاری از بردهای آماده HC-05 دارای رگولاتور هستند،
بنابراین ورودی تغذیه برد می‌تواند با محدوده مشخصی کار کند؛ با این حال،
منطق سریال تراشه 3.3V است.

🚨 مهم‌ترین هشدار اتصال HC-05

RXD ماژول را نباید مستقیماً به خروجی 5V یک Arduino متصل کنید.
برای کاهش سطح منطقی، تقسیم مقاومتی یا Level Shifter انتخاب مطمئن‌تری است.

مثال ساده تقسیم مقاومتی:

Arduino TX → مقاومت 1kΩ → RXD HC-05
RXD HC-05 → مقاومت 2kΩ → GND

 

اتصال HC-05 به Arduino Uno

برای جدا کردن Bluetooth از ارتباط USB، می‌توان از SoftwareSerial روی چند پایه
دیجیتال استفاده کرد. در نمونه زیر D2 برای دریافت اطلاعات و D3 برای ارسال
داده به ماژول در نظر گرفته شده است.

اتصال سریال باید به‌صورت ضربدری انجام شود؛ یعنی TXD ماژول به RX آردوینو
می‌رود و مسیر TX آردوینو نیز به RXD ماژول متصل می‌شود. در مسیر Arduino TX
رعایت سطح منطقی 3.3V نیز ضروری است.

HC-05 Arduino Uno نکته
VCC 5V* برای بردهای دارای رگولاتور
GND GND زمین مشترک
TXD D3 HC-05 → Arduino
RXD D2 با تقسیم مقاومتی

* ولتاژ تغذیه را برای مدل دقیق ماژول خود بررسی کنید؛ بردهای مختلف HC-05 ممکن است
مشخصات ورودی متفاوتی داشته باشند.

🔌 اتصال سریع

VCC → Arduino 5V*

GND → Arduino GND

TXD → Arduino D3

RXD ← Arduino D2 با تقسیم مقاومتی

ماژول HC-05 آردوینو

چرا از SoftwareSerial استفاده کنیم؟

Arduino Uno یک UART سخت‌افزاری دارد که در بسیاری از پروژه‌ها به ارتباط USB
و Serial Monitor اختصاص پیدا می‌کند. به همین دلیل ایجاد یک رابط سریال
روی پایه‌های دیگری مانند D2 و D3 می‌تواند ارتباط Bluetooth را از مسیر
اصلی جدا کند.

البته SoftwareSerial برای همه شرایط ایده‌آل نیست. سرعت بالا، پردازش‌های
هم‌زمان و حجم زیاد داده می‌تواند محدودیت‌هایی ایجاد کند؛ بنابراین در پروژه‌های
سنگین، استفاده از بردی با UART سخت‌افزاری بیشتر گزینه مناسب‌تری خواهد بود.

کد ارتباط HC-05 با Arduino

برای اولین تست بهتر است مدار را ساده نگه دارید. برنامه زیر نقش یک پل سریال
را بازی می‌کند؛ هر داده‌ای که در Serial Monitor وارد شود به HC-05 فرستاده
خواهد شد و اطلاعات دریافتی از Bluetooth نیز روی مانیتور نمایش داده می‌شود.

#include <SoftwareSerial.h>

SoftwareSerial hc05(3, 2);

void setup() {

  Serial.begin(9600);
  hc05.begin(9600);

  Serial.println("HC-05 Ready");

}

void loop() {

  if (Serial.available()) {
    hc05.write(Serial.read());
  }

  if (hc05.available()) {
    Serial.write(hc05.read());
  }

}

✅ قبل از رفتن سراغ پروژه اصلی

ابتدا فقط یک پیام کوتاه بین گوشی و Serial Monitor ردوبدل کنید.
وقتی این ارتباط پایه درست شد، کنترل رله، موتور یا سایر تجهیزات بسیار ساده‌تر خواهد بود.

 

اتصال HC-05 به گوشی

بعد از روشن شدن ماژول، LED وضعیت Bluetooth را نمایش می‌دهد و معمولاً می‌توان
از روی الگوی چشمک‌زدن آن وضعیت کلی اتصال را تشخیص داد.

📱 مراحل اتصال به گوشی

  1. HC-05 را روشن کنید.
  2. Bluetooth گوشی را فعال کنید.
  3. دستگاه HC-05 را جست‌وجو کنید.
  4. Pair را انجام دهید.
  5. در صورت درخواست، PIN مربوط به همان ماژول را وارد کنید.
  6. یک Bluetooth Serial Terminal باز کنید.
  7. ارسال و دریافت یک پیام ساده را تست کنید.

 

تنظیم HC-05 با AT Command

فرمان‌های AT امکان تغییر برخی تنظیمات ماژول را فراهم می‌کنند. برای مثال،
می‌توان نام فعلی دستگاه را خواند و در صورت پشتیبانی Firmware، یک نام جدید
برای آن تعیین کرد.

AT

AT+NAME?

AT+NAME=RNGO_HC05

⚙️ قبل از ارسال AT Command

قرار داشتن HC-05 در AT Mode و انتخاب Baud Rate درست، دو شرط اصلی
برای دریافت پاسخ صحیح هستند. توجه داشته باشید که مقدار Baud Rate
در حالت تنظیمات ممکن است با Data Mode یکسان نباشد.

کنترل رله با HC-05 و Arduino

بعد از تست موفق ارتباط Bluetooth، می‌توان یک خروجی واقعی را کنترل کرد.
یکی از مثال‌های ساده، فعال و غیرفعال کردن یک ماژول رله با فرمان‌های متنی
ارسال‌شده از گوشی است.

فرض کنید پیام on برای روشن کردن رله و عبارت
off برای خاموش کردن آن استفاده شود. Arduino پیام دریافتی
را بررسی می‌کند و سپس وضعیت خروجی را تغییر می‌دهد.

⚠️ نکته ایمنی رله

اگر رله برای قطع و وصل برق شهر استفاده می‌شود، ایزولاسیون، فاصله‌های
ایمنی، ترمینال مناسب و روش صحیح سیم‌کشی باید کاملاً رعایت شود.
برای تست اولیه بهتر است فقط بخش منطقی کنترل رله را بررسی کنید.

 

چرا HC-05 به گوشی وصل نمی شود؟

مشکل اتصال را بهتر است مرحله‌به‌مرحله بررسی کنید. شروع کار از تغذیه و
GND منطقی‌تر است؛ زیرا ضعف تغذیه می‌تواند حتی قبل از رسیدن برنامه به
مرحله ارتباط سریال، عملکرد ماژول را مختل کند.

1️⃣ تغذیه

VCC و GND را بررسی کنید.

2️⃣ TX / RX

مسیر ارسال و دریافت باید ضربدری باشد.

3️⃣ سطح منطقی

RXD ماژول را با سیگنال 5V مستقیم تغذیه نکنید.

4️⃣ Baud Rate

تنظیمات Arduino و HC-05 باید هماهنگ باشند.

🚨 Pair می شود ولی داده منتقل نمی شود؟

در این حالت احتمالاً Bluetooth اصلی مشکلی ندارد. سیم‌کشی TX/RX،
Baud Rate، SoftwareSerial و کد Arduino را به ترتیب بررسی کنید.

جدا کردن مشکل Bluetooth از مشکل UART معمولاً زمان عیب‌یابی را بسیار کمتر می‌کند.

 

کاربردهای HC-05 در پروژه های Arduino

رابط Bluetooth-to-Serial این ماژول، استفاده از آن را در پروژه‌های مختلف ساده کرده است.
از کنترل تجهیزات گرفته تا انتقال داده، بسیاری از پروژه‌های آموزشی می‌توانند
با همین معماری توسعه پیدا کنند.

  • کنترل رله با گوشی
  • کنترل LED و موتور
  • ربات کنترل‌شونده با موبایل
  • ارسال اطلاعات سنسورها
  • مانیتورینگ داده
  • اتوماسیون ساده
  • ارتباط بی‌سیم بین دو سیستم
  • پروژه‌های آموزشی Arduino

🎯 چه زمانی HC-05 انتخاب مناسبی است؟

برای انتقال فرمان و داده سریال در پروژه‌های ساده و آموزشی، HC-05 گزینه کاربردی
و نسبتاً ساده‌ای است. اگر پروژه به BLE، مصرف بسیار پایین، امنیت مدرن یا امکانات
خاص Bluetooth نیاز دارد، بهتر است ماژول‌های جدیدتر را نیز مقایسه کنید.

 

برای پروژه HC-05 چه قطعاتی نیاز دارید؟

یک پروژه بلوتوثی معمولاً فقط به HC-05 و Arduino محدود نمی‌شود. بسته به کاربرد،
ممکن است مقاومت برای Level Shifting، بردبورد، سیم جامپر، رله، LED، سنسور،
درایور موتور یا منبع تغذیه مناسب هم لازم باشد.

🛒 قطعات پروژه را از پژوهشگران تهیه کنید

برای ساخت پروژه‌های Arduino می‌توانید ماژول‌های Bluetooth، برد Arduino،
مقاومت، رله، سنسورها، کانکتورها، بردبورد و دیگر قطعات موردنیاز را
در فروشگاه پژوهشگران بررسی کنید.

🔧 مشاهده و خرید قطعات الکترونیکی

 

مقالات بیشتر درباره Arduino و ارتباطات بی سیم

📚

مقالات بیشتر پژوهشگران

آموزش‌های بیشتر درباره Arduino، ESP32، Bluetooth، سنسورها، ماژول‌ها
و پروژه‌های الکترونیکی را در مجموعه مقالات پژوهشگران ببینید.

📖 مشاهده همه مقالات

برای انتخاب قطعه و طراحی پروژه مشاوره فنی می خواهید؟

🛠️

برای انتخاب قطعه و طراحی مدار نیاز به مشاوره دارید؟

اگر درباره HC-05، Arduino، رله، سنسورها، ماژول‌های ارتباطی یا سطح منطقی
قطعات پروژه خود سوال دارید، پیش از خرید می‌توانید برای
مشاوره فنی با مجموعه پژوهشگران در ارتباط باشید.

انتخاب مناسب ماژول و ولتاژ منطقی آن از همان ابتدای طراحی، بسیاری از
مشکلات ارتباطی و آسیب‌های احتمالی به قطعات را کاهش می‌دهد.

 

جمع بندی ماژول HC-05 آردوینو

ماژول HC-05 آردوینو یک راهکار ساده برای اضافه کردن Bluetooth
Serial به پروژه‌های مبتنی بر Arduino محسوب می‌شود. وجود حالت‌های Master و Slave،
ارتباط UART و امکان تنظیم با AT Command، انعطاف مناسبی برای پروژه‌های آموزشی
و کنترلی فراهم می‌کند.

با این حال، راه‌اندازی موفق فقط به کدنویسی محدود نیست. اتصال درست TX و RX،
تنظیم Baud Rate، تشخیص Data Mode و AT Mode و مهم‌تر از همه رعایت سطح منطقی
3.3V در ورودی RXD باید از ابتدا در نظر گرفته شوند.

بعد از برقراری ارتباط پایه، می‌توانید پروژه را به سمت کنترل رله، ربات،
موتور یا ارسال اطلاعات سنسورها توسعه دهید. در پروژه‌های پیشرفته‌تر نیز
بهتر است امکانات HC-05 را با نیازهای واقعی سیستم مقایسه کنید.

⚡ چک لیست سریع HC-05

✔ VCC و GND را بررسی کنید.

✔ TX و RX را به‌صورت ضربدری وصل کنید.

✔ برای RXD سطح منطقی 3.3V را رعایت کنید.

✔ Data Mode و AT Mode را از هم تشخیص دهید.

✔ Baud Rate مناسب را انتخاب کنید.

✔ ابتدا ارسال متن ساده را آزمایش کنید.

✔ بعد از تست موفق، سراغ کنترل تجهیزات بروید.

💬 تجربه شما از کار با HC-05 چیست؟

اگر قبلاً با HC-05 یا پروژه‌های Bluetooth Arduino کار کرده‌اید،
تجربه خود را با ما و سایر علاقه‌مندان به الکترونیک به اشتراک بگذارید.

آیا با Pair شدن، AT Command، Baud Rate، اتصال TX/RX یا کنترل رله
به مشکل خورده‌اید؟ در بخش نظرات همین پایین برای ما بنویسید.

✨ تجربه شما می‌تواند راه‌حل مشکل یک کاربر دیگر باشد.

سوالات متداول درباره ماژول HC-05 آردوینو

HC-05 را چگونه به Arduino وصل کنیم؟

VCC و GND به تغذیه و زمین مناسب متصل می‌شوند. سپس TXD ماژول به RX آردوینو
و TX آردوینو به RXD ماژول می‌رود؛ در مسیر ارسال به RXD باید سطح منطقی
3.3V رعایت شود.

آیا می توان HC-05 را مستقیم به Arduino وصل کرد؟

مسیر TX آردوینو 5V نباید بدون کاهش سطح ولتاژ مستقیماً به RXD ماژول وارد شود.
تقسیم مقاومتی یا Level Shifter راهکار مناسب‌تری است.

HC-05 برای چه پروژه هایی مناسب است؟

کنترل رله، کنترل ربات، انتقال اطلاعات سنسورها، مانیتورینگ و بسیاری از
پروژه‌های آموزشی که به ارتباط Bluetooth Serial نیاز دارند، از کاربردهای
رایج این ماژول هستند.

 

کارشناس فنی و طراح محصول

“یادگیری الکترونیک و رباتیک مثل وارد شدن به یک جنگل تاریک و بزرگ است؛ اما نگران نباشید، من اینجا هستم تا چراغ‌قوه را دستتان بدهم! کار من ساده‌سازی مفاهیم سختِ مهندسی، نوشتن مقالات پایه‌ای و طراحی نقشه‌های راهی است که به شما بگوید از کجا شروع کنید و چطور قدم‌به‌قدم پیش بروید. فرقی نمی‌کند دانش‌آموز باشید یا دانشجوی ترم اول دانشگاه؛ آغوش پژوهشگران همیشه به روی کنجکاوی‌های شما باز است!”

نوشته های مشابه

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

دکمه بازگشت به بالا