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

کنترل اشیاء با صدا توسط ماژول HC-05 با آردوینو Arduino Bluetooth

arduino-bluetooth-hc05-sound-command-digispark-
نوشته شده توسط محمدرضا یاورزاده

آیا تا به حال با صدای خود وسایل اطراف خود را کنترل کرده اید؟ برای اینکار نیازی به آموزش‌های پیچیده یا سخت افزارهای گران قیمت نیست! با ماژول HC-05 خیلی کارها را می‌توان انجام داد. شما می‌توانید با ماژول بلوتوث HC-05 و برد اردینو Arduino خود چند LED را کنترل کرده و یا به جای آنها از ماژول رله استفاده نمایید و به میزان دلخواه و نسبت به پین‌های برد اردوینو خود تعداد آنها را افزایش دهید. پیش از این در آموزش ماژول بلوتوث HC_05 با اردینو و اندروید شیوه کار با این ماژول را فرا گرفتید. در این آموزش قصد داریم تا اشیاء با صدای خود توسط تلفن همراه و آردوینو Arduino و بلوتوث Bluetooth کنترل نماییم. در ادامه با وب سایت مرجع آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

وسایل مورد نیاز

  1. ماژول بلوتوث HC_05
  2. اردوینو نانو(می توانید از دیگر برد های اردوینو چون UNO نیز استفاده نماید.)
  3. چند عدد LED 

 

مشخصات ماژول HC05

  • ولتاز ۳٫۳ ولت
  •  جریان ۵ میلی آمپر
  •  فرکانس  ISM Band 2.4Hhz
  • بلوتوث کلاس ۲ ، برد ۱۰ الی ۳۳ متر
  • حداکثر سرعت ۲٫۱Mbps
  • مدولاسیون   GFSK
  • دارای مد master ,slave
  • پروتکل  ارتباطی USART

کنترل اشیاء با صدا توسط ماژول HC-05 با آردوینو Arduino Bluetooth -دیجی اسپارک

 

اتصالات مدار بلوتوث HC05

  1. TX ماژول بلوتوث به D2 اردوینو
  2. RX ماژول بلوتوث به D3 اردوینو
  3. GND ماژول بلوتوث و LED ها به GND اردوینو
  4. VCC ماژول بلوتوث به ۳٫۳V اردینو
  5. پایه مثبت LED 1 به D4 و LED2 به D5 و LED3 به D6

(اتصال vcc ماژول حتما به ۳٫۳v باشد و قبل از اتصال مطمئن شوید که LEDها سالم هستند.)

 

کدهای کنترل اشیاء با صدا ماژول HC-05

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

 

توضیح برنامه

#include <SoftwareSerial.h>
 // Connect the HC-05 TX to Arduino pin 2 RX. 
// Connect the HC-05 RX to Arduino pin 3 TX through a voltage divider.
SoftwareSerial BTserial(2, 3); 
#define   red      4 
#define   blue    5
#define   green   6

در بخش اول در ابتدا کتابخانه را فراخوانی می کنیم سپس دوپین را برای سریال HC_05 و پین های LED هارا مشخص می‌کنیم.

char c = ' ';
String s = "";
 
void setup()
{
    Serial.begin(9600);
    BTserial.begin(9600);
    pinMode(red,OUTPUT);
    pinMode(blue,OUTPUT);
    pinMode(green,OUTPUT);

 

در ابتدا دو متغیر از استرینگ و کاراکتر مشخص می کنیم.و در بخش بعدی برای آردوینو Arduino سریال ماژول بلوتوث Bluetooth HC-05 که ۹۶۰۰ هست تعریف می‌کنیم. سپس پین LEDها را برای اردوینو تعریف می‌کنیم.

 s= "";

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

while(BTserial.available()>0){
    c = BTserial.read();
    s += c;
    //Serial.println(c);
    delay(1);
  }
    if (s != ""){
      Serial.println(s);
      if (s.startsWith("red")) digitalWrite(red , HIGH);
      else if (s.startsWith("one")) digitalWrite(red , LOW);
      else if (s.startsWith("blue")) digitalWrite(blue , HIGH);
      else if (s.startsWith("two")) digitalWrite(blue , LOW);
      else if (s.startsWith("Green")) digitalWrite(green , HIGH);
      else if (s.startsWith("three")) digitalWrite(green , LOW);
  }
}

