8-900-374-94-44
[email protected]
Slide Image
Меню

Bluetooth arduino hc 05: Беспроводная связь. Модуль Bluetooth HC-05

Arduino UNO + модуль Bluetooth HC-05

Эта пошаговая инструкция поможет вам запустить графический интерфейс RemoteXY на контроллере Arduino UNO используя модуль связи Bluetooth HC-05 или HC-06. Инструкция так же может быть использована для контроллеров Arduino Nano, Arduino Mini и совместимых.

Примечание. Устройства iOS не поддерживают модули с классическим Bluetooth HC-05(06). Вместо них вы можете использовать модуль BLE HM-10.

Шаг 1. Создайте графический интерфейс

Войдите в редактор RemoteXY. Найдите на левой панели инструментов элемент Кнопка, и переместите его в поле телефона. Выделите кнопку в поле телефона, что бы вокруг нее отобразилась рамка. Когда кнопка выделена, в правой панели свойств разверните вкладку Элемент. В свойстве элемента Привязать к выводу установите значение 13(LED).

Примечание. Редактор позволяет указать вывод контроллера для некоторых элементов, которые могут однозначно определить состояние вывода, например «Включен «или «Отключен». Однако лучшим решением будет написание собственного кода управления выводами контроллера.

Шаг 2. Настройте конфигурацию

Разверните вкладку Конфигурация на правой панели свойств. Кликните в любой элемент списка, откроется окно выбора конфигурации. Настройка конфигурации позволяет указать параметры вашей схемы. Выберите следующие параметры и нажмите кнопку Применить:

  • Соединение: Bluetooth
  • Контроллер: Arduino UNO
  • Модуль: HC-05 Bluetooth module
  • Среда: Arduino IDE

Вкладка Конфигурация должна выглядеть как на рисунке:

Разверните вкладку Подключение модуля и установите следующие значения настроек:

  • Интерфейс подключения: Software Serial
  • Контакт RX: 2
  • Контакт TX: 3
  • Скорость обмена: 9600

Настройки определяют, что модуль HC-05(06) подключается к Arduino через программный последовательный порт SoftwareSerial на скорости 9600 и используются контакты микроконтроллера 2 и 3 .

Примечание. Скорость 9600 является скоростью обмена по умолчанию для модулей Bluetooth HC-05 и HC-06. Не выбирайте другую скорость.

Шаг 3. Сформируйте скетч для Arduino

Нажмите кнопку Получить исходный код.

На открывшейся странице кликните ссылку Загрузить код и загрузите архив скетча. Распакуйте архив. В архиве размещен файл project.ino, откройте его в Arduino IDE.

Для компиляции скетча в среду Arduino IDE необходимо добавить библиотеку RemoteXY. Пройдите по ссылке загрузки библиотеки и следуйте инструкциям по ее установке.

В среде разработки выберите плату Arduino UNO и попробуйте скомпилировать скетч. Если вы все сделали правильно, скетч должен компилироваться без ошибок.

Шаг 4. Подключите HC-05 к Arduino Uno

Подключите модуль Bluetooth HC-05 или HC-06 к Arduino Uno по схеме приведенной на рисунке. Обратите внимание, что контакт 2 платы Arduino выбранный как RX соединяется с контактом TX модуля Bluetooth, а контакт 3 платы Arduino выбранный как TX с контактом RX модуля Bluetooth.


Шаг 5. Загрузите скетч в Arduino.

Загрузите скетч в контроллер стандартным способом. Подсоедините контроллер Arduino UNO к компьютеру, выберите COM порт к которому подключилась плата и нажмите кнопку загрузки.

Шаг 6. Подключитесь с мобильного приложения.

Установите мобильное приложение RemoteXY на ваш телефон.

Запустите приложение и нажмите кнопку + (Плюс) на верхней панели справа. В открывшемся окне выберите подключение Bluetooth.

Если на вашем телефоне отключен Bluetooth, то включите его. Нажмите кнопку обновления списка доступных устройств в правом верхнем углу. Модуль Bluetooth HC-05 (HC-06) может иметь одно из следующих имен: «HC-05», «HC-06», «INVOR». Выберите его. Откроется окно для ввода пароля спаривания Bluetooth устройств. Пароль по умолчанию для HC-05 (HC-06) может быть 1234 или 0000. Введите пароль.

