Проблемы с надежным подключением с использованием HC-05 в качестве ведущего устройства Bluetooth

В настоящее время я пытаюсь подключить Arduino Micro/Leonardo/32u4 к Bluetooth-ключу ELM327 с помощью Bluetooth-экрана HC-05 от iTeadStudio. У меня также возникают аналогичные проблемы при попытке подключения к Bluetooth-ключу (с дополнительным последовательным соединением) на моем компьютере.

Базовая связь с помощью AT-команд работает, но я еще не выяснил, почему AT+PAIR или AT+LINK не работают и что следует сделать, чтобы этого избежать (я выполнил десятки итераций команд Serial Monitor). До сих пор я не нашел последовательности команд, которая бы надежно подключалась. Что я пробовал до сих пор (из различной документации и примеров кода):

Проверьте общий набор AT-команд:

AT
> OK

Восстановить значения по умолчанию:

AT+ORGL
> OK

Установите главный режим и проверьте его:

AT+ROLE=1
> OK
AT+ROLE?
> +ROLE:1
> OK

Подключаться только к указанному адресу Bluetooth:

AT+CMODE=0
> OK

Сброс и инициализация:

AT+RESET
> OK
AT+INIT
> OK

Настроить режим запроса:

AT+INQM=1,9,48
> OK

Запрос:

AT+INQ
> +INQ:12:34:567890:1F1F,7FFF
> OK
AT+STATE?
> +STATE:INQUIRING

Попробуйте перестать спрашивать:

AT+INQC
> OK
AT+STATE?
> +STATE:INQUIRING
> OK

Сброс и инициализация еще раз (иначе мы не сможем выйти из состояния запроса):

AT+RESET
> OK
AT+INIT
> OK
AT+STATE?
> +STATE:INITIALIZED
> OK

Попробуйте выполнить сопряжение с найденным устройством (мой компьютер запрашивает пароль 1234 и создает последовательный порт):

AT+PAIR=12,34,567890,20
> OK
AT+STATE?
> +STATE:PAIRED

Попробуйте подключиться

AT+BIND=12,34,567890
> OK
AT+LINK=12,34,567890
> FAIL
...

Есть ли у кого-нибудь подсказки, как найти правильную последовательность?

, 👍5

Обсуждение

Я использую «BIND» между парой и ссылкой: АТ+ПАРА=98D3,31,FC2D54,5 AT+BIND=98D3,31,FC2D54 АТ+ССЫЛКА=98D3,31,FC2D54, @Dan McCreary

Даже сопрягать не могу... Пытаюсь соединить ds4 с HC-05. Кажется, пароль используется для сопряжения, но у ds4 его нет. Есть идеи?, @someonewithpc

У меня была такая же проблема, и я искал несколько способов ее решения, однако несколько решений, которые я нашел в сети, не смогли решить проблему напрямую. Теперь я наконец нашел настоящее решение, слава Богу!, @Jun Murata


2 ответа


Лучший ответ:

1

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

Перед включением HC-05 убедитесь, что переключатель CMD-DAT установлен в положение CMD.

Командный режим (конфигурация)

Проверьте общий набор AT-команд:

AT
> OK

Сброс к значениям по умолчанию (устанавливает, среди прочего, ROLE=0 и CMODE=1):

AT+ORGL
> OK

Установите основной режим и проверьте его:

AT+ROLE=1
> OK
AT+ROLE?
> +ROLE:1
> OK

Сброс и инициализация (сброс прерывает, например, состояние запроса - быстро мигающий светодиод; без инициализации вы получите ERROR(16)):

AT+RESET
> OK
AT+INIT
> OK

Теперь светодиод должен медленно мигать. При желании: установите пароль целевого устройства:

AT+PSWD=1234
> OK

Показать количество всех аутентифицированных устройств в списке пар:

AT+ADCN?
> +ADCN:7
> OK

Если значение больше 0, удалить все аутентифицированные устройства в списке пар:

AT+RMAAD
> OK

Теперь выполните сопряжение с нужным устройством (последние 20 означают 20 секунд):

AT+PAIR=12,34,567890,20
> OK

Светодиод начнет мигать один раз с более длительной паузой. Установите желаемое устройство:

AT+BIND=12,34,567890
> OK

Теперь ссылка (например, при подключении к ELM327; ПК создаст еще один новый порт после запроса пароля у пользователя):

AT+LINK=12,34,567890
> OK

Светодиод начинает мигать два раза с более длинной паузой. После связывания может случиться так, что HC-05 перейдет в режим данных или продолжит работу в командном режиме (не выяснил, когда он делает одно или другое).

Командный режим (автоматическое подключение)

Теперь выключите HC-05 и оставьте переключатель CMD-DAT в положении CMD. Включите его снова. Он должен автоматически подключиться к ранее подключенному устройству. Чтобы переключиться в режим данных, сначала отключите...

AT+DISC
> +DISC:SUCCESS
> OK

... и снова подключитесь.

AT+LINK=12,34,567890
> OK

Теперь соединение, похоже, переключилось в режим передачи данных.

Режим данных

Теперь выключите HC-05 и переведите переключатель CMD-DAT в положение DAT. Включите HC-05. Он автоматически попытается подключиться к ранее подключенному устройству — светодиод должен мигнуть два раза с более длинной паузой — и вам больше не придется возиться с командами HC-05-AT.

,

2

Я использую «СВЯЗКУ» между PAIR и LINK:

AT+PAIR=98D3,31,FC2D54,5
AT+BIND=98D3,31,FC2D54
AT+LINK=98D3,31,FC2D54

Кажется, мне это подходит.

См. документацию здесь:

ftp://imall.iteadstudio.com/Modules/IM120723009/DS_IM120723009.pdf

,