ماژول بلوتوث HC-05

ماژول بلوتوث سریال دوطرفه برای ارتباط بی‌سیم با آردوینو و میکروکنترلرها

ماژول بلوتوث HC-05: دروازه ارتباط بی‌سیم پروژه‌های الکترونیکی شما

ماژول HC-05 یک ماژول بلوتوث کلاس 2 با پروفایل SPP (Serial Port Profile) است که امکان ایجاد یک لینک سریال بی‌سیم کامل دوطرفه را بین میکروکنترلرهایی مانند آردوینو و دستگاه‌های مجهز به بلوتوث (موبایل، لپ‌تاپ، تبلت) فراهم می‌کند. این ماژول به دلیل قابلیت اطمینان بالا، قیمت مناسب و استفاده گسترده، استاندارد صنعتی ارتباط بی‌سیم در پروژه‌های DIY و صنعتی سبک محسوب می‌شود.


ویژگی‌های اصلی و مزایای کلیدی HC-05

  • ارتباط سریال دوطرفه کامل: جایگزین بی‌سیم سیم سریال (UART) – هر آنچه از پورت سریال انتظار دارید.

  • پیکربندی و کنترل AT Commands: دسترسی کامل به تنظیمات ماژول از طریق دستورات AT (نام، پین، نقش، سرعت و…).

  • دو حالت عملیاتی: حالت اتصال (Slave/Master) و حالت فرمان (Command Mode) برای تنظیمات.

  • ولتاژ کاری منطقی 3.3V با تحمل 5V: اتصال مستقیم به پین‌های آردوینو (5V) بدون آسیب.

  • رابط کاربری آسان: نمایش وضعیت توسط دو LED نشانگر (استاتوس و کانکشن).


مقایسه HC-05 با HC-06 و سایر ماژول‌ها

ویژگی ماژول HC-05 ماژول HC-06 ماژول بلوتوث 5.0 (مثل HM-10)
نقش (Role) هم Slave هم Master (قابل تغییر) فقط Slave عمدتاً Slave (پروژه‌های IoT)
دستورات AT کامل و گسترده محدود محدود، با دستورات خاص BLE
نوع بلوتوث کلاسیک (BR/EDR) کلاسیک (BR/EDR) دوگانه: کلاسیک + Low Energy (BLE)
مصرف انرژی متوسط (~30mA در حالت فعال) متوسط بسیار پایین در حالت BLE
کاربرد اصلی کنترل ربات، ارتباط داده، جایگزین سیم کنترل ساده از موبایل حسگرهای مبتنی بر باتری، IoT

مشخصات فنی دقیق HC-05

  • تراشه: Cambridge Silicon Radio (CSR) BC417

  • پروتکل بلوتوث: نسخه 2.1 + EDR

  • پروفایل پشتیبانی‌شده: SPP (Serial Port Profile)

  • بازه فرکانسی: 2.4GHz ISM Band

  • توان خروجی: کلاس 2 (~4dBm، برد 10 متر در فضای باز)

  • حساسیت: -84dBm

  • سرعت انتقال داده: 9600 تا 1382400 بیت بر ثانیه (پیش‌فرض: 9600)

  • ولتاژ تغذیه: 3.6V تا 6V (پیشنهادی: 5V)

  • ولتاژ منطقی I/O: 3.3V (اما پایه‌های RX/TX با سطح 5V سازگار هستند)

  • جریان کاری: 30-40mA (متوسط)، <1mA در حالت جفت‌شده (Paired)

  • دمای کاری: -20°C تا +75°C

  • آنتن: PCB Antenna (برد داخلی)


کاربردهای محبوب و رایج

  • کنترل بی‌سیم ربات و پهپاد: ارسال فرمان از اپ موبایل یا کامپیوتر.

  • داده‌برداری بی‌سیم (Data Logging): انتقال اطلاعات سنسورها به موبایل یا لپ‌تاپ.

  • ایستگاه هواشناسی یا کیفیت هوا: ارسال داده به اپلیکیشن نمایش.

  • قفل درب هوشمند: باز کردن با موبایل از طریق بلوتوث.

  • ارتباط بین دو دستگاه الکترونیکی: ساخت شبکه‌های ساده Point-to-Point.

  • جایگزینی سیم سریال در پروژه‌ها: حذف محدودیت فیزیکی سیم.


اتصال و راه‌اندازی پایه با آردوینو Uno

پایه ماژول HC-05 اتصال به آردوینو Uno توضیح
VCC 5V تغذیه اصلی
GND GND زمین مشترک
TXD RX (پین 0) ارسال داده از HC-05 به آردوینو
RXD TX (پین 1) دریافت داده در HC-05 از آردوینو
KEY (یا EN) به یک پین دیجیتال (مثلاً D8) برای ورود به حالت دستورات AT (اختیاری)
STATE به یک پین دیجیتال (مثلاً D9) خواندن وضعیت اتصال (اختیاری)

