Hc 06 модуль bluetooth для беспроводного управления устройствами ларт
Bluetooth — один из самых распространённых протоколов беспроводной связи на малом расстоянии для персональных электронных устройств. С его помощью работают различные устройства ввода и управления, аудиоустройства.
На фоне остальных протоколов Bluetooth выделяется прежде всего помехоустойчивостью и простотой. От не менее распространённого Wi-Fi Bluetooth отличается в первую очередь низким энергопотреблением, что делает его доступным для автономных устройств. Благодаря этому BT получил повсеместное распространение.
Оба модуля основаны на одинаковом чипе и поддерживают BT версии 2.0. Их максимальная скорость работы – 3 Мегабита в секунду.
Небольшой обзор модулей HC-05 и HC-06
Чаще всего HC-05 и HC-06 представляют собой две спаянные платы. Верхняя – заводская плата с микросхемой BC417. Нижняя – специальная плата для самодельных устройств, содержащая самые нужные ножки GPIO с шагом 2.54 мм, стабилизатор напряжения и кнопку сброса. На фотографии ниже плата с BC417:
А это — модули HC-05 и HC-06 вместе с подложкой:
Также встречаются немного другие версии модулей. Вместо вывода EN на них выведен KEY.
Распиновка модулей
- EN — управление питанием;
- VCC — питание от 3,6 до 6 В;
- GND — земля;
- RX, TX — интерфейс UART;
- STATE — индикация работы;
- KEY — активация режима управления с помощью AT-команд.
Настройка модулей производится при помощи AT-команд. Но пин KEY есть не на всех модулях. И что с этим делать?
Пин KEY конечно же присутствует на малой плате с большим числом контактов, но не разведён на большой. Причины такого странного решения китайцев неизвестны.
Этот контакт находится здесь:
Подключение HC-05 и HC-06 к Arduino
Подключение к Arduino выполняется следующими контактами:
- GND – GND;
- VCC – +5V;
- TXD – 10;
- RXD – 11;
- KEY при обычной работе модуля не используется. Для перехода в режим AT-команд его надо соединить с +3.3V.
TXD и RXD соединены с пинами 10 и 11, потому, что аппаратный UART будет использоваться для связи с компьютером.
Согласование логических уровней
Bluetooth-модули работают с логическими уровнями 3.3 В, и использование пятивольтовой логики может вывести их из строя. Но чаще всего на плате имеется всё необходимое для согласования уровней.
Бывают ситуации, в которых между Arduino TXD — Bluetooth RXD необходимо согласование напряжения. Использование делителя – гарантия надёжной работы.
Справа приведена схема простейшего делителя:
Скетч для подключения к Arduino
Для настройки модулей можно использовать USB-UART конвертер, если вы воспользуетесь им – следующий пункт можно пропустить. Для начала нам потребуется прошить Arduino.
Скетч просто отправляет данные, полученные с компьютера, на настраиваемый модуль.
Bluetooth в Arduino проектах
Нередко в проектах возникает необходимость дистанционного управления или передачи данных с телефона или другого устройства. Одним из самых популярных и удобных способов является обмен данных через Bluetooth. Для связи платы Ардуино и компьютера используется интерфейс UART (Serial). Так как любая плата Ардуино имеет хотя бы 1 последовательный порт UART, для подключения Bluetooth модуля не требуются специализированные библиотеки и схемы.
Самыми популярными модулями являются устройства на основе чипа BC417. Эта серия называется HC. Модули HC-03 и HC-05 могут быть и сервером соединения, и клиентом, они обладают широким набором АТ команд.
Для подключения к ПК потребуются модуль Bluetooth, плата Ардуино, соединительные провода и компьютер. Скетч для управления платой Ардуино через смартфон и компьютер будет одинаковым, так как в обоих случаях данные в микроконтроллер буду поступать по протоколу UART. Схема подключения Bluetooth-модуля к плате представлена на рисунке. Пин RX на ардуино подключается к TDX, TX – к RDX, GND – к GND, 5V – к VCC.
При загрузке скетча нужно отключить Bluetooth-модуль, иначе будет появляться ошибка доступа к Ардуино. Также нужно установить на смартфон или планшет, поддерживающий ОС Android, приложение для отправки данных на модуль. После установки приложения нужно загрузить скетч и подключить модуль к плате Ардуино. Пример кода мигания светодиода:
Теперь нужно настроить соединение телефона и модуля. Для установки соединения нужно зайти в настройки телефона и включить Bluetooth. Как только устройство будет найдено, нужно ввести пароль – обычно это «1234» или «0000». После этого нужно зайти в приложение, нажать на кнопку «подключить Bluetooth» и выбрать нужное устройство. При успешном сопряжении на модуле светодиод начнет мигать медленнее, примерно 1 раз в 2 секунды.
В скетче светодиод включается и выключается при получении цифр «1» и «0». Кроме цифр также можно использовать буквы латинского алфавита с учетом регистра.
Аналогичным образом можно подключаться к модулю при помощи компьютера. Для этого существуют различные программы, которые подключатся к COM-порту. При запуске программы запрашивают номер порта, скорость и тип подключения. При успешном подключении на экране появится поле терминала, в которое нужно ввести с клавиатуры цифры/буквы, включающие светодиод.
Описание модуля Bluetooth HC 06
Все существующие типы модулей Bluetooth имеют свои особенности, но по функциям и действию они похожи. Одним из видов модулей является Bluetooth HC 06. Со стороны Ардуино модуль выглядит как обычный последовательный интерфейс, поэтому можно сразу наладить взаимодействие с устройством на компьютере.
Основные характеристики модуля:
- Питание 3,3В – 6 В;
- Максимальное входное напряжение 5 В;
- Максимальный ток 45 мА;
- Скорость передачи данных 1200–1382400 бод;
- Рабочие частоты 2,40 ГГц – 2,48ГГц;
- Поддержка спецификации bluetooth версии 2.1;
- Малое потребление энергии;
- Высокий уровень защиты данных;
- Дальность связи 30 м;
- Для подключения к смартфону используются следующие данные – пароль «1234», скорость передачи данных 9600, имя модуля HС-06.
Модуль имеет следующие контакты:
Модуль HC-06 используется только в режиме slave, то есть он не может самостоятельно подключаться к другим устройствам Bluetooth. Все настройки для подключения «пароль, скорость передачи данных» можно изменить при помощи АТ-команд.
В комплектацию модуля не входят соединительные провода.
Сравнение модулей Bluetooth HC 05 и HC 06
Модули HC 05 и HC 06 являются наиболее используемыми, их чаще остальных можно найти в продаже. Принцип действия этих модулей схож, оба модуля основаны на одинаковом чипе, но есть и важные отличия. В первую очередь, модуль HC 05 может работать в двух режимах работы – и в качестве ведущего (master), и в качестве ведомого (slave).
Оба модуля представляют собой две спаянные платы. Одна из них – заводская с микросхемой, другая нужна для самодельных устройств, она оснащена ножками GPIO со стандартным шагом 2,54 мм и стабилизатором напряжения.
Модуль HC-05 стоит несколько дороже, но он имеет большее количество полезных рабочих функций.
Распиновка модуля HC-05:
- EN – управление питанием;
- Питание VCC;
- GND;
- RX, TX;
- STATE – индикация;
- KEY – активирует режим управления при помощи АТ-команд. При KEY=0 – передача данных, при KEY=1 – АТ-команды.
Скорость передачи АТ команд по умолчанию для HC-05 равна 38400, для HC-06 – 9600. Важным моментом является то, что в конце АТ команд для HC-05 должны быть символы CRLF.
Основные характеристики HC-05:
- Рабочие частоты 2,4 – 2,48 ГГц;
- Мощность передачи 0,25 – 2,5мВт;
- Дальность 10 м;
- Максимальная скорость обмена данными 115200 бод;
- Питание 3,3В;
- Ток 30-40 мА;
- Рабочие температуры от -25С до 75С.
Подключение обоих модулей к плате Ардуино одинаково.
Вариант подключение модуля с использованием делителя.Представлен вариант для Arduino Nano, но он подойдет и к плате Uno.
Заключение
Подключение Bluetooth к вашему Arduino-проекту может существенно увеличить ваши возможности по взаимодействию с другими устройствами. Вы сможете контролировать состояния датчиков и изменять параметры системы без перезагрузки контроллера. И. конечно же, вы сможете без проблем создать роботы и машинки на ардуино, управляемые через bluetooth со смартфона. Будем надеяться, что вы сможете сделать свой первый проект после прочтения этой статьи.
Модуль HC-06 (и старшая модель HC-05) представляет собой плату с Bluetooth-модемом с дополнительной обвязкой: стабилизатор с 5 на 3.3 вольта, светодиод, и конденсаторы на линиях питания. Также на плате установлен mosfet-транзистор (Q1), который при надобности может разрывать цепь питания блютуза, тем самым отключая его.
Модуль HC-06 используется только в режиме slave, то есть он не может самостоятельно подключаться к другим устройствам Bluetooth.
На HC-06 шесть подписанных контактов: EN, VCC, GND, TXD, RXD и State (некоторые обозначения могут иметь другие названия). Но ножками как правило оборудованы только четыре из них: VCC, GND, TXD и RXD.
Технические характеристики
- Питание: 3,3В–6В
- Максимальное входное напряжение: 5В
- Максимальный ток: 45 мА
- Скорость передачи данных: 1200–1382400 бод
- Рабочие частоты: 2,40 ГГц – 2,48ГГц
- Поддержка спецификации bluetooth версии 2.1
- Дальность связи: 30 м
- Пароль «1234», скорость передачи данных 9600, имя модуля HС-06 (все настройки можно изменить AT-командой)
Для подключения к Arduino Uno используется следующая схема.
Модуль HC-06 выступает в роли последовательного порта, через который можно передавать и принимать данные. Вы можете для этой цели использовать компьютер или смартфон.
Важное замечание: при заливке скетча убирайте провода с контактов 0 и 1 на плате Arduino, так как они используются для передачи данных вашего скетча. Когда скетч установите, можете вернуть провода на место.
Подключение к компьютеру
Рассмотрим пример подключения и обмена информацией с компьютером. Если у компьютера нет встроенного Bluetooth, то можно купить отдельный модуль, подключаемый через USB.
Сначала необходимо сделать несколько предварительных действий. Когда вы подключите HC-06 к плате, он будет готов к работе, постоянно мигая своим светодиодом. Нужно установить соединение с компьютером. Далее объяснения идут для Windows 10. В нижнем правом углу находим значок Bluetooth и выбираем пункт Show Bluetooth Devices. В открывшемся окне выбираем пункт Add a device. В успешном случае будет обнаружено новое устройство с именем HC-06. Для спаривания с ним введите пароль по умолчанию 1234.
После успешного соединения нужно снова открыть окно Show Bluetooth Devices и выбрать пункт More Bluetooth options. В диалоговом окне переключитесь на вкладку COM Ports и запомните номер порта для Outgoing - в моём примере это был порт COM7.
Далее следует установить программу-терминал для общения с модулем. Самой простой и популярной является Termite. Я выбрал вариант "Program only" (вторая в списке) размером всего 76 кб. Программа не требует инсталляции и не пишет ничего в реестр. Запустите программу, нажмите на кнопку Settings и в диалоговом окне выберите нужный порт (который я просил запомнить) и скорость (9600).
Напишем скетч и зальём его на плату.
В Termite вводим любое слово в нижнем текстовом поле и нажимаем клавишу Enter. В Serial Monitor будут отображаться введённые слова. Это означает, что мы можем посылать определённые команды для платы, чтобы управлять ей.
Давайте попробуем включать и выключать встроенный светодиод на контакте 13.
Если всё получилось, то примите мои поздравления. Теперь вы можете общаться с платой с компьютера.
Подключение к Android
Подключение к телефону на Android происходит по такой же схеме. Устанавливаем терминал, например Bluetooth Terminal, соединяемся с нашим модулем и посылаем команды из предыдущего скетча. Плата будет включать и выключать свой светодиод, принимая сигнал с телефона.
AT-команды
С помощью AT-команд можно сменить настройки по умолчанию. Имейте в виду, что в 2018 году модули стали поставляться с другой прошивкой и некоторые сведения, которые ранее были описаны в интернете, устарели. Я описываю актуальные команды на 2019 год.
Используем следующую схему подключения.
При подключении светодиод на модуле будет мигать два раза в секунду. В этом режиме можно вводить команды. Но сначала загрузим скетч.
В Serial Monitor вводим команду AT . В ответ получим OK.
Чтобы сменить имя модуля, нужно ввести команду AT+NAME=CAT-06 , где CAT-06 - новое имя. Имя не должно превышать 20 символов.
Узнать версию модуля: AT+VERSION . Ответ: VERSION:3.0-20170609.
Смена пароля: AT+PSWD:"0000" , где 0000 ваш новый пароль.
Есть ещё команды для смены скорости, но тут нужно быть внимательным. После смены скорости старые скетчи не будут работать, надо вносить в них изменения, чтобы соответствовать новым настройкам. Не уверен, что стоит увлекаться этим.
Сравнение модулей HC-05 и HC-06
Модули HC-05 и HC-06 являются наиболее используемыми. Оба модуля основаны на одинаковом чипе, но есть и важные отличия. Модуль HC-05 может работать в двух режимах работы – и в качестве ведущего (master), и в качестве ведомого (slave).
Модуль HC-05 стоит несколько дороже, но он имеет большее количество полезных рабочих функций. Скорость передачи АТ команд по умолчанию для HC-05 равна 38400, для HC-06 – 9600. Важным моментом является то, что в конце АТ команд для HC-05 должны быть символы CRLF.
При разработке проектов с беспроводным управлением часто падает выбор на bluetooth-модули HC-05, HC-06. В связи с небольшой стоимостью и простотой использования. Но перед тем как создать проект нужно настроить bluetooth-модуль. Настройка модулей осуществляется с помощью AT-команд.
Схема подключения bluetooth-модулей HC-05, HC-06 к Arduino для настройки.
Какие параметры bluetooth-модулей HC-05, HC-06 можно настроить с помощью AT-команд?
В зависимости от версии bluetooth-модуля и прошивки настроить можно разное количество параметров. Также AT-команд могут быть разные, у разных версий модулей и прошивок. Но основной набор команд неизменный для любой версии. Возможно, разделительный знак будет отличаться, но методом «научного подбора» можно определить, если даже нет описания для вашего модуля.
Основные AT-команды bluetooth-модулей HC-05, HC-06:
- AT - Используется для проверки связи с модулем.
- AT+VERSION - Запрос версии прошивки
- AT+NAME - Запрос / установка имени модуля
- AT+PSWD или AT+PIN - Запрос / Установка PIN-кода
- AT+UART - Запрос / установка скорости UART
- AT+CMODE - Запрос / установка режима подключения
- AT+BIND - Запрос / установка фиксированного адреса
- AT+ADDR - Запрос адреса модуля
- AT+ROLE - Запрос / установка роли модуля
Это основные 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 |
Список ошибок которые может вернуть Bluetooth модуль HC-05, HC-06.
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 и HC-06 являются наиболее используемыми. Оба модуля основаны на одинаковом чипе, но есть и важные отличия. Модуль HC-05 может работать в двух режимах работы – и в качестве ведущего (master), и в качестве ведомого (slave).
Модуль HC-05 стоит несколько дороже, но он имеет большее количество полезных рабочих функций. Скорость передачи АТ команд по умолчанию для HC-05 равна 38400, для HC-06 – 9600. Важным моментом является то, что в конце АТ команд для HC-05 должны быть символы CRLF.
Подключение обоих модулей к плате Arduino одинаково.
Подписывайтесь на мой канал на Youtube и вступайте в группы в Вконтакте и Facebook.
Читайте также: