پروژه الکترونیکپروژه های آردوینوپروژه های بلوتوث

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

سلام. پروژه ارتباط دو برد آردوینو با هم با ماژول بلوتوث HC-05 + آموزش کامل اتصال 2 برد Arduino به یکدیگر را آماده کردیم.

آموزش انتقال اطلاعات بین دو برد Arduino از طریق Bluetooth

ماژول های بلوتوث HC-05 برای هر پروژه های Arduino بسیار مناسب هستند! ما در آیرنکس انواع پروژه ها را با این ماژول قرار داده ایم. اما آیا تاکنون احتیاج به اتصال دو ماژول HC-05 به یکدیگر داشته اید؟ ما در این پروژه آردوینو دو برد آردوینو را از طریق بلوتوث با هم مرتبط میکنیم.

قطعات مورد نیاز پروژه

  1. برد آردوینو (هر مدلی) – دو عدد
  2. ماژول بلوتوث HC-05 – دو عدد
  3. مقاومت 1 کیلو اهم – دو عدد
  4. مقاومت 2.2 کیلو اهم – دو عدد

توضیحات مدار پروژه ارتباط بین دو برد آردوینو

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

شماتیک کامل پروژه در فایل دانلودی قرار داده شده است. این نمودار مدار بسیار ساده است. مدار فرستنده و گیرنده مشابه هم هستند. تمام کاری که ما در اینجا انجام می دهیم اتصال HC05 به آردوینو است. پین گیرنده (Rx) از HC05 در محدوده 0V تا 3.3V کار می کند و Arduino در محدوده 0V تا 5V کار می کند. بنابراین ، ما از مقاومت (R1 و R2) برای ایجاد تقسیم ولتاژ استفاده خواهیم کرد تا خروجی 5 ولت آردوینو را به 3.3 ولت کاهش دهیم ، تا به ماژول HC05 آسیب نرسد.

پیکربندی ماژول های HC05

این مرحله از بارگذاری کد آردوینو جدا است و ما باید برخی از تنظیمات را در ماژول های بلوتوث HC-05 تغییر دهیم. برای اینکار باید به حالت فرماندهی ماژول HC05 برویم و از طریق مانیتور سریال نرم افزار Arduino دستورات را برای آنها ارسال کنیم.

کد کامل پیکربندی این ماژول در فایل دانلودی قرار داده شده است.

ابتدا کتابخانه SoftwareSerial را به این کد اضافه کنید.

#include <SoftwareSerial.h>

شماره پین ​​انتقال (Tx) و (Rx) را تعریف کنید. من از پین 2 برای Tx و پین 3 برای Rx استفاده می کنم.

#define tx 2
#define rx 3

برای اتصال بلوتوث نامی بگذارید (در اینجا من از configBt استفاده می کنم).

SoftwareSerial configBt(rx, tx); // RX, TX

برای پیکربندی ماژول بلوتوث ، Arduino باید دستورات خود را با سرعت 38400 ارسال کند. به همین دلیل ، ما نرخ baud اتصال بلوتوث را 38400 baud را تنظیم می کنیم. (Tx) را به عنوان پین خروجی تنظیم کنید و (Rx) را به عنوان پین ورودی تنظیم کنید.

void setup() 
{
  Serial.begin(38400);
  configBt.begin(38400);
  pinMode(tx, OUTPUT);
  pinMode(rx, INPUT);
}

در داخل loop برای قسمت اصلی کد را داریم.هر آنچه در جعبه متن در مانیتور سریال تایپ شده است به HC05 از طریق پین Tx آردوینو ارسال می شود. سپس هر چیزی که توسط HC05 در خروجی باشد را در مانیتور سریال نمایش دهید.

void loop() 
{
  if(configBt.available()) // اگر ماژول چیزی را ارسال میکرد
  {
    Serial.print(configBt.readString()); // پرینت شود در سریال مانیتور
  }
  if(Serial.available()) // اگر سریال مانیتور چیزی را ارسال میکرد
  {
    configBt.write(Serial.read()); // در پین TX نوشته شود
  }
}

ابتدا این کد را در Arduino متصل به ماژول فرستنده HC05 بارگذاری کنید. پس از بارگذاری کد ، کابل برق آردوینو را قطع کنید. دکمه روی HC05 فشار داده و نگه دارید. اکنون کابل برق آردوینو را در حالی که هنوز دکمه HC05 را نگه داشتید وصل کنید. خوب ، حالا می توانید دکمه HC05 را آزاد کنید. به این ترتیب است که شما وارد حالت AT (فرماندهی) HC05 می شوید. برای بررسی اینکه آیا شما این کار را صحیح انجام داده اید ، مطمئن شوید که چراغ قرمز موجود در HC05 تقریباً در هر ثانیه (آهسته) چشمک می زند. به طور معمول قبل از اتصال HC05 به هر دستگاه بلوتوث ، نور قرمز خیلی سریع چشمک می زند.

حتما ببینید :  پروژه سرعت سنج GPS با آردوینو و نمایشگر OLED