در نهایت در بخش اخر اطلاعات دریافت شده از ماژول HC-05 برابر با مقادیر تعریف شده بود پین های LED ها HIGH خواهد شد و در حالت دیگر LOW می شوند.در کدهای این پروژه از کلمات ساده ای چون one,two,red,green,… استفاده شده است تا هم گوگل راحتر تشخیص داده و هم گوینده راحت باشد.شما طبق نیاز هایتان می توانید آنها را تغیر دهید.

 

اپلیکیشن موبایل کنترل اشیاء با صدا

اپ‌های متعددی در این زمینه وجود دارند که می‌توانید از آن استفاده کنید. با سرچ در گوگل می‌توانید اپ زیادی را طبق نیاز خود پیدا کنید. در این آموزش از یک برنامه که در گوگل پلی موجود بود استفاده شده است. این برنامه را دانلود کرده و بر روی دستگاه اندرویدی خود نصب کنید. استفاده از این اپ زیاد پیچیده نیست. ابتدا به اینترنت متصل شده و بلوتوث Bluetooth خود را روشن کنید. در گوشه سمت چپ connect را زده و HC-05 را انتخاب می‌کنیم. اگر از شما رمز خواسته شد (۱۲۳۴) و یا (۱۱۱۱) را بنویسید و اتصال را تایید کنید. بروی نشان میکروفن بزرگ زده و هر صدایی را که در کد نوشته‌اید (برای مثال بالا در خط ۳۳ تا ۳۸ نوشته شده است red,one,…) را باز بگویید. دیگر نیازی به چیز خاصی نیست فقط اتصال به اینترنت را فراموش نکنید.

کنترل اشیاء با صدا توسط ماژول HC-05 با آردوینو Arduino Bluetooth - دیجی اسپارک

مدار شما تمام است. حال می توانید اشیاء پیرامون خود را با صدایتان کنترل کنید. می‌توانید به جای LED آنرا به ماژول رله وصل کرده و رله‌ها را به اشیاء خانه متصل کنید.

چه ایده‌هایی دارید ؟ از این پروژه در کجا استفاده خواهید کرد؟ چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.

 

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

محمدرضا یاورزاده

تبادل نظر و رفع عیب با ثبت دیدگاه