نکته حیاتی: از یک تقسیم‌کننده ولتاژ (Voltage Divider) برای پایه RXD ماژول استفاده کنید (چون ولتاژ 5V آردوینو برای این پایه که 3.3V است ممکن است بالا باشد). یک مقاومت 1kΩ از TX آردوینو به RXD ماژول و یک مقاومت 2kΩ از RXD ماژول به GND.


کد نمونه آردوینو برای ارتباط ساده (Communication Test)

// ارتباط سریال نرم افزاری برای آزاد کردن پین 0 و 1
#include <SoftwareSerial.h>

// تعریف پین‌های RX, TX برای ارتباط با HC-05
SoftwareSerial BTserial(10, 11); // RX, TX (به ترتیب: آردوینو_RX روی پین 10، آردوینو_TX روی پین 11)

void setup() {
  // شروع ارتباط سریال با کامپیوتر (برای مانیتورینگ)
  Serial.begin(9600);
  Serial.println("آردوینو آماده است...");

  // شروع ارتباط سریال با ماژول بلوتوث HC-05
  BTserial.begin(9600); // مطمئن شوید با سرعت ماژول یکسان است (پیش‌فرض: 9600)
  Serial.println("ماژول بلوتوث HC-05 آماده است.");
}

void loop() {
  // اگر داده‌ای از بلوتوث دریافت شد، آن را به سریال کامپیوتر بفرست
  if (BTserial.available()) {
    char receivedChar = BTserial.read();
    Serial.print("دریافت از موبایل: ");
    Serial.println(receivedChar);
    
    // پاسخ به موبایل
    BTserial.print("آردوینو دریافت کرد: ");
    BTserial.println(receivedChar);
  }

  // اگر از سریال کامپیوتر داده‌ای فرستاده شد، آن را به بلوتوث بفرست
  if (Serial.available()) {
    char sendChar = Serial.read();
    BTserial.print(sendChar);
    Serial.print("ارسال به موبایل: ");
    Serial.println(sendChar);
  }
}

پیکربندی ماژول با دستورات AT (AT Commands)

  1. اتصال: پایه KEY/EN را به 3.3V یا HIGH متصل کنید.

  2. ارتباط: به سریال ماژول با سرعت 38400 بایت بر ثانیه (پیش‌فرض حالت AT) وصل شوید.

  3. ارسال دستورات:

    • AT (برای تست پاسخ) → پاسخ: OK

    • AT+NAME? (دریافت نام) → پاسخ: +NAME:HC-05

    • AT+NAME=MY_ROBOT (تغییر نام به MY_ROBOT)

    • AT+PSWD? (دریافت پین) → پاسخ: +PSWD:1234

    • AT+PSWD="4321" (تغییر پین به 4321)

    • AT+UART? (دریافت سرعت سریال)

    • AT+UART=115200,0,0 (تغییر سرعت به 115200 بیت بر ثانیه)


چرا ماژول HC-05 را از ما بخرید؟

✅ اصالت و کیفیت: ماژول‌های اورجینال با تست کامل عملکرد.
✅ پشتیبانی فنی تخصصی: راهنمایی برای رفع مشکلات رایج (جفت‌نشدن، AT ندادن و…).
✅ کیت کامل: شامل ماژول، هدر پین نری و در برخی پکیج‌ها مبدل سطح ولتاژ (Logic Level Converter).
✅ منابع آموزشی فارسی: دسترسی به راهنمای گام‌به‌گام و کتابخانه آردوینو.
✅ ضمانت بازگشت: در صورت خرابی یا عدم عملکرد مطابق مشخصات.


سوالات متداول (FAQ)

✅ ماژول جفت (Pair) نمی‌شود. چکار کنم؟

  • پین 1234 را وارد کنید.

  • از نزدیک بودن دستگاه‌ها مطمئن شوید.

  • ماژول را ریست کنید (قطع و وصل تغذیه).

  • در موبایل، دستگاه‌های قبلی را Forget کنید.

✅ دستورات AT پاسخ نمی‌دهند!

  • مطمئن شوید پایه KEY/EN در حالت High است.

  • از سرعت سریال 38400 استفاده کنید.

  • قبل از ارسال دستور AT، یک بار Enter (Newline) در سریال مانیتور بفرستید.

✅ تفاوت مدل‌های HC-05 با برد بزرگ و کوچک چیست؟
عملکرد یکسان است. مدل‌های برد بزرگ معمولاً پایه‌های دسترسی راحت‌تر و تنظیمات بیشتری دارند. مدل‌های برد کوچک (متداول‌تر) جمع‌وجور هستند.

✅ آیا می‌توانم با لپ‌تاپ ویندوزی ارتباط برقرار کنم؟
بله. ابتدا ماژول را با لپ‌تاپ جفت کنید. سپس در Device Manager، پورت COM اختصاص داده شده به آن را پیدا کرده و با نرم‌افزارهای مانند Putty یا Arduino Serial Monitor به آن پورت متصل شوید.

✅ برد عملیاتی چقدر است؟
در فضای باز و بدون مانع تا 10 متر. در فضای داخلی با دیوار، معمولاً 5-8 متر عملکرد خوبی دارد.