Доброго дня всем.
На сайте имеется статья о модулях bluetooth hc-05 отличного содержания. Однако последнее время в китайских интернет-магазинах все чаще встречаются модули HC-07 весьма загадочного содержания. Информация в сети о данных модулях имеется разноречивая и не всегда достоверная.
Аналогичный модуль пришел и мне. Пришлось с ним поразбираться. Выкладываю на ваше обозрение полезную информацию о данном китайском творении.
Производитель модуля — китайская компания, именующаяся HC. Сайт производителя www.wavesen.com
Страница продукта на сайте в гугловском переводчике.
Этот модуль позизионируется как новый продукт. Функциональность, производительность и печатная плата совместимы с HC-06. Отличительная черта платы — это ее низкая цена. Микросхемы процессора и памяти объединены в одном чипе, поэтому снижено энергопотребление модуля по сравнению с HC-05/06.
Модуль может быть или только в режиме хоста, или только в режиме слейва (необходимо уточнять у продавца).
Настройки модуля по умолчанию: Slave, baud rate: 9600, N, 8,1. Passcode: 1234. Максимальный baudrate — 1382400.
Из всего приведенного выше видно, что по умолчанию скорость обмена данными модуля стоит достаточно низкая по сравнению с его максимальными возможностями. Для изменения дефолтных настроек необходимо перевести модуль в режим АТ-команд. Вот здесь-то и возникают основные трудности.
Для перевода модуля в режим АТ-команд необходим переходник USB-UART. Без этого никак. В сети полно советов, как перевести bluetooth модули в AT-mode, типа этого. Имеется еще ряд других советов. Но один их недостаток в том, что к HC-07 они не применимы.
Для перевода bluetooth HC-07 модуля в режим АТ-команд нужно включать его через переходник USB-UART.
Так случилось, что под рукой переходника не было, а была платка Arduino Nano v3.0. Хорошо, что нашел способ использовать Nano в качестве переходника USB-UART. По приведенной ссылке можно найти три способа, но самый простой из них — это замкнуть на Arduino пины RST с GND (соединить их между собой). Залитые в ардуину скетчи менять не надо, они на работу моста USB-UART не влияют.
Дальше соединяем RX(Nano)-RX(Bluetooth), TX-TX, GND-GND, Vcc-Vcc. Входящий ток допустим от 3,3 до 6 вольт, поэтому можно выбирать хоть 3,3В выход, хоть 5В. Обратите внимание, что соединять нужно именно RX(Nano)-RX(Bluetooth), TX-TX — одноименными пинами, а не противоположными.
После соединения Arduino и HC-07 подсоединяем Arduino к PC посредством USB кабеля. Bluetooth-соединение устанавливать нельзя. HC-07 работает в режиме АТ-команд только до тех пор, пока он не спарен с другим устройством (достаточно не устанавливать соединение).
Дальше возможно использовать как системный монитор в Arduini IDE, так и другие программы для связи по серийному порту. Я воспользовался CuteCom (OS Ubuntu), но выбор программной части, как мне кажется, не принципиален.
В настройках соединения выбираем само соединение — серийный порт, ставим дефолтные установки модуля baud rate: 9600, N, 8,1. Также выбираем No line end. Устанавливаем соединение.
Проверка связи производится командой AT. Ответ на нее — Ok. Если выходит данный ответ, то модуль в режиме АТ-команд.
Выбор настроек в HC-07, в отличие от собрата HC-05, не велик. Смотрим исходник здесь и на странице производителя.
Кроме теста АТ-режима, можно установить baudrate(из-за чего, собственно, этот режим и потребовался):
команда: AT + BAUD1
ответ: OK1200
пример: AT + BAUD2
ответ: OK2400
Перечень возможных baudrate
1 ——— 1200
2 ——— 2400
3 ——— 4800
4 ——— 9600
5 ——— 19200
6 ——— 38400
7 ——— 57600
8 ——— 115200
9 ——— 230400
A ——— 460800
B ——— 921600
C ——— 1382400
Производителем заявлены скорости вплоть до 1382400, однако сам же производитель предупреждает, что baudrate выше 115200 устанавливать не рекомендуется. Это можно сделать при помощи микроконтроллерного программирования, однако впоследствии приводит к нестабильной работе компьютера.
смена Bluetooth-имени
команда: AT + NAMEname
ответ: OKname
Это имя устройства. Должно быть длиной 20 символов или меньше.
пример: Sending AT + NAMEbill_gates
ответ: OKname
смена Bluetooth passkey
команда: AT + PINxxxx
ответ: OKsetpin
Пароль длиной 4 символа для установления пары устройств.
пример: Sending AT + PIN8888
ответ: OKsetpin
После изменения настроек bluetooth-модуля не забудьте установить новые параметры при повторном установлении соединения с модулем HC-07. Произведеные вами изменения сохраняются в модуле HC-07, повторной настройки не требуют.
На этом ваш модуль HC-07 готов к работе на полной скорости. Можно продолжить эксперименты.
Еще один момент. Не знаю, как ведут себя другие платы bluetooth, но при установлении HC-07 на обмен данными, плату ардуино необходимо запитывать от отдельного источника питания, отключая USB-соединение. Может быть, приоритетным для обмена является USB серийный порт, но обмен данными при включенном USB кабеле через bluetooth модуль HC-07 не происходит.