۴۵ دیدگاه

  • با سلام و تشکر فراوان بابت آموزشهای صریح تون. سوالی که دارم اینه چه نیازی هست حتما به نت وصل شیم؟

    • با سلام
      با تشکر از توجه شما .تبدیل محتوای گفتاری به نوشتاری توسط گوگل انجام می شود.لذا برای اتصال به گوگل ابتدا نیاز به اتصال به اینترنت است.البته هزینه زیادی ندارد و مصرف دیتا پایینی دارد.

    • با سلام
      با تشکر از توجه شما.ماژول بلوتوث HC05 کتابخانه جامع و کاملی نیز برای خود دارد اما بسته به نوع پروژه و کدها نیاز به نوع کتابخانه نیز تغیر می کند.در این آموزش فقط از کتابخانه SoftwareSerial.h استفاده شده است و نیازی به کتابخانه دیگر نیست.

  • سلام . بنده درست کردم طبق دستور العمل شما و کار داد . ولی بعد از یک بار کاردادن متاسفانه بلوتوث آن دیگر کار نداد فکر کنم سوخت …. چرا؟

  • سلام ممنون از ساییتون
    من میخوام با استفاده از این ماژول به گوشی وصل بشم و اهنگ بی سیم به این بورد انتقال بدم و در کنار این فلش و رم هم بخونه و یک نمایشگر بزارم تا اسم اهنگ و… نشون بده و خروجی به امپلی فایر بدم البته صدا استریو وبا کیفیت برام مهه.
    به نظرتون این کار با اردوینو و این ماژول امکان پذیره؟
    اگر نیست با چه ماژولی این کارا کنم (البته به جز برد های های اماده فلش خور تو بازار)

    • با سلام
      در مورد ارسال موسیقی از طریق hc05 مطمئن نیستم و به نظرم نمی توان فایل موسیقی را به آن ارسال کرد اما می توان از طریق موبایل آهنگ را عوض کرد و یا پخش و باز پخش و… کرد. برای این منظور می توانید از پخش کننده های دارای امپلی فایر و نمایشگر و بلوتوث هستند که قیمت مناسبی نیز دارند استفاده کنید. و یا ماژول بسیار دیگری نیز برای انتقال صوت از طریق بلوتوث وجود دارند مانند Bluetooth XS3868 .
      در واقع شما پروژه بزرگی دارید.از طرفی می خواهید نام اهنگ و… را نمایش دهید واز طرف دیگر از بلوتوث استفاده کنید و حتی امکان استفاده از رم و هم فلش نیز باشد بدون اینکه از برد پخش کننده دیگری استفاده کنید. این پروژه کاملا شدنی و ممکن است فقط به زمان و زحمتی زیادی نیاز دارد.امیدوارم موفق باشید.

    • با سلام و تشکر از توجه شما
      خب باید اردینو را به یک پورت usb وصل کنید تا از ان تغذیه کند اما این پروژه نیازی به منبع تغذیه جداگانه ندارد.البته اگر به جای LED یا ماژول رله از چیز دیگر استفاده می کنید طبعاً نسبت به ولتاژ مورد نیاز ان به منلع تغذیه جداگانه نیاز دارید.

  • سلام
    ببخشید من مبتدی هستم میشه راهنمایی کنید چجوری کد هارو رو برد اپلود کنم؟درچه شرایطی اپلود کنم؟؟
    و یه سوالی که اگه هنگام پرگرام کردن ارور بده ارئینو میسوزه یا نه؟؟

    • با سلام
      با کابل اردوینو خود آنرا به رایانه خود وصل کنید.برنامه آروینو را باز کرده و سپس کدهای این آموزش را در برنامه آروینو کپی کرده و اپلود کنید.البته قبل از آن اتصالات را برقرار نمایید.بسیار ساده است.از “آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE” در سایت دیجی اسپارک نیز می توانید استفاده کنید.
      امیدوارم موفق شوید.

  • سلام….همه ی عالی بود…..فقط یه چیز اونم این ک میشه ب جای hc-05 از ماژول hc-05 استفاده کرد؟؟؟کتابخونه هاش فرق میکنه درسته؟؟؟؟؟؟

    • سلام
      با تشکر از توجه شما.این دو ماژول تفاوت هایی باهم دارند از جمله مهترین این تفاوت ها master ,slave بودن hc05 است که hc06 این فقط مود slave را دارد.نمی توان تفاوت های این دو ماژول را دریک کامنت خلاصه کرد اما شما از ماژول hc05 استفاده کنید.

  • سلام وعرض ادب
    آیا میشه به جای صدا با متن رله ها رو کنترل کرد؟ به چه صورت و با چه نرم افزاری؟

    • با سلام
      بله می توان از نرم افزار دیگری استفاده کرد. در واقع نرم افزار صدای شما را تبدیل به نوشتار کرده و به ماژول بلوتوث ارسال می‌کند. می‌توانید در گوگل پلی نرم افزاری را برای اینکار پیدا کنید. همچنین می‌توانید این ایده را در دیجی اسپارک به اشتراک بگذارید.
      در خصوص سوال دوم شما اگر منظورتان رله است. می‌توانید هرچه قدر که می‌خواهید افزایش دهید فقط باید باید به محدودیت جریان آردوینو خود دقت کنید برد شما جریان محدودی را می تواند تامین کند. البته باید کدها را هم تغیر بدهید. موفق باشید.

  • با سلام و عرض خسته نباشید .
    میخواستم بدونم اگه بخوام برنامرو با اردینو uno راه اندازی کنم باید چه تغیراتی تو برنامه بدم ؟
    ممنون میشم راهنمایی کنید .

    • باسلام
      ممنون از توجه شما.
      به قسمت TOOL برنامه اردوینو بروید و بر روی Board کلیک کنید سپس از آنجا Arduino/Genuino uno را انتخاب کنید.سپس از همان بخش TOOL پورت را تنظیم کنید.دیگر هیچ تغیری در برنامه نیاز نیست.موفق باشید.

  • سلام و عرض خسته نباشید
    اگه بخوام از ماژول رله استفاده کنم چه تغیری در برنامه و شماتیک باید بدم اگه ممکنه راهنمایی کنید ممنون میشم.

    • باسلام
      با تشکر از توجه شما.در برنامه نیاز به تغیر نیست مگر اینکه بخواهید تعداد رله هارا افزایش دهید(این برنامه تا سه عدد رله را ساپورت می کند) که در اینصورت هم می توانید مانند کدهای خط ۳۴ تا ۳۸ تعداد رله هارا افزایش دهید و مانند کدهای سطر ۶تا۸ پین جدید تعریف کنید .
      در شماتیک هم شما gnd ماژول رله را به gnd اردوینو و vcc ماژول رله به ۵V برد اردوینو خود متصل می کنید و پین های In رله خود را به پین های دیجیتال اردوینو که در این اموزش ۴،۵،۶ است متصل می کنید و اگر هم در کد تعداد رله را افزایش دادید طبق تعریف پین جدید خود در ابتدای کد پین دیگر In رله را به اردوینو متصل می کنید.
      موفق باشید.

    • سلام
      ابتدا مطمئن شوید که موبایل شما به ماژول کانکت شده است.
      اگر اپلیکیشن شما کلمه انگلیسی نمی فرستد احتمالا منشاء مشکل به موبایل شما بر میگردد.

  • با سلام ببخشید اگر بخوایم جای این ledها یک لامپ بزاریم شرایط چطور فرق میکنه چه تعییراتی نیاز است؟

    • باسلام
      فقط کافیست به جای led ها از ماژول رله استفاده کنید و لامپ و اتصالات انرا از طریق رله انجام دهید.

  • با سلام
    بسیار ممنونم از آموزش خوبتون
    فقط یه سوال دارم و اینکه آیا ماژول بلوتوثی هست که بدون برد کار کنه، بعبارتی خودش برنامه پذیر باشه؟
    باتشکر

  • باسلام
    اگر بخواهم از اردینوunoاستفاده کنم ،چه تغییراتی باید انجام بدم؟
    لطف کنید هم سخت افزاری رو بگید و هم نرم افزاری

    • باسلام
      هیچ تغیری نیاز نیست همان شماتیک را پیدا کرده و کدهارا استفاده کنید، فقط در نظر داشته باشید که از قسمت tools نرم افزار اردوینو، Board را روی Uno تنظیم کنید.

  • سلام
    من می‌خوام که با آردوینو صدا رو پردازش کنم تا آردوینو بتونه چند صدا رو از هم تشخیص بده مثلا صدای دست زدن و ورق زدن
    چجوری باید این کار رو بکنم؟

  • سلام آیا میشه به برد آردوینو یک نمایشگر و یک میکروفون نصب کرد تا دیگر به گوشی موبایل نیاز نباشدو متن را روی نمایشگر متصل به برد نمایش دهد؟

  • سلام.
    ببخشید چجوری مشه کلا این وسط گوشی رو حذف کرد ؟؟یعنی هیچ تلفن همراهی در کار نباشد و این پردازش و تبدیل گفتار به نوشتار به صورت افلاین و توسط یک میکرو انجام بشه؟؟ یعنی دیگه گوشی نباشه و ماژول بلوتوث هم نباشه و با یه میکروفون صدا رو مستقیم یه خود میکرو مون بدیم و پردازش رو خودش انجام بده و گفتار رو به متن تبدیل و در اخر در uart خروجی رو بده؟؟؟
    ممنون میشم اگه جئاب بدید اخه این برام خیلی ضروری و هست و به شدت بهش نیاز دارم ممنون.
    اگر هم اموزشی یا پروژه ای مشابه اینچه که گفتم سراغ دارید ممنون مشیم باهام به اشتراک بذارید .بازم ممنون.

    • با سلام
      بله این سناریو هم قابل اجراست. ولی در آخر برای اینکه خروجی دریافت کنید به این بردها نیاز خواهید داشت. در حال حاضر آموزشی در این خصوص نداریم.

  • سلام خسته نباشید
    کد هارو در اردوینو کپی کردم ولی ارور زیر رو بهم داد
    Arduino: 1.8.13 (Windows 10), Board: “Arduino Uno”
    Using library SoftwareSerial at version 1.0 in folder: F:\arduino\hardware\arduino\avr\libraries\SoftwareSerial
    exit status 1
    Error compiling for board Arduino Uno.