Подключение hc 05: Bluetooth модуль HC-05: описание, подключение, схема, характеристики

Содержание

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

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.
ADDR
AT+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
PSWD
AT+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

Page not found — Лаборатория проектов школы 169

Unfortunately the page you’re looking doesn’t exist (anymore) or there was an error in the link you followed or typed. This way to the home page.


Blog

  • 02/25/2021 — Новое пособие «Дизайн компьютерных игр»
  • 01/22/2021 — Snap4Arduino и проекты «виртуальной» робототехники
  • 01/21/2021 — Cеминар «Программирование микроконтроллеров в визуальных средах. От учебных проектов к профессиональным»
  • 01/18/2021 — Дистанционная внеурочка, материалы занятий по темам Робототехника и Дизайн компьютерных игр
  • 12/01/2020 — Лекция-демонстрация «Комплект на базе робота Makeblock mBot в школе и дома»
  • 11/24/2020 — Профессиональный и личностный успех в проектах технической направленности как фактор формирования социальных установок обучающихся
  • 11/23/2020 — Виртуальная робототехника на Scratch и Snap4arduino
  • 11/16/2020 — Цифровая образовательная среда. Проблемы, решения и влияние на социальные установки. Начало.
  • 11/11/2020 — Представляем 5 главу книги «Scratch и Arduino для юных программистов и конструкторов»
  • 08/25/2020 — Программа физического моделирования Algodoo, первые шаги
  • 08/19/2020 — Средства визуального программирования микроконтроллеров, краткий обзор обновлений
  • 08/04/2020 — Готовим дидактические материалы для внеурочки в условиях продолжающейся пандемии
  • 06/01/2020 — Шаг за шагом моделируем в Scratch гармонические колебания и упругое взаимодействие объектов
  • 04/27/2020 — Шаг за шагом моделируем столкновения объектов в среде Snap4arduino
  • 04/18/2020 — Шаг за шагом моделируем поведение робота в среде Snap4arduino
  • 04/04/2020 — Создание домашних заданий в TRIK Studio
  • 03/27/2020 — Дистанционное обучение робототехнике на платформе TRIK Studio
  • 03/05/2020 — Открытая учебная робоплатформа нового поколения
  • 02/25/2020 — Преемственность учебных материалов в робототехнике, альтернативы mBot
  • 12/12/2019 — Методы распределённой разработки как учебный инструмент в робототехнике
  • 12/10/2019 — Приглашаем на городской семинар «Современные микроконтроллеры и ранняя инженерная профориентация в школе»
  • 12/02/2019 — Открытые зимние состязания Санкт-Петербурга по робототехнике 2019
  • 11/22/2019 — Наш УМК по робототехнике — Победитель конкурса инновационных продуктов!
  • 10/22/2019 — Сборка робота на основе конструктива из набора «Ресурсный набор Lego Mindstorms EV3 (45560)»
  • 09/20/2019 — Наш УМК выставлен на участие в региональном конкурсе инновационных продуктов
  • 09/12/2019 — Семинар «Техносфера современной школы: создание и перспективы использования»
  • 09/01/2019 — Перевод регламента соревнований makeX 2019 года
  • 05/29/2019 — Апробация плат от Elecfreaks
  • 05/26/2019 — 2 место в категории «Следовании по линиии экстремал»
  • 05/15/2019 — Образовательный робонабор под нашу книжку.
  • 04/24/2019 — ME-Sensors 3D (модели для печати защитных пластин)
  • 04/18/2019 — Региональный круглый стол в 169-ой
  • 04/07/2019 — Поздравляем победителей открытых состязаний Санкт-Петербурга по робототехнике 6-7 апреля 2019
  • 03/31/2019 — Открытые соревнованиях по робототехнике Центрального района
  • 03/28/2019 — ИТНШ 2019. «Ноу-хау» на основной площадке конференции.
  • 03/27/2019 — ИТНШ 2019. Выездной семинар в 169-ой
  • 02/22/2019 — 3D-печать на занятиях. Из опыта работы.
  • 02/18/2019 — Fischertechnik. BT Стартовый набор. Пробуем ROBO Pro Light
  • 02/11/2019 — Образовательные продукты Makeblock — традиции, инновации и открытые стандарты
  • 02/02/2019 — Курсы робототехники в 169-ой
  • 01/30/2019 — Первый шаг в мир микроконтроллеров
  • 01/27/2019 — Городские соревнования «Юный конструктор»
  • 12/25/2018 — Обзор визуальных средств программирования микроконтроллеров (часть 2)
  • 12/20/2018 — Городской семинар «Scratch-подобные визуальные среды программирования микроконтроллеров: обзор, сравнение, расширение возможностей, опыт использования»
  • 12/19/2018 — Обзор визуальных средств программирования микроконтроллеров (часть 1)
  • 12/14/2018 — Игрофикация в робототехнике, плюсы и минусы
  • 12/14/2018 — Fischertechnik. BT Стартовый набор. Начинаем апробацию.
  • 12/05/2018 — MakeBlock Ranger. 3D модели для сборки. Вариант 1.
  • 11/22/2018 — Наш УМК — лауреат конкурса инновационных продуктов!
  • 11/21/2018 — Поздравляем нашего выпускника!
  • 10/23/2018 — В 169-ой переведен регламент MakeX Robotics Competition Blue Planet 2018
  • 10/18/2018 — Новое поколение микроконтроллеров и программных средств, в чем отличие?
  • 10/14/2018 — Зачем и как мы учим программировать микроконтроллеры. Как?
  • 10/06/2018 — Робофинист 2018: ведем мастер-классы, представляем новые продукты.
  • 10/05/2018 — Ура! В издательстве БХВ вышла наша новая книжка про роботов!
  • 09/28/2018 — 3D печать в школе — несколько зарисовок из опыта работы.
  • 09/22/2018 — Договор с MakeBlock Co.Ltd и ООО «ЦС Импэкс» о совместных исследованиях!
  • 06/08/2018 — Advanced Arduino Extension — расширение для mBlock3 от А.Григорьева
  • 04/24/2018 — Встреча: MakeBlock, DIGIS, БХВ и 169-ая))
  • 03/28/2018 — ИТНШ 2018. Выездной семинар в 169-ой.
  • 03/27/2018 — ПОФ 2018. Ярмарка «Успешных практик реализации ФГОС»
  • 03/20/2018 — mBot. Собираем оптимальную конфигурацию учебного робота.
  • 03/15/2018 — ПРОБЛЕМЫ ВНЕДРЕНИЯ УЧЕБНЫХ ПРОГРАММ ПО НАПРАВЛЕНИЮ «РОБОТОТЕХНИКА» В ОБЩЕОБРАЗОВАТЕЛЬНОЙ ШКОЛЕ
  • 03/08/2018 — 7-8 марта. Выступление на Робофесте 2018 в Москве.
  • 03/06/2018 — Новый видеоролик о mBot: «лягушка» и «жук»
  • 02/14/2018 — ОПЫТ ПРЕПОДАВАНИЯ РОБОТОТЕХНИКИ В ОБЩЕОБРАЗОВАТЕЛЬНОЙ ШКОЛЕ
  • 01/31/2018 — вебинар «Опыт школ по внедрению Инженерного инновационного класса»
  • 01/30/2018 — Семинар по программированию микроконтроллеров и технологиям «Интернет-вещей»
  • 01/18/2018 — Робототехника и экология. Выступление в Туле.
  • 12/09/2017 — «Робоняша» в 169-ой
  • 12/08/2017 — Новый ролик в видеоблоге: Робот mBot от компании Makeblock. ч.3-1. Расширение: шестиногий робот.
  • 11/30/2017 — Межрайонный мастер-класс
  • 11/25/2017 — 169-ой школе исполнилось 80 лет!
  • 11/18/2017 — Практиканты «Петровского колледжа» в 169-ой
  • 11/15/2017 — Новая книга!
  • 11/07/2017 — Проект «Знакомимся, mBot!»
  • 10/06/2017 — «Умные вещи», новый виток развития технологий
  • 10/05/2017 — Как связать два микроконтроллера по Bluetooth. Настраиваем HC-05 для работы в режиме Master
  • 10/04/2017 — СПО в школе. Давайте вместе заполним список! Часть 1. Поддержка робототехники и конструирования
  • 10/03/2017 — Робототехника… без роботов. Scratch и имитационное программирование. Движение по линии
  • 10/02/2017 — Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.
  • 10/02/2017 — Использование распределенных ресурсов сетевых партнеров для формирования современной техносферы образовательной организации
  • 10/02/2017 — Визуальное программирование микроконтроллеров в образовании

Настройка Bluetooth модуля HC-05 — DIY Head Tracking

Я настраивал модуль HC-05 так:

Подключил модуль HC-05 к переходнику USB-UART(TTL) четырьмя проводками мама-мама:


HC-05:

HC-06:

 USB-UART:
 +5V 5V
 GNDGND 
 TX RXD
 RX TXD

Затем я зажал кнопку на HC-05 и подключил USB-UART к компьютеру. В Диспетчере Устройств появился порт COM5. А на HC-05 стал медленно моргать светодиод: секунду горит, другую секунду не горит. Это режим ввода AT команд. Если светодиод быстро моргает — это рабочий режим, значит, я плохо держал кнопку, и тогда начинаем всё сначала.

Теперь отпускаю кнопку.

В Arduino IDE я выбрал COM5, тип платы неважен, и запустил монитор порта. В нижней строке для HC-05 нужно выбрать «NL & CR» и «38400 бод»:

AT команды нужно вводить в верхней строке заглавными английскими буквами. И не забываем нажать кнопку [Отправить]:

Вводим:  Ответ:

AT [Отправить] OK — значит, попали успешно в режим AT команд

Проверяем режимы:

AT+NAME?       [Отправить] +NAME:HC-05 — имя модуля “HC-05”. Я его изменю на “HC-05 AHRS”.

AT+ROLE?        [Отправить] +ROLE:0         — 0 — это Slave. То, что нужно.

AT+PSWD?        [Отправить] +PIN:»1234″ — код доступа. Запомним.

AT+UART? [Отправить] +UART:9600,0,0 — скорость обязательно нужно изменить на 115200 (для прошивки Ардуино «по воздуху» скорость нужно изменить на 57600).

Итак, я собираюсь изменить имя модуля и скорость обмена.

Изменяю имя модуля:

AT+NAME=HC-05 AHRS [Отправить] OK

Изменяю скорость обмена:

AT+UART=115200,0,0 [Отправить] OK

или для прошивки «по воздуху»:

AT+UART=57600,0,0 [Отправить] OK

Проверяю:

AT+NAME? [Отправить] +NAME:HC-05 AHRS

AT+UART? [Отправить] +UART:115200,0,0

для прошивки «по воздуху»:

AT+UART? [Отправить] +UART:57600,0,0

Всё, как задумано. Делаем программный сброс:

AT+RESET [Отправить]

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

Модуль HC-05 настроен для работы в трекере. Пока закроем монитор порта и Arduino IDE. Теперь нужно проверить работу модуля HC-05.

Настройка Bluetooth модуля

Работа с Bluetooth модулем HC05 / Деталька / Сообщество EasyElectronics.ru

Недавно прислали этот модуль, решил попробовать его проверить.
Под катом небольшое описание, даташит, программа-терминалка и плата в формате .lay

Напряжение питания модуля: 3.3 В
Потребляяемый ток: 50 мА

Этот модуль может работать в 3-х режимах:
1) Master (или сервер) — в этом режиме модуль может сам подключиться к какому-нибудь Bluetooth девайсу.
2) Slave — в этом режиме другой мастер может подключиться к модулю.
3) Slave-loop — здесь модуль отправляет обратно все байты, которые ему прислали.

