При разработке проектов с беспроводным управлением часто падает выбор на bluetooth-модули HC-05, HC-06. В связи с небольшой стоимостью и простотой использования. Но перед тем как создать проект нужно настроить bluetooth-модуль. Настройка модулей осуществляется с помощью AT-команд.
В зависимости от версии bluetooth-модуля и прошивки настроить можно разное количество параметров. Также AT-команд могут быть разные, у разных версий модулей и прошивок. Но основной набор команд неизменный для любой версии. Возможно, разделительный знак будет отличаться, но методом «научного подбора» можно определить, если даже нет описания для вашего модуля.
Это основные AT-команды. Остальные команды используются редко. Более подробный список вы можете посмотреть в таблице ниже.
AT-команды: | Ответ Bluetooth модуля: | Назначение AT-команд: |
---|---|---|
AT | OK | Команда Тест: Используется для проверки связи с модулем. |
AT+RESET | OK | Команда программной перезагрузки модуля: Модуль ведёт себя так, как после кратковременного отключения питания. |
AT+VERSION? | +VERSION:ВЕРСИЯ OK |
Запрос версии прошивки модуля: Модуль возвращает версию в виде строки до 32 байт. Пример ответа: +VERSION:hc01.comV2.1OK |
AT+ORGL | OK | Сброс пользовательских настроек: Модуль сбрасывает следующие настройки: CLASS=0, IAC=9e8b33, ROLE=0, CMODE=0, UART=38400,0,0, PSWD=1234, NAME=hc01.com. |
AT+ADDR? | +ADDR:АДРЕС OK |
Запрос адреса модуля: Модуль возвращает три части своего адреса NAP:UAP:LAP разделённые двоеточием. Каждая часть состоит из шестнадцатиричных цифр. Пример ответа: +ADDR:1234:56:789ABCOK Если количество символов в адесе не четное, то такой адрес не получется добавить мастеру в параметр AT+BIND |
AT+NAME? | +NAME:ИМЯ OK |
Запрос / установка имени модуля: Имя модуля представлено строкой до 32 байт. Пример ответа: +NAME:iArduinoOK Пример установки: AT+NAME=iArduino Некоторые модули реагируют на команду AT+NAME? только при нажатой кнопке модуля или наличии высокого уровня на входе K. |
AT+NAME=ИМЯ | OK | |
AT+RNAME? АДРЕС | +RNAME:ИМЯ OK |
Запрос имени найденного Bluetooth устройства: Адрес вводится после пробела, а части адреса (NAP,UAP,LAP) разделены запятой. Модуль возвращает имя найденного Bluetooth устройства находящегося в зоне действия, адрес которого был в запросе. Пример запроса: AT+NAME? 1234,56,789ABC Пример ответа: +RNAME:iArduinoOK |
AT+ROLE? | +ROLE:РОЛЬ OK |
Запрос / установка роли модуля: Роль модуля представлена цифрой: 0 - ведомый, 1 - ведущий, 2 - ведомый в цикле*. Пример ответа: +ROLE:1 Пример установки: AT+ROLE=0 |
AT+ROLE=РОЛЬ | OK | |
AT+CLASS? | +CLASS:ТИП OK |
Запрос / установка типа устройства: Тип устройства представляется 32 битным числом, по которому можно определить назначение модуля: Bluetooth клавиатура, Bluetooth мышь, гарнитура ... Пример установки: AT+CLASS=0 |
AT+CLASS=ТИП | OK | |
AT+IAC? | +IAC:КОДOK | Запрос / Установка кода общего доступа GIAC: Код представлен 32 битным числом и используется для обнаружения Bluetooth устройств. В роли ведущего, по данному коду модуль будет получать доступ к другим Bluetooth устройствам для их поиска (опроса), а в роли ведомого по данному коду будет предоставляться доступ для опроса модуля другими ведущими. Пример ответа: +IAC:9e8b33OK Пример установки: AT+IAC=9e8b33 |
AT+IAC=КОД | OK или FAIL |
|
AT+INQM? | +INQM:РЕЖИМ,КОЛ,ВРЕМЯ OK |
Запрос / Установка режима опроса модулей: Используемые параметры являются настройками для команды поиска (опроса) других Bluetooth устройств. - Режим поиска представлен цифрой: 0-стандартный, 1-поиск по интенсивности сигнала. - Количество представлено цифрой определяющей предельное количество найденных Bluetooth устройств, после которого требуется прекратить поиск. - Время поиска задаёт таймаут после которого поиск прекращается. Реальное время поиска в секундах равно указанному числу умноженному на 1,28. Пример ответа: +INQM:1,1,48OK Пример установки: AT+INQM:1,1,48 |
AT+INQM=РЕЖИМ,КОЛ,ВРЕМЯ | OK или FAIL |
|
AT+PSWD? | +PSWD:КОД OK |
Запрос / Установка PIN-кода: Код доступа представлен строкой до 16 байт. Код модуля в роли ведомого устройства является паролем доступа к текущему модулю. Код модуля в роли ведущего устройства является паролем доступа к внешним Bluetooth устройствам. Пример ответа: +PSWD:1234OK Пример установки: AT+PSWD=1234arduino |
AT+PSWD=КОД | OK | |
AT+UART? | +UART:СКОР,СТОП,ПРОВ OK |
Запрос / установка скорости UART: Скорость представлена числом бит/сек Стоп бит представлен цифрой: 0 - один, 1 - два Проверка представлена цифрой: 0 - без проверки, 1 - проверка нечётности, 2 - проверка чётности. Пример ответа: +UART:38400,0,0OK Пример установки: AT+UART=38400,0,0 |
AT+UART=СКОР,СТОП,ПРОВ | OK | |
AT+CMODE? | +CMOD:РЕЖИМ OK |
Запрос / установка режима подключения: Режим представлен цифрой: 0 - модуль в роли ведущего подключается только к тому Bluetooth устройству, адрес которого указан командой AT+BIND. 1 - модуль в роли ведущего подключается к любому ведомому Bluetooth устройству. 2 - модуль в роли ведомого работает в цикле* Пример ответа: +CMOD:0OK Пример установки: AT+CMOD=1 |
AT+CMODE=РЕЖИМ | OK | |
AT+BIND? | +BIND:АДРЕС OK |
Запрос / установка фиксированного адреса: Если модуль находится в роли ведущего (ROLE=1) и установлен режим подключения к фиксированному адресу (CMODE=0), то он будет подключаться только к тому Bluetooth устройству, адрес которого указан данной командой. Части адреса вводятся: при установке - через запятую, а при ответе - через двоеточие. Пример ответа: +BIND:1234:56:789ABCOK Пример установки: AT+BIND=0,0,0 |
AT+BIND=АДРЕС | OK | |
AT+POLAR? | +POLAR:ЛОГ,ЛОГ OK |
Запрос / установка активного логического уровня для включения светодиодов: Полярность представлена цифрой 0 или 1 соответствующей активному логическому уровню. Первый параметр указывает логический уровень для включения светодиода подключённого к выводу PIO8 (отображает режим работы), а второй для светодиода подключённого к выводу PIO9 (отображает статус соединения). Пример ответа: +POLAR:1,1OK Пример установки: AT+POLAR=1,1 |
AT+POLAR=ЛОГ,ЛОГ | OK | |
AT+PIO=НОМЕР,УРОВЕНЬ | OK | Установка логического уровня PIO: Позволяет установить логический уровень на выводе PIO. Номер вывода представлен числом от 2 до 11, кроме 8 и 9. Уровень представлен цифрой 0 или 1. Пример установки: AT+PIO=11,0 |
AT+MPIO? | +MPIO:ЧИСЛО OK |
Запрос / установка логических уровней PIO: Позволяет узнать или установить логические уровни сразу на всех выводах PIO. Уровни представлены шестнадцатиричным числом, каждый бит которого соответствует уровню вывода PIO. Пример ответа: +MPIO:1F0OK Пример установки: AT+MPIO:CFC |
AT+MPIO=ЧИСЛО | OK | |
AT+IPSCAN? | +IPSCAN:A,B,C,D OK |
Запрос / установка параметров IP сканирования: A - интервал сканирования B - продолжительность сканирования C - интервал страниц D - количество страниц Пример ответа: +IPSCAN:1024,512,1024,512OK Пример установки: AT+IPSCAN:1024,512,1024,512 |
AT+IPSCAN=A,B,C,D | OK | |
AT+SNIFF? | +SNIFF:A,B,C,D OK |
Запрос / установка параметров энергосберегающего режима: A - максимальное время B - минимальное время C - период повторов D - таймаут Пример ответа: +SNIFF:0,0,0,0OK Пример установки: AT+SNIFF=0,0,0,0 |
AT+SNIFF=A,B,C,D | OK | |
AT+ENSNIFF=АДРЕС | OK | Переход в энергосберегающий режим: Части адреса вводятся через запятую (NAP,UAP,LAP) Пример команды: AT+ENSNIFF=1234,56,789ABC |
AT+EXSNIFF=АДРЕС | OK | Выход из энергосберегающего режима: Части адреса вводятся через запятую (NAP,UAP,LAP) Пример команды: AT+EXSNIFF=1234,56,789ABC |
AT+SENM? | +SENM:СЕКРЕТ,ШИФР OK |
Запрос / установка параметров безопасности: Режим секретности представлен цифрой: 0 - выключен 1 - незащищённое соединение 2 - защита на сервисном уровне 3 - защита на уровне соединения 4 - неизвестный режим Режим шифрования представлен цифрой: 0 - без шифрования 1 - шифруется только трафик PTP 2 - шифруется весь трафик Пример ответа: +SENM:0,0OK Пример установки: AT+SENM:0,0 |
AT+SENM=СЕКРЕТ,ШИФР | OK | |
AT+PMSAD=АДРЕС | OK | Удаление устройства из списка пар: Удаление Bluetooth устройства из списка приведёт к необходимости заново образовывать пару для подключения к нему. Части адреса удаляемого устройства вводится через запятую (NAP,UAP,LAP) Пример команды: AT+PMSAD=1234,56,789ABC |
AT+RMAAD | OK | Удаление всех устройств из списка пар: Очистка данного списка приведёт к необходимости заново образовывать пары с Bluetooth устройствами для подключения к ним. |
AT+FSAD=АДРЕС | OK или FAIL |
Поиск устройства в списке пар: Если Bluetooth устройство с указанным адресом имеется в списке, то модуль вернёт OK иначе FAIL. Части адреса вводятся через запятую (NAP,UAP,LAP) Пример запроса: AT+FSAD=1234,56,789ABC |
AT+ADCN? | +ADCN:КОЛИЧЕСТВО OK |
Запрос количества устройств в списке пар: При образовании пары ведущий-ведомый, данные о паре автоматически попадают в список пар и для последующих подключений (даже после отключения питания) не требуется повторно устанавливать пару. Пример ответа: +ADCN:10OK |
AT+MRAD? | +MRAD:АДРЕС OK |
Запрос адреса устройства из списка пар: Модуль вернёт адрес Bluetooth устройства из списка пар с которым выполнялось последнее успешное соединение. Части адреса выводятся через двоеточие (NAP:UAP:LAP) Пример ответа: +MRAD:1234:56:789ABCOK |
AT+STATE? | +STATE:СТАТУС OK |
Запрос статуса модуля: Модуль вернёт свое текущее состояние в виде строки: INITIALIZED - инициализация READY - готов PAIRABLE - образование пары PAIRED - пара образована INQUIRING - запрос CONNECTING - подключение CONNECTED - подключён DISCONNECTED - отсоединён NUKNOW - неизвестное состояние Пример ответа: +STATE:CONNECTEDOK |
AT+INIT | OK или FAIL |
Инициализация профиля SPP: Профиль SPP эмулирует последовательный порт. |
AT+INQ | +INQ:АДРЕС,ТИП,СИГНАЛ +INQ:АДРЕС,ТИП,СИГНАЛ ... +INQ:АДРЕС,ТИП,СИГНАЛ |
Поиск (опрос) Bluetooth устройств: Команда доступна модулю в роли ведущего. Модуль ищет Bluetooth устройства в радиусе действия и выводит каждый найденный модуль на новой строке. Режим поиска (опроса) устанавливается командой AT+INQM, код опроса устанавливается командой AT+IAC, тип искомых устройств указывается командой AT+CLASS. Поиск завершается по достижении предельного количества найденных Bluetooth устройств, или по достижении таймаута, или командой AT+INQC. Пример ответа: +INQ:1234:56:789ABС,240404,7FFF |
AT+INQC | OK | Завершить поиск (опрос) Bluetooth устройств: Досрочно завершает поиск Bluetooth устройств инициированный командой AT+INQ |
AT+PAIR=АДРЕС,ТАЙМАУТ | OK или FAIL |
Создать пару с Bluetooth устройством: Создание пары или сопряжение Bluetooth устройств инициируется ведущим устройством. Таймаут указывается десятичным числом в секундах. Если пара создана, то информация о ней автоматически запишется в список пар, модуль ответит OK после чего можно подключить Bluetooth устройство командой AT+LINK. Если пара не создана (например не подошёл PIN-код или истек таймаут), то модуль ответит FAIL. Пример команды: AT+PAIR=1234,56,789ABC,10 |
AT+LINK=АДРЕС | OK или FAIL |
Подключиться к Bluetooth устройству: После выполнения данной команды можно общаться с подключённым Bluetooth устройством. Команда доступна модулю в роли ведущего. Пример команды: AT+LINK=1234,56,789ABC |
AT+DISC | +DISC:РЕЗУЛЬТАТ OK |
Отключиться от Bluetooth устройства: Команда указывает модулю отключиться от Bluetooth устройства с которым установлено соединение. После отключения от Bluetooth устройства информация о нём сохраняется в списке пар. Если потребуется вновь подключиться к этому устройству, то создание пары будет необязательно (если Bluetooth устройство намеренно не удалить из списка пар). После выполнения команды модуль ответит результатом её выполнения: SUCCESS - успех LINK_LOSS - соединение потеряно NO_SLC - отсутствует SLC TIMEOUT - истекло время ожидания ERROR - ошибка Пример ответа: +DISC:SUCCESSOK |
ERROR:(№) | Описание ошибки | Максимальный размер параметра |
---|---|---|
0 | Такая AT команда не существует |
- |
1 | Результат по умолчанию | - |
2 | Ошибка сохранения пароля | - |
3 | Слишком длинное имя устройства | 32 байта |
4 | Имя устройства не указано | - |
5 | Часть адреса NAP слишком длинная | 4 разряда в шестнадцатиричной системе |
6 | Часть адреса UAP слишком длинная | 2 разряда в шестнадцатиричной системе |
7 | Часть адреса LAP слишком длинная | 6 разрядов в шестнадцатиричной системе |
8 | Не указана маска порта PIO | - |
9 | Не указан номер вывода PIO | - |
A | Не указан класс устройства |
- |
B | Слишком длинный класс устройства | - |
C | Не указан общий код доступа IAC | - |
D | Слишком длинный общий код доступа IAC | - |
E | Недопустимый общий код доступа IAC | - |
F | Не указан пароль | - |
10 | Слишком длинный пароль |
16 байт |
11 | Недопустимая роль модуля | - |
12 | Недопустимая скорость передачи данных | - |
13 | Недопустимый размер стоп-бита | - |
14 | Недопустимая настройка бита четности | - |
15 | Устройство отсутствует в списке пар | - |
16 | Профиль последовательного порта не инициализирован | - |
17 | Повторная инициализация профиля SPP | - |
18 | Недопустимый режим опроса Bluetooth устройств | - |
19 | Слишком большое время опроса | - |
1A | Не указан адрес Bluetooth устройства | - |
1B | Недопустимый режим безопасности | - |
1C | Недопустимый режим шифрования | - |
Модули HC-05 и HC-06 являются наиболее используемыми. Оба модуля основаны на одинаковом чипе, но есть и важные отличия. Модуль HC-05 может работать в двух режимах работы – и в качестве ведущего (master), и в качестве ведомого (slave).
Модуль HC-05 стоит несколько дороже, но он имеет большее количество полезных рабочих функций. Скорость передачи АТ команд по умолчанию для HC-05 равна 38400, для HC-06 – 9600. Важным моментом является то, что в конце АТ команд для HC-05 должны быть символы CRLF.
Подключение обоих модулей к плате Arduino одинаково.
Подписывайтесь на мой канал на Youtube и вступайте в группы в Вконтакте и Facebook.
Спасибо за внимание!
Понравилась статья? Поделитесь ею с друзьями:
Вернуться в раздел: Обзоры Arduino и электроники Дата публикации 10 августа , 2021
Читайте также
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.