۱. ماژول HC-05 دقیقاً چه کار می‌کند؟

ساده بگوییم: این ماژول مثل یک "سیم نامرئی" عمل می‌کند. در آردوینو ما پروتکلی داریم به نام "سریال" (همان TX/RX). HC-05 این سیگنال سریال را می‌گیرد، تبدیل به امواج بلوتوث می‌کند و به گوشی شما می‌فرستد. و برعکس! یعنی هر چیزی که در گوشی تایپ کنید، انگار مستقیماً در گوش آردوینو زمزمه کرده‌اید.

۲. تفاوت HC-05 و HC-06 (کلاه سرتان نرود!)

در بازار دو مدل دوقلو وجود دارد که خیلی‌ها اشتباه می‌خرند:

  • HC-06 (برده/Slave): فقط می‌تواند "دستور بگیرد". یعنی گوشی شما می‌تواند به آن وصل شود، اما خودش نمی‌تواند شروع‌کننده ارتباط باشد. (برای اکثر پروژه‌ها همین کافی است).
  • HC-05 (ارباب و برده/Master & Slave): این مدل هم می‌تواند دستور بگیرد و هم می‌تواند به یک بلوتوث دیگر وصل شود. (مثلاً ارتباط دو آردوینو با هم).

پیشنهاد ما: همیشه HC-05 را بخرید. قیمتشان یکی است اما دکمه کوچک روی آن (Key) امکانات بیشتری به شما می‌دهد.

۳. سیم‌کشی: فوت کوزه‌گری که باعث سوختن می‌شود! 🔥

اینجا جایی است که ۹۰٪ تازه‌کارها ماژول را می‌سوزانند. دقت کنید!

پایه RX ماژول HC-05 با ولتاژ 3.3 ولت کار می‌کند، اما خروجی آردوینو 5 ولت است. اگر مستقیم وصل کنید، ماژول مدتی کار می‌کند و بعد... خداحافظ!

راه حل حرفه‌ای (تقسیم ولتاژ):بین پایه TX آردوینو و RX بلوتوث، باید از دو مقاومت (یکی ۱ کیلو اهم و یکی ۲ کیلو اهم) استفاده کنید تا ولتاژ را کم کنید. (اگر مقاومت ندارید، فعلاً برای تست مستقیم وصل کنید اما ریسکش پای خودتان!)

جدول اتصال:

  • VCC --> 5V آردوینو
  • GND --> GND آردوینو
  • TX ماژول --> پایه RX آردوینو (یا پین 10)
  • RX ماژول --> پایه TX آردوینو (یا پین 11) (با تقسیم ولتاژ)

۴. کدنویسی: جادوی کنترل با یک کاراکتر

ما می‌خواهیم وقتی در گوشی عدد 1 را فرستادیم، چراغ روشن شود و با 0 خاموش شود. از کتابخانه SoftwareSerial استفاده می‌کنیم تا پورت اصلی USB آزاد بماند.

C++

#include <SoftwareSerial.h>

SoftwareSerial myBT(10, 11); // پایه 10 گیرنده، 11 فرستنده

void setup() {   pinMode(13, OUTPUT); // چراغ داخلی آردوینو
  myBT.begin(9600);    // سرعت استاندارد بلوتوث
  Serial.begin(9600);   Serial.println("بلوتوث آماده است! عدد 1 یا 0 بفرستید."); }

void loop() {   if (myBT.available()) { // اگر پیامی آمد
    char data = myBT.read(); // پیام را بخوان
         if (data == '1') {       digitalWrite(13, HIGH); // روشن کن
      myBT.println("LED ON"); // به گوشی جواب بده
    }     else if (data == '0') {       digitalWrite(13, LOW);  // خاموش کن
      myBT.println("LED OFF");     }   } }

۵. اپلیکیشن موبایل (ریموت کنترل شما)

لازم نیست برنامه‌نویسی اندروید بلد باشید!

  1. به بازار یا پلی‌استور بروید.
  2. برنامه "Serial Bluetooth Terminal" را دانلود کنید.
  3. بلوتوث گوشی را روشن کنید و دنبال HC-05 بگردید. (رمز معمولاً 1234 یا 0000 است).
  4. وارد برنامه شوید، کانکت شوید و عدد 1 را تایپ و ارسال کنید.

بینگو! چراغ روی برد روشن شد. حالا شما صاحب یک سیستم کنترل بی‌سیم هستید.

💡 ایده برای آینده: قدم بعدی چیست؟

حالا که اصول کار را یاد گرفتید، سقف رویاهایتان آسمان است:

  • به جای LED، یک ماژول رله بگذارید و لامپ اتاقتان را با گوشی خاموش کنید.
  • خروجی‌ها را به درایور موتور L298 وصل کنید و ماشین کنترلی بسازید که با شتاب‌سنج گوشی هدایت می‌شود!