1. Режим Master
Для того, чтобы переключить BT модуль в этот режим, нужно:
1) Перевести модуль в режим приема AT команд, замкнув PIO11 на +3.3 V
2) Подключиться к UART’у модуля, настроить COM порт вот так:
Baudrate = 38400
StopBits = 1
DataBits = 8
Parity = none
Handshaking = none
И отправить ему команду:
AT+ROLE=1\r\n

После каждой успешно выполненной команды модуль отвечает:
OK\r\n

3) Подключить PIO11 к GND (автоматический режим). Модуль в режиме мастера.
1.1 Настройка автоматического подключения к BT девайсу по фиксированному адресу
Для этого нужно:
1) Перевести модуль в режим приема AT команд (см. пункт 1)
2) Переключить модуль в режим подключения к устройству с фиксированным адресом при помощи команды:
AT+CMODE=0\r\n

Задать фиксированный адрес устройства, к которому хотим подключиться, при помощи команды:
AT+BIND=27,13,bd95e4\r\n

«27,13,bd95e4» — для примера, это BT адрес моего ноута.

А теперь маленькая хитрость, как наиболее простым способом узнать этот адрес?
Отправляем модулю:

AT+RMAAD\r\n

Переключаемся в автоматический режим (см. пункт 1), модуль должен быть в режиме Slave, подключаемся к модулю тем устройством, BT адрес которого нужно узнать, отключаемся, переходим в режим АТ команд, отправляем команду:
AT+MRAD?\r\n

Получаем на выходе искомый адрес в виде: 27:13:bd95e4.

3) Снова возвращаемся в автоматический режим. Теперь модуль сам попытается подключиться к устройству по адресу 27:13:bd95e4.

2. Slave
Для переключения в этот режим отправим:
AT+ROLE=0\r\n

Если CMODE!=1, то
AT+CMODE=1\r\n
3. Slave Loop
AT+ROLE=2\r\n

Если CMODE!=1, то
AT+CMODE=1\r\n
4. Прочее
Тестовая команда:
AT

Перезагрузка:
AT+RESET

Версия:
AT+VERSION?

Сброс настроек:
AT+ORGL

Адрес модуля:
AT+ADDR?

Имя модуля:
AT+NAME=ElektroHabr\r\n

Получить имя BT девайса:
AT+RNAME?<АДРЕС>\r\n

Чтобы поменять пароль, делаем так:
AT+PSWD=1235

Настройки UART’a:
AT+UART=Baudrate,StopBit,Parity,\r\n

Baudrate может быть: 9600,19200,38400,57600,115200,230400,460800.
Parity == 0 == none
PIO порты:
AT+PIO=<номер порта>,<состояние 1/0>

Управлять этими портами через BT нельзя!
BT модуль запоминает адреса устройств, которые к нему когда-либо подключались, чтобы удалить какой-нибудь адрес, делаем так:
AT+PMSAD =1234,56,abcdef\r\n

Чтобы удалить все адреса, делаем так:
AT+RMAAD\r\n

Чтобы посмотреть адрес наиболее часто подключаемого устройства, шлем модулю:
AT+MRAD?\r\n

Чтобы посмотреть, есть ли по близости девайс который модуль «запомнил», шлем модулю:
AT+FSAD=<adress>\r\n

Количество устройств в памяти:
AT+ADCN?\r\n

Состояние модуля:
AT+STATE?\r\n

Подключиться к какому-нибудь девайсу:
AT+LINK=1234,56,abcdef\r\n

Отключиться:
AT+DISC=<adress>\r\n

Это не все команды, я еще не разобрался с остальными.

В прикрепленном архиве программа для отправки AT команд и даташит на модуль.
Программа написана на C#, поэтому может заработает на linux с установленным Mono.

Печатку обязательно нужно отзеркалить!
Метализированные отверстия — переходные, на другой стороне платы земляная дорожка.
Резисторы и керамические конденсаторы размера 1206.
PS: Почему TL431 и 2N3904?
Потому что очень хотелось испытать этот модуль 🙂

Библиотека HC04 для Diptrace

Bluetooth-модуль HC-05 | | Программирование микроконтроллеров

&nbsp

&nbsp

&nbsp

 

 

Сегодня мы познакомимся с недорогим модулем для беспроводной пердачи данных по Bluetooth.

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

Наш модуль именуется HC-05. Это один из представителей линейки подобных модулей HC-03 – HC-09.

Данные модули позволяют передавать данные без проводов, не задумываясь о том, как вообще устроен протокол Bluetooth, о его полях и прочих тонкостях. Эти модули при правильных настройках обеспечивают передачу данных таким образом, что программист, сочиняющий код, пишет алгоритм так, будто он работает с проводным интерфейсом UART. Поэтому писать код становится максимально удобно и поэтому данная линейка модулей снискала такую огромную популярность среди начинающих программистов и не только.

Вот и мы с вами давайте тоже не будем от них отставать и немного отдохнём от сетевых протоколов и изучим такой модуль. Также было очень много просьб личного характера, а также и в публичных чатах, чтобы я не обошёл стороной такие модули и написал какие-либо уроки с их использованием.

Модули имеют следующие основные характеристики:

  • чип Bluetooth – BC417143 производства CSR company,
  • протокол передачи данных – Bluetooth 2.0 + EDR,
  • класс 2, что соответствует передаче данных в радиусе до 10 м,
  • поддержка Serial Port Profile (SPP), что обеспечивает совместимость со всеми устройствами, поддерживающими данный профиль,
  • энергонезависимая память flash объёмом 8 мб,
  • радиоканал частотой 2.4 – 2.4835 MHz,
  • интерфейс USB Host 1.1/2.0,
  • интерфейс UART с регулируемой скоростью передачи.

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

 

 

Мы видим зедесь ножки GPIO, SPI, USB, PCM.

Правда мы пока будем работать только с интерфейсом USART, с помощью которого мы будем не только передавать какие-то полезные данные, а также и настраивать наш модуль.

Мы так поступим во-первых потому, что модули у нас будут одного типа (у меня их аж 4 штуки!), в которых модуль HC-05 напаян ещё на одну плату, на которой наружу разведены только 6 контактов. Вот такие вот они все у меня приблизительно (вид сверху и вид снизу)

 

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

Во-вторых, мы не будем работать с остальными многочисленными контактами потому, что не каждая прошивка этим позволяет заниматься.

Вообще, выбор пал именно на HC-05 ещё потому, что данный модуль прекрасно настраивается для работы как ведущего, так и ведомого устройства.

Настраивается для дальнейшей работы с данными модуль с помощью AT-команд. Мы, я думаю, все в той или иной мере знакомы, что это за команды такие, мы с ними немного знакомились, когда работали с модулем Wi-Fi. Конечно, данные команды у всех устройств разные и поэтому я приложу внизу страницы документ с полным перечнем команд. Также в интернете немудрено найти ресурсы, где описание данных команд переведено на русский язык, и даже есть некоторые примеры их использования. Мы же не будем здесь заниматься полным переводом команд, мы будем изучать только те команды, которыми нам прийдётся воспользоваться. Пока их перечень будет не столь широк, но впоследствии мы к данным модулям ещё вернёмся, надеюсь, и не раз, и тогда мы уже расширим свой кругозор в знании данного модуля. А пока же мы проведём только краткий экскурс по модулю. Конечно, мы попробуем его и в работе, не без этого.

А пока давайте подключим наш модуль к переходнику TTL-USB, который в свою очередь мы подключим к ПК.

Соединим мы по следующей схеме

Переходник TTL-USB    Модуль HC-05

         VCC                             VCC

         GND                            GND

         TXD                             RXD

         RXD                            TXD

На практике это будет выглядеть примерно вот так

Подключим переходник к компьютеру, как работать с переходниками такого плана, рассказывать не буду, мы и так с ними постоянно работаем. Запустим терминальную программу, я воспользуюсь программой CoolTerm, так как у неё более гибкие настройки для пердачи данных с клавиатуры, а нам для ввода команд необходимо, чтобы каждая строка при передаче заканчивалась кодом перевода строки и возврата каретки.

Зайдём в настройки программы и настроим сначала порт

Данная скорость 38400 была выбрана потому, что модуль в режиме приёма AT-команд работает именно на такой скорости.

Теперь слева выберем пункт Receive и переключим там одну кнопку, а другую включим

Первая кнопка для окончания переданных команд символами перевода строки и возврата каретки, а вторая для того, чтобы мы свои введённые команды видели также после ввода в терминальном окне приёма.

Сохраним настройки и попробуем соединиться. Если всё удачно, то разъединяеся, так как сейчас у нас модуль находится в режиме передачи данных, и, если он ещё не настраивался, то скорей всего, мы даже не знаем его адреса, его настроек. О нахождении модуля в данном режиме свидетельствует быстрые мигания голубого светодиода Поэтому нам надо как-то перевести модуль в состояние передачи AT-команд.

Для этого мы пока отсоединим переходник от USB-порта и подклюим провод на ножку модуля HC-05 KEY. У кого-то она может иметь другое название, но, думаю, не перепутаете. Провод подключим вот такой и вот таким образом

Соединим данный провод с плюсом питания (с ножкой VCC)

И, не отпуская контакта, соединим перходник с портом USB компьютера и через некоторое время (через секунду или две) разъединим наш контакт KEY с контактом VCC, убрав провод. Модуль должен будет перейти в режим приёма AT-команд, о чём будет свидетельствовать очень медленная скорость мигания светодиода.

Перейдём в терминальную программу, соединимся с портом и попробуем послать команду AT, на которую нам модуль должен ответить «OK»

Модуль ответил, значит всё правильно.

Чтобы не путаться с настройками, которые были кем-то и когда-то внесены, давайте сборсим все настройки, введя команду «AT+ORGL«. Настройки должны будут сброситься к следующим параметрам:

  • Device type: 0
  • Inquire code: 0x009e8b33
  • Module work mode: Slave Mode
  • Connection mode: Connect to the Bluetooth device specified
  • Serial parameter: Baud rate: 38400 bits/s; Stop bit: 1 bit; Parity bit: None.
  • Passkey: “1234”
  • Device name: “H-C-2010-06-01”

Только настройки сразу не применятся. Надо перезагрузить модуль. Удобно сделать это, введя команду «AT+RESET«, в ответ на которую модуль перезагрузится и перейдёт опять в режим передачи данных и не сможет пока принимать команды. Чтобы он их принимал, проделаем те же действия, что и выше, для того чтобы модуль опять перешёл в режим приёма команд AT. Есть ещё один способ, но пока мы им пользоваться не будем.

Проверим теперь некоторые параметры нашего модуля.

Чтобы узнать версию прошивки, введём команду «AT+VERSION?«, на которую модуль должен будет ответить приблизительно вот так

Если прошивка не ниже данной версии, то мы можем быть уверены, что данный модуль с такой прошивкой способен работать в режиме ведущего устройства (Мастера).

Узнаем адрес устройства с помощью команды «AT+ADDR?«

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

Давайте запросим ещё и имя устройства с помощью команды «AT+NAME?«, на который многие модули, в том числе и мой реагируют только при наличии высокого уровня на ножке KEY, то есть при подключенном проводе. Так и сделаем

Давайте попробуем ещё это имя изменить, так как оно не очень удобное, для этого введём команду «AT+NAME:Желаемое_имя». Данную команду можно вводить без высокого уровня на ножке KEY

Проверим, что имя изменилось, только не забываем про высокий уровень на ножке KEY

Имя прекрасно применено.

Проверим пароль командой «AT+ PSWD?«

Аналогичным образом, как и имя, можно поменять и пароль.

Теперь узнаем тип устройства (ведомый или ведущий) с помощью команды «AT+ ROLE?«