После ввода пароля начнется подключение. Если вы все сделали правильно ту у вас должен отобразиться графический интерфейс с кнопкой, точно такой же как вы его разработали. Попробуйте нажимать кнопку. При удерживании кнопки нажатой должен загораться светодиод LED на плате Arduino UNO.

Примечание: В приложении для iOS необходимо включить Bluetooth используя системные настройки.


Если не подключается…

Если подключение не удалось, проверьте себя по списку ниже. Это поможет вам найти ошибку.

Модуль не отображается в списке устройств приложения

Если вы не видите вашего модуля в списке доступных устройств, попробуйте повторно нажать на кнопку обновления списка устройств спустя несколько секунд. Если модуль так и не появился, возможны следующие причины:

  • Вы не включили Bluetooth на вашем телефоне.
  • На модуль Bluetooth не подается питание. Возможно питание подключено не верно.
  • Модуль Bluetooth неисправен.

Bluetooth устройство не найдено

Если вы видите ошибку Bluetooth device not found или Bluetooth device connection error это означает что телефон не смог обнаружить модуль Bluetooth или не смог с ним соединиться. Возможны следующие причины:

  • При подключении в приложении выбрано не то Bluetooth устройство. Например вы выбрали наушники или телефон вашего друга у которого включен Bluetooth.
  • При подключении в приложении был введен не верный пароль для спаривания устройств.

Попробуйте разорвать пару используя системные настройки если Bluetooth устройство уже было спарено до этого.

Устройство не отвечает

Если вы видите ошибку Board not reply это означает что приложение подключилось к модулю Bluetooth но не может производить обмен данными с контроллером. Возможны следующие причины:

  • Контакты RX и TX модуля Bluetooth подключены не верно, возможно они перепутаны местами. Проверьте по схеме на шаге 4.
  • Контакты RX и TX модуля Bluetooth или один из них не подключены к контроллеру, плохой контакт;
  • Не верно указаны настройки конфигурации или настройки подключения перед формированием исходного кода. Проверьте на шаге 2.
  • Скорость передачи данных Bluetooth модуля не соответствует выбранной в настройке конфигурации. Проверьте на шаге 2.
  • Вы внесли недопустимые изменения в скетч, например откорректировали структуру RemoteXY или массив RemoteXY_CONF, удалили вызовы функций RemoteXY_Init() или RemoteXY_Handler(). Сформируйте исходный код заново и загрузите его в контроллер без каких либо изменений.
  • Использована старая версия библиотеки RemoteXY. Обновите версию библиотеки до последней.
  • В Arduino не был загружен скетч, или был загружен другой скетч. Проверьте что вы загрузили именно нужный скетч.
  • Контроллер Arduino не включен или неисправен.

AT-команды Bluetooth HC-05 — Описания, примеры, подключение к Arduino

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-команда: Ответ: Назначение:
ATAT\r\nOK\r\nКоманда Тест:
Используется для проверки связи с модулем.
RESETAT+RESET\r\nOK\r\nКоманда программной перезагрузки модуля:
Модуль ведёт себя так, как после кратковременного отключения питания.
VERSIONAT+VERSION?\r\n+VERSION:ВЕРСИЯ\r\n
OK\r\n
Запрос версии прошивки модуля:
Модуль возвращает версию в виде строки до 32 байт.
Пример ответа: +VERSION:hc01.comV2.1\r\nOK\r\n
AT+ORGLAT+ORGL\r\nOK\r\nСброс пользовательских настроек:
Модуль сбрасывает следующие настройки:
CLASS=0, IAC=9e8b33, ROLE=0, CMODE=0, UART=38400,0,0, PSWD=1234, NAME=hc01.com.
ADDRAT+ADDR?\r\n+ADDR:АДРЕС\r\n
OK\r\n
Запрос адреса модуля:
Модуль возвращает три части своего адреса NAP:UAP:LAP разделённые двоеточием.

Каждая часть состоит из шестнадцатиричных цифр.
Пример ответа: +ADDR:1234:56:789ABC\r\nOK\r\n
NAMEAT+NAME?\r\n+NAME:ИМЯ\r\n
OK\r\n
Запрос / установка имени модуля:
Имя модуля представлено строкой до 32 байт.
Пример ответа: +NAME:iArduino\r\nOK\r\n
Пример установки: AT+NAME=iArduino\r\n
Некоторые модули реагируют на команду AT+NAME?\r\n только при нажатой кнопке модуля или наличии высокого уровня на входе K.
AT+NAME=ИМЯ\r\nOK\r\n
RNAMEAT+RNAME? АДРЕС\r\n+RNAME:ИМЯ\r\n
OK\r\n
Запрос имени найденного Bluetooth устройства:

