Опубликовано

Руководство по сопряжению модулей HC-05 (ver. 4.0 2019[1]) и HC-06 (BT SPP V3.0)

По материалам руководства к набору “Знакомьтесь! Я — Робот. Робототехнический набор + КНИГА

Для сопряжения модулей HC-05 (master-модуль) и HC-06 (slave-модуль) необходимо выполнить следующее:

  1. Установить одинаковую скорость передачи на обоих устройствах.
  2. Убедитесь, что пароли на HC-05 и HC-06 совпадают (при необходимости установить одинаковые)
  3. Определить MAC адрес HC-06
  4. Соединить HC-05 с HC-06
  5. Связать HC-06 с HC-05
  6. Настроить HC-05 на соединение только с сопряженным устройствам HC-06
  7. Соединить HC-05 с HC-06

Прежде чем приступить к сопряжению модулей, опишем их подключение к ПК для последующей настройки и тестирования соединения. Обращаем внимание, что кроме двух сопрягаемых модулей HC-05 и HC-06, нам понадобится дополнительный плата Arduino и модуль HC-05, который поможет определить MAC-адрес HC-06 в каждой паре. В качестве дополнительного модуля мы использовали HC-05 версии 3.0-20170601. Мы указываем конкретные версии модулей, т.к. выяснили, что порядок настройка модулей разных версий может немного отличаться.


Примечание

Также для определения MAC-адреса можно использовать смартфон на базе Android с установленной терминальной программой (например, Serial Bluetooth Terminal или Bluetooth Terminal HC-05)


1. Подключение модулей Bluetooth к ПК

1.1. Подключение модуля HC-06

# Действия Примечание
1 Подключаем Bluetooth HC-06 к преобразователю USB-UART с помощью проводов «мама-мама».

01_BT-USB-UART-HC06

Обратите внимание, контакт «Transmit Data» одного устройства подключен к контакту «Receive Data» другого!
2 Включаем преобразователь USB-UART в разъем USB ПК.
3 Запускаем Arduino IDE.
4 Выбираем порт, к которому подключен USB-UART (Инструменты | Порт)

5 Открываем монитор последовательного порта (Инструменты | Монитор порта). Выбираем настройки:.

Скорость 9600 бод

Режим «Нет конца строки»

6 Для контроля правильности подключения вводим команду

AT

и получаем в ответ отклик от модуля Bluetooth HC-06

OK

1.2. Подключение master-модуля HC-05 (ver. 4.0). Модуль брелка

# Действия Примечание
1 Подключаем Bluetooth HC-05 (ver. 4.0) к преобразователю USB-UART с помощью проводов «мама-мама» как показано на рис ниже.

01b_BT-USB-UART-HC05

Обратите внимание, контакт «Transmit Data» одного устройства подключен к контакту «Receive Data» другого!
2 Включаем преобразователь USB-UART в разъем USB ПК. Светодиод на BT будет медленно мигать. Обращаем внимание, что подача напряжения 3,3 В на контакт EN переводит BT при подключении к ПК в Режим AT-команд #1.

В этом режиме BT работает на скорости 38400 бод и реагирует на определенный набор команд.

3 Запускаем Arduino IDE.
4 Выбираем порт, которому подключен USB-UART (Инструменты | Порт)

5 Открываем монитор последовательного порта (Инструменты | Монитор порта). Настраиваем Arduino.

Скорость 38400 бод

Режим «NL & CR»

6 Для контроля правильности подключения вводим команду

AT

и получаем в ответ отклик от модуля Bluetooth HC-06

OK

1.3. Подключение master-модуля HC-05 (ver. 3.0 20170601). Модуль для определения MAC-адреса HC-06

Этот модуль мы используем, чтобы создать «испытательный стенд» для определения MAC-адреса модулей HC-06, которые мы будем сопрягать с «брелком». Он является «стационарным» устройством для определения адресов всех модулей HC-06 и настраивается только один раз перед началом работы.

1 этап

# Действия Примечание
1. Подключаем Bluetooth HC-05 (ver. 3.0) к плате Arduino Uno, как показано на рисунке.

Подключение HC-05 для для определения MAC-адреса

2. Запускаем Arduino IDE.
3. Откройте в Arduino IDE и загрузите скетч Bluetooth_INQ-1.ino на плату Arduino UNO (см. внизу)..
4 Переведите BT модуль в «первый» режим ввода команд. Для этого

– Отключите провод питания модуля BT (VCC)