0 – это значит ведомый. Тип также можно изменить в любой момент. Но нам это пока не нужно, так как мы будем работать с устройством как с ведомым.

Сбросим спаренные устройства командой «AT+RMAAD«

Теперь давайте узнаем настройки интерфейса USART командой «AT+ UART?«

Эти настройки означают: скорость 38400 кбпс, 1 стоповый бит и отсутствие контроля чётности.

В данной таблице находятся возможные варианты настроек USART

Давайте изменим, например, скорость передачи командой «AT+UART=115200,0,0«

Только данные настройки вступят в силу после перезагрузки модуля и будут актуальны только для режима передачи данных, для режима передачи AT-команд в модуль останутся настройки прежние со скоростью 38400.

Давайте перезагрузим модуль командой «AT+RESET«, после чего модуль перейдёт в режим передачи данных.

Настроим порт в терминальной программе на данную скорость и соединимся с ним

Попробуем ввести команду, на что модуль наш не прореагирует, так как режим не тот

Но не будем отчаиваться. Оказывается, чтобы отправлять команды модулю, необязательно переводить его в этот режим. Можно включить поддержку передачи AT-команд в режиме передачи данных. На короткое время (достаточно менее секунды) коснёмся проводом, который подключен к контакту KEY плюсовой шины модуля и модуль перейдёт в режим поддержки AT-команд. Правда, по характеру мигания светодиода мы это не определим, он будет мигать также быстро. Также в режиме поддержки команд мы с нами не сможет соединиться ведущее устройство. Но тем не менее, нам не потребуется для каких-то настроек постоянно вынимать провод из разъёма USB и перенастраивать порт в терминальной программе. Это уже хорошо. Сделаем данное действие и убедимся в том, что модуль также будет принимать команды, как и в режиме приёма команд

Чтобы убрать данную поддержку и чтобы модуль смог соединяться, достаточно перезагрузить его командой «AT+RESET«. Так и сделаем

Отлично! Мы уже кое-что умеем. В принципе, мы настроили модуль для передачи данных в режиме ведущего устройства.

Теперь смартфон, который у нас сегодня выступит в роли ведущего устройства. Подойдёт любой с андроидом, лишь бы встала какая-нибудь терминальная программа под Bluetooth. Я установил вот такую. Мне она показалась удобной

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

Скачаем и установим программу и запустим её. Нажмём кнопку SCAN и наш модуль должен будет отобразиться в списке найденных устройств

Выберем данное устройство и попадём в диалог создания пары, в котором надо будет ввести пароль (у нас «1234») и согласиться, нажав кнопку «ОК»

Устройство появится в списке спаренных устройств

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

Выберем наше устройство и попадём в диалог терминального обмена строками

Введём что-нибудь в строке и нажмём кнопку «Send ASCII»

Наш текст переместится в поле чата

Также если всё нормально со связью, мы этот же текст увидим в терминальной программе на ПК

Теперь попробуем, наоборот, послать строку из терминальной программы ПК в терминальную программу смартфона

Посмотрим, пришла ли наша команда

То есть связь у нас работает.

Таким образом, сегодня мы познакомились с очень удобным и несложно конфигурируемым устройством для беспроводной передачи данных – модулем Bluetooth HC-05. Мы научились менять различные режимы работы, отправлять команды для получения информации из модуля, а также для его настройки. Пусть это далеко не все команды, которые знает наш модуль, но принцип нам уже ясен, а с остальными ещё познакомимся. Также мы увидели на практике работу модуля в режиме передачи данных, создав соединение между модулем, подключенным к ПК и смартфоном.

Спасибо за внимание!

 

Тесты устройств и аксессуаров Следующий урок

 

 

Техническая документация:

Теническая документация на модуль HC-05

Список AT-команд

 

 

Модуль Bluetooth можно приобрести здесь HC-05

 

 

Смотреть ВИДЕОУРОК (нажмите на картинку)

 

Post Views: 18 671

Bluetooth HC-05 (Troyka-модуль)

Хотите управлять своими устройствами через Bluetooth не только с телефона, но и напрямую с Arduino, Iskra или Raspberry? Возьмите Troyka-модуль Bluetooth HC-05 — он поддерживает режимы slave и master, то есть способен выступать не только ведомым, но и ведущим устройством в системе.

Создайте сеть устройств, связанных по Bluetooth и контролируйте их через модуль HC-05: опрашивайте датчики, посылайте команды, управляйте роботами без какого-либо дополнительного софта. Ведомым устройством может выступать любой Bluetooth-модуль, например HC-06.

Рабочее напряжение HC-05 — 3,3 В. Мы встроили в модуль регулятору уровня напряжения, благодаря чему он работает и от 5 В.

Подключение

Для Arduino модуль выглядит как последовательный интерфейс. Соединяйте контакты модуля с макетной платой или Arduino проводами «мама-папа». С Troyka Shield через провода «мама-мама». Используйте Troyka Slot Shield и провода не понадобятся вовсе.

  • Контакт RX модуля подключите к контакту TX целевого устройства
  • Контакт TX модуля подключите к контакту RX целевого устройства
  • Контакт V подключите к контакту питания 3.3 — 5 В
  • Контакт G подключите к земле
  • Контакт K используйте для перевода модуля в режим управления АТ-командами

Настройки

Настройки по умолчанию
Скорость передачи данных9600 бод
Имя модуляHС-05
Пароль для подключения1234

Все настройки по умолчанию могут быть изменены с помощью АТ-команд.

Комплектация

  • 1× Плата-модуль
  • 2× Трёхпроводных шлейфа

Характеристики

  • Напряжение питания: 3,3–5 В
  • Потребляемый ток: 50 мА
  • Радиус действия: до 10 метров
  • Чип Bluetooth: HC-05(BC417143)
  • Интерфейс: UART
  • Габариты: 50,8×25,4 мм

Покупка и подключение модуля Bluetooth HC-05

Модуль bluetooth HC-05 в часах Super Clock, используется для передачи настроек и для связи с беспроводными датчиками.
Я в своих часах его использовал только для передачи настроек.
Вернее по прикалываться — загнать в часы бегущую строку-сообщение, на радость супруге
Внести изменения в настройки
Изначально, пока у меня не было модуля HC-05, я использовал FT232RL для связи часов с компьютером через USB
Потом не мог прикрутить HC-05, т.к. ковыряясь в коде — по начудил там
Потом при помощи АВТОРА и его поддержки на форуме — удалось соединить часы с модулем
Потом модуль уехал к брату в его часах, а я собрал вот те часы, которые до этого были представлены в обзорах, но в них не было модуля
Потом модули пришли (оба-два), но не хотелось лезть в часы и если-бы ни этот обзор, может они так и стояли-бы на микроволновке, на кухне.

Но вот пришло время и для HC-05
Ещё тогда, когда я возился с часами брата, зятёк подкинул весьма удачно вот такую штучку:

Она «видит» bluetooth устройства
Ею я и проверял модули и она-же мне сообщала, что купленные модули как раз являются именно HC-05, при соединении с ними

Модуль я припаял на часы
После чего в часы необходимо перезалить ЕЕПРОМ
После этой операции, часы делают троекратное определение модуля HC-05 при включении
И при правильном подключении модуля и прошивке часов, будет вот такая картина:

Для соединения часов с компьютером АВТОР сделал программу, которую можно скачать на 51 странице темы
Там-же программка для смартфонов на андроиде

Сначала делаем поиск устройств bluetooth-свистком, соединяем компьютер с bluetooth модулем часов (кстати, пароль устройства для соединения с модулем, по умолчанию, на моём модуле был 1234), потом запускаем программку, давим кнопку Scan — в окне появляется устройство Super Clock с указанием порта соединения

Далее выделяем устройство и жмём кнопку Open
«Зелёная лампочка» » включается» (из зелёной становится салатовой) — соединение с часами осуществлено
Закладки программы:

Работа с портом — три кнопки, окно устройств, и лампочка индикации соединения
Будильники — пять будильников часов с управлением и кнопкой Записать, для внесения изменений в часы
Настройки — Возможность записать и запустить в часах бегущую строку («бежит» пока не остановишь, останавливается кнопкой вправо на часах)
Возможность записать сообщение — сообщение появляется периодически в режиме отображения АВТО
Переключение ночного режима (притухание дисплея ночью) — выставление часа, что считается днём ОТ, ДО
Движками — задать яркость — ночного режима и дневного
Установка режима отображения АВТО, НОРМ
Сигнал почасовой сигнал (кукушка) — вкл/выкл
Коррекция хода
Время — время отображения времени в секундах
Датчики — время отображения показаний датчиков в секундах
Скорость бегущей строки с движком управления
Норм. давление — установка нормального давления (коррекция по высоте)
Доп настройки
И две кнопки:
Установить время — синхронизировать время с системным временем на компьютера
Записать настройки — внести установленные изменения в часы
Закладка График — выгружаются графики давления, температур и влажности

Очень похожая программа на смартфон
Только у меня была проблема с соединением с часами — решилась перезаливкой ЕЕПРОМ, что привело к необходимости укомплектовать часы брата дополнительным шнуром для прошивки «на случай чего»

Вообще, модуль используется участниками проекта для связи с беспроводными уличными датчиками
Я этим вопросом заморачиваться не стал, во первых, требуется доп плата с питанием, ещё одним модулем, микроконтроллером, датчиком, а этого под рукой не было. Во вторых, судя по обсуждению в форуме, — люди сталкивались с проблемами потери связи с этими датчиками. Провод от часов к DS18B20 на улицу — для меня показалось самым простым и приемлемым решением. Так что модуль bluetooth HC-05 в часах Super Clock я использую для всякой фигни 🙂 — шлю послания, время от времени, своей супруге. Но, ей и мне (её реакция) — это нравится.
Так что не пинайте за использование оборудования «не по назначению» 🙂

Пока я дожидался комплектующих, внимательно перечитал тему форума на радиокоте
Перечитал с блокнотом — копируя важные моменты со ссылками, выдержками разъяснений АВТОРА, копируя в отдельную папку фотографии часов тех, кто уже сделал (на предмет: корпусов, внешнего вида и прочего)
К этому материалу не раз обращался, и он не единожды выручал.
Так что если кто будет повторять этот путь — не поленитесь, хотя-бы до 51-55 страницы темы

Из полезностей, есть очень хорошая плата от почемучки — она сделана под матрицы с Общим Катодом
Очень многие, взяв её за основу, переделывали чуток под себя и делали на её основе себе часы
Просто, очень многие из тех кто делал эти часы — писали, что за основу брали плату почемучки
Интересной показалась плата Grey1975 под матрицы 32Х32мм
Матрицы по размерам значительно меньше 60/60, по этому он сделал на двух платах «бутербродом»
Ссылка на файл его платы тут

Часики в плане получаются 32*96 мм — компактненько, правда без модуля блютуз — но есть выводы, для подсоединения проводами
Вот собственно и всё, что я хотел рассказать

Модуль Bluetooth

HC-05 — Учебное пособие, Интерфейс Arduino — Учебное пособие, Интерфейс Arduino

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

Введение

Bluetooth-связь — это радиочастотная связь на основе частоты 2,4 ГГц с радиусом действия примерно 10 метров.Это один из самых популярных и наиболее часто используемых средств связи низкого радиуса действия для передачи данных, аудиосистем, громкой связи, компьютерных периферийных устройств и т. Д.

Переходя к использованию связи Bluetooth в проектах DIY, модуль Bluetooth HC-05 является идеальным вариантом. устройство. Я реализовал несколько проектов с использованием модуля Bluetooth HC-05, таких как Robotic Arm , Home Automation , LED Matrix и т. Д.