Адрес вводится после пробела, а части адреса (NAP,UAP,LAP) разделены запятой. Модуль возвращает имя найденного Bluetooth устройства находящегося в зоне действия, адрес которого был в запросе.
Пример запроса: AT+NAME? 1234,56,789ABC\r\n
Пример ответа: +RNAME:iArduino\r\nOK\r\n
ROLEAT+ROLE?\r\n+ROLE:РОЛЬ\r\n
OK\r\n
Запрос / установка роли модуля:
Роль модуля представлена цифрой:
0 — ведомый, 1 — ведущий, 2 — ведомый в цикле*.
Пример ответа: +ROLE:1\r\n
Пример установки: AT+ROLE=0\r\n
AT+ROLE=РОЛЬ\r\nOK\r\n
CLASSAT+CLASS?\r\n+CLASS:ТИП\r\n
OK\r\n
Запрос / установка типа устройства:
Тип устройства представляется 32 битным числом, по которому можно определить назначение модуля: Bluetooth клавиатура, Bluetooth мышь, гарнитура …
Пример установки: AT+CLASS=0\r\n
AT+CLASS=ТИП\r\nOK\r\n
IACAT+IAC?\r\n+IAC:КОД\r\nOK\r\nЗапрос / Установка кода общего доступа GIAC:
Код представлен 32 битным числом и используется для обнаружения Bluetooth устройств.
В роли ведущего, по данному коду модуль будет получать доступ к другим Bluetooth устройствам для их поиска (опроса), а в роли ведомого по данному коду будет предоставляться доступ для опроса модуля другими ведущими.
Пример ответа: +IAC:9e8b33\r\nOK\r\n
Пример установки: AT+IAC=9e8b33\r\n
AT+IAC=КОД\r\nOK\r\n
или
FAIL\r\n
INQMAT+INQM?\r\n+INQM:РЕЖИМ,КОЛ,ВРЕМЯ\r\n
OK\r\n
Запрос / Установка режима опроса модулей:
Используемые параметры являются настройками для команды поиска (опроса) других Bluetooth устройств.
— Режим поиска представлен цифрой:
0-стандартный, 1-поиск по интенсивности сигнала.
— Количество представлено цифрой определяющей предельное количество найденных Bluetooth устройств, после которого требуется прекратить поиск.
— Время поиска задаёт таймаут после которого поиск прекращается. Реальное время поиска в секундах равно указанному числу умноженному на 1,28.
Пример ответа: +INQM:1,1,48\r\nOK\r\n
Пример установки: AT+INQM:1,1,48\r\n
AT+INQM=РЕЖИМ,КОЛ,ВРЕМЯ\r\nOK\r\n
или
FAIL\r\n
PSWDAT+PSWD?\r\n+PSWD:КОД\r\n
OK\r\n
Запрос / Установка PIN-кода:
Код доступа представлен строкой до 16 байт.
Код модуля в роли ведомого устройства является паролем доступа к текущему модулю.
Код модуля в роли ведущего устройства является паролем доступа к внешним Bluetooth устройствам.
Пример ответа: +PSWD:1234\r\nOK\r\n
Пример установки: AT+PSWD=1234arduino\r\n
AT+PSWD=КОД\r\nOK\r\n
UARTAT+UART?\r\n+UART:СКОР,СТОП,ПРОВ\r\n
OK\r\n
Запрос / установка скорости UART:
Скорость представлена числом бит/сек
Стоп бит представлен цифрой: 0 — один, 1 — два
Проверка представлена цифрой: 0 — без проверки,
1 — проверка нечётности, 2 — проверка чётности.
Пример ответа: +UART:38400,0,0\r\nOK\r\n
Пример установки: AT+UART=38400,0,0\r\n
AT+UART=СКОР,СТОП,ПРОВ\r\nOK\r\n
CMODEAT+CMODE?\r\n+CMOD:РЕЖИМ\r\n
OK\r\n
Запрос / установка режима подключения:
Режим представлен цифрой:
0 — модуль в роли ведущего подключается только к тому Bluetooth устройству, адрес которого указан командой AT+BIND.
1 — модуль в роли ведущего подключается к любому ведомому Bluetooth устройству.
2 — модуль в роли ведомого работает в цикле*
Пример ответа: +CMOD:0\r\nOK\r\n
Пример установки: AT+CMOD=1\r\n
AT+CMODE=РЕЖИМ\r\nOK\r\n
BINDAT+BIND?\r\n+BIND:АДРЕС\r\n
OK\r\n
Запрос / установка фиксированного адреса:
Если модуль находится в роли ведущего (ROLE=1) и установлен режим подключения к фиксированному адресу (CMODE=0), то он будет подключаться только к тому Bluetooth устройству, адрес которого указан данной командой.
Части адреса вводятся: при установке — через запятую, а при ответе — через двоеточие.
Пример ответа: +BIND:1234:56:789ABC\r\nOK\r\n
Пример установки: AT+BIND=0,0,0\r\n
AT+BIND=АДРЕС\r\nOK\r\n
POLARAT+POLAR?\r\n+POLAR:ЛОГ,ЛОГ\r\n
OK\r\n
Запрос / установка активного логического уровня для включения светодиодов:
Полярность представлена цифрой 0 или 1 соответствующей активному логическому уровню.
Первый параметр указывает логический уровень для включения светодиода подключённого к выводу PIO8 (отображает режим работы), а второй для светодиода подключённого к выводу PIO9 (отображает статус соединения).
Пример ответа: +POLAR:1,1\r\nOK\r\n
Пример установки: AT+POLAR=1,1\r\n
AT+POLAR=ЛОГ,ЛОГ\r\nOK\r\n
PIOAT+PIO=НОМЕР,УРОВЕНЬ\r\nOK\r\nУстановка логического уровня PIO:
Позволяет установить логический уровень на выводе PIO. Номер вывода представлен числом от 2 до 11, кроме 8 и 9. Уровень представлен цифрой 0 или 1.
Пример установки: AT+PIO=11,0\r\n
MPIOAT+MPIO?\r\n+MPIO:ЧИСЛО\r\n
OK\r\n
Запрос / установка логических уровней PIO:
Позволяет узнать или установить логические уровни сразу на всех выводах PIO.
Уровни представлены шестнадцатиричным числом, каждый бит которого соответствует уровню вывода PIO.
Пример ответа: +MPIO:1F0\r\nOK\r\n
Пример установки: AT+MPIO:CFC\r\n
AT+MPIO=ЧИСЛО\r\nOK\r\n
IPSCANAT+IPSCAN?\r\n+IPSCAN:А,Б,В,Г\r\n
OK\r\n
Запрос / установка параметров IP сканирования:
А — интервал сканирования
Б — продолжительность сканирования
В — интервал страниц
Г — количество страниц
Пример ответа: +IPSCAN:1024,512,1024,512\r\nOK\r\n
Пример установки: AT+IPSCAN:1024,512,1024,512\r\n
AT+IPSCAN=А,Б,В,Г\r\nOK\r\n
SNIFFAT+SNIFF?\r\n+SNIFF:А,Б,В,Г\r\n
OK\r\n
Запрос / установка параметров энергосберегающего режима:
А — максимальное время
Б — минимальное время
В — период повторов
Г — таймаут
Пример ответа: +SNIFF:0,0,0,0\r\nOK\r\n
Пример установки: AT+SNIFF=0,0,0,0\r\n
AT+SNIFF=А,Б,В,Г\r\nOK\r\n
ENSNIFFAT+ENSNIFF=АДРЕС\r\nOK\r\nПереход в энергосберегающий режим:
Части адреса вводятся через запятую (NAP,UAP,LAP)
Пример команды: AT+ENSNIFF=1234,56,789ABC\r\n
EXSNIFFAT+EXSNIFF=АДРЕС\r\nOK\r\nВыход из энергосберегающего режима:
Части адреса вводятся через запятую (NAP,UAP,LAP)
Пример команды: AT+EXSNIFF=1234,56,789ABC\r\n
SENMAT+SENM?\r\n+SENM:СЕКРЕТ,ШИФР\r\n
OK\r\n
Запрос / установка параметров безопасности:
Режим секретности представлен цифрой:
0 — выключен
1 — незащищённое соединение
2 — защита на сервисном уровне
3 — защита на уровне соединения
4 — неизвестный режим
Режим шифрования представлен цифрой:
0 — без шифрования
1 — шифруется только трафик PTP
2 — шифруется весь трафик
Пример ответа: +SENM:0,0\r\nOK\r\n
Пример установки: AT+SENM:0,0\r\n
AT+SENM=СЕКРЕТ,ШИФР\r\nOK\r\n
PMSADAT+PMSAD=АДРЕС\r\nOK\r\nУдаление устройства из списка пар:
Удаление Bluetooth устройства из списка приведёт к необходимости заново образовывать пару для подключения к нему.
Части адреса удаляемого устройства вводится через запятую (NAP,UAP,LAP)
Пример команды: AT+PMSAD=1234,56,789ABC\r\n
RMAADAT+RMAAD\r\nOK\r\nУдаление всех устройств из списка пар:
Очистка данного списка приведёт к необходимости заново образовывать пары с Bluetooth устройствами для подключения к ним.
FSADAT+FSAD=АДРЕС\r\nOK\r\n
или
FAIL\r\n
Поиск устройства в списке пар:
Если Bluetooth устройство с указанным адресом имеется в списке, то модуль вернёт OK\r\n иначе FAIL\r\n.
Части адреса вводятся через запятую (NAP,UAP,LAP)
Пример запроса: AT+FSAD=1234,56,789ABC\r\n
ADCNAT+ADCN?\r\n+ADCN:КОЛИЧЕСТВО\r\n
OK\r\n
Запрос количества устройств в списке пар:
При образовании пары ведущий-ведомый, данные о паре автоматически попадают в список пар и для последующих подключений (даже после отключения питания) не требуется повторно устанавливать пару.
Пример ответа: +ADCN:10\r\nOK\r\n
MRADAT+MRAD?\r\n+MRAD:АДРЕС\r\n
OK\r\n
Запрос адреса устройства из списка пар:
Модуль вернёт адрес Bluetooth устройства из списка пар с которым выполнялось последнее успешное соединение.
Части адреса выводятся через двоеточие (NAP:UAP:LAP)
Пример ответа: +MRAD:1234:56:789ABC\r\nOK\r\n
STATEAT+STATE?\r\n+STATE:СТАТУС\r\n
OK\r\n
Запрос статуса модуля:
Модуль вернёт свое текущее состояние в виде строки:
INITIALIZED — инициализация
READY — готов
PAIRABLE — образование пары
PAIRED — пара образована
INQUIRING — запрос
CONNECTING — подключение
CONNECTED — подключён
DISCONNECTED — отсоединён
NUKNOW — неизвестное состояние
Пример ответа: +STATE:CONNECTED\r\nOK\r\n
INITAT+INIT\r\nOK\r\n
или
FAIL\r\n
Инициализация профиля SPP:
Профиль SPP эмулирует последовательный порт.
INQAT+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
INQCAT+INQC\r\nOK\r\nЗавершить поиск (опрос) Bluetooth устройств:
Досрочно завершает поиск Bluetooth устройств инициированный командой AT+INQ
PAIRAT+PAIR=АДРЕС,ТАЙМАУТ\r\nOK\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
LINKAT+LINK=АДРЕС\r\nOK\r\n
или
FAIL\r\n
Подключиться к Bluetooth устройству:
После выполнения данной команды можно общаться с подключённым Bluetooth устройством.
Команда доступна модулю в роли ведущего.
Пример команды: AT+LINK=1234,56,789ABC\r\n
DISCAT+DISC\r\n+DISC:РЕЗУЛЬТАТ\r\n
OK\r\n
Отключиться от Bluetooth устройства:
Команда указывает модулю отключиться от Bluetooth устройства с которым установлено соединение. После отключения от Bluetooth устройства информация о нём сохраняется в списке пар. Если потребуется вновь подключиться к этому устройству, то создание пары будет необязательно (если Bluetooth устройство намеренно не удалить из списка пар).
После выполнения команды модуль ответит результатом её выполнения:
SUCCESS — успех
LINK_LOSS — соединение потеряно
NO_SLC — отсутствует SLC
TIMEOUT — истекло время ожидания
ERROR — ошибка
Пример ответа: +DISC:SUCCESS\r\nOK\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+LINK=АДРЕС\r\n — Подключиться к ведомому Bluetooth устройству, указав его адрес
  • AT+STATE?\r\n — Получить текущее состояние модуля (на практике эта команда может ускорить процесс подключения)

