Налаштування bluetooth-модулів hc-05

Головними перевагами BT можна назвати хорошу стійкість до широкосмугових перешкод і простоту реалізації. Перше означає, що купа пристроїв, що знаходяться в одному місці, можуть одночасно спілкуватися між собою, не заважаючи один одному. Друге ж допомогло широкому поширенню Bluetooth в середовищі DIY, і взагалі у всіх середовищах.

Найдоступнішими на сьогодні Bluetooth модулями можна назвати HC-05 і HC-06. Вони в достатку присутні в Китайських онлайн-магазинах і на ebay. Відмінності між ними в тому, що перший може працювати як в режимі ведучого (slave), так і в режимі веденого (master). Другий же є чисто веденим пристроєм (але це можна виправити!). Іншими словами, HC-06 не може сам виявити парне пристрій і налагодити з ним зв'язок, він може лише підкоритися ведучому.

Обидва пристрої базуються на чипі CSR BC417. який підтримує Bluetooth версії 2.0 зі швидкістю до 3 Мбіт / сек. Саме про ці модулях далі і піде мова.

1. Варіанти виконання

Зазвичай модулі продаються у вигляді двох спаяних разом плат. Менша з них - заводський модуль, який широко використовується в різних електронних пристроях. Велика - спеціальна макетная хустки для DIY. Так виглядає менша плата з чіпом BC417:

Налаштування bluetooth-модулів hc-05

А так самі DIY модулі HC-05 і HC-06:

Налаштування bluetooth-модулів hc-05

Для своїх підступних цілей я зазвичай беру HC-05, так як вони не сильно відрізняються за ціною від HC-06, і дозволяють без зайвих проблем зв'язати разом два пристрої. Наприклад, можна зробити робота і пульт до нього. З Китаю мені зазвичай приходять модулі, точнісінько як на лівій картинці, але іноді без кнопки.

Дуже поширений і інший варіант макетної хустки. На відміну від показаних вище, в них немає ноги EN, але є нога KEY, що трохи зручніше.

Налаштування bluetooth-модулів hc-05

Отже, за що відповідають ноги у всіх варіантів модулів.

  • EN - включення / вимикання модуля;
  • VCC - харчування +5 В;
  • GND - земля;
  • TXD, RXD - UART інтерфейс для спілкування з контролером;
  • STATE - індикатор стану;
  • KEY - нога для входу в режим AT-команд.

Налаштування модуля здійснюється в режимі AT-команд, який включається за допомогою ноги KEY. Звідси, у багатьох щасливих володарів модуля може виникнути питання: що робити, якщо мені попався модуль без KEY?

Насправді, на малій платі ця нога звичайно є, просто вона не розлучена на великий платі. Чорт знає навіщо китайці так зробили, але проблема вирішується легко. KEY-нога росте звідси:

Налаштування bluetooth-модулів hc-05

2. Підключення до Ардуіно Уно

Ніг не так багато, так що заплутатися не вийде. Підключаємо до bluetooth до Arduino Uno за наступною схемою:

TX і RX підключаємо до GPIO ногам 10 і 11, так як апаратний UART на ногах 0 і 1 буде зайнятий спілкуванням з комп'ютером.

У робочому режимі KEY нікуди не підключається, так що в таблиці я його не став з'єднувати з GPIO ногами Arduino.

3. Сполучення рівнів напруги

Мала хустки Bluetooth модуля має напругу логіки 3.3 Вольта. А це означає, що Ардуіно Уно може або спалити у неї порти, або просто неправильно передавати сигнали. На щастя, в більшості випадків велика плата має на своєму борту все необхідне, щоб цього уникнути. Зазначені вище модулі легко підключаються до Arduino, без зайвих проблем. Навіть не дивлячись на те, що самі виробники написали на хустці попередження про рівень сигналів 3.3 Вольта.

Однак, в деяких ситуаціях може знадобитися поставити на лінію Ардуіно TX - BT RX дільник напруги для зниження логічних рівнів. Насправді, навіть якщо все працює і без дільника, краще за нього все-таки поставити, для порядку. Схема подільника нижче:

Налаштування bluetooth-модулів hc-05

4. Підготовка Arduino

Для того щоб почати налаштування, нам буде потрібно зашити в Ардуіно допоміжний скетч. По-суті - програму ретранслятор, яка буде здійснювати обмін даними між терміналом на комп'ютері і Bluetooth модулем. Програма дуже проста:

Завантажуємо скетч на Ардуіно і переходимо до наступного кроку.

5. Підготовка терміналу

Як терміналу можна використовувати вбудований в Arduino IDE монітор порту, а можна будь-який інший. Я використовував сторонній термінал TeraTerm. Перед з'єднанням необхідно зробити дві важливі настройки:

  • швидкість обміну: 9600;
  • символу перекладу рядка: CR + LF.

Ось як настройки виглядають в TeraTerm:

Налаштування bluetooth-модулів hc-05
Налаштування bluetooth-модулів hc-05

Коли все правильно налаштовано, підключаємося до COM-порту і перевіряємо з'єднання. Всі подальші маніпуляції раціонально поділити на дві частини: для веденого модуля HC-06 і для ведучого HC-05.

6. Налаштування HC-06

Перевірка з'єднання

Після подачі живлення на модуль, світлодіод почне бадьоро блимати:

Тепер заходимо в термінал і пишемо команду: AT

У відповідь, модуль нам повинен сказати: OK

Наступна наша команда запросить у модуля його версію: AT + VERSION?

Отримуємо щось на кшталт такого: OKLinvor1.5

Вийшло? Якщо немає, то перевіряємо:

  1. Швидкість з'єднання з модулем, яка задається в програмі-транслятор: для зв'язку з веденим швидкість повинна бути 9600.
  2. Налаштування символу перекладу рядка: не забуваємо про CR + LF!
  3. Натискаємо чи після кожної команди Enter? Мало чи…

Корисні команди

У веденого Bluetooth модуля є всього три параметри для настройки:

Наприклад, для зміни пароля пишемо: AT + PIN4321

7. Налаштування HC-05

Перехід в режим AT-команд

Щоб отримати доступ до налаштування ведучого модуля, його необхідно перевести в режим AT-команд. Для входу в цей режим можна скористатися двома методами (я завжди використовую перший).

  1. Відключаємо модуль від харчування.
  2. Подаємо на ногу KEY сигнал + 3.3V.
  3. Включаємо модуль.

У цей варіанті швидкість обміну з модулем встановлюється в 38400.

  1. Включаємо модуль.
  2. Подаємо на ногу KEY сигнал + 3.3V;

У цьому випадку швидкість обміну з модулем дорівнюватиме стандартній, встановленої настройками. За замовчуванням 9600.

Після успішного переходу в режим AT-команд світлодіод на модулі почне блимати раз в дві секунди.

Перевірка з'єднання HC

Перевіримо командний режим HC-05 так само як і в разі веденого модуля:

Налаштування HC-05 як веденого (slave)

Для перетворення модуля в веденого потрібно виконати кілька команд:

Скидання попередніх налаштувань: AT + ORGL

Скидання спарених пристроїв: AT + RMAAD

Функція переходу в режим веденого: AT + ROLE = 0

Після настройки, відключаємо ногу KEY від +3.3 В, і перезапускаємо модуль. Готово!

Налаштування HC-05 як ведучого (master)

Із заводу модуль йде веденим, і щоб зробити його провідним потрібно виконати наступні команди.

Скидання попередніх налаштувань: AT + ORGL

Скидання спарених пристроїв: AT + RMAAD

Функція переходу в режим ведучого: AT + ROLE = 1

Рестарт після зміни ролі: AT + RESET

Якщо ми хочемо зв'язати веденого і ведучого, пишемо такі команди:

Установка пароля веденого: AT + PSWD = 1234

Готово! Тепер модуль пов'язаний з веденим, і при кожному включенні буде намагатися з ним з'єднатися.