Но во всех этих проектах я мало обсуждал модуль Bluetooth, за исключением за то, что требуется для выполнения проекта.Итак, в этом проекте / руководстве я немного расскажу о модуле HC-05.

Краткая информация о модуле Bluetooth HC-05

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

Этот модуль основан на однокристальной микросхеме Bluetooth BC417, совместимой с Bluetooth v2.0 и с поддержкой интерфейсов UART и USB.

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

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

Контакты модуля Bluetooth HC-05

Модуль HC-05 поддерживает UART, USB, а также связь SPI и, в зависимости от приложения, могут использоваться необходимые контакты. В моем случае плата использует связь UART.

Что касается контактов модуля Bluetooth, как правило, четырех контактов достаточно для успешного включения канала беспроводной связи, но модули, производимые в настоящее время, поставляются с шестью контактами, а именно: VCC, GND, TX, RX, EN и STATE. .

На рисунке ниже показаны контакты и другие компоненты типичного модуля Bluetooth HC-05.

Важно помнить, что модуль Bluetooth HC-05 работает на логическом уровне 3,3 В. Следовательно, на плате используется регулятор 3,3 В.

ПРИМЕЧАНИЕ: Кнопка на плате используется для настройки модуля Bluetooth в режиме AT-команд. Эта часть модуля не обсуждается в этом проекте.

Описание контакта
  • EN: Это разрешающий контакт. Когда этот вывод является плавающим или подключен к 3,3 В, модуль включен.Если этот вывод подключен к GND, модуль отключен.
  • + 5V: Это вывод питания для подключения + 5V. Поскольку модуль имеет встроенный регулятор 3,3 В, вы можете обеспечить питание +5 В.
  • GND: Это контакт заземления.
  • TX: Это вывод передатчика связи UART.
  • RX: Это приемный контакт UART.
  • СОСТОЯНИЕ: Это вывод индикатора состояния. Этот вывод становится НИЗКИМ, когда модуль не подключен к какому-либо устройству.Когда модуль сопряжен с любым устройством, этот вывод становится ВЫСОКИМ.

ПРИМЕЧАНИЕ: Встроенный светодиодный индикатор используется для индикации состояния соединения. Когда модуль не спарен, светодиод мигает или мигает повторно. После сопряжения модуля светодиодный индикатор мигает с постоянной задержкой в ​​2 секунды.

Режимы работы

Модуль Bluetooth HC-05 можно настроить в двух режимах работы: командный режим и режим данных.

В командном режиме вы можете связываться с модулем Bluetooth с помощью AT-команд для настройки различных настроек и параметров модуля, таких как получение информации о прошивке, изменение скорости передачи данных UART, изменение имени модуля, установка его в качестве ведущего или ведомого и т. Д.

Важным моментом в модуле HC-05 является то, что он может быть настроен как ведущий или ведомый в коммуникационной паре. Чтобы выбрать любой из режимов, вам необходимо активировать командный режим и отправить соответствующие AT-команды.

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

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

Ниже приводится список некоторых настроек модуля Bluetooth HC-05 по умолчанию.

  • Имя: HC-05
  • Пароль: 1234 (или 0000)
  • Тип: ведомое устройство
  • Режим: данные
  • Скорость передачи: 9600 с 8 битами данных, без четности и 1 стоповым битом

Принципиальная схема для Взаимодействие модуля Bluetooth HC-05 с Arduino

Чтобы продемонстрировать связь между модулем HC-05 и Arduino, я разработал простую схему.

Целью этой схемы является соединение модуля Bluetooth с Arduino, сопряжение модуля Bluetooth с телефоном Android, отправка данных с телефона Android на модуль Bluetooth с помощью простого приложения, считывание данных из модуля Bluetooth через Arduino и, наконец, отображать данные и управлять устройством на основе данных.

На следующем изображении показана принципиальная схема соединения между Arduino Mega и HC-05.

ПРИМЕЧАНИЕ: Я выбрал Arduino Mega только потому, что он имеет несколько аппаратных портов UART. В этом проекте я использую последовательный порт Arduino Mega по умолчанию для связи с компьютером (последовательный монитор) и последовательный порт 1 (RX1 и TX1 — контакты 19 и 18) для связи с Bluetooth.

Код

Приложение для связи по Bluetooth

Я использую простое приложение Android под названием «Контроллер Bluetooth» для сопряжения HC-05 с моим телефоном Android и передачи данных.На момент разработки этого проекта это конкретное приложение Bluetooth Controller больше не было доступно в Play Store.

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

Подключение телефона к модулю Bluetooth HC-05

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

После сопряжения модуля Bluetooth с телефоном вы можете начать использовать приложение. Откройте приложение Bluetooth Controller и нажмите «Сканировать». На экране появится список устройств Bluetooth. Выберите HC-05.

Теперь выберите опцию Set Keys в приложении и введите следующую информацию:

Key Name Data of Key

LED ON 1

LED OFF 0

После ввода этой информации сохраните его, нажав ОК.Теперь на главном экране приложения вы можете увидеть две кнопки (или слоты) с заголовками «LED ON» и «LED OFF». Если вы нажмете на светодиодный индикатор, «1» будет передано по каналу связи Bluetooth на модуль HC-05, который затем передаст его на Arduino.

Если вы нажмете на выключенный светодиод, будет передано «0». Затем Arduino включает или выключает светодиод в зависимости от полученных данных.

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

Модуль Bluetooth HC-05

Модуль Bluetooth HC-05

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

нажмите на картинку для увеличения

Конфигурация контактов

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

Имя контакта

Описание

1

Включить / Клавиша

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

2

Vcc

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

3

Земля

Контакт заземления модуля, подключите к заземлению системы.

4

TX — передатчик

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

5

RX — Приемник

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

.

6

Государство

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

7

светодиод

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

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

8

Кнопка

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

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

Имя Bluetooth по умолчанию: «HC-05»

Пароль по умолчанию: 1234 или 0000

Связь по умолчанию: ведомое устройство

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

Скорость передачи данных в бодах: 9600, 8, N, 1

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

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

HC-05 Технические характеристики

  • Последовательный модуль 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

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

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

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

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

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

.

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

Приложения

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

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

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

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

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

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

2D Модель

Как подключить HC-05 к ПК с Linux

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

Играя с этими дешевыми (около 3 $) модулями Bluetooth Я написал небольшой приложение, которое может помочь диагностировать и настроить их. В этой статье я использую Arduino Nano (atmega328p) и классический HC-05 с линейным регулятором мощности. Ничего сложного паять не нужно — всего одна проволочка.

Во-первых, позвольте мне описать это приложение Arduino. Не могу сказать, что это надежно но это проще, чем делать все вручную.

HCTOOLS — приложение Arduino

Это приложение можно использовать на большинстве Arduinos, начиная с Arduino Nano. Вы можете скачать его с Github. Я использовал платформу как разработку среда, поэтому, если вы знакомы с ней, вы знаете, что делать (посмотрите platformio.ini ). Если нет, вы можете использовать классическую Arduino IDE.Для этого вам понадобится Кому:

  1. Скопируйте содержимое src / main.cpp в Arduino IDE
  2. Установите библиотеки SoftwareSerial и SimpleCLI с менеджером библиотек
  3. Загрузите эскиз.

Приложение предоставляет «оболочку» интерфейс для работы с модулем HC-05. Это имеет следующие команды / функции:

  • echo — запустить эхо-сервер. Полезно проверить, работает ли ваш модуль. Вы запускаете эту команду, подключаетесь к модулю со своим телефоном или ПК и запускаете отправив ему текст.Модуль получит текст, отправит его в Arduino, Arduino отправит его обратно в модуль, а затем модуль отправит его обратно в ты.
  • atmode — переключить HC-05 в режим AT-команд. Arduino просто войдет в устройство последовательной передачи данных между вашим ПК и HC-05. Это позволит вам общаться с модулем Bluetooth без какого-либо дополнительного оборудования (с за исключением, конечно, Ардуино). Вы можете проверить, работает ли он, отправив AT команда, на которую следует ответить OK .
  • master — настроить подключенный модуль HC-05 как Мастер Bluetooth. У него два параметра. Первый — это MAC-адрес устройство bluetooth, к которому вы хотите, чтобы ваш модуль подключался сразу после ботинок. Обратите внимание, что MAC-адрес должен иметь следующий формат: 1234: 12: 123456 — не похож на классический с лотом : . Второй параметр — это просто Bluetooth. название вашего модуля HC-05. Очень полезно отличить его от других HC-05 рабы.Последний аргумент — бод UART.
  • slave <имя> <скорость передачи> — настроить подключенный модуль HC-05 как подчиненный Bluetooth. В так же, как и для мастера, вы можете настроить имя модуля. Последний аргумент — бод UART.
  • name — изменить Bluetooth-имя модуля.
  • baudrate — изменить скорость передачи модуля. Эта скорость используется, когда модуль взаимодействует с Arduino.

Чтобы использовать его, сначала необходимо соединить модуль Arduino и HC-05 вместе.

Настройка оборудования . Arduino потребуется контролировать питание модуля HC-05. и иметь возможность установить состояние HIGH / LOW на выводе 34 (или PIO11). Это необходимо из-за кстати HC-05 переведен в режим AT. Во-первых, Arduino отключает модуль затем он устанавливает контакт 34 в состояние HIGH и включает питание. После этой загрузки HC-05 в режим AT.

Транзистор может быть любым PNP-транзистором из вашего набора Arduino.Убедись в том, что это PNP, поискав его в таблице данных. Я использовал 2N3906 . Резистор также может отличаться. Это нужно для ограничения тока, протекающего через базу транзистора. я выбрал 1000 Ом один. Я полагаю, что подойдет что угодно в районе 500-1500 Ом.

Давайте попробуем! Подключите Arduino и HC-05, как показано на схемах. выше и прошить приложение на Arduino (с помощью platformio или Arduino IDE). Затем откройте последовательный монитор. Вы должны увидеть что-то вроде этого:

  HCTOOLS.Версия: 1.0 (f0341d1)
#
  

По умолчанию приложение предполагает, что для модуля установлена ​​скорость передачи 38400 ( скорость передачи по умолчанию в режиме AT). Если вы меняли его ранее, измените его в приложение и повторно загрузите его.

Введите help в оболочку приложения, чтобы увидеть все доступные команды.

Вернуться к ПК

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

  $ sudo apt-get install bluez bluez-utils
  

Затем давайте проверим, установлен и загружен ли модуль ядра. Для некоторых фишек это будет достаточно, чтобы загрузить btusb , но для других чипов (например, моего Broadcom) вам нужно будет найти и установить соответствующий драйвер. Вы можете проверить btusb загружается в ядро ​​следующей командой:

  $ lsmod | grep btusb
btusb 65536 0
btrtl 24576 1 btusb
btbcm 16384 1 btusb
btintel 32768 1 btusb
bluetooth 675840 5 btrtl, btintel, btbcm, btusb
  

Примечание: Если у вас также есть чип Broadcom , я бы порекомендовал изучить эта инструкция.Вроде бы обычное решение.

Если на выходе ничего нет, попробуйте установить общий Bluetooth водитель:

  $ sudo apt-get install btusb
  

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

  $ lsusb | grep Bluetooth
... вывод скрыт ...
$ dmesg | grep Bluetooth
... вывод скрыт ...
  

После установки драйвера и загрузки модуля ядра запустите и включите Bluetooth. сервис:

  $ sudo systemctl включить bluetooth.услуга
$ sudo systemctl start bluetooth.service
  