Не раньше чем через пол секунды после перезагрузки (командой AT+RESET\r\n) нужно кратковременно нажать на кнопку или подать кратковременный высокий уровень на вход K модуля, иначе он не будет воспринимать новые AT-команды.

Ссылки:

  • Bluetooth модуль HC-05.
  • Wiki — используем Arduino как USB — UART преобразователь.
  • Программа терминал — Termite с поддержкой Русского языка.
Распиновка модуля Bluetooth

HC-05, технические характеристики, настройки по умолчанию, замены и техническое описание

16 июля 2021 — 0 комментариев

          Модуль Bluetooth HC-05
          Распиновка модуля Bluetooth HC-05

      HC-05 — популярный модуль Bluetooth, который может добавить в ваши проекты двустороннюю (дуплексную) беспроводную связь.

       

      Конфигурация выводов HC-05

      Номер контакта

      Название контакта

      Описание

      1

      Включение/Ключ

      Этот вывод используется для переключения между режимом данных (низкий уровень) и режимом AT-команд (высокий уровень). По умолчанию он находится в режиме данных 9.0003

      2

      Вкк

      Включает модуль. Подключить к +5В Напряжение питания

      3

      Земля

      Штырь заземления модуля, соедините с заземлением системы.

      4

      ТХ — Передатчик

      Передает последовательные данные. Все, что получено через Bluetooth, будет выдано этим контактом как последовательные данные.

      5

      RX – приемник

      Получение последовательных данных. Все последовательные данные, передаваемые на этот контакт, будут транслироваться через Bluetooth 9.0003

      6

      Состояние

      Контакт состояния подключен к светодиоду на плате, его можно использовать в качестве обратной связи для проверки правильности работы Bluetooth.

      7

      Светодиод

      Указывает состояние модуля

      • Мигание один раз в 2 секунды: Модуль перешел в командный режим
      • Повторяющееся мигание: ожидание подключения в режиме данных
      • Дважды мигает за 1 секунду: успешное подключение в режиме данных

      8

      Кнопка

      Используется для управления выводом Key/Enable для переключения между данными и командным режимом

       

      HC-05 Настройки по умолчанию

      По умолчанию Имя Bluetooth: «HC-05» Связь: Ведомый

      Режим по умолчанию: Режим данных

      Режим данных Бод Скорость: 9600, 8, N, 1

      Скорость передачи в командном режиме: 38400, 8, N, 1

      Прошивка по умолчанию: LINVOR

       

      Технические характеристики HC-05 90 004
    • Последовательный модуль Bluetooth для Arduino и других микроконтроллеров
    • Рабочее напряжение: от 4 В до 6 В (обычно +5 В)
    • Рабочий ток: 30 мА
    • Диапазон: <100 м
    • Работает с последовательной связью (USART) и совместим с TTL
    • Соответствует стандартному протоколу IEEE 802. 15.1
    • Использует спектр со скачкообразной перестройкой частоты (FHSS)
    • Может работать в режиме Master, Slave или Master/Slave
    • Может быть легко подключен к ноутбуку или мобильному телефону с помощью Bluetooth
    • Поддерживаемая скорость передачи: 9600,19200,38400,57600,115200,230400,460800.
    •  

      HC-05 Эквивалентный модуль Bluetooth

      HC-02

       

      Другие модули Bluetooth

      HC-04, HC-06, HM- 11, ESP32, CSR8645

       

      Где использовать HC Модуль Bluetooth -05

      HC-05 — это популярный модуль, который может добавить в ваши проекты двустороннюю (дуплексную) беспроводную связь. Вы можете использовать этот модуль для связи между двумя микроконтроллерами, такими как Arduino, или для связи с любым устройством с функцией Bluetooth, например телефоном или ноутбуком. Существует множество приложений для Android, которые уже доступны, что значительно упрощает этот процесс. Модуль связывается с помощью USART на 9Скорость 600 бод позволяет легко взаимодействовать с любым микроконтроллером, поддерживающим USART. Мы также можем настроить значения модуля по умолчанию, используя командный режим. Поэтому, если вы ищете беспроводной модуль, который может передавать данные с вашего компьютера или мобильного телефона на микроконтроллер или наоборот, этот модуль может быть для вас правильным выбором. Однако не ожидайте, что этот модуль будет передавать мультимедиа, такие как фотографии или песни; вам, возможно, придется изучить модуль CSR8645 для этого.

       

      Как использовать Bluetooth-модуль HC-05

      HC-05 имеет два режима работы: один — режим данных, в котором он может отправлять и получать данные с других устройств Bluetooth, а другой — AT Командный режим, в котором можно изменить настройки устройства по умолчанию. Мы можем управлять устройством в любом из этих двух режимов, используя ключевой контакт, как описано в описании контакта.

      Сопряжение модуля HC-05 с микроконтроллерами очень просто, поскольку он работает с использованием протокола последовательного порта (SPP). Просто подключите модуль к +5 В и подключите контакт Rx модуля к Tx MCU, а контакт Tx модуля к Rx MCU, как показано на рисунке ниже 9.0003

      Во время включения питания контакт ключа можно заземлить для перехода в командный режим, если его оставить свободным, он по умолчанию перейдет в режим данных. Как только модуль будет включен, вы сможете обнаружить устройство Bluetooth как «HC-05», затем подключиться к нему, используя пароль по умолчанию 1234, и начать с ним общение. Имя, пароль и другие параметры по умолчанию можно изменить, введя

       

      Приложения

      1. Беспроводная связь между двумя микроконтроллерами

      2. Связь с ноутбуком, настольным компьютером и мобильным телефоном

      3. Приложение для регистрации данных

      4. Пользовательские приложения

      5. Беспроводные роботы

      6. Домашняя автоматизация

       

      2D-модель

        Метки

        Bluetooth

        Беспроводная связь



      arduino — Модуль Bluetooth HC-05 помогает, не может получить данные

      Я пишу код для своей Arduino Nano и использую модуль HC-05 для беспроводной передачи данных. Я отправляю свои данные как таковые. Это из последовательного монитора с использованием USB и обычных операторов печати. Я хочу иметь возможность получать эти данные и сохранять их в csv (я знаю, как хранить входящие данные). Мне нужна помощь в получении моих данных.

       22:17:46.765 -> ======================================== =====================
      22:17:47.770 -> Таймер сна: 242
      22:17:47.770 -> Легкий сон: 0 Глубокий сон: 0
      22:17:47.805 -> Всего легкого сна: 0 Всего глубокого сна: 0
      22:17:47.838 -> Всего сна: 0
      22:17:47.871 -> =========================================== ==================
       

      По какой-то причине, когда я подключаю свой HC-05 к рабочему столу Windows через bluetooth и открываю последовательный монитор в com-портах 3 или 4, я не получаю считывания. Мои порты У меня так настроено. Моя беспроводная инициализация

      Затем я использую

       MySerial.print()
       

      , чтобы отправить данные, но я не получаю вывода, то же самое происходит, если я использую

       Serial.print()
       

      .

      Я попытался получить новый модуль HC-05, отключил все оборудование, попробовал разные печати, включая Serial и MySerial. Я, хотя я мог бы получить вывод. Код Python Я пытался использовать python для извлечения данных, но не получил результата. Я не уверен, что делать здесь.

      • arduino
      • arduino-ide
      • hc-05
      • android-wireless
      • arduino-nano

      2

      Недостаточно информации, но я отвечу предвзято, исходя из своего опыта работы с этими модулями. Вот инструкции по изменению или проверке скорости передачи на модуле:

      https://www.instructables.com/Change-the-Baud-Rate-of-HC-05-Bluetooth-Module-Usi/

      Для моего модуль, я мог бы просто отправлять AT-команды по умолчанию, не переводя его в AT-режим. Отправьте «AT» модулю, и он должен ответить «ОК».

      Это очень помогает, если у вас есть кабель ftdi для устранения неполадок. Подключите ftdi к HC-05, проверьте скорость передачи данных и ответ HC-05, откройте последовательный монитор для Bluetooth на ПК и один для кабеля ftdi. Попробуйте отправить данные туда и обратно. Кроме того, будьте на 100% уверены, что вы используете правильный COM-порт для вашего Bluetooth, отключив и восстановив соединение, и посмотрите, какой COM-порт появляется.

      На самом деле можно использовать HC-05 и для программирования Arduino, если вы установите скорость передачи данных на 115200 и найдете способ сброса на Arduino, как только Bluetooth подключится (статус/состояние не меняется) . Я использовал для этого ATTiny, но вы можете просто использовать контакт нано, подключенный к сбросу, и другой контакт для контроля контакта «состояния», который подключен к светодиоду на HC-05. Таким образом, вы можете иметь беспроводную передачу данных и беспроводное программирование, если хотите.

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *