Для сопряжения модулей HC-05 (master-модуль) и HC-06 (slave-модуль) необходимо выполнить следующее:
- Установить одинаковую скорость передачи на обоих устройствах.
- Убедитесь, что пароли на HC-05 и HC-06 совпадают (при необходимости установить одинаковые)
- Определить MAC адрес HC-06
- Соединить HC-05 с HC-06
- Связать HC-06 с HC-05
- Настроить HC-05 на соединение только с сопряженным устройствам HC-06
- Соединить 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 с помощью проводов «мама-мама».
|
Обратите внимание, контакт «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 с помощью проводов «мама-мама» как показано на рис ниже.
|
Обратите внимание, контакт «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, как показано на рисунке. | |
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 устанавливает скорость. 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 ">" character indicates the user entered text. if (NL) { Serial.print(">"); 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 модуль во «второй» режим ввода команд. Для этого:
|
Пример
Uploaded: Sep 3 2021 |
Откройте Монитор последовательного порта и введите команды.
AT |
||
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. |
||
На экране Монитора порта появится список обнаруженных устройств, например
+ 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? Для второго устройства AT + RNAME? |
Листинг 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 <SoftwareSerial.h> 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 ">" character indicates the user entered text. if (NL) { Serial.print(">"); 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) во «второй» режим ввода команд. Для этого:
|
|
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, то светодиод на BT будет медленно мигать, и вы сможете подключиться к модулю со скоростью 38400 бод с помощью загруженного скетча. |
2 | Подключитесь к модулю с помощью Монитора порта (или другой терминальной программы, например Termite) на скорости 38400 | |
3 | Настройте скорость и пароль модуля HC-05 (ver. 4.0) с помощью следующих AT-команд:
AT |
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, пошагово как показано на рис. ниже. | |
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 |
Поздравляем Вы успешно настроили HC-05 и сопрягли его с HC-06! Теперь HC-05 будет автоматически подключаться к HC-06 при каждом включении и входить в режим связи. |
Если вы хотите продолжить работу в режиме AT, вам необходимо перезагрузить модуль с помощью контакта 34 HIGH или с замкнутым кнопочным переключателем. |
3. Проверка работы пары HC05-HC-06
Осталось проверить работоспособность созданной пары Bluetooth модулей.
- Отключим питание slave-устройства HC-06.
- Отсоединим преобразователь USB-UART от компьютера и отсоединим провод «+3.3V — EN», больше мы в нем не нуждаемся. Master-модуль остается подключенным лишь четырьмя проводами к USB-UART, теперь это законченное устройство. Для удобства можно заменить провода на более короткие, скрепить изолентой.
1. | Установите модуль HC-06 в плату LV. Включаем питание. Модуль часто замигал, он готов к новому сеансу связи. | |
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.
- Речь идет об HC-05 версии 4.0-20190728 ↑