Убедитесь, что служба успешно запущена:

  $ sudo systemctl status bluetooth.service
    ● bluetooth.service - служба Bluetooth.
     Загружено: загружено (/usr/lib/systemd/system/bluetooth.service; отключено; предустановка поставщика: отключено)
     Активен: активен (работает) с Чт 2020-02-20 19:35:07 CET; 23ч назад
       Документы: человек: bluetoothd (8)
   Основной PID: 779 (bluetoothd)
      Задач: 1 (лимит: 6990)
     Память: 2,7 МБ
     CGroup: / system.slice / bluetooth.service
             └─779 / usr / lib / bluetooth / bluetoothd
  

Примечание: Должно быть —
Активно: активно (работает)

Теперь после установки драйвера перезагрузите компьютер / ноутбук. Это действительно должно быть сброс питания (выключение -> включение), потому что во время перезагрузки ваши драйверы могут все равно остаюсь незагруженным (сами понимаете на всякий случай). После загрузки проверьте вывод dmesg должно быть примерно так:

  $ dmesg | grep Bluetooth
[5.493394] Bluetooth: ядро ​​версии 2.22
[5.493415] Bluetooth: устройство HCI и диспетчер подключений инициализированы
[5.493420] Bluetooth: инициализирован уровень сокетов HCI
[5.493422] Bluetooth: инициализирован уровень сокетов L2CAP.
[5.493426] Bluetooth: инициализирован уровень сокетов SCO.
[5.751843] Bluetooth: hci0: BCM: идентификатор микросхемы 70
[5.752829] Bluetooth: hci0: BCM: функции 0x06
[5.768841] Bluetooth: hci0: BCM43142A
[5.769833] Bluetooth: hci0: BCM43142A0 (001.001.011) сборка 0000
[6.489850] Bluetooth: hci0: BCM43142A0 (001.001.011) сборка 0215
[6.505851] Bluetooth: hci0: устройство Bluetooth Broadcom (43142)
  

Сопряжение с устройством

Во-первых, я всегда стараюсь подключиться к HC-05 с телефона Android. я использовал Последовательный терминал Bluetooth для подключения и отправки текста на модуль на проверьте, что он жив. Это всегда хороший знак, что все идет хорошо. Так, в случае, если у вас есть один, попробуйте это. Все равно в линуксе запустить bluetoothctl :

  $ sudo bluetoothctl
 Агент зарегистрирован
 [CHG] Контроллер 80: 56: F2: E5: 43: E6 Возможность подключения: да
[блютуз]#
  

Выполните сброс питания модуля HC-05, а затем включите Bluetooth-сканирование ближайших устройств на вашем ПК:

  [bluetooth] # включение питания
 Смена питания выполнена успешно
[bluetooth] # сканирование включено
 Открытие началось
 [CHG] Контроллер 80: 56: F2: E5: 43: E6 Обнаружение: да
 [CHG] Устройство 78: BD: BC: D3: D5: 68 RSSI: -92
 [CHG] Устройство 78: BD: BC: D3: D5: 68 Название: [TV] UE40J6272
 [CHG] Устройство 78: BD: BC: D3: D5: 68 Псевдоним: [TV] UE40J6272
 [CHG] Устройство 00: 13: EF: 00: 03: 04 RSSI: -59
  

Точный MAC-адрес HC-05 может быть получен с помощью AT + ADDR? команда в в режиме .См. Приложение выше👌.

После того, как на экране появилось что-то вроде HC-05 ( 00: 13: EF: 00: 03: 04 в моем случае) экрана, вам нужно будет сделать его надежным, соедините его с ПК и попытайтесь подключиться к нему. Это можно сделать с помощью следующих команд: trust , pair и соединяют соответственно.

  [bluetooth] # trust 00: 13: EF: 00: 03: 04
 [CHG] Устройство 00: 13: EF: 00: 03: 04 Надежно: да
 Изменение доверия 00: 13: EF: 00: 03: 04 выполнено успешно
[bluetooth] # пара 00: 13: EF: 00: 03: 04
 Попытка создать пару с 00: 13: EF: 00: 03: 04
 Запросить ПИН-код
[агент] Введите PIN-код: 1234
 [CHG] Устройство 00: 13: EF: 00: 03: 04 UUID: 00001101-0000-1000-8000-00805f9b34fb
 [CHG] Device 00: 13: EF: 00: 03: 04 ServicesResolved: да
 [CHG] Устройство 00: 13: EF: 00: 03: 04 Сопряжение: да
 Сопряжение успешно
[bluetooth] # установить псевдоним mymodule
 [CHG] Устройство 00: 13: EF: 00: 03: 04 Псевдоним: mymodule
 Смена моего модуля выполнена успешно
[bluetooth] # подключить мой модуль
 Мой модуль устройства недоступен
 [CHG] Device 00: 13: EF: 00: 03: 04 ServicesResolved: нет
 [CHG] Устройство 00: 13: EF: 00: 03: 04 Подключено: нет
 [CHG] Устройство 00: 13: EF: 00: 03: 04 Подключено: да
[mymodyle] #
  

Если вы хотите проверить, работает ли отключение:

  [mymodule] # отключить
 Попытка отключиться от 00: 13: EF: 00: 03: 04
 Успешно отключен
 [CHG] Устройство 00: 13: EF: 00: 03: 04 Подключено: нет
[блютуз]#
  

Время открыть монитор последовательного порта

Последний шаг — создать последовательный порт.Следующая команда связывает ваш Устройство Bluetooth с устройством RFCOMM (в данном случае / dev / rmcomm0 ). Это не будет немедленно подключайтесь к HC-05, только когда приложение, такое как серийный монитор будет использовать это. Подробнее о протоколе и устройствах RFCOMM.

К сожалению, в некоторых системах (например, Arch linux) утилита rfcomm может находиться в статус «устарел» и не будет доступен в официальном репозитории. Попробуй найдите инструкцию, как установить его в вашей конкретной системе (см. Arch Вики).

  $ sudo rfcomm bind rfcomm0 
  

Теперь у вас должен быть последовательный порт / dev / rmcomm0 , который подключен к вашему Устройство Bluetooth.

Давайте проверим, что это работает. В другом терминале откройте последовательный монитор, подключенный к Arduino с приложением HCTOOLS и запустите команду echo :

  $ pio -e nano -t монитор
    ... какой-то вывод скрыт ...
    --- Минитерм на / dev / ttyUSB0 115200,8, N, 1 ---
    --- Выйти: Ctrl + C | Меню: Ctrl + T | Справка: Ctrl + T, затем Ctrl + H ---
    HCTOOLS.Версия: 1.0
    # эхо
    Повторение каждого полученного символа. CTRL-D, чтобы остановить это.
  

Попробуйте открыть последовательный монитор на порту rfcomm и отправить что-нибудь на устройство:

  $ монитор устройства pio -p / dev / rfcomm0 -b 115200
    ... длинный вывод скрыт ...
    --- Минитерм на / dev / ttyUSB0 115200,8, N, 1 ---
    --- Выйти: Ctrl + C | Меню: Ctrl + T | Справка: Ctrl + T, затем Ctrl + H ---
    Привет
  

Теперь, если вы отправите что-то на Arduino, он отправит это на HC-05, а затем на ваш / dev / rfcomm0 порт.Если вы отправите что-то на / dev / rfcomm0 с новая строка, он отправит его вам.

Вот в основном это. Для удобства вы можете добавить правило udev , чтобы иметь красивое имя для вашего устройства вместо / dev / rfcomm0 . Имя указано в Атрибут SYMLINK . Например:

  $ cat /etc/udev/rules.d/80-blueled.rules
ЯДРО == "rfcomm [0-9]", SUBSYSTEM == "tty", DRIVER == "", ATTR {channel} == "1", ATTR {address} == "00: 13: ef: 00: 03:04 ", SYMLINK + =" синий "
  

Как видите, есть атрибуты конкретного устройства.Эти атрибуты могут быть найдено с помощью следующей команды:

  $ sudo udevadm info --attribute-walk --name = rfcomm0
Информация Udevadm начинается с устройства, указанного в пути разработчика, а затем
идет вверх по цепочке родительских устройств. Он печатает для каждого устройства
найдены все возможные атрибуты в формате ключа правил udev.
Соответствующее правило может состоять из атрибутов устройства.
и атрибуты от одного родительского устройства.

  глядя на устройство '/ devices / virtual / tty / rfcomm0':
    ЯДРО == "rfcomm0"
    ПОДСИСТЕМА == "tty"
    ВОДИТЕЛЬ == ""
    ATTR {канал} == "1"
    ATTR {адрес} == "00: 13: ef: 00: 03: 04"
  

Теперь ваше устройство должно быть доступно по пути / dev / blueled .

Устранение неисправностей

Вот список проблем, с которыми я столкнулся при попытке настроить Все в порядке.

  1. Следующие сообщения в ответ на команду rfcomm bind , вероятно, означают что у вас нет модуля ядра для протокола RFCOMM. Попробуйте загрузить его sudo Modprobe RFCOMM . Также попробуй обновить ядро.

    Не удается открыть управляющий сокет RFCOMM: протокол не поддерживается

  2. Если bluetoothctl показывает Контроллер по умолчанию недоступен убедитесь, что вы установите драйвер, а затем запустите bluetoothctl с sudo (ответ stackoverflow).

  3. Может случиться так, что другое приложение использует Bluetooth и, таким образом, оно займет контроллер Bluetooth (в моем случае это был connman ). Ты можешь разблокировать его, сначала остановив подозрительное приложение, а затем запустив следующая команда rfkill разблокировать все :

      $ sudo rfkill list
    0: tpacpi_bluetooth_sw: Bluetooth
        Мягкая блокировка: нет
        Жестко заблокировано: нет
    1: hci0: Bluetooth
        Мягкая блокировка: да
        Жестко заблокировано: нет
    5: phy3: беспроводная локальная сеть
        Мягкая блокировка: нет
        Жестко заблокировано: нет
    $ sudo rfkill разблокировать все
    $ sudo rfkill список
    ...
    1: hci0: Bluetooth
        Мягкая блокировка: нет
        Жестко заблокировано: нет
    ...
      
  4. Как всегда, включение / выключение питания помогло в некоторых случаях 😀.

  5. Много информации о Bluetooth доступно на Arch Linux Wiki
Список литературы
Распиновка

HC-05, спецификации, техническое описание и подключение HC05 Arduino

Модуль

HC-05 Bluetooth — это преобразователь Bluetooth в последовательный порт, который соединяет микроконтроллеры (например, Arduino) с другими устройствами с поддержкой Bluetooth.Распиновка и технические характеристики HC-05 приведены ниже.

HC-05 Распиновка с описанием:

НОМЕР ПИН. Имя контакта Описание контакта
1. КЛЮЧ / EN Этот вывод используется для перевода модуля Bluetooth в режим AT-команд. По умолчанию этот вывод работает в режиме данных. Контакт Key / EN должен иметь высокий уровень для работы Bluetooth в командном режиме. В HC-05 скорость передачи данных по умолчанию в командном режиме составляет 38400 бит / с, а в режиме данных — 9600 бод.
2. VCC Используется для питания модуля Bluetooth. Подайте на этот вывод 5 В / 3,3 В.
3. ЗЕМЛЯ Вывод массы модуля
4. TXD Соедините этот вывод с выводом RXD микроконтроллера. Этот вывод передает последовательные данные (беспроводные сигналы, полученные модулем Bluetooth, преобразуются модулем и последовательно передаются на этот вывод)
5. RXD Подключите этот контакт к контакту TXD микроконтроллера. Модуль Bluetooth HC-05 получает данные с этого контакта и затем передает их по беспроводной сети.
6. ГОСУДАРСТВЕННЫЙ Используется для проверки, подключен модуль или нет. Он действует как индикатор состояния.

HC-05 Технические характеристики HC-05 Технические характеристики