– Подайте на пин EN напряжение 3,5В (можно и 5 В) и не отключайте. Напряжение можно подать от платы Arduino Uno (или кантакта 3V3 преобразователя USB-UART/TTL CP2102)

– Снова подключите провод питания модуля BT (VCC)

– Если вы успешно вошли в режим AT-команд #1, то светодиод будет медленно мигать, и вы сможете подключиться к нему со скоростью 38400 бод с помощью загруженного скетча..

BT V3.0 есть два AT-режима, которые «понимают» несколько разные наборы команд.

Вместо подачи на контакт EN напряжения +3,5 В можно при запуске держать нажатой кнопку на модуле BT и затем зафиксировать ее в таком положении, например прищепкой или «крокодилом».

5 Введите следующие AT-команды

AT
AT+UART=115000,0,0
AT+RMAAD
AT+ROLE=1
AT+RESET
AT+CMODE=1
AT+INQM=0,5,5

AT+UART=115000,0,0 устанавливает скорость. 115200.AT+RMAAD очищает все сохраненные соединения

AT+ROLE=1 устанавливает его в качестве ведущего

AT +RESET устройство перезапускается для перехода на master

AT+CMODE=1 принимает все виды устройств

AT+INQM=0,5,5 запрашивает в стандартном режиме, с 5 максимальными подключениями или 5 секундами


Листинг 1. Bluetooth_INQ-1.ino

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <SoftwareSerial.h>
SoftwareSerial BTserial(2, 3); // RX | TX`
<strong>const long baudRate = 38400; </strong>
char c=' ';
boolean NL = true;
void setup()
{
Serial.begin(9600);
Serial.print("Sketch: "); Serial.println(__FILE__);
Serial.print("Uploaded: "); Serial.println(__DATE__);
Serial.println(" ");
BTserial.begin(baudRate);
Serial.print("BTserial started at "); Serial.println(baudRate);
Serial.println(" ");
BTserial.println("AT");
delay(1000);
}
 
void loop()
{
// Read from the Bluetooth module and send to the Arduino Serial Monitor
if (BTserial.available())
{
c = BTserial.read();
Serial.write(c);
}
// Read from the Serial Monitor and send to the Bluetooth module
if (Serial.available())
{
c = Serial.read();
BTserial.write(c);
// Echo the user input to the main window. The "&gt;" character indicates the user entered text.
if (NL) { Serial.print("&gt;"); NL = false; }
Serial.write(c);
if (c==10) { NL = true; }
}
}

2 этап

1 Загрузите на плату Arduino скетч Bluetooth_INQ-2.ino.

По сравнению с Bluetooth_INQ-1.ino в нем изменен только один параметр.

const long baudRate = 115200;

т.к. вы на первом этапе уже задали для модуля BT скорость 115200 бод

2. Переведите BT модуль во «второй» режим ввода команд. Для этого:

  • включите питание (не удерживая кнопку и не подавая питание на пин EN). Светодиод LED на модуле BT начинет быстро мигать.
  • подайте питание +3,5 В на пин EN (или нажмите и удерживайте кнопку). Светодиод будет продолжать быстро мигать, но теперь вы можете подключиться к устройству с настроенной скоростью передачи данных.
Пример

Uploaded: Sep 3 2021
BTserial started at 9600
AT
OK
AT+STATE
+STATE:CONNECTED
OK
AT+INIT
ERROR:(17)
AT+INQ
+INQ:20:4:BDD6A7,1F00,7FFF
+INQ:20:4:BDD6A7,1F00,7FFF

Откройте Монитор последовательного порта и введите команды.

AT
AT+STATE?
AT + RMAAD
AT + ROLE= 1
AT + RESET
AT + RMAAD очищает все ранее сопряженные устройства.
AT + ROLE = 1 переводит HC-05 в режим Master.
AT + RESET сбрасывает HC-05. Иногда это необходимо после смены ролей.

HC-05_to_HC-06-HC-05_Connect01
AT + CMODE = 0
AT + INQM = 0,5,9
AT + INIT
AT + INQ
AT + CMODE = 0 позволяет HC-05 подключаться к любому устройству.
AT + INQM = 0,5,9 устанавливает запрос для поиска до 5 устройств в течение 9 секунд.
AT + INIT инициирует профиль SPP. Если SPP уже активен, вы получите сообщение об ошибке (17), которое можно игнорировать.
AT + INQ выполняет поиск других устройств Bluetooth.
HC-05_to_HC-06-HC-05_Connect02
На экране Монитора порта появится список обнаруженных устройств, например