سپس ، مانیتور سریال را باز کنید (مانیتور سریال را میتوانید با کلید Ctrl+Shift+M باز کنید). در گوشه پایین سمت راست پنجره سریال مانیتور ، مطمئن شوید که تنظیمات پایان خط را روی “هر دو NL و CL” قرار داده اید و میزان baud را روی 38400 قرار داده اید. اکنون AT را تایپ کنید. اگر همه چیز خوب پیش برود، در پنجره مانیتور سریال “OK” دریافت خواهید کرد. تبریک می گویم! شما با موفقیت وارد حالت فرمان AT ماژول HC05 شده اید.

اکنون ، دستورات جدول زیر را وارد کنید تا پیکربندی ماژول فرستنده HC05 انجام شود.

این دستور ها را در سریال مانیتور وارد کنید و اینتر را بزنیداین جواب ها در سریال مانیتور نمایش داده میشود.این دستور چه کار میکند ؟
ATOKتست
AT+CMODE?OKچک Cmode
AT+CMODE=1OKتنظیم این ماژول به عنوان فرستنده
AT+ADDR?+ADDR:FCA8:9A:58D5 OK (توجه داشته باشید این آدرس برای هر ماژول متفاوت است)این آدرس را یادداشت کنید

 

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.

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

این دستور ها را در سریال مانیتور وارد کنید و اینتر را بزنیداین جواب ها در سریال مانیتور نمایش داده میشود.این دستور چه کار میکند ؟
ATOKتست
AT+CMODE?OKچک Cmode
AT+CMODE=0OKتنظیم این ماژول به عنوان گیرنده
AT+BIND=

آدرسی را که در قسمت قبل یادداشت کردید را جلوی مساوی بنویسید و به جای : از , استفاده کنید.

OKاتصال دو برد به یک دیگر
AT+BIND?+BIND: FCA8:9A:58D5 OK (توجه داشته باشید این آدرس برای هر ماژول متفاوت است)اتصال موفقیت آمیز دو برد به یکدیگر

 

تست ارتباط بلوتوث بین دو برد آردوینو

تست ارتباط بلوتوث بین دو برد آردوینو

در مرحله اول ، هر دو ماژول فرستنده و گیرنده HC05 را روشن کنید. بعد از گذشت زمان به چراغ قرمز در ماژول های HC05 نگاهی بیندازید.

اگر چراغ قرمز روی ماژول ها تند تند چشمک میزد یعنی اتصال این دو برد انجام نشده است و باید از اول دستورات را ارسال کنید.هنگامی که چراغ قرمز شما در یک فرکانس پایین چشمک می زند (کند چشمک می زند!) ، می توانید مطمئن باشید که هر دو HC05 شما با یکدیگر متصل هستند، اما ما آزمایش نکرده ایم که آیا داده ها می توانند منتقل شوند یا خیر.

کد آردوینوی قسمت فرستده را بارگذاری کنید، این کد برای تست فرستنده (Tx) است. کد کامل پروژه در فایل دانلودی قرار داده شده است.

در این قسمت ما کتابخانه ارتباط سریالی را فراخوانی میکنیم و سپس پین های TX و RX را مشخص میکنیم.

#include <SoftwareSerial.h>
#define tx 2
#define rx 3
SoftwareSerial bt(rx,tx); //RX, TX

در کد آردوینو ما بر خلاف کد ماژول ، از نرخ Baud 9600 استفاده میکنیم. با استفاده از کد زیر این نرخ را تعیین میکنیم. و پین RX را به عنوان ورودی و پین TX را به عنوان خروجی تنظیم میکنیم.

void setup()
{
  Serial.begin(9600);
  bt.begin(9600);
  pinMode(tx, OUTPUT);
  pinMode(rx, INPUT);
}

در داخل void loop ، تمام کاری که ما انجام می دهیم انتقال مقدار تست “123” از طریق HC05 است.

void loop()
{
  bt.write(123);
}

این کد را در آردوینو دیگر بارگذاری کنید ، این کد برای تست دریافت است :

در این قسمت ما کتابخانه ارتباط سریالی را فراخوانی میکنیم و سپس پین های TX و RX را مشخص میکنیم.

#include <SoftwareSerial.h>
#define tx 2
#define rx 3
SoftwareSerial bt(rx,tx); //RX, TX

در کد آردوینو ما بر خلاف کد ماژول ، از نرخ Baud 9600 استفاده میکنیم. با استفاده از کد زیر این نرخ را تعیین میکنیم. و پین RX را به عنوان ورودی و پین TX را به عنوان خروجی تنظیم میکنیم.

void setup()
{
  Serial.begin(9600);
  bt.begin(9600);
  pinMode(tx, OUTPUT);
  pinMode(rx, INPUT);
}

در void loop ، فقط باید آنچه را که از انتقال دهنده آردوینو ارسال می کنیم ، دریافت کنیم. اگر دریافت کننده اطلاعاتی را از HC05 دریافت کرده است، آن را در سریال مانیتور نمایش میدهد.

void loop()
{
   Serial.println(bt.read());
}

بعد از اینکه کدهای مربوطه را برای هر آردوینو بارگذاری کردید ، مانیتور سریال راباز کنید. اطمینان حاصل کنید که در مانیتور سریال نرخ baud به عنوان 9600 باشد. سپس باید تصویر زیر را مشاهده کنید :

تست مدار انتقال اطلاعات بین دو برد آردوینو با بلوتوث

پایان.

موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل و …
برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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