Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Управление Blueetooth-модулем HC-05 через AT-команды ====== ===== Описание ===== AT-команды - это набор команд, предусмотренных разработчиком, с помощью которых происходит управление устройством. Общение с модулем через AT-команды является самой простым способом связи и проверки работоспособности устройства. При этом с помощью команд можно выполнять над устройством различные действия, такие как смена имени устройства, установка или смена пароля, возврат к заводским настройкам и прочие. Для того чтобы управлять Bluetooth модулем HC-05 с помощью АТ-команд нам понадобится USB-UART конвертер, например, [[httpss://smartelements.ru/collection/moduli/product/usb-uart-bridge|USB-UART Bridge (CP2102)]]. Далее выполните следующие действия. ===== Шаг 1. Установите на компьютер программу Termite ===== Программа Termite является одной из самых простых программ управления COM-портами с компьютера. Эта программа является открытой и бесплатной. Вы можете скачать её из интернета, либо воспользоваться ссылкой ниже: * [[https://files.smartelements.ru/know_libs/termite_3.4.zip|Программа Termite 3.4]] Распакуйте архив, и запустите установочный файл. Следуйте инструкциям установщика. Программа устанавливается без особенностей. ===== Шаг 2. Подключите модуль к компьютеру ===== Сначала подключите Bluetooth модуль к USB-UART конвертеру, как показано на схеме ниже. {{ :main:comm:uart_hc_05.png |}} Затем USB-UART конвертер подключите к USB входу компьютера. Откройте диспетчер устройств (для Windows 10: Правой кнопкой мыши по значку Windows - Диспетчер устройств): {{:main:comm:device_manager.jpg|}} Посмотрите номер COM-порта, который был присвоен устройству. {{:main:comm:dev_man_com.jpg|}} В нашем случае это порт **COM3**. Запомните его, он нам нужен будет на следующем шаге. ===== Шаг 3. Настройте программу Termite ===== Запустите программу Termite, и в появившемся окне нажмите кнопку Настройки (Settings). Если Вам неудобно работать с программой на английском языке, выберите язык интерфейса в настройках: {{ :main:comm:termite_settings_hc05.jpg?nolink |}} Перезапустите программу и снова войдите в окно настроек. Далее, выберите порт и установите другие настройки: * Порт: установите тот, который был определён у Вас на предыдущем шаге (в нашем случае это СОМ3) * Бит в сек: 9600 * Передаваемый текст: Добавить CR+LF * Установите флаг: Локальное эхо {{ :main:comm:com_settings_hc_05.jpg?nolink |}} <WRAP center round important 80%> Обратите внимание, что в настройках программы мы указали добавлять в конце каждой команды символы окончания строки и возврата каретки (CR+LF или \r\n). Поэтому, если Вы используете другую программу или напрямую общаетесь с модулем, указывайте данные символы в конце каждой команды! Ниже, в примерах, все команды приведены без этих символов! </WRAP> ===== Шаг 4. Ввод команд ===== Ну и теперь можно вводить команды. Все команды вводятся на латинице. Базовая команда для проверки: AT. Устройство должно ответить ОК. Введите в поле ввода команд слово AT (без пробелов и прочих символов) и нажмите кнопку ввода: {{ :main:comm:hc_05_at.jpg?nolink |}} На что модуль Вам должен ответить: ОК {{ :main:comm:hc_05_at_ok.jpg?nolink |}} Вот именно таким образом и происходит общение и управление модулем. ===== Шаг 5. Смена имени ===== Давайте попробуем уточнить у модуля его текущее имя, и сменить его. Для запроса у данного модуля команды вводятся со знаком вопроса. Для установки значения, командам присваиваются значения этих параметров. Например, команда для запроса текущего имени: <file> AT+NAME? </file> В результате модуль вернёт его текущее имя: <file> +NAME:HC-05 OK </file> А команда для установки нового имени должна содержать новое имя сразу после команды: <file> AT+NAME=MyHC-05 </file> На что модуль ответит: <file> OK </file> Если заново проверить имя модуля командой <file> AT+NAME? </file> То модуль уже вернёт новое имя: <file> +NAME:MyHC-05 OK </file> ===== Список AT-команд ===== Все команды условно можно разделить на три вида: * **Команды без параметров** - выполняют определённые действия на модуле * **Команды с параметрами** - выполняют определённые действия на модуле, действия могут быть разными, в зависимости от переданных параметров * **Команды - запросы** - запрашивают у модуля данные ==== A ==== ++++ AT (базовая команда для тестирования модуля) | **Описание:** базовая команда для тестирования модуля **Синтаксис:**AT **Параметры:**нет **Ответ модуля:**ОК ++++ ++++ ADCN (получить количество аутентифицированных устройств в списке сопряжённых) | ==== Запрос ==== **Описание:** получить количество аутентифицированных устройств в списке сопряжённых **Синтаксис:** AT+ADCN? **Параметры:** Нет **Ответ модуля:** +ADCN:<Количество> OK - где: * **Количество** - количество устройств списка **Пример:** <file> AT+ADCN? +ADCN:0 OK </file> ++++ ++++ ADDR (запрос адреса устройства) | **Описание:** запрос адреса устройства **Синтаксис:** AT+ADDR? **Параметры:** нет **Ответ модуля:** +ADDR: <Параметр>, где будет указан адрес устройства **Пример:** Если адрес устройства: 12: 34: 56: ab: cd: ef, то запрос вернёт следующие данные: <file> AT+ADDR? +ADDR:1234:56:abcdef OK </file> ++++ ==== B ==== ++++ BIND (запрос или установка связанного устройства) | ==== Запрос ==== **Описание:** запрос устройства, к которому данный модуль привязан (подключается по умолчанию) **Синтаксис:** AT+BIND? **Параметры:** Нет **Ответ модуля:** + BIND:<Адрес> ОK , где Адрес - это адрес устройства, привязанного к данному модулю. **Пример:** <file> AT+BIND? +BIND:1234:56:abcdef OK </file> ==== Установка ==== **Описание:** установка устройства, к которому данный модуль привязан (подключается по умолчанию) **Синтаксис:** AT+BIND=<Адрес> **Параметры:** Адрес - это адрес устройства, привязываемого к данному модулю. **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+BIND=1234,56,abcdef OK </file> ++++ ==== C ==== ++++ CLASS (запрос или установка типа модуля) | ==== Запрос ==== **Описание:** запрашивает тип модуля. Тип модуля определяет его поведение. Например, модуль может являться Bluetooth - клавиатурой. Тип модуля задаётся 32-битным числом. Подробное описание всех возможных типов устройств, смотрите в даташите. **Синтаксис:** AT+CLASS? **Параметры:** Нет **Ответ модуля:** + CLASS:<Параметр> ОK , где в параметре будет возвращён код типа устройства. **Пример:** <file> AT+CLASS? +CLASS:0 OK </file> ==== Установка ==== **Описание:** устанваливает тип модуля. Тип модуля определяет его поведение. Например, модуль может являться Bluetooth - клавиатурой. **Синтаксис:** AT+CLASS=<Тип> **Параметры:** Тип - новый тип устройства, задаваемый 32-битным числом. Подробное описание всех возможных типов устройств, смотрите в даташите. **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+CLASS=0 OK </file> ++++ ++++ CMODE (запрос или установка режима подключения) | ==== Запрос ==== **Описание:** запрос режима подключения модуля **Синтаксис:** AT+CMODE? **Параметры:** Нет **Ответ модуля:** + CMODE:<Режим> ОK , где **Режим** - это код, означающий: * **0** - модуль (если он ведущий) подключается к определённому устройству (нужное устройство определяется AT-командой AT+BIND) * **1** - модуль (если он ведущий) подключается к любому устройству * **2** - модуль (если он ведомый) работает в цикле (//будет отправлять на ведущего все данные, что от него получил//) **Пример:** <file> AT+CMODE? +CMODE:9600,0,0 OK </file> ==== Установка ==== **Описание:** установка режима подключения модуля **Синтаксис:** AT+CMODE=<Режим> **Параметры:** Режим - это код, означающий: * **0** - модуль (если он ведущий) подключается к определённому устройству (нужное устройство определяется AT-командой AT+BIND) * **1** - модуль (если он ведущий) подключается к любому устройству * **2** - модуль (если он ведомый) работает в цикле (//будет отправлять на ведущего все данные, что от него получил//) **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+CMODE=2 OK </file> ++++ ==== D ==== ++++ DISC (разъединение с указанным устройством) | ==== Действие ==== **Описание:** разъединение с указанным устройством **Синтаксис:** AT+DISC=<Адрес> **Параметры:** * **Адрес** - адрес устройства с которым необходимо разъединиться **Ответ модуля:** +DISC:<Результат> ОК, где Результат: * **SUCCESS** - разъединение успешно * **LINK_LOSS** - соединение потеряно * **NO_SLC** - отсутствует SLC соединение * **TIMEOUT** - истекло время ожидания разъединения * **ERROR** - ошибка разъединения **Пример:** Выполнить разъединение с подключенным Bluetooth-устройством (адрес:12:34:56:ab:cd:ef) <file> AT+DISC=1234,56,abcdef +DISC:SUCCESS OK </file> ++++ ==== E ==== ++++ ENSNIFF (ввести удалённое устройство в энергосберегающий режим) | ==== Действие ==== **Описание:** вводит удалённое устройство в энергосберегающий режим **Синтаксис:** AT+ENSNIFF=<Адрес> **Параметры:** * **Адрес** - адрес устройства, которое необходимо ввести в энергосберегающий режим **Ответ модуля:** ОК **Пример:** <file> AT+ENSNIFF=1234,56,abcdef OK </file> ++++ ++++ EXSNIFF (вывести удалённое устройство из энергосберегающего режима) | ==== Действие ==== **Описание:** выводит удалённое устройство из энергосберегающего режима **Синтаксис:** AT+EXSNIFF=<Адрес> **Параметры:** * **Адрес** - адрес устройства, которое необходимо вывести из энергосберегающего режима **Ответ модуля:** ОК **Пример:** <file> AT+EXSNIFF=1234,56,abcdef OK </file> ++++ ==== F ==== ++++ FSAD (поиск аутентифицированного устройства в списке сопряжённых устройств) | ==== Запрос ==== **Описание:** поиск аутентифицированного устройства в списке сопряжённых устройств **Синтаксис:** AT+FSAD=<Адрес> **Параметры:** Адрес - адрес искомого устройства **Ответ модуля:** * **ОК** - в случае, если устройство найдено * **FAIL** - устройство не найдено **Пример: Поиск устройства с адресом 12:34:56:ab:cd:ef, ответ - устройство найдено** <file> AT+FSAD=12:34:56:ab:cd:ef OK </file> **Пример: Поиск устройства с адресом 12:34:56:ab:cd:ef, ответ - устройство отсутствует в списке** <file> AT+FSAD=12:34:56:ab:cd:ef FAIL </file> ++++ ==== I ==== ++++ IAC (запрос или установка IAC - кода) | ==== Запрос ==== **Описание:** запрашивает IAC-код модуля. Если модуль ведущий, то по данному коду к модулю можно получить доступ ведомым модулям и наоборот. **Синтаксис:** AT+IAC? **Параметры:** Нет **Ответ модуля:** + IAC:<Параметр> ОK , где в параметре будет возвращён IAC-код устройства. **Пример:** <file> AT+IAC? +IAC:9e8b33 OK </file> ==== Установка ==== **Описание:** устанваливает IAC-код модуля. Если модуль ведущий, то по данному коду к модулю можно получить доступ ведомым модулям и наоборот. **Синтаксис:** AT+IAC=<Код> **Параметры:** Код - новый IAC-код устройства, задаваемый 32-битным числом. **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+IAC=9e8b33 OK </file> ++++ ++++ INIT (инициализация эмуляции Serial-порта) | ==== Действие ==== **Описание:** инициализация эмуляции Serial-порта **Синтаксис:** AT+INIT **Параметры:** Нет **Ответ модуля:** +INIT: OK или FAIL: * **OK** - инициализация успешна * **FAIL** - инициализация не выполнена **Пример:** <file> AT+INIT? OK </file> ++++ ++++ INQ (опрос Bluetooth - устройств (поиск)) | ==== Действие ==== **Описание:** опрос Bluetooth - устройств (поиск) - для ведущего модуля. Осуществляет поиск устройств в радиусе действия модуля. Режим поиска регулируется АТ-командой INQM, искомый код доступа - командой IAC, искомый тип устройств - командой CLASS. **Синтаксис:** AT+INQ **Параметры:** Нет **Ответ модуля:** +INQ:<Адрес>,<Тип>,<Интенсивность> OK: * **Адрес** - адрес найденного Bluetooth устройства * **Тип** - тип найденного устройства * **Интенсивность** - интенсивность сигнала найденного устройства **Пример 1:** Сначала инициализируется эмуляция Serial-порта <file> AT+INIT OK </file> Затем устанавливается код доступа искомых устройств (например 9e8b33) <file> AT+IAC=9e8b33 OK </file> Затем устанавливается класс запрашиваемых устройств (подробное описание всех возможных типов смотрите в даташите) <file> AT+CLASS=0 OK </file> И установка запрашиваемого режима, например: * устройства, имеющие индикацию сигнала * остановить поиск, если найдено 9 устройств * ограничение времени поиска 48 ед. (1 ед. = 1.28 сек, соответственно 48 * 1.28 = 61.44 сек) <file> AT+INQM=1,9,48 ОК </file> И, непосредственно, команда самого поиска: <file> AT+INQ +INQ:2:72:D2224,3E0104,FFBC +INQ:1234:56:0,1F1F,FFC1 +INQ:1234:56:0,1F1F,FFC0 +INQ:1234:56:0,1F1F,FFC1 +INQ:2:72:D2224,3F0104,FFAD +INQ:1234:56:0,1F1F,FFBE +INQ:1234:56:0,1F1F,FFC2 +INQ:1234:56:0,1F1F,FFBE +INQ:2:72:D2224,3F0104,FFBC OK </file> **Пример 2:** Установить код доступа искомых устройств <file> AT+IAC=9e8b33 OK </file> Установить класс запрашиваемых устройств - например 0x1f1f (подробное описание всех возможных типов смотрите в даташите) <file> AT+CLASS=1f1f OK </file> Установка запрашиваемого режима, например: * устройства, имеющие индикацию сигнала * остановить поиск, если найдено 9 устройств * ограничение времени поиска 48 ед. (1 ед. = 1.28 сек, соответственно 48 * 1.28 = 61.44 сек) <file> AT+INQM=1,9,48 ОК </file> И, непосредственно, команда самого поиска: <file> AT+INQ +INQ:1234:56:0,1F1F,FFC2 +INQ:1234:56:0,1F1F,FFC1 +INQ:1234:56:0,1F1F,FFC1 +INQ:1234:56:0,1F1F,FFC1 +INQ:1234:56:0,1F1F,FFC2 +INQ:1234:56:0,1F1F,FFC1 +INQ:1234:56:0,1F1F,FFC1 +INQ:1234:56:0,1F1F,FFC0 +INQ:1234:56:0,1F1F,FFC2 OK </file> **Пример 3:** Установить код доступа искомых устройств <file> AT+IAC=9e8b33 OK </file> Установить класс запрашиваемых устройств - например 0x1f1f (подробное описание всех возможных типов смотрите в даташите) <file> AT+CLASS=1f1f OK </file> Установка запрашиваемого режима, например: * устройства, имеющие индикацию сигнала * остановить поиск, если найдено больше 1 устройства * ограничение времени поиска 20 ед. (1 ед. = 1.28 сек, соответственно 20 * 1.28 = 25.6 сек) <file> AT+INQM=1,1,20 ОК </file> И, непосредственно, команда самого поиска: <file> AT+INQ +INQ:1234:56:ABCDEF,1F1F,FFC2 OK </file> ++++ ++++ INQC (отмена поиска Bluetooth - устройств) | ==== Действие ==== **Описание:** отмена поиска Bluetooth - устройств, вызванного АТ-командой INQ **Синтаксис:** AT+INQC **Параметры:** Нет **Ответ модуля:** OK **Пример:** <file> AT+INQC OK </file> ++++ ++++ INQM (запрос или установка режима опроса модулей) | ==== Запрос ==== **Описание:** запрос текущего режима опроса модулей **Синтаксис:** AT+INQM? **Параметры:** Нет **Ответ модуля:** + INQM:<Режим>,<Количество>,<Время> ОK , где: * **Режим** - текущий режим опроса: **0** - базовый режим; **1** - режим опроса по уровню интенсивности сигнала * **Количество** - количество найденных устройств, после которого будет прерван опрос (поиск) * **Время** - число, от 1 до 48, означающее время после которого опрос (поиск) будет прерван. Время в секундах равно число умноженное на 1.28 **Пример:** <file> AT+INQM? +INQM:1, 9, 48 OK </file> ==== Установка ==== **Синтаксис:** AT+INQM=<Режим>,<Количество>,<Время> **Параметры:** * **Режим** - текущий режим опроса: **0** - базовый режим; **1** - режим опроса по уровню интенсивности сигнала * **Количество** - количество найденных устройств, после которого будет прерван опрос (поиск) * **Время** - число, от 1 до 48, означающее время после которого опрос (поиск) будет прерван. Время в секундах равно число умноженное на 1.28 **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+INQM=1,9,48 OK </file> ++++ ++++ IPSCAN (запрос или установка параметров сканирования страниц и запросов) | ==== Запрос ==== **Описание:** запрос параметров сканирования страниц и запросов **Синтаксис:** AT+IPSCAN? **Параметры:** Нет **Ответ модуля:** +IPSCAN: <ИнтервалЗапросов>,<ДлительностьЗапросов>,<ИнтервалПерелистывания>,<ДлительностьПерелистывания> ОK , где: * **ИнтервалЗапросов** - временной интервал между запросами * **ДлительностьЗапросов** - длительность запросов * **ИнтервалПерелистывания** - временной интервал при перелистывании страниц * **ДлительностьПерелистывания** - длительность при перелистывании страниц **Пример:** <file> AT+IPSCAN? +IPSCAN:1234,500,1200,250 OK </file> ==== Установка ==== **Описание:** установка параметров сканирования страниц и запросов **Синтаксис:** AT+IPSCAN=<ИнтервалЗапросов>,<ДлительностьЗапросов>,<ИнтервалПерелистывания>,<ДлительностьПерелистывания> **Параметры:** * **ИнтервалЗапросов** - временной интервал между запросами * **ДлительностьЗапросов** - длительность запросов * **ИнтервалПерелистывания** - временной интервал при перелистывании страниц * **ДлительностьПерелистывания** - длительность при перелистывании страниц Где все параметры - целочисленные значения. **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+IPSCAN=1234,500,1200,250 OK </file> ++++ ==== L ==== ++++ LINK (соединение с указанным устройством) | ==== Действие ==== **Описание:** соединение с указанным устройством **Синтаксис:** AT+LINK=<Адрес> **Параметры:** * **Адрес** - адрес устройства с которым необходимо соединение **Ответ модуля:** * **OK** - соединение успешно * **FAIL** - соединение неудачно **Пример:** Выполнить соединение с удалённым Bluetooth-устройством (адрес:12:34:56:ab:cd:ef) (с проверкой, находится ли устройство в списке сопряжённых). <file> AT+FSAD=1234,56,abcdef OK </file> Теперь мы знаем, что Bluetooth-устройство (адрес:12:34:56:ab:cd:ef) находится в списке сопряжённых, значит к нему можно подключиться напрямую, без запросов. <file> AT+LINK=1234,56,abcdef OK </file> ++++ ==== M ==== ++++ MPIO (запрос или установка уровня индикации светодиодом состояния подключения нескольких контактов (пинов)) | ==== Запрос ==== **Описание:** запрос уровня индикации светодиодом состояния подключения нескольких контактов **Синтаксис:** AT+MPIO? **Параметры:** Нет **Ответ модуля:** +MPIO: <Параметр> ОK , где Параметр - это шестнадцатиричное число, каждый бит которого соответсвует уровню соответсвующего PIO * **0** - светодиод на выводе включается при логическом нуле * **1** - светодиод на выводе включается при логической единице **Пример:** <file> AT+MPIO? +MPIO:808 OK </file> Где **808** в двоичном представлении: **1100101000** - это соответсвенно состояния PIO0, PIO1, PIO2, PIO3, PIO4, PIO5, PIO6, PIO7, PIO10, PIO11 ==== Установка ==== **Описание:** запрос уровня индикации светодиодом состояния подключения определённого контакта **Синтаксис:** AT+MPIO=<Параметр> **Параметры:** * **<Параметр>** - это шестнадцатиричное число, каждый бит которого соответсвует уровню соответсвующего PIO (//напрмиер **808** в двоичном представлении: **1100101000** - это соответсвенно состояния PIO0, PIO1, PIO2, PIO3, PIO4, PIO5, PIO6, PIO7, PIO10, PIO11//) * Уровень сигнала, принимает значения: * **0** - светодиод на выводе включается при логическом нуле * **1** - светодиод на выводе включается при логической единице **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> +MPIO:808 OK </file> ++++ ++++ MRAD (получить адрес последнего подключенного устройства) | ==== Запрос ==== **Описание:** получить адрес последнего подключенного устройства **Синтаксис:** AT+MRAD? **Параметры:** Нет **Ответ модуля:** +MRAD:<Адрес> OK - где: * **Адрес** - адрес последнего подключенного устройства **Пример: (ответ - нет последнего подключенного устройства)** <file> AT+MRAD? +MRAD:0:0:0 OK </file> ++++ ++++ RESET (перезагрузка модуля) | **Описание:** перезагрузка модуля **Синтаксис:**AT+RESET **Параметры:**нет **Ответ модуля:**ОК ++++ ++++ VERSION (запрос версии прошивки модуля) | **Описание:** запрос версии прошивки модуля **Синтаксис:** AT+VERSION? **Параметры:** нет **Ответ модуля:** +VERSION: <Параметр>, где будет указана версия прошивки **Пример:** <file> AT+VERSION? +VERSION:hc01.comV2.1 OK </file> ++++ ++++ ORGL (восстановить настройки по умолчанию) | **Описание:** Восстановление настроек по умолчанию **Синтаксис:** AT+ORGL **Параметры:** нет **Ответ модуля:** ОК Настройки по умолчанию для модуля: - Тип устройства: 0 - Код запроса: 0x009e8b33 - Режим работы: ведомое устройство - Режим подключения: Подключение к указанному Bluetooth-устройству - Настройки сериал-подключения: Скорость: 38400 бод; Стоп-бит: 1; Чётность: нет. - Пароль: “1234” - Имя устройства: “HC-05” ++++ ==== N ==== ++++ NAME (запрос или установка имени) | ==== Запрос ==== **Описание:** запрос имени модуля **Синтаксис:** AT+NAME? **Параметры:** Нет **Пример:** <file> AT+NAME? +NAME: HC-05_SE OK </file> ==== Установка ==== **Синтаксис:** AT+NAME=<Имя> **Параметры:** Имя - новое имя модуля (может указываться в кавычках либо без них) **Ответ модуля:** * **ОК** - в случае успешного выполнения команды * **FAIL** - в случае ошибки выполнения команды **Пример:** <file> AT+NAME=MyHC-05 OK AT+NAME= “SmartElements_HC-05” OK </file> ++++ ==== P ==== ++++ PAIR (сопряжение ведомого устройства) | ==== Действие ==== **Описание:** сопряжение ведомого устройства (для ведущего модуля). В дальнейшем возможно соединение с сопряжённым устройством командой LINK. **Синтаксис:** AT+PAIR=<Адрес>,<Таймаут> **Параметры:** * **Адрес** - адрес устройства с которым необходимо сопряжение * **Таймаут** - время в секундах, данное на попытку сопряжения **Ответ модуля:** * **OK** - сопряжение успешно * **FAIL** - сопряжение неудачно **Пример:** Выполнить сопряжение с удалённым Bluetooth-устройством (адрес:12:34:56:ab:cd:ef), таймаут 20 сек. <file> AT+PAI=1234,56,abcdef,20 OK </file> ++++ ++++ PIO (запрос или установка уровня индикации светодиодом состояния подключения определённого контакта (пина)) | ==== Запрос ==== **Описание:** запрос уровня индикации светодиодом состояния подключения определённого контакта **Синтаксис:** AT+PIO? **Параметры:** Нет **Ответ модуля:** + PIO:<PIO>, <УровеньPI0> ОK , где PIO - номер пина (вывода) (//PI0 - выводные контакты (пины), с подключенными к ним светодиодами//), УровеньPI0 принимает значения: * **0** - светодиод на выводе включается при логическом нуле * **1** - светодиод на выводе включается при логической единице **Пример:** <file> AT+PIO? +PIO=10,1 OK </file> ==== Установка ==== **Описание:** запрос уровня индикации светодиодом состояния подключения определённого контакта **Синтаксис:** AT+PIO=<PIO>,<УровеньPI0> **Параметры:** * **<PIO>** - номер пина (вывода) (//PI0 - выводные контакты (пины), с подключенными к ним светодиодами//), может иметь значения от 0 до 7 или 10 * **<УровеньPI0>** - уровень сигнала, принимает значения: * **0** - светодиод на выводе включается при логическом нуле * **1** - светодиод на выводе включается при логической единице **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+PIO=10,0 OK </file> ++++ ++++ PMSAD (удаление сопряжённого устройства из списка) | ==== Действие ==== **Описание:** удаление сопряжённого устройства из списка **Синтаксис:** AT+PMSAD=<Адрес> **Параметры:** * **Адрес** - адрес удаляемого устройства **Ответ модуля:** * **ОК** - в случае успешного выполнения команды * **FAIL** - в случае если адрес устройства в списке сопряжённых не найден **Пример:** <file> AT+PMSAD=1234,56,abcdef OK </file> ++++ ++++ POLAR (запрос или установка уровня индикации светодиодом состояния подключения) | ==== Запрос ==== **Описание:** запрос уровня индикации светодиодом состояния подключения **Синтаксис:** AT+POLAR? **Параметры:** Нет **Ответ модуля:** + POLAR:<УровеньPI08>, <УровеньPI09> ОK , где оба параметра (//PI0 - выводные контакты (пины), с подключенными к ним светодиодами//) принимают значения: * **0** - светодиод на выводе включается при логическом нуле * **1** - светодиод на выводе включается при логической единице **Пример:** <file> AT+POLAR? +POLAR=0,1 OK </file> ==== Установка ==== **Описание:** установка уровня индикации светодиодом состояния подключения **Синтаксис:** AT+POLAR=<УровеньPI08>,<УровеньPI09> **Параметры:** <УровеньPI08>,<УровеньPI09> - (//PI0 - выводные контакты (пины), с подключенными к ним светодиодами//) значения 0 или 1, означающие: * **0** - светодиод на выводе включается при логическом нуле * **1** - светодиод на выводе включается при логической единице **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+POLAR=0,1 OK </file> ++++ ++++ PSWD (запрос или установка пароля доступа к модулю) | ==== Запрос ==== **Описание:** запрос пароля доступа к модулю **Синтаксис:** AT+PSWD? **Параметры:** Нет **Ответ модуля:** + PSWD:<Параметр> ОK , где в параметре будет возвращён текущий установленный пароль. **Пример:** <file> AT+PSWD? +PSWD:1234 OK </file> ==== Установка ==== **Описание:** установка пароля доступа к модулю **Синтаксис:** AT+PSWD=<Пароль> **Параметры:** Пароль - новый пароль доступа к устройству **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+PSWD=0000 OK </file> ++++ ==== R ==== ++++ RMAAD (удаление всех сопряжённых устройств из списка) | ==== Действие ==== **Описание:** удаление всех сопряжённых устройств из списка **Синтаксис:** AT+RMAAD **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+RMAAD OK </file> ++++ ++++ RNAME (запрос имени удалённого устройства) | **Описание:** запрос имени удалённого устройства **Синтаксис:** AT+RNAME?<Параметр1> **Параметры:** Параметр1 - Адрес удалённого устройства **Ответ модуля:** * **+NAME:<Параметр2> OK** - в случае успешного выполнения * **FAIL** - в случае ошибки **Пример:** Адрес удалённого устройства: 00:02:72: od: 22 : 24; Имя удалённого устройства: Bluetooth <file> AT+RNAME? 0002,72,od2224 +RNAME:Bluetooth OK </file> ++++ ++++ ROLE (запрос или установка роли модуля) | ==== Запрос ==== **Описание:** запрос роли модуля **Синтаксис:** AT+ROLE? **Параметры:** Нет **Ответ модуля:** + ROLE:<Параметр> ОK , где в параметре будет возвращён код ответа: * **0** - модуль работает в режиме ведомого * **1** - модуль работает в режиме ведущего (//Запрос ближайшего ведомого устройства, построение успешного соединения с ним, и создание прозрачной передачи данных между ведущим и ведомым устройствами//) * **2** - модуль работает в режиме ведомого в цикле (//будет отправлять на ведущего все данные, что от него получил//) **Пример:** <file> AT+ROLE? +ROLE:0 OK </file> ==== Установка ==== **Синтаксис:** AT+ROLE=<Роль> **Параметры:** Роль - новая роль устройства, выраженная одним из кодов: 0, 1, 2, где: * **0** - модуль работает в режиме ведомого * **1** - модуль работает в режиме ведущего (//Запрос ближайшего ведомого устройства, построение успешного соединения с ним, и создание прозрачной передачи данных между ведущим и ведомым устройствами//) * **2** - модуль работает в режиме ведомого в цикле (//будет отправлять на ведущего все данные, что от него получил//) **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+ROLE=0 OK </file> ++++ ==== S ==== ++++ SENM (запрос или установка параметров безопасности и шифрования) | ==== Запрос ==== **Описание:** запрос параметров безопасности и шифрования **Синтаксис:** AT+SENM? **Параметры:** Нет **Ответ модуля:** +SENM: <Безопасность>,<Шифрование> ОK , где: * **Безопасность** - код значения режима безопасности: * **0** - режим выключен * **1** - разрешены незащищённые соединения * **2** - безопасность на сервисном уровне * **3** - безопасность на уровне соединения * **4** - неизвестный режим * **Шифрование** - код значения режима шифрования * **0** - режим выключен * **1** - режим шифрования PT to PT * **2** - полное шифрование **Пример:** <file> AT+SENM? +SENM:0,0 OK </file> ==== Установка ==== **Описание:** установка параметров безопасности и шифрования **Синтаксис:** AT+SENM=<Безопасность>,<Шифрование> **Параметры:** * **Безопасность** - код значения режима безопасности: * **0** - режим выключен * **1** - разрешены незащищённые соединения * **2** - безопасность на сервисном уровне * **3** - безопасность на уровне соединения * **4** - неизвестный режим * **Шифрование** - код значения режима шифрования * **0** - режим выключен * **1** - режим шифрования PT to PT * **2** - полное шифрование **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+SENM=0,0 OK </file> ++++ ++++ SNIFF (запрос или установка параметров энергосбережения в режиме прослушивания) | ==== Запрос ==== **Описание:** запрос параметров энергосбережения в режиме прослушивания (SNIFF) **Синтаксис:** AT+SNIFF? **Параметры:** Нет **Ответ модуля:** +SNIFF: <МаксимальноеВремя>,<МинимальноеВремя>,<Период>,<Таймаут> ОK , где: * **МаксимальноеВремя** - максимальное время прослушивания * **МинимальноеВремя** - минимальное время прослушивания * **Период** - период прослушивания * **Таймаут** - время для отключения прослушивания **Пример:** <file> AT+SNIFF? +SNIFF:0,0,0,0 OK </file> ==== Установка ==== **Описание:** установка параметров энергосбережения в режиме прослушивания (SNIFF) **Синтаксис:** AT+SNIFF=<МаксимальноеВремя>,<МинимальноеВремя>,<Период>,<Таймаут> **Параметры:** * **МаксимальноеВремя** - максимальное время прослушивания * **МинимальноеВремя** - минимальное время прослушивания * **Период** - период прослушивания * **Таймаут** - время для отключения прослушивания Где все параметры - целочисленные значения. **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+SNIFF=0,0,0,0 OK </file> ++++ ++++ STATE (получить последний статус Bluetooth-модуля) | ==== Запрос ==== **Описание:** получить последний статус Bluetooth-модуля **Синтаксис:** AT+STATE? **Параметры:** Нет **Ответ модуля:** +STATE:<Статус> OK - где Статус может быть: * **INITIALIZED** - инициализирован * **READY** - готов * **PAIRABLE** - сопрягается * **PAIRED** - сопряжён * **INQUIRING** - запрос * **CONNECTING** - подключение * **CONNECTED** - подключен * **DISCONNECTED** - отключен * **NUKNOW** - неизвестно **Пример:** <file> AT+STATE? +STATE:INITIALIZED OK </file> ++++ ==== U ==== ++++ UART (запрос или установка параметров соединения по сериал-порту) | ==== Запрос ==== **Описание:** запрос параметров UART модуля **Синтаксис:** AT+UART? **Параметры:** Нет **Ответ модуля:** + UART:<Скорость>,<Стопбит>,<Контроль>, ОK , где: * **Скорость** - скорость соединения в бодах: 4800, 9600, 19200, 38400, 57600, 115200, 23400, 460800, 921600, 1382400 * **Стопбит** - один из вариантов: **0** - один бит, **1** - два бита * **Контроль** - вариант контроля целостности данных: **0** - нет контроля, **1** - контроль нечётности, **2** - контроль чётности **Пример:** <file> AT+UART? +UART:9600,0,0 OK </file> ==== Установка ==== **Описание:** установка параметров UART модуля **Синтаксис:** AT+UART=<Скорость>,<Стопбит>,<Контроль> **Параметры:** * **Скорость** - скорость соединения в бодах: 4800, 9600, 19200, 38400, 57600, 115200, 23400, 460800, 921600, 1382400 * **Стопбит** - один из вариантов: **0** - один бит, **1** - два бита * **Контроль** - вариант контроля целостности данных: **0** - нет контроля, **1** - контроль нечётности, **2** - контроль чётности **Ответ модуля:** **ОК** - в случае успешного выполнения команды **Пример:** <file> AT+UART=115200,1,2 OK </file> ++++