+ INQ: A854: B2: 3FB035,8043C, 7FFF

Первая группа цифр определяет MAC- адрес найденного HС-06.

На приведенном выше снимке экрана видно, что HC-05 обнаружил 2 устройства Bluetooth.
+ INQ: A854: B2: 3FB035,8043C, 7FFF
+ INQ: 3014: 10: 171179,1F00,7FFFЧтобы узнать имя найденного устройства, мы можем использовать командуAT + RNAME?АдресДля первого устройства это будет команда

AT + RNAME?
A854, B2,3FB035

Для второго устройства

AT + RNAME?
3014,10,171179

Листинг 2. Bluetooth_INQ-2.ino

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include &lt;SoftwareSerial.h&gt;
SoftwareSerial BTserial(2, 3); // RX | TX`
//const long baudRate = 38400;
<strong>const long baudRate = 115200; </strong>
char c=' ';
boolean NL = true;
void setup()
{
Serial.begin(9600);
Serial.print("Sketch: "); Serial.println(__FILE__);
Serial.print("Uploaded: "); Serial.println(__DATE__);
Serial.println(" ");
BTserial.begin(baudRate);
Serial.print("BTserial started at "); Serial.println(baudRate);
Serial.println(" ");
}
void loop()
{
// Read from the Bluetooth module and send to the Arduino Serial Monitor
if (BTserial.available())
{
c = BTserial.read();
Serial.write(c);
}
// Read from the Serial Monitor and send to the Bluetooth module
if (Serial.available())
{
c = Serial.read();
BTserial.write(c);
// Echo the user input to the main window. The "&gt;" character indicates the user entered text.
if (NL) { Serial.print("&gt;"); NL = false; }
Serial.write(c);
if (c==10) { NL = true; }
}
}

2. Настройка модулей

2.1. Установка скорости и пароля HC-06

ATOKAT+VERSIONOKlinvorV1.8AT+BAUD8OK115200

# Действия Примечание
1 Отправляем команду AT, модуль отвечает OK. Все в порядке, можно продолжать.

Должен быть выбран режим ввода Мониторе порта «Нет конца строки»!

AT

OK

2 Изменяем скорость обмена на 115200

Вводим команду AT+BAUD8

AT + BAUD8 устанавливает скорость обмена 115200 для модуля Bluetooth HC-06

AT+VERSIONBT SPP V3.0
AT+BAUD4
OK9600
ATOKAT+VERSIONOKlinvorV1.8AT+BAUD8OK115200
3 Изменяем пароль на 1234

Вводим команду AT+PIN1234

AT+PIN1234

OK1234

Примечание

Полезно сразу пометить подготовленный модуль. Например, приклеить скотчем кусочек бумаги и записать прямо на нем всю нужную информацию.

2.2. Определение MAC-адреса HC-06

1 Переведите модуль BT HC-05 (ver.3.0 2017 20170601) во «второй» режим ввода команд. Для этого:

  • включите питание (не удерживая кнопку и не подавая питание на пин EN). Светодиод LED на модуле BT начинает быстро мигать.
  • подайте питание +3,5 В на пин EN (или нажмите и удерживайте кнопку). Светодиод будет продолжать быстро мигать, но теперь вы можете подключиться к устройству с настроенной скоростью передачи данных.
2 Выключите и включите BT HC-06
3 Откройте Монитор порта и запишите MAC-адрес устройств, которые обнаружил ваш «измерительный стенд» на базе bluetooth HC-05 (ver.3.0 2017 20170601)

2.3. Настройка HC-05 (ver. 4.0) и сопряжение BT-модуля

1 этап

1. Подключите BT-модуль в режиме AT-команд #1 (на контакт EN при включении подано напряжение 3,3 В)

AT#1-BT-USB-UART

Если вы успешно вошли в режим AT, то светодиод на BT будет медленно мигать, и вы сможете подключиться к модулю со скоростью 38400 бод с помощью загруженного скетча.
2 Подключитесь к модулю с помощью Монитора порта (или другой терминальной программы, например Termite) на скорости 38400
3 Настройте скорость и пароль модуля HC-05 (ver. 4.0) с помощью следующих AT-команд:

AT
AT+NAME=HC-05-20-4-BDD6A7
AT+PSWD=1234
AT+STATE?
AT + RMAAD
AT + ROLE= 1
AT + CMODE = 1
AT+UART=115200,0,0
AT+RESET

