Проблемы с надежным подключением с использованием 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
...
Есть ли у кого-нибудь подсказки, как найти правильную последовательность?
@Thomas S., 👍5
Обсуждение2 ответа
Лучший ответ:
Похоже, теперь у меня есть некоторое представление о том, что происходит и как заставить 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.
Я использую «СВЯЗКУ» между 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
- Bluetooth-модуль HC-05 неправильно считывает данные с моего телефона Android
- Мой модуль Bluetooth HC-05 не работает
- Проблемы с последовательной связью от Arduino к Bluetooth HC-05
- Соединение Bluetooth с HC-05 сопряжено, но не подключено (в Linux)
- Не удается вручную подключить ведущий HC-05 к подчиненному.
- Модуль HC-05 не получает команд и не спаривается
- Передача/прием данных Nodemcu(V3) + модуль Bluetooth HC-05
- Arduino + HC-05 Проблема: AT-команды не работают
Я использую «BIND» между парой и ссылкой: АТ+ПАРА=98D3,31,FC2D54,5 AT+BIND=98D3,31,FC2D54 АТ+ССЫЛКА=98D3,31,FC2D54, @Dan McCreary
Даже сопрягать не могу... Пытаюсь соединить ds4 с HC-05. Кажется, пароль используется для сопряжения, но у ds4 его нет. Есть идеи?, @someonewithpc
У меня была такая же проблема, и я искал несколько способов ее решения, однако несколько решений, которые я нашел в сети, не смогли решить проблему напрямую. Теперь я наконец нашел настоящее решение, слава Богу!, @Jun Murata