- Управление Bluetooth модулем SE с помощью AT-команд
- Описание
- Шаг 1. Установите на компьютер программу Termite
- Шаг 2. Подключите модуль к компьютеру
- Шаг 3. Настройте программу Termite
- Шаг 4. Ввод команд
- Шаг 5. Смена имени
- Список AT-команд
- Прошивка Bluetooth модуля HC-05/06
- Схема и распиновка Bluetooth модуля
- Настройка Bluetooth модуля HC-05/06
- Скетч для прошивки блютуз модуля Arduino
- Пояснения к коду:
- Прошивка модуля HC-05 AT-командами
- HC-06 AT-команды для настройки
- AT-команда
- Ответ модуля
- Примечание
- AT-команды Bluetooth HC-05
- Подключение:
- Настройка:
- Проверка:
- AT-команды:
- Описание ошибок выдаваемых модулем:
- Примечание:
- Создание ведомого ожидающего подключения ведущего:
- Создание ведущего с подключением к ведомому:
Управление Bluetooth модулем SE с помощью AT-команд
Описание
AT-команды — это набор команд, предусмотренных разработчиком, с помощью которых происходит управление устройством. Общение с модулем через AT-команды является самой простым способом связи и проверки работоспособности устройства. При этом с помощью команд можно выполнять над устройством различные действия, такие как смена имени устройства, установка или смена пароля, возврат к заводским настройкам и прочие.
Для того чтобы управлять Bluetooth модулем SE с помощью АТ-команд нам понадобится USB-UART конвертер, например, USB-UART Bridge (CP2102). Далее выполните следующие действия.
Шаг 1. Установите на компьютер программу Termite
Программа Termite является одной из самых простых программ управления COM-портами с компьютера. Эта программа является открытой и бесплатной. Вы можете скачать её из интернета, либо воспользоваться ссылкой ниже:
Распакуйте архив, и запустите установочный файл. Следуйте инструкциям установщика. Программа устанавливается без особенностей.
Шаг 2. Подключите модуль к компьютеру
Сначала подключите Bluetooth модуль SE к USB-UART конвертеру, как показано на схеме ниже.
Затем USB-UART конвертер подключите к USB входу компьютера. Откройте диспетчер устройств (для Windows 10: Правой кнопкой мыши по значку Windows — Диспетчер устройств):
Посмотрите номер COM-порта, который был присвоен устройству.
В нашем случае это порт COM3. Запомните его, он нам нужен будет на следующем шаге.
Шаг 3. Настройте программу Termite
Запустите программу Termite, и в появившемся окне нажмите кнопку Настройки (Settings).
Если Вам неудобно работать с программой на английском языке, выберите язык интерфейса в настройках:
Перезапустите программу и снова войдите в окно настроек. Далее, выберите порт и установите другие настройки:
Обратите внимание, что в настройках программы мы указали добавлять в конце каждой команды символы окончания строки и возврата каретки (CR+LF или \r\n). Поэтому, если Вы используете другую программу или напрямую общаетесь с модулем, указывайте данные символы в конце каждой команды! Ниже, в примерах, все команды приведены без этих символов!
Шаг 4. Ввод команд
Ну и теперь можно вводить команды. Все команды вводятся на латинице. Базовая команда для проверки: AT. Устройство должно ответить ОК.
Введите в поле ввода команд слово AT (без пробелов и прочих символов) и нажмите кнопку ввода:
На что модуль Вам должен ответить: ОК
Вот именно таким образом и происходит общение и управление модулем.
Шаг 5. Смена имени
Давайте попробуем уточнить у модуля его текущее имя, и сменить его. Для запроса у данного модуля команды вводятся без параметров. Для установки значения, командам присваиваются значения этих параметров.
Например, команда для запроса текущего имени:
В результате модуль вернёт его текущее имя:
А команда для установки нового имени должна содержать новое имя сразу после команды:
На что модуль ответит:
Список AT-команд
Команда типа «Запрос» | Команда типа «Установка» | Параметры | Описание |
---|---|---|---|
AT | нет | нет | Базовая команда проверки, возвращает «ОК» в случае успешного выполнения |
AT+DEFAULT | нет | Сбрасывает все настройки до заводских | |
AT+BAUD | AT+BAUD | 8 – 115200 7 – 57600 6 – 38400 5 – 19200 4 – 9600 3 – 4800 2 – 2400 1 – 9600 0 – 9600 По умолчанию – 0 | Получить или установить скорость передачи данных в бодах |
AT+RESET | нет | Перезагрузка модуля | |
AT+ROLE | AT+ROLE | 1 — ведущий 0 – ведомый | Получить или установить текущую роль модуля |
AT+DISC | нет | нет | Отключение модуля (если подключен) |
AT+ADVI | AT+ADVI | 6 – 8000 мс 5 – 4000 мс 4 – 2000 мс 3 – 1000 мс 2 – 750 мс 1 – 500 мс 0 – 100 мс По умолчанию – 0 | Интервал вещания |
AT+POWE | AT+POWE | 3 – -23 дБм 2 – -6 дБм 1 – 0 дБм 0 – 6 дБм По умолчанию – 2 | Получить или установить мощность сигнала передатчика |
AT+NAME | AT+NAME | Новое имя | Получить или установить имя текущего модуля |
AT+LADDR | нет | нет | Получить адрес Bluetooth |
AT+VERSION | нет | нет | Получить версию программного обеспечения (прошивки) |
AT+TYPE | AT+TYPE | 2 – запрос пароля и связывание 1 – запрос пароля 0 – без пароля По умолчанию – 0 | Настройки привязки и сопряжения |
AT+PIN | AT+PIN | 6-байтовый пароль для сопряжения По умолчанию – «123456» | Получить или установить новый пароль для сопряжения |
AT+UUID | AT+UUID | От: 0x0001 До: 0xFFFE По умолчанию – 0xFFE0 | Получить или установить сервисный UUID модуля |
AT+CHAR | AT+CHAR | От: 0x0001 До: 0xFFFE По умолчанию – 0xFFE1 | Получить или установить CHAR_UUID системы |
AT+SLEEP | нет | нет | Режим сна |
AT+HELP | нет | нет | Список всех команд |
© 2014-2021 УмныеЭлементы — DIY-электроника Arduino, компоненты для робототехники и электронных устройств. «УмныеЭлементы» (SmartElements) является зарегистрированным товарным знаком. Любое воспроизведение товарного знака допускается только с согласия правообладателя.
Прошивка Bluetooth модуля HC-05/06
Прошивка блютуз модуля HC-05/06 с помощью AT-команд ► отправляемых по последовательному порту, можно изменить многие параметры, установленные производителем.
Рассмотрим, как сделать настройку Bluetooth модуля для Arduino с помощью AT-команд, отправляемых по последовательному порту. Данная информация будет полезна для тех, кто решил сделать проект на Ардуино в котором необходимо использовать беспроводную передачу данных между устройствами. При прошивке модуля, можно изменить многие параметры, установленные производителем.
Схема и распиновка Bluetooth модуля
Для настройки модуля необходимо подключить к нему питание от 3,3 Вольт, кроме того необходимо подать 3,3 Вольта на порт 34 (см. фото выше). Прошивка осуществляется по последовательному порту, так как аппаратный последовательный порт у Ардуино (порты TX и RX) будет занят для отправки AT-команд с компьютера, то мы используем программный последовательный порт с помощью библиотеки SoftwareSerial.h.
Данная библиотека позволяет реализовать программный последовательный порт на любых цифровых выходах Ардуино. Для настройки Bluetooth модуля его следует перевести в режим отладки — необходимо подключить вывод 34 к 3,3 Вольтам, питание модуля при прошивке тоже идет от 3,3 Вольт. В качестве контактов программного последовательного порта будем использовать цифровые выводы 2 и 3 на Arduino UNO.
Настройка Bluetooth модуля HC-05/06
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- Bluetooth модуль HC-05/06;
- провода «папа-папа» и «папа-мама».
После подключения модуля, загрузите скетч для настройки модуля HC-05/06. Скачать скетч и библиотеку SoftwareSerial можно с Google Диск по ссылке здесь. После загрузки скетча, открывайте монитор последовательного порта Arduino IDE и отправляйте AT-команды. Первым делом, следует отправить тестовую команду — AT, для проверки соединения модуля. Ответ модуля HC-05 / HC-06 должен быть — OK.
Скетч для прошивки блютуз модуля Arduino
Пояснения к коду:
В программе все предельно просто: при получении данных на аппаратном (встроенном) последовательном порту, данные отправляются в программный последовательный порт (на модуль). А при получении данных с модуля, они отправляются на аппаратный последовательный порт, то есть на монитор порта.
Прошивка модуля HC-05 AT-командами
Итак, чтобы изменить код доступа к Bluetooth-модулю, имя или другие характеристики, следует отправить следующие команды через монитор последовательного порта Arduino IDE (смотри скрин ниже). Также приведем пошаговую инструкцию, какие необходимо использовать AT команды для перепрошивки HC-05. А в конце статьи размещена более полная таблица at команд с небольшими пояснениями.
- узнаем версию прошивки модуля: AT+VERSION?
- узнаем режим работы модуля: AT+ROLE?
- узнаем имя Bluetooth-модуля: AT+NAME?
- задаем новое имя модуля: AT+NAME=ROBOT
- узнаем имя Bluetooth-модуля: AT+NAME?
- узнаем пин-код Bluetooth-модуля: AT+PSWD?
- задаем новый пин-код доступа: AT+PSWD=0000
- узнаем пин-код Bluetooth-модуля: AT+PSWD?
Обратите внимание, что при настройке модуля, в мониторе последовательного порта IDE Arduino следует выбрать пункт «NL & CR». После программирования модуля отсоедините вывод 34 от 3,3 Вольт и подключитесь к Bluetooth-модулю с телефона или планшета. Если при первом подключении блютуз модуля к Ардуино, у нас были стандартные настройки, то сейчас наш модуль имеет свое имя и новый пин-код.
Настройка bluetooth модуля на Android
Таким образом, мы можем использовать в одном месте сразу несколько bluetooth модулей, а чтобы не запутаться присвоить каждому свое уникальное имя. Также мы можем задать новый пин-код, чтобы защитить модуль от постороннего вмешательства. С помощью данной настройки модуля НС-05/06 мы можем получать данные с датчиков не только на мониторе порта, но и на любом Android — устройстве.
HC-06 AT-команды для настройки
AT-команда
Ответ модуля
Примечание
OK
0 — slave. К модулю может подключиться мастер;
1 — master. Модуль сам подключается к устройству.
Если у вас еще остались вопросы, то можете их задать в комментариях к этой записи. Если информация на этой странице вам пригодилась и была полезной, то поделитесь ей в социальных сетях и поставьте свою оценку (пять звезд).
AT-команды Bluetooth HC-05
Bluetooth модуль HC-05 подключается по шине UART и способен выполнять AT-команды. AT-команда это строка начинающаяся с букв «AT» (от английского attention — «внимание»). Модуль выполняет поступившую команду и отправляет обратно ответ (результат выполнения команды), который также является строкой. В Bluetooth модулях HC-05 каждая команда (как и ответ) должна заканчиваться символами перевода строки «\r\n».
Подключение:
- Управлять Bluetooth модулем HC-05 можно либо с компьютера, либо через микроконтроллер, например, Arduino. Вывод RX модуля подключается к выводу TX, а вывод TX модуля подключается к выводу RX того устройства с которого он будет управляться.
- Для подключения модуля к компьютеру (без микроконтроллеров) потребуется адаптер USB-UART, или адаптер RS232-UART, или программатор с выводами TX RX, вместо адаптера USB-UART можно использовать плату Arduino, как описано в статье Wiki — используем Arduino как USB — UART преобразователь. Для отправки команд в модуль потребуется установить программу терминал. Одним из таких терминалов является свободно распространяемая программа Termite с поддержкой Русского языка.
- Для подключения модуля к Arduino можно воспользоваться аппаратной или программной шиной UART. При использовании аппаратной шины, модуль подключается к выводам TX и RX указанным на плате. При использовании программной шины, модуль подключается к назначаемым выводам TX и RX Arduino.
Настройка:
Модуль Bluetooth HC-05 сможет принимать команды только если правильно настроены следующие параметры последовательного порта:
- Номерпорта: Его можно узнать экспериментально, отключите адаптер или Arduino, посмотрите какие порты доступны. Подключите адаптер или Arduino и вновь посмотрите какие порты доступны. Появившийся порт и есть тот самый.
- Скорость передачи данных: В обычном режиме, Bluetooth модуль HC-05 сохраняет последнюю установленную скорость передачи данных, но по умолчанию она равна 38400 бит/сек (редко 9600 бит/сек). Если обе скорости не подойдут, то смотрите примечание в конце статьи.
- Параметры передачи данных: Модуль сохраняет последние установленные параметры передачи данных. Значения параметров по умолчанию: количество бит в пакете — 8, размер стопового бита = 1, без проверки чётности.
- Передаваемый текст: Нужно установить пункт «добавлять символы CR & LF(NL)» это символы перевода строки «\r\n» которые Вы не сможете ставить самостоятельно в конце AT-команд.
Для настройки этих параметров в программе Termite, нажмите на кнопку «Настройки» (Settings). В том же окне можно установить Русский язык.
При использовании Arduino, номер порта указывается во вкладке «Инструменты». Параметры передачи данных используются по умолчанию. Для добавления символов NL & CR воспользуйтесь меню в правом нижнем углу монитора последовательного порта.
Проверка:
После каждого подключения питания или перезагрузки модуля, до того как отправлять команды, нужно кратковременно нажать на кнопку модуля. Если у модуля нет кнопки, то кратковременно подать высокий уровень на вывод K. После чего модуль останется в обычном режиме, но будет воспринимать AT-команды. Помимо обычного режима, модуль может работать в режиме AT-команд. О том как войти в этот режим и чем он отличается от обычного, рассказано ниже, в разделе примечание.
Для проверки связи с Bluetooth модулем отправьте тестовую команду AT (введите текст AT и нажмите Enter). Если связь установлена корректно, то модуль ответит OK . После этого можно отправлять остальные AT-команды.
AT-команды:
Если в программе терминал указано добавлять символы CR & LF или NL & CR то символы «\r\n» в командах ставить не нужно!
Команды могут быть обычными: AT+КОМАНДА \r\n , запросами: AT+КОМАНДА? \r\n , или установками: AT+КОМАНДА=ПАРАМЕТР(Ы) \r\n .
AT-команда: | Ответ: | Назначение: | |
---|---|---|---|
AT | AT \r\n | OK \r\n | Команда Тест: Используется для проверки связи с модулем. |
RESET | AT+RESET \r\n | OK \r\n | Команда программной перезагрузки модуля: Модуль ведёт себя так, как после кратковременного отключения питания. |
VERSION | AT+VERSION? \r\n | +VERSION:ВЕРСИЯ \r\n OK \r\n | Запрос версии прошивки модуля: Модуль возвращает версию в виде строки до 32 байт. Пример ответа: +VERSION:hc01.comV2.1 \r\n OK \r\n |
AT+ORGL | AT+ORGL \r\n | OK \r\n | Сброс пользовательских настроек: Модуль сбрасывает следующие настройки: CLASS=0, IAC=9e8b33, ROLE=0, CMODE=0, UART=38400,0,0, PSWD=1234, NAME=hc01.com. |
ADDR | AT+ADDR? \r\n | +ADDR:АДРЕС \r\n OK \r\n | Запрос адреса модуля: Модуль возвращает три части своего адреса NAP:UAP:LAP разделённые двоеточием. Каждая часть состоит из шестнадцатиричных цифр. Пример ответа: +ADDR:1234:56:789ABC \r\n OK \r\n |
NAME | AT+NAME? \r\n | +NAME:ИМЯ \r\n OK \r\n | Запрос / установка имени модуля: Имя модуля представлено строкой до 32 байт. Пример ответа: +NAME:iArduino \r\n OK \r\n Пример установки: AT+NAME=iArduino \r\n Некоторые модули реагируют на команду AT+NAME? \r\n только при нажатой кнопке модуля или наличии высокого уровня на входе K. |
AT+NAME=ИМЯ \r\n | OK \r\n | ||
RNAME | AT+RNAME? АДРЕС \r\n | +RNAME:ИМЯ \r\n OK \r\n | Запрос имени найденного Bluetooth устройства: Адрес вводится после пробела, а части адреса (NAP,UAP,LAP) разделены запятой. Модуль возвращает имя найденного Bluetooth устройства находящегося в зоне действия, адрес которого был в запросе. Пример запроса: AT+NAME? 1234,56,789ABC \r\n Пример ответа: +RNAME:iArduino \r\n OK \r\n |
ROLE | AT+ROLE? \r\n | +ROLE:РОЛЬ \r\n OK \r\n | Запрос / установка роли модуля: Роль модуля представлена цифрой: 0 — ведомый, 1 — ведущий, 2 — ведомый в цикле*. Пример ответа: +ROLE:1 \r\n Пример установки: AT+ROLE=0 \r\n |
AT+ROLE=РОЛЬ \r\n | OK \r\n | ||
CLASS | AT+CLASS? \r\n | +CLASS:ТИП \r\n OK \r\n | Запрос / установка типа устройства: Тип устройства представляется 32 битным числом, по которому можно определить назначение модуля: Bluetooth клавиатура, Bluetooth мышь, гарнитура . Пример установки: AT+CLASS=0 \r\n |
AT+CLASS=ТИП \r\n | OK \r\n | ||
IAC | AT+IAC? \r\n | +IAC:КОД \r\n OK \r\n | Запрос / Установка кода общего доступа GIAC: Код представлен 32 битным числом и используется для обнаружения Bluetooth устройств. В роли ведущего, по данному коду модуль будет получать доступ к другим Bluetooth устройствам для их поиска (опроса), а в роли ведомого по данному коду будет предоставляться доступ для опроса модуля другими ведущими. Пример ответа: +IAC:9e8b33 \r\n OK \r\n Пример установки: AT+IAC=9e8b33 \r\n |
AT+IAC=КОД \r\n | OK \r\n или FAIL \r\n | ||
INQM | AT+INQM? \r\n | +INQM:РЕЖИМ,КОЛ,ВРЕМЯ \r\n OK \r\n | Запрос / Установка режима опроса модулей: Используемые параметры являются настройками для команды поиска (опроса) других Bluetooth устройств. — Режим поиска представлен цифрой: 0-стандартный, 1-поиск по интенсивности сигнала. — Количество представлено цифрой определяющей предельное количество найденных Bluetooth устройств, после которого требуется прекратить поиск. — Время поиска задаёт таймаут после которого поиск прекращается. Реальное время поиска в секундах равно указанному числу умноженному на 1,28. Пример ответа: +INQM:1,1,48 \r\n OK \r\n Пример установки: AT+INQM:1,1,48 \r\n |
AT+INQM=РЕЖИМ,КОЛ,ВРЕМЯ \r\n | OK \r\n или FAIL \r\n | ||
PSWD | AT+PSWD? \r\n | +PSWD:КОД \r\n OK \r\n | Запрос / Установка PIN-кода: Код доступа представлен строкой до 16 байт. Код модуля в роли ведомого устройства является паролем доступа к текущему модулю. Код модуля в роли ведущего устройства является паролем доступа к внешним Bluetooth устройствам. Пример ответа: +PSWD:1234 \r\n OK \r\n Пример установки: AT+PSWD=1234arduino \r\n |
AT+PSWD=КОД \r\n | OK \r\n | ||
UART | AT+UART? \r\n | +UART:СКОР,СТОП,ПРОВ \r\n OK \r\n | Запрос / установка скорости UART: Скорость представлена числом бит/сек Стоп бит представлен цифрой: 0 — один, 1 — два Проверка представлена цифрой: 0 — без проверки, 1 — проверка нечётности, 2 — проверка чётности. Пример ответа: +UART:38400,0,0 \r\n OK \r\n Пример установки: AT+UART=38400,0,0 \r\n |
AT+UART=СКОР,СТОП,ПРОВ \r\n | OK \r\n | ||
CMODE | AT+CMODE? \r\n | +CMOD:РЕЖИМ \r\n OK \r\n | Запрос / установка режима подключения: Режим представлен цифрой: 0 — модуль в роли ведущего подключается только к тому Bluetooth устройству, адрес которого указан командой AT+BIND. 1 — модуль в роли ведущего подключается к любому ведомому Bluetooth устройству. 2 — модуль в роли ведомого работает в цикле* Пример ответа: +CMOD:0 \r\n OK \r\n Пример установки: AT+CMOD=1 \r\n |
AT+CMODE=РЕЖИМ \r\n | OK \r\n | ||
BIND | AT+BIND? \r\n | +BIND:АДРЕС \r\n OK \r\n | Запрос / установка фиксированного адреса: Если модуль находится в роли ведущего (ROLE=1) и установлен режим подключения к фиксированному адресу (CMODE=0), то он будет подключаться только к тому Bluetooth устройству, адрес которого указан данной командой. Части адреса вводятся: при установке — через запятую, а при ответе — через двоеточие. Пример ответа: +BIND:1234:56:789ABC \r\n OK \r\n Пример установки: AT+BIND=0,0,0 \r\n |
AT+BIND=АДРЕС \r\n | OK \r\n | ||
POLAR | AT+POLAR? \r\n | +POLAR:ЛОГ,ЛОГ \r\n OK \r\n | Запрос / установка активного логического уровня для включения светодиодов: Полярность представлена цифрой 0 или 1 соответствующей активному логическому уровню. Первый параметр указывает логический уровень для включения светодиода подключённого к выводу PIO8 (отображает режим работы), а второй для светодиода подключённого к выводу PIO9 (отображает статус соединения). Пример ответа: +POLAR:1,1 \r\n OK \r\n Пример установки: AT+POLAR=1,1 \r\n |
AT+POLAR=ЛОГ,ЛОГ \r\n | OK \r\n | ||
PIO | AT+PIO=НОМЕР,УРОВЕНЬ \r\n | OK \r\n | Установка логического уровня PIO: Позволяет установить логический уровень на выводе PIO. Номер вывода представлен числом от 2 до 11, кроме 8 и 9. Уровень представлен цифрой 0 или 1. Пример установки: AT+PIO=11,0 \r\n |
MPIO | AT+MPIO? \r\n | +MPIO:ЧИСЛО \r\n OK \r\n | Запрос / установка логических уровней PIO: Позволяет узнать или установить логические уровни сразу на всех выводах PIO. Уровни представлены шестнадцатиричным числом, каждый бит которого соответствует уровню вывода PIO. Пример ответа: +MPIO:1F0 \r\n OK \r\n Пример установки: AT+MPIO:CFC \r\n |
AT+MPIO=ЧИСЛО \r\n | OK \r\n | ||
IPSCAN | AT+IPSCAN? \r\n | +IPSCAN:А,Б,В,Г \r\n OK \r\n | Запрос / установка параметров IP сканирования: А — интервал сканирования Б — продолжительность сканирования В — интервал страниц Г — количество страниц Пример ответа: +IPSCAN:1024,512,1024,512 \r\n OK \r\n Пример установки: AT+IPSCAN:1024,512,1024,512 \r\n |
AT+IPSCAN=А,Б,В,Г \r\n | OK \r\n | ||
SNIFF | AT+SNIFF? \r\n | +SNIFF:А,Б,В,Г \r\n OK \r\n | Запрос / установка параметров энергосберегающего режима: А — максимальное время Б — минимальное время В — период повторов Г — таймаут Пример ответа: +SNIFF:0,0,0,0 \r\n OK \r\n Пример установки: AT+SNIFF=0,0,0,0 \r\n |
AT+SNIFF=А,Б,В,Г \r\n | OK \r\n | ||
ENSNIFF | AT+ENSNIFF=АДРЕС \r\n | OK \r\n | Переход в энергосберегающий режим: Части адреса вводятся через запятую (NAP,UAP,LAP) Пример команды: AT+ENSNIFF=1234,56,789ABC \r\n |
EXSNIFF | AT+EXSNIFF=АДРЕС \r\n | OK \r\n | Выход из энергосберегающего режима: Части адреса вводятся через запятую (NAP,UAP,LAP) Пример команды: AT+EXSNIFF=1234,56,789ABC \r\n |
SENM | AT+SENM? \r\n | +SENM:СЕКРЕТ,ШИФР \r\n OK \r\n | Запрос / установка параметров безопасности: Режим секретности представлен цифрой: 0 — выключен 1 — незащищённое соединение 2 — защита на сервисном уровне 3 — защита на уровне соединения 4 — неизвестный режим Режим шифрования представлен цифрой: 0 — без шифрования 1 — шифруется только трафик PTP 2 — шифруется весь трафик Пример ответа: +SENM:0,0 \r\n OK \r\n Пример установки: AT+SENM:0,0 \r\n |
AT+SENM=СЕКРЕТ,ШИФР \r\n | OK \r\n | ||
PMSAD | AT+PMSAD=АДРЕС \r\n | OK \r\n | Удаление устройства из списка пар: Удаление Bluetooth устройства из списка приведёт к необходимости заново образовывать пару для подключения к нему. Части адреса удаляемого устройства вводится через запятую (NAP,UAP,LAP) Пример команды: AT+PMSAD=1234,56,789ABC \r\n |
RMAAD | AT+RMAAD \r\n | OK \r\n | Удаление всех устройств из списка пар: Очистка данного списка приведёт к необходимости заново образовывать пары с Bluetooth устройствами для подключения к ним. |
FSAD | AT+FSAD=АДРЕС \r\n | OK \r\n или FAIL \r\n | Поиск устройства в списке пар: Если Bluetooth устройство с указанным адресом имеется в списке, то модуль вернёт OK \r\n иначе FAIL \r\n . Части адреса вводятся через запятую (NAP,UAP,LAP) Пример запроса: AT+FSAD=1234,56,789ABC \r\n |
ADCN | AT+ADCN? \r\n | +ADCN:КОЛИЧЕСТВО \r\n OK \r\n | Запрос количества устройств в списке пар: При образовании пары ведущий-ведомый, данные о паре автоматически попадают в список пар и для последующих подключений (даже после отключения питания) не требуется повторно устанавливать пару. Пример ответа: +ADCN:10 \r\n OK \r\n |
MRAD | AT+MRAD? \r\n | +MRAD:АДРЕС \r\n OK \r\n | Запрос адреса устройства из списка пар: Модуль вернёт адрес Bluetooth устройства из списка пар с которым выполнялось последнее успешное соединение. Части адреса выводятся через двоеточие (NAP:UAP:LAP) Пример ответа: +MRAD:1234:56:789ABC \r\n OK \r\n |
STATE | AT+STATE? \r\n | +STATE:СТАТУС \r\n OK \r\n | Запрос статуса модуля: Модуль вернёт свое текущее состояние в виде строки: INITIALIZED — инициализация READY — готов PAIRABLE — образование пары PAIRED — пара образована INQUIRING — запрос CONNECTING — подключение CONNECTED — подключён DISCONNECTED — отсоединён NUKNOW — неизвестное состояние Пример ответа: +STATE:CONNECTED \r\n OK \r\n |
INIT | AT+INIT \r\n | OK \r\n или FAIL \r\n | Инициализация профиля SPP: Профиль SPP эмулирует последовательный порт. |
INQ | AT+INQ \r\n | +INQ:АДРЕС,ТИП,СИГНАЛ \r\n +INQ:АДРЕС,ТИП,СИГНАЛ \r\n . +INQ:АДРЕС,ТИП,СИГНАЛ \r\n | Поиск (опрос) Bluetooth устройств: Команда доступна модулю в роли ведущего. Модуль ищет Bluetooth устройства в радиусе действия и выводит каждый найденный модуль на новой строке. Режим поиска (опроса) устанавливается командой AT+INQM, код опроса устанавливается командой AT+IAC, тип искомых устройств указывается командой AT+CLASS. Поиск завершается по достижении предельного количества найденных Bluetooth устройств, или по достижении таймаута, или командой AT+INQC. Пример ответа: +INQ:1234:56:789ABС,240404,7FFF |
INQC | AT+INQC \r\n | OK \r\n | Завершить поиск (опрос) Bluetooth устройств: Досрочно завершает поиск Bluetooth устройств инициированный командой AT+INQ |
PAIR | AT+PAIR=АДРЕС,ТАЙМАУТ \r\n | OK \r\n или FAIL \r\n | Создать пару с Bluetooth устройством: Создание пары или сопряжение Bluetooth устройств инициируется ведущим устройством. Таймаут указывается десятичным числом в секундах. Если пара создана, то информация о ней автоматически запишется в список пар, модуль ответит OK \r\n после чего можно подключить Bluetooth устройство командой AT+LINK. Если пара не создана (например не подошёл PIN-код или истек таймаут), то модуль ответит FAIL \r\n . Пример команды: AT+PAIR=1234,56,789ABC,10 \r\n |
LINK | AT+LINK=АДРЕС \r\n | OK \r\n или FAIL \r\n | Подключиться к Bluetooth устройству: После выполнения данной команды можно общаться с подключённым Bluetooth устройством. Команда доступна модулю в роли ведущего. Пример команды: AT+LINK=1234,56,789ABC \r\n |
DISC | AT+DISC \r\n | +DISC:РЕЗУЛЬТАТ \r\n OK \r\n | Отключиться от Bluetooth устройства: Команда указывает модулю отключиться от Bluetooth устройства с которым установлено соединение. После отключения от Bluetooth устройства информация о нём сохраняется в списке пар. Если потребуется вновь подключиться к этому устройству, то создание пары будет необязательно (если Bluetooth устройство намеренно не удалить из списка пар). После выполнения команды модуль ответит результатом её выполнения: SUCCESS — успех LINK_LOSS — соединение потеряно NO_SLC — отсутствует SLC TIMEOUT — истекло время ожидания ERROR — ошибка Пример ответа: +DISC:SUCCESS \r\n OK \r\n |
* Ведомый в цикле — это ведомая роль модуля в которой он отправляет обратно всё что получает от ведущего.
** На некоторые команды модуль реагирует только при нажатой кнопке модуля или наличии высокого уровня на выводе K.
Описание ошибок выдаваемых модулем:
Если отправить команду, которую модуль не знает, не может выполнить, или у команды неправильные аргументы, то модуль вернёт строку «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 (Inquire Access Code) |
D | Слишком длинный общий код доступа IAC (Inquire Access Code) |
E | Недопустимый общий код доступа IAC (Inquire Access Code) |
F | Не указан пароль (или пароль пуст) |
10 | Слишком длинный пароль (более 16 байт) |
11 | Недопустимая роль модуля |
12 | Недопустимая скорость передачи данных |
13 | Недопустимый размер стоп-бита |
14 | Недопустимая настройка бита четности |
15 | Устройство отсутствует в списке пар (списке сопряжённых Bluetooth устройств) |
16 | Профиль последовательного порта (SPP, Serial Port Profile) не инициализирован |
17 | Повторная инициализация профиля SPP (SPP, Serial Port Profile) |
18 | Недопустимый режим опроса Bluetooth устройств |
19 | Слишком большое время опроса |
1A | Не указан адрес Bluetooth устройства |
1B | Недопустимый режим безопасности (секретности) |
1C | Недопустимый режим шифрования |
Примечание:
Если нажать на кнопку или подать высокий уровень на вход K непосредственно в момент включения модуля (подачи питания), то модуль перейдёт в режим AT-команд. В этом режиме модуль не соединится с другими модулями, но у этого режима фиксированная скорость = 38400 бит/сек. Если при настройке, в обычном режиме работы модуля, Вы не смогли определить скорость модуля, то можно войти в данный режим и установить новую скорость. Вновь установленная скорость вступит в силу только в обычном режиме, для этого потребуется перезагрузить модуль не удерживая кнопку и не подавая высокий уровень на вход K в момент включения. Помните, что в обычном режиме, не раньше чем через пол секунды после подачи питания (или перезагрузки) нужно кратковременно нажать на кнопку или подать кратковременный высокий уровень на вход K модуля, иначе он не будет воспринимать AT-команды.
Если Вы хотите иметь возможность «нажимать» на кнопку программно, но у Вашего модуля нет вывода K, воспользуйтесь командой AT+PIO=11,УРОВЕНЬ\r\n , где уровень представляется цифрой 1 или 0 соответствующий устанавливаемому логическому уровню. (AT+PIO=11,0\r\n — кнопка отпущена , AT+PIO=11,1\r\n — кнопка нажата).
У некоторых модулей есть вывод En который управляет питанием и подтянут к Vcc. Если на вывод En подать низкий логический уровень, то отключится питание чипов. Данный вывод можно использовать для программного входа в режим AT-команд. Если сразу после снятия низкого уровня с вывода En подать команду AT+PIO=11,1\r\n это будет эквивалентно включению модуля с нажатой кнопкой.
Создание ведомого ожидающего подключения ведущего:
- AT+DISC \r\n — Разорвать соединение (на случай если модуль соединён).
- AT+ORGL \r\n — Сбросить пользовательские настройки в значения по умолчанию.
- AT+RMAAD \r\n — Очистить список пар (авторизованных устройств) чтоб к модулю не подключился тот кого отсоединили.
- AT+NAME=iArduino \r\n — Установить имя модуля (не более 32 символов).
- AT+PSWD=1234 \r\n — Установить PIN-код для подключения к модулю (не более 16 символов).
- AT+ROLE=0 \r\n — Установить модулю роль ведомого (если она не установилась при сбросе пользовательских настроек).
- AT+RESET \r\n — Перезагрузить модуль.
Не раньше чем через пол секунды после перезагрузки (командой AT+RESET \r\n ) нужно кратковременно нажать на кнопку или подать кратковременный высокий уровень на вход K модуля, иначе он не будет воспринимать новые AT-команды.
Если модуль с ведущей ролью подключается к ведомым модулям по их адресу, а не через их имя, то адрес данного (ведомого) модуля можно узнать выполнив команду AT+ADDR? \r\n .
Создание ведущего с подключением к ведомому:
- AT+DISC \r\n — Разорвать соединение (на случай если модуль соединён).
- AT+ORGL \r\n — Сбросить пользовательские настройки в значения по умолчанию.
- AT+RMAAD \r\n — Очистить список пар (авторизованных устройств) чтоб к модуль не пытался подключился к тому от кого отсоединили.
- AT+BIND=АДРЕС \r\n — Установить фиксированный адрес для подключения (указываем адрес ведомого Bluetooth устройства)
- AT+CMODE=0 \r\n — Указываем модулю подключаться только к фиксированному адресу
- AT+ROLE=1 \r\n — Установить модулю роль ведущего устройства
- AT+PSWD=1234 \r\n — Запомнить PIN-код ведомого Bluetooth устройства
- AT+PAIR=АДРЕС,10 \r\n — Образовать пару с ведомым Bluetooth устройством, указав его адрес и таймаут 10 сек
- AT+RESET \r\n — Перезагрузить модуль.
- AT \r\n — Выполнить команду Тест (для проверки наличия связи с модулем)
- AT+LINC=АДРЕС \r\n — Подключиться к ведомому Bluetooth устройству, указав его адрес
- AT+STATE? \r\n — Получить текущее состояние модуля (на практике эта команда может ускорить процесс подключения)
Не раньше чем через пол секунды после перезагрузки (командой AT+RESET \r\n ) нужно кратковременно нажать на кнопку или подать кратковременный высокий уровень на вход K модуля, иначе он не будет воспринимать новые AT-команды.