AT + CMODE = 1 — модуль в роли ведущего (HC-05) подключается к любому ведомому Bluetooth устройству. В нашем случае — и к HC-06

В качестве имени HC-05 удобно использовать MAC-адрес подключенного к нему HC-06

2 этап

1 Отключите питание BT HC-06 slave, к которому вы подключаете HC-05
2. Подключите модуль HC-05 к ПК в Режиме AT#2, пошагово как показано на рис. ниже.

AT#2_BT-USB-UART

3 Соедините HC-05 (ver.4.0) с HC-06

Для создания пары мы используем команду

AT + PAIR = <addr>, <timeout>.

Введите команду

AT + PAIR = 20,4,BDD6A7,9

Если HC-05 не может соединиться с HC-06 в течение 9 секунд, вы получите сообщение об ошибке.

Если соединение прошло успешно, будет выведено «ОК».

MAC-адрес модуля HC-06 мы определили на предыдущем шаге 1.3 (2 этап). В нашем примере это 20,4,BDD6A7
4 Свяжите HC-06 (ver.4.0) с HC-05.

Привязка просходит с помощью команды

AT + BIND = <addr>

В нашем примере это будет команда

AT + BIND = 20,4,BDD6A7

5 Настройте HC-05 на подключение только к сопряженным устройствам.

Делаем это с помощью команды CMODE

AT + CMODE = 0

AT + CMODE = 0 — модуль в роли ведущего подключается только к тому Bluetooth устройству, адрес которого указан командой AT+BIND. В нашем случае HC-05 (ver.4.0) подключается к HC-06
6 Ссылка на HC-06

Используйте команду ссылки

AT + LINK = <addr>

В нашем случае

AT + LINK = 20,4,BDD6A7

Если все в порядке, вы получите ответ «ОК»

 

7
  • Для проверки соединения
  • 1. Подключите питание к вашему модуля BT HC-06. Светодиод на модуле начинает быстро мигать.
  • 2. Подключите питание к вашему модуля BT HC-05. Светодиод на модуле также начинает быстро мигать.
  • 3. Если вы все сделали правильно, то через 5-10 сек индикация изменится.
  • Светодиод на HC-05 (ver.4.0) будет мигать 2 раза подряд каждые 2 секунды.
  • Светодиод на HC-06 должен гореть постоянно.

Поздравляем Вы успешно настроили HC-05 и сопрягли его с HC-06!

Теперь HC-05 будет автоматически подключаться к HC-06 при каждом включении и входить в режим связи.

Если вы хотите продолжить работу в режиме AT, вам необходимо перезагрузить модуль с помощью контакта 34 HIGH или с замкнутым кнопочным переключателем.

3. Проверка работы пары HC05-HC-06

Осталось проверить работоспособность созданной пары Bluetooth модулей.

  1. Отключим питание slave-устройства HC-06.
  2. Отсоединим преобразователь USB-UART от компьютера и отсоединим провод «+3.3V — EN», больше мы в нем не нуждаемся. Master-модуль остается подключенным лишь четырьмя проводами к USB-UART, теперь это законченное устройство. Для удобства можно заменить провода на более короткие, скрепить изолентой.
1. Установите модуль HC-06 в плату LV. Включаем питание. Модуль часто замигал, он готов к новому сеансу связи. index
2 Извлеките и вновь установите «брелок» в USB ПК. Пара секунд, и светодиодная индикация изменилась. Работает!
3 Откройте mBlock и выберите номер порта, к которому подключен HC-05 (ver. 4.0).

Соединить | Serial Port | Номер COM-порта

(в нашем случае это COM13)

4
5 Выберите вкладку simpleBot Programm и нажмите на блок _on board BUZZER. В ответ вы должны услышать звук динамика на плате LV.

Это означате, что все в порядке!

6

Примечание

Обратите внимание, что компьютер вообще ничего не знает о существовании Bluetooth. Для него наш «брелок» — просто COM-порт. Соответственно, мы больше не нуждаемся ни в драйверах Bluetooth, ни в какой бы то ни было его настройке Bluetooth. И потраченное нами время с лихвой будет компенсировано во время занятий.


Примечание

Стоит добавить, что slave-модуль по-прежнему допускает соединение с любого Bluetooth-устройства. Мы сможем управлять робоплатформой и с компьютера, и с планшета, а теперь еще при помощи пульта дистанционного управления на базе Arduino.


HC05-HC06

  1. Речь идет об HC-05 версии 4.0-20190728
Добавить комментарий