** Источник изображения: Electrosome

  • Протокол Bluetooth: Спецификация Bluetooth v2.0 + EDR (повышенная скорость передачи данных)
  • Частота: Диапазон ISM 2,4 ГГц
  • Модуляция: GFSK (Гауссова частотная манипуляция)
  • Мощность излучения: ≤4 дБм, класс 2
  • Чувствительность: ≤-84 дБм при 0,1% BER
  • Скорость: Асинхронная связь: 2,1 Мбит / с (макс.) / 160 Кбит / с , Синхронная связь: 1 Мбит / с / 1 Мбит / с
  • Безопасность: аутентификация и шифрование
  • Профили
  • : последовательный порт Bluetooth
  • Напряжение питания: +3.От 3 В до 6,0 В
  • Ток питания: 30 мА
  • Рабочая температура: -20 ~ + 75 ° C
  • Размер: 26,9 мм x 13 мм x 2,2 мм
  • Модуль
  • HC-05 Bluetooth следует стандартизированному протоколу IEEE 802.15.1, с помощью которого можно построить беспроводную персональную сеть (PAN). Он использует радиотехнологию со скачкообразной перестройкой частоты (FHSS) для передачи данных по воздуху.

Модуль Bluetooth

HC-05 Лист данных:

HC-05 лист данных (страница 1)

HC-05 техническое описание скачать (страница 2)

Загрузите полное техническое описание по этой ссылке: HC-05 Datasheet

Введение в модуль Bluetooth HC-05

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

HC-05 Bluetooth Module

HC-05 — это модуль Bluetooth SPP (протокол последовательного порта), предназначенный для беспроводной связи. Он также может работать как ведущая или ведомая конфигурация.

Работа модуля Bluetooth HC-05 :

Bluetooth-модуль HC-05 может использоваться в двух режимах работы: командном режиме и режиме данных.

Командный режим:

В командном режиме мы можем связываться с модулем Bluetooth с помощью AT-команд для настройки различных настроек и параметров модуля. Сюда входит информация о прошивке, изменение скорости передачи данных, изменение имени модуля и т. Д. Мы также можем использовать его для установки HC-05 в качестве ведущего или ведомого. Чтобы выбрать любой из режимов, нам нужно активировать командный режим и отправить правильные AT-команды. Скорость передачи 38400 бит / с в командном режиме .

Режим данных:

В этом режиме модуль используется для связи с другими устройствами Bluetooth i.е. передача данных происходит в этом режиме. Обмен данными между устройствами. Скорость передачи 9600 бит / с в режиме данных.

Распиновка коммутационной платы HC-05: Распиновка платы HC-05

Имя PIN Штифт Тип Описание
ЗЕМЛЯ 13,21,22 VSS Земляной горшок
3.3 VCC 12 3,3 В Встроенный источник питания 3,3 В с выходом линейного регулятора на кристалле в пределах 3,15–3,3 В
AIO0 9 Двунаправленный Программируемая линия ввода / вывода
AIO1 10 Двунаправленный Программируемая линия ввода / вывода
AIO0 23 Двунаправленный RX EN Программируемая линия ввода / вывода, управляющий выход для LNA
AIO1 24 Двунаправленный TX EN Программируемая линия ввода / вывода, управляющий выход для PA
PIO2 25 Двунаправленный Программируемая линия ввода / вывода
PIO3 26 Двунаправленный Программируемая линия ввода / вывода
PIO4 27 Двунаправленный Программируемая линия ввода / вывода
PIO5 28 Двунаправленный Программируемая линия ввода / вывода
PIO6 29 Двунаправленный Программируемая линия ввода / вывода
PIO7 30 Двунаправленный Программируемая линия ввода / вывода
PIN08 31 Двунаправленный Программируемая линия ввода / вывода
PIO9 32 Двунаправленный Программируемая линия ввода / вывода
PIO10 33 Двунаправленный Программируемая линия ввода / вывода
PIO11 34 Двунаправленный Программируемая линия ввода / вывода
СБРОС 11 Вход CMOS со слабым внутренним подтягиванием Сброс низкого уровня.Дребезг на входе должен быть низким в течение> 5 мс, чтобы вызвать сброс
UART_RTS 4 Выход CMOS, тристабильный со слабым внутренним подтягиванием Запрос UART на отправку, активный низкий уровень
UART_CTS 3 Вход CMOS со слабым внутренним подтягиванием UART очищен для отправки, активный низкий уровень
UART_RX 2 Вход CMOS со слабым внутренним подтягиванием UART Ввод данных
UART_TX 1 Выход CMOS, тристабильный со слабым внутренним подтягиванием UART Вывод данных
SPI_MOSI 17 Вход CMOS со слабым внутренним подтягиванием Ввод данных последовательного периферийного интерфейса
SPI_CSB 16 Вход CMOS со слабым внутренним подтягиванием Выбор микросхемы для последовательного периферийного интерфейса, активный низкий уровень
SPI_CLK 19 Вход CMOS со слабым внутренним подтягиванием Часы последовательного периферийного интерфейса
SPI_MISO 18 Вход CMOS со слабым внутренним подтягиванием Вывод данных последовательного периферийного интерфейса
USB_- 15 Двунаправленный
USB_ + 20 Двунаправленный
NC 14
PCM_CLK 5 Двунаправленный Синхронные часы данных PCM
PCM_OUT 6 Выход CMOS Синхронный вывод данных PCM
PCM_IN 7 Вход CMOS Синхронный ввод данных PCM
PCM_SYNC 8 Двунаправленный Строб синхронных данных PCM

HC-05 Подключения Arduino: Подключение HC-05 к Arduino
  • Подключите светодиод к плате Arduino с помощью перемычек.
  • Подключите модуль Bluetooth (HC-05) к Arduino с помощью перемычек. Все остальные контакты, кроме первого и последнего, должны быть подключены к Arduino.
  • Земля HC-05 на землю Arduino.
  • Питание HC-05 до 3.3V Arduino.
  • Tx HC-05 к Rx Arduino.
  • Rx of HC-05 to Tx of Arduino.

** Полное руководство здесь: Светодиод с дистанционным управлением Arduino с использованием HC-05

Применение модуля Bluetooth HC-05:
  • Компьютеры и периферийные устройства
  • GPS-приемник
  • Промышленный контроль
  • Проекты MCU

Нравится:

Нравится Загрузка…

Связанные

HC-05 (ZS-040) Модуль Bluetooth — ProtoSupplies

Описание

HC-05 (ZS-040) представляет собой мостовой модуль последовательного интерфейса Bluetooth, который обеспечивает беспроводную связь между двумя микроконтроллерами или между микроконтроллером и телефоном Android, ноутбуком или настольным ПК с возможностью Bluetooth. HC-05 (ZS-040) может действовать как ведомое и ведущее устройство.

В ПАКЕТ:

  • HC-05 Модуль Bluetooth с основной платой ZS-040

ОСНОВНЫЕ ХАРАКТЕРИСТИКИ HC-05 BLUETOOTH С МОДУЛЕМ BASEBOARD ZS-040:

  • Bluetooth V2.0 Эксплуатация
  • ZS-040 Плинтус
  • Работает в режиме Master или Slave
  • 3.6-6V Мощность

Если вы знакомы с последовательной связью с Arduino или другим MCU, использование Bluetooth для установления беспроводной связи очень похоже. Bluetooth разработан для беспроводной связи точка-точка на короткие расстояния. Максимальный диапазон обычно составляет около 30 футов и может быть меньше в зависимости от препятствий.

Мощность

Модуль работает на 3.3 В внутри, но модуль содержит регулятор 3,3 В, поэтому на модуль необходимо подавать 3,6 — 6 В на его выводе Vcc. Поскольку модуль имеет напряжение 3,3 В, линия TX микроконтроллера, которая идет к контакту RX на модуле, должна иметь установленный переключатель уровня для понижения логического уровня до уровня 3,3 В, как показано в нашем примере ниже.

Режим связи

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

Режим AT

Модуль также может быть переведен в режим работы AT, когда он реагирует на команды низкого уровня.

Чтобы войти в режим AT, нажмите кнопку на модуле во время его включения, а затем отпустите кнопку. Светодиод будет медленно мигать, указывая на то, что он находится в режиме AT. Режим AT позволяет отправлять на устройство AT-команды низкого уровня. Обратите внимание, что модуль находится в ограниченном AT-режиме, и некоторые AT-команды не будут работать, если во время подачи команды не будет нажата кнопка.

Если режим работы AT будет таким, каким будет всегда использоваться модуль, модуль можно перевести в полный режим AT, подключив контакт EN к 3,3 В. Это то же самое, что постоянно нажимать на кнопку.

В режиме AT скорость последовательной связи по умолчанию составляет 38400 бод, но при желании ее можно изменить.

Светодиодный индикатор

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

При первом включении модуля он переходит в режим сопряжения Bluetooth.Светодиод на плате быстро мигает с частотой около 2 Гц, указывая на то, что он находится в режиме сопряжения. Если модуль сопряжен с устройством, светодиодная вспышка меняется на 2 быстрых мигания, за которыми следует пауза, а затем повторяется.

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

Соединения платы:

Заголовок 1 x 6

  • СОСТОЯНИЕ — Вывод состояния НИЗКИЙ, когда не спарен, и ВЫСОКИЙ, когда он спарен.
  • RXD — Прием данных подключается к TX на MCU.Используйте переключатель уровня при использовании MCU
  • на 5 В
  • TXD — Передача данных подключается к RX на MCU
  • GND — Земля
  • VCC — Входное напряжение. Должно быть между 3,6-6 В
  • EN — Включить режим AT. Этот вывод можно привязать к 3,3 В, если модуль всегда будет использоваться в режиме AT

Результаты нашей оценки:

Сдвиг уровня

Для быстрой базовой проверки вы можете подать 5 В и заземлить на модуль HC-05.Светодиод должен быстро мигать. Откройте меню Bluetooth на мобильном телефоне и выполните поиск устройств. Он должен найти HC-05. Введите пароль «1234», и он должен соединиться с устройством. Светодиод HC-5 начнет мигать медленнее, показывая, что сопряжение выполнено успешно.

В приведенном ниже примере мы покажем вам, как подключить Arduino к ПК с Windows 10 и обмениваться данными между ними с помощью Bluetooth. Использование телефона Android работает практически так же.

Он использует Softserial, чтобы позволить Arduino обмениваться данными с окном Serial Monitor через USB, а также обмениваться данными с модулем Bluetooth HC-05 через программный последовательный порт.Если вы используете Mega или другой MCU с более чем одним аппаратным последовательным портом, вы можете использовать второй аппаратный последовательный порт вместо Softserial.

При использовании микроконтроллера 5 В используйте преобразователь логического уровня или простую схему резисторного делителя, как показано здесь, чтобы сместить логический уровень вывода RX на HC-05 для совместимости с 3.3V HC-05.

Вам понадобится терминальная программа на ПК или телефоне, которая может обмениваться данными через Bluetooth. Я использую Bluetooth Serial Terminal на ПК и Blueterm на телефоне Android, но есть много бесплатных на выбор.

Подключите HC-05 к MCU. Контакты STATE и EN можно оставить отключенными.

MCU Модуль HC-05
5 В Vcc
ЗЕМЛЯ ЗЕМЛЯ
D10 TX
D11 RX — Используйте переключатель уровня при использовании MCU 5V

Загрузите следующее программное обеспечение в Arduino.Обратите внимание, что контакты D10 и D11 можно переназначить на любые другие два цифровых контакта, если необходимо, изменив SoftSerial (10,11) ; команда для отображения различных используемых выводов. Используемый вывод RX действительно должен поддерживать прерывания, чтобы быть совместимым с библиотекой SoftSerial.

HC-05 Программа тестирования модуля Bluetooth

 / * Простая программа для тестирования модуля Bluetooth HC-05 zs-40 путем сопряжения с ПК
 
Использует аппаратный последовательный порт для связи с главным компьютером и программный последовательный порт для
связь с модулем Bluetooth
 
Подключения
 Arduino 5V для модуля VCC
 Arduino GND к модулю GND
 Arduino D9 к модулю RX с использованием делителя напряжения
 Arduino D8 для модуля TX

 Когда команда вводится в серийный монитор на компьютере
 Arduino передаст его на модуль Bluetooth и отобразит результат в
 окно терминала Bluetooth и наоборот.Использует библиотеку Softserial.h
* /
#include < SoftwareSerial  .h>
  SoftwareSerial  SoftSerial (10, 11); // RX | Контакты TX. При необходимости можно переназначить на другие контакты
 
const long BAUDRATE = 9600; // Это скорость передачи данных по умолчанию для модуля HC-05
char c = ''; // Передаваемый символ
логическое NL = true; // Новая линия. True означает, что мы должны показать '>'
// ================================================ ===============================
// Инициализация
// ================================================ ===============================
установка void ()
{
 SoftSerial.начать (BAUDRATE); // Инициализируем программный серийный объект
  Серийный номер .begin (9600); // Инициализировать аппаратный последовательный порт
  Serial  .println («Тест начат - введите что-нибудь для отправки на компьютер или телефон Android»);
 SoftSerial.println («Тест запущен - введите что-нибудь для отправки в окно последовательного монитора»);
}
// ================================================ ===============================
//  Основной
// ================================================ ===============================
пустой цикл ()
{
 // Считываем из модуля Bluetooth и отправляем в последовательный монитор Arduino
 если (SoftSerial.имеется в наличии())
 {
 c = SoftSerial.read ();
  Серийный . Написать (c);
 }
 // Считываем из последовательного монитора и отправляем в модуль Bluetooth
 if ( Serial  .available ())
 {
 c =  Серийный  .read ();
 SoftSerial.write (c);
 
 // Выводит пользовательский ввод в главное окно. Символ «>» обозначает введенный пользователем текст.
 if (NL) { Serial  .print (">"); NL = ложь; }
  Серийный .написать (с);
 если (c == 10) NL = true; // char '10' - это символ новой строки
 }
 
}
 

Светодиод HC-05 должен мигать в режиме быстрой вспышки, что указывает на ожидание соединения.

Подключите HC-05 к устройству, с которым вы обмениваетесь данными. Модуль появится в списке Bluetooth как «HC-05». PIN-код / ​​пароль для подключения — «1234».

Чтобы выполнить сопряжение устройства в Windows 10, выполните следующие действия:

  • Откройте окно «Настройки» / «Устройства» / «Bluetooth и другие устройства».
  • Нажмите «+ Добавить Bluetooth или другое устройство» вверху окна.
  • Откроется окно «Добавить устройство». Выберите «Bluetooth».
  • ПК будет искать устройства Bluetooth для добавления. Если он не видит HC-05, отключите и снова подключите питание 5 В к модулю HC-05, чтобы убедиться, что он находится в режиме сопряжения и должен появиться в списке.
  • Выберите HC-05, и откроется окно для ввода PIN-кода для HC-05. Введите «1234» и выберите «Подключиться».
  • Через несколько секунд в окне должно появиться «Сопряжено», и вы готовы к работе.После успешного сопряжения светодиод на HC-05 переходит в режим двойной вспышки / паузы.

Окно сопряжения на ПК с Windows 10 выглядит следующим образом.

На последовательном терминале Bluetooth или в любой программе, которую вы используете на ПК или телефоне Android, убедитесь, что вы выбрали «Возврат каретки и перевод строки» для завершения линии.

Если HC-05 не отображается в списке доступных устройств, выберите «Обновить список». Выберите HC-05 и выберите «Подключить».

Если у вас возникли трудности с подключением к HC-05 с помощью ПК с Windows 10, вы можете найти ссылку , чтобы быть полезной.

На Arduino откройте окно последовательного монитора. Убедитесь, что для него также выбраны NL и CR, а скорость передачи установлена ​​на 9600.

Теперь вы можете вводить команды в последовательный терминал Bluetooth, и они будут отображаться в окне последовательного монитора Arduino или наоборот. Убедитесь, что вы вводите команды в верхних окнах. Отправляемые команды отображаются со знаком «>» перед ними.Полученные команды печатаются без символа «>», чтобы вы могли легко различать их.

На рисунке ниже показаны как последовательный терминал Bluetooth, так и окно последовательного монитора Arduino, где « abc » было набрано в окне последовательного терминала Bluetooth, а « def » — в окне последовательного монитора. Если вы зашли так далеко, вы успешно установили связь между Arduino и компьютером или телефоном с помощью Bluetooth.

 

Эти модули до отправки составляют:

  • Проверено
  • Базовая функциональность проверяется путем сопряжения устройства.
  • Упакован в закрывающийся антистатический пакет для защиты и удобства хранения.

Примечания:

  1. Нет

Технические характеристики

Эксплуатационные характеристики
Скорость передачи Нормальный режим связи 9600 (по умолчанию)
Режим AT 38400 (по умолчанию)
Vcc 3.6 — 6В
I тип Сопряжение 45 мА
I тип Парный, холостой ход <8 мА
Размеры Д x Ш (печатная плата) 37 мм x 16 мм (1,46 x 0,63 дюйма)
Листы данных CSR BC417 Чип Bluetooth

Дополнительная литература

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

.

Arduino и модуль Bluetooth HC-05 • AranaCorp

Теги: Arduino, Bluetooth, C / C ++, Программирование, Последовательная связь

Arduino может связываться с другими устройствами через Bluetooth с помощью модуля HC-05 (master / slave). Он позволяет Arduino подключаться и обмениваться данными с другими устройствами, такими как смартфон, компьютер или другие микроконтроллеры. Связь по Bluetooth может использоваться для удаленного управления роботом, отображения и хранения данных, например, на вашем компьютере или смартфоне.

Предварительное условие: Последовательная связь Arduino

Материал

  • Компьютер
  • Arduino UNO x2
  • USB-кабель
  • Bluetooth-модуль HC-05 ZS-040 x2 (или 1x HC-05 и 1x HC-06)
  • Кабели Dupont M / F

Обзор модуля HC-05

Модуль Bluetooth HC-05 имеет 6 контактов, 2 для питания, 2 для установления соединения, 1 для входа в режим конфигурации, а другой для определения состояния соединения.

  • Источник питания VCC.Обычно подключается к выводу 5V Arduino.
  • GND земля. Обычно подключается к контакту GND приемного контакта Arduino
  • RX. Обычно подключается к контакту передачи (TX) контакта передачи Arduino
  • TX. Обычно подключен к приемному контакту (RX) Arduino
  • . Состояние ВЫСОКОЕ, когда модуль подключен.
  • Ключ ou EN должен быть установлен на ВЫСОКИЙ (3,3 В) для входа в режим конфигурации и должен быть отключен для входа в режим связи.

Особенностью HC-05 является то, что он может использоваться как подчиненный модуль (эквивалент HC-06) и как главный модуль, что означает, что он может самостоятельно подключаться к другому устройству.

Схема конфигурации


ВНИМАНИЕ:

  • Мы используем контакты 2 и 3 Arduino Uno. В зависимости от микроконтроллера некоторые выводы могут не поддерживать связь через SoftwareSerial. Особенно Arduino Mega, Micro и Leonardo. Проверить документацию.
  • Поскольку модуль Bluetooth использует логику 3,3 В, рекомендуется добавить делитель напряжения для уменьшения напряжения 5 В от Arduino. (резистор 1 кОм между контактом 3 и Rx; 2 кОм между Rx и GND).

Конфигурация модуля HC-05

Настройка модуля HC-05 может быть интересной для проверки его работы, правильности подключения и изменения его параметров, таких как его имя (полезно, когда вы используете несколько модулей), PIN-код и скорость связи (скорость передачи). Особенно, если вы хотите использовать его как мастер-модуль. Чтобы разрешить настройку, модуль HC-05 должен быть запитан, но не спарен, а вывод KEY / EN должен быть установлен на HIGH перед включением модуля.В режиме конфигурации светодиод будет мигать две секунды каждые две секунды.

Откройте монитор последовательного порта и выберите опцию конечной линии «Новая строка» и скорость передачи 9600.

Обратите внимание, что HC-05 входит в режим настройки со скоростью 38400 бит / с.

Код конфигурации

Следующий код позволяет изменять и проверять параметры с помощью последовательного монитора и AT-команд.

 #include < SoftwareSerial  .h>
#define rxPin 2
#define txPin 3
#define baudrate 38400

String msg;

  SoftwareSerial  hc05 (rxPin, txPin);

void setup () {
  pinMode (rxPin, ВХОД);
  pinMode (txPin, ВЫХОД);
  
    Серийный .begin (9600);
    Серийный номер  .println ("ENTER AT Commands:");
  hc05.begin (скорость передачи);
}

void loop () {
    readSerialPort ();
    если (сообщение! = "") hc05.println (сообщение);
    
    if (hc05.available ()> 0) {
        Серийный  .write (hc05.read ());
    }
}

void readSerialPort () {
  msg = "";
 while ( Serial  .available ()) {
   задержка (10);
   if ( Serial  .available ()> 0) {
     char c =  Серийный  .read (); // получает один байт из последовательного буфера
     msg + = c; // делает строку readString
   }
 }
}

 

AT-команды

По сравнению с модулем HC-06, HC-05 может использоваться в качестве ведущего модуля, и вы также можете проверять сохраненные параметры с помощью AT-команд.

В общем, набрав команду AT + ? запросит сохраненный параметр (например: AT + PSWD? Отобразит PIN-код модуля). Если вы введете AT + = , вы можете установить значение параметра (например: AT + PWSD = 0000, чтобы изменить PIN-код на 0000).

Вот некоторые из AT-команд:

  • Чтобы проверить связь, введите AT в последовательном мониторе Arduino IDE. Если все настроено правильно, должно отображаться ОК.
  • Чтобы изменить имя модуля, введите AT + NAME = . Модуль должен ответить OK (Defaut HC-05, Ex: Чтобы изменить имя на BTM1, введите AT + NAME = BTM1).
  • Чтобы изменить PIN-код, введите AT + PSWD = . Модуль должен ответить ОК (по умолчанию 1234 Пример: Чтобы изменить PIN-код на 0000, введите AT + PSWD = 0000).
  • AT + ROLE = до середины роли модуля как ведомого или ведущего (по умолчанию 0, например: для изменения роли ведущего введите AT + ROLE = 1, как ведомого введите AT + ROLE = 0) .
  • Чтобы изменить скорость передачи, введите AT + UART = , , с параметрами последовательной связи Param1, 2 и 3: скорость передачи, стоповый бит и бит четности соответственно (по умолчанию установлено значение 9600 , 0,0. Пример: для изменения скорости передачи до 115200 введите AT + UART = 115200,0,0).

Для модуля Bluetooth HC-05 существуют другие AT-команды, которые вы можете найти по ссылке.

ВНИМАНИЕ: Существуют разные версии модуля HC-05, и процедура настройки может отличаться.Обязательно проверьте этикетку модуля и версию прошивки перед использованием. Для этого урока мы использовали модуль HC-05 с маркировкой ZS-040 и версию прошивки 2.0-20100601.

Примечание: если модуль не отвечает, проверьте проводку, проводимость кабелей и скорость передачи.

Не стесняйтесь оставлять комментарии или обращаться к нам, если у вас есть проблемы с настройкой вашего модуля HC-05.

Конфигурация ведомого

Чтобы установить модуль в качестве ведомого, вы можете изменить имя как AT + NAME = HC05-Slave и выбрать параметры связи и PIN-код, который вы хотите.Вам необходимо убедиться, что у ведущего и ведомого устройства одинаковые параметры связи.

  • AT возвращает OK
  • AT + NAME = HC05-Slave
  • AT + UART = 9600,0,0
  • AT + ROLE = 0
  • Введите AT + ADDR, чтобы получить адрес модуля (например: + ADDR: 98d3 : 32: 21450e)

В качестве подчиненного модуля можно также использовать модуль HC-06

Основная конфигурация

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

  • AT возвращает OK
  • AT + NAME = HC05-Master
  • AT + UART = 9600,0,0
  • AT + ROLE = 1
  • Адрес подчиненного модуля должен быть введен в главный модуль, чтобы он мог работать : AT + BIND = 98d3,32,21450e (заменить точки «:» на запятую «,»)

Схема для связи

В режиме связи контакт Key / EN не подключен.

Код связи

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

Используем ту же библиотеку SoftwareSerial.h, что и для модуля HC-06:

  • SoftwareSerial hc05 (Rx, Tx) для определения контактов последовательного порта
  • hc05.begin () для определения скорости передачи (значение должно быть таким же, как у вашего модуля)
  • hc05.available () для проверки наличия данных имеется в буфере модуля
  • hc05.read () для чтения данных по одному байту за раз
  • hc05.print () для отправки строки в форме ASCII
  • hc05.write () для передачи данных по одному байту за раз

Мастер-код

 #include < SoftwareSerial  .h>

  SoftwareSerial  ArduinoSlave (2,3);
Строковый ответ;
String msg;

void setup () {

    Серийный номер .begin (9600);
    Серийный номер  .println («ENTER Commands:»);
  ArduinoSlave.begin (9600);
                
}

void loop () {
  // Считываем команду с монитора
  readSerialPort ();
  
  // Чтение ответа от ведомого
   в то время как (ArduinoSlave.имеется в наличии()) {
   задержка (10);
   if (ArduinoSlave.available ()> 0) {
     char c = ArduinoSlave.read (); // получает один байт из последовательного буфера
     ответ + = c; // делает строку readString
   }
 }
  // Отправляем данные ведомому
  if (msg! = "") {
      Серийный номер  .print ("Мастер отправил:");
      Серийный номер  .println (msg);
    ArduinoSlave.print (сообщение);
    msg = "";
  }
  // Отправляем ответ на монитор
  if (answer! = "") {
      Серийный номер  .print («Подчиненный получен:»);
      Серийный  .println (ответ);
    answer = "";
  }
}

void readSerialPort () {
 а ( серийный .имеется в наличии()) {
   задержка (10);
   if ( Serial  .available ()> 0) {
     char c =  Серийный  .read (); // получает один байт из последовательного буфера
     msg + = c; // делает строку readString
   }
 }
   Серийный номер  .flush ();
}

 

Ведомый код

 #include < SoftwareSerial  .h>

  SoftwareSerial  ArduinoMaster (2,3);
String msg;

void setup () {
    Серийный номер .begin (9600);
  ArduinoMaster.begin (9600);
}

void loop () {
  readSerialPort ();
  
  // Отправляем ответ мастеру
  if (msg! = "") {
      Серийный .print ("Мастер отправил:");
      Серийный номер  .println (msg);
    ArduinoMaster.print (сообщение);
    msg = "";
  }
}

void readSerialPort () {
 while (ArduinoMaster.available ()) {
   задержка (10);
   if (ArduinoMaster.available ()> 0) {
     char c = ArduinoMaster.read (); // получает один байт из последовательного буфера
     msg + = c; // делает строку readString
   }
 }
 ArduinoMaster.flush ();
}

 

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

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

Приложение

Источник

Найдите другие примеры и руководства в нашем автоматическом генераторе кода
Code Architect

Получение связи модулей Bluetooth друг с другом — Zak’s Electronics Blog ~ *

Прежде чем мы начнем, обратите внимание, что большинство устройств Apple не поддерживают профиль виртуального последовательного канала, который используют эти модули.

Действительно простой способ сделать ваши проекты беспроводными — это использовать последовательные модули Bluetooth, эти модули принимают стандартные последовательные данные и прозрачно передают их через Bluetooth на другой подключенный модуль Bluetooth, дополнительный код не требуется.

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

Что вам нужно знать
Bluetooth работает при наличии ведомого и ведущего. Подчиненные модули не могут инициировать соединение с другим устройством Bluetooth, но могут принимать соединения, ведущий может быть установлен в режим ведущего или ведомого, в режиме ведущего модуль может инициировать соединение с другими устройствами. Убедитесь, что не совершили ошибку, купив 2 раба, как я! 2 мастера или 1 мастер и 1 подчиненный — это то, что вам нужно.
Иногда продавцы eBay не предоставляют много информации о своем модуле, чтобы узнать, является ли он подчиненным или главным, проверьте следующее:

Раб Мастер
Количество контактов 4 6
Прошивка Линвор 1.5 или HC06 HC05

Ведущие модули (~ 8 фунтов стерлингов) обычно немного дороже, чем подчиненные модули (~ 6 фунтов стерлингов).

Модули состоят из 2 частей, задней панели и основной платы Bluetooth. Основная часть модуля Bluetooth рассчитана на 3,3 В, плата задней панели имеет встроенный регулятор 3,3 В, поэтому подача 5 В для питания в порядке, но нет преобразования уровня для последовательных данных, вам, вероятно, не нужно level преобразует выходные данные (TXD), поскольку большинство контроллеров 5V видят 3.3 В, но для последовательного входа (RXD) требуется преобразование, делитель напряжения или резистор и стабилитрон сделают эту работу.

Разделитель стабилитрон

Подключение
Для настройки модулей вам понадобится преобразователь USB в последовательный, поищите CP2102 на eBay или DealExtreme, и вы сможете найти их менее чем за 2 фунта стерлингов, я бы рекомендовал вам получить 2, чтобы вы могли иметь ведомое устройство и ведущее устройство одновременно подключены к вашему компьютеру, убедитесь, что хотя бы один из конвертеров имеет 3.3В на выходе, а также на 5В на выходе.

Подключите последовательный преобразователь и модули Bluetooth следующим образом:

Модуль Преобразователь
VCC 5 В
ЗЕМЛЯ ЗЕМЛЯ
TXD RXD
RXD TXD

Последовательные преобразователи обычно используют сигнализацию 3,3 В для последовательного интерфейса, поэтому преобразование уровня не требуется.
Вам понадобится программа для последовательной консоли, я использую RealTerm.

Настройка
Подчиненный
Подчиненный модуль можно настроить, когда к нему не подключены другие устройства BT, скорость передачи по умолчанию — 9600, без контроля четности, 8 бит данных, 1 стоповый бит. После того, как вы откроете COM-порт на последовательной консоли, введите AT , модуль должен ответить OK .
Время отправки символов важно, если вы набираете слишком медленно, модуль не распознает команду, он будет рассматривать ее как две отдельные команды A и T, вероятно, лучше всего скопировать и вставить.
Чтобы проверить прошивку, скопируйте и вставьте AT + VERSION , и он должен ответить OKLinvor1.5 .

Установить PIN-код:
AT + PIN1234

Для подчиненных модулей доступно всего несколько команд —

Команда Информация
AT + BAUD <настройка> Установить скорость передачи
1 — 1200
2 — 2400
3 — 4800
4 — 9600
5 — 19200
6 — 38400
7 — 57600
8 — 115200
9 — 230400
A — 460800
B — 0
C — 1382400
AT + ИМЯ <имя> Имя — не более 20 символов.
AT + PIN <номер> ПИН — 4-х значный номер

Мастер (и мастер как подчиненный)
Настройка мастера немного отличается от подчиненного, есть 2 способа перевести модуль в режим AT:

Метод 1

  • Выключить модуль
  • Подсоедините ключевой штифт на модуле к 3.3В на последовательном преобразователе
  • Включить модуль

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

Метод 2

  • Включить модуль
  • Подключите ключевой штифт на модуле к 3,3 В на последовательном преобразователе

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

Быстрая проверка
Время выполнения команд не имеет значения для главных модулей, вместо этого вам нужно заканчивать каждую команду, нажимая клавишу ввода (\ r \ n), иногда ответ будет постоянно повторяться, повторное нажатие Enter приведет к прекрати это.
Ввод AT должен вернуть OK , ввести AT + VERSION? должен вернуть что-то похожее на + ВЕРСИЯ: 2.0-20100601

Главный как подчиненный
Если у вас 2 мастера, вам понадобится один, работающий как подчиненный, что не так уж сложно:

Сброс до значений по умолчанию:
AT + ORGL

Очистить все сопряженные устройства:
AT + RMAAD

Установить PIN-код:
AT + PSWD = 1234

Ведомый режим:
AT + ROLE = 0

Получите адрес устройства:
AT + ADDR?
Теперь, когда у вас есть адрес, вы можете пропустить AT + INQ и AT + RNAME? деталей для настройки мастера.

Выключите модуль, отключите ключ от 3,3В и снова включите.

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

Сброс до значений по умолчанию:
AT + ORGL

Очистить все сопряженные устройства:
AT + RMAAD

Главный режим:
AT + ROLE = 1

Необходим перезапуск после смены роли:
AT + RESET

Разрешить подключение к любому адресу:
AT + CMODE = 1

Режим запроса — Стандартный, остановка после обнаружения 5 устройств, (или) остановка поиска через 5 секунд:
AT + INQM = 0,5,5

Установить PIN-код, должен быть таким же, как у ведомого:
AT + PSWD = 1234

Запустите библиотеку профиля SPP (необходимо для передачи / приема Bluetooth):
AT + INIT
Примечание. Если отображается ошибка : (17) , значит, он уже загружен, можно продолжать.

Начать поиск:
AT + INQ

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

Формат вывода следующий:
+ INQ: адрес, тип, сигнал

Тип можно игнорировать. Сигнал будет 7FFF, так как запрос находится в стандартном режиме, в режиме RSSI вы получите одно и то же устройство, но с разными уровнями сигнала, которые вам сейчас не нужны.

Скопируйте адресную часть найденных устройств, например 12: 3: 289431 , и замените двоеточия запятыми — 12,3,289431 .Чтобы узнать, какое устройство является подчиненным модулем, вам нужно будет запросить у каждого адреса его имя:
AT + RNAME? <адрес>

Замените <адрес> на адрес устройства, например, 12,3,289431

Ответ должен быть + RNAME: linvor , если вы используете обычный подчиненный модуль, или + RNAME: HC05 , если вы используете главный модуль в качестве подчиненного.

Теперь у вас есть адрес подчиненного модуля, который необходимо связать с ним:
AT + PAIR = <адрес>, <тайм-аут>
Примечание. Если вы собираетесь подключить мастер-устройство к вашему телефону, необходимо установить время ожидания, достаточное для ввода PIN-кода.

Адрес привязки:
AT + BIND = <адрес>

Разрешить подключение только к привязанному адресу:
AT + CMODE = 0

А теперь собственно подключение:
AT + LINK = <адрес>

В случае успеха светодиод ведомого устройства должен гореть постоянным светом, а светодиод ведущего устройства должен мигать.

Теперь модули настроены! Они должны автоматически подключаться друг к другу, когда это возможно.

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

Отправка данных
Теперь, если вы вошли в режим AT на главном модуле, подключив ключ к 3,3 В перед включением модуля , вам нужно будет выключить модуль, отсоединить ключ и снова включить.

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

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