Hc 06 bluetooth подключение. Что такое bluetooth-модуль? Подключение со смартфона с помощью Bluetooth Terminal

Пока готовится небольшой, но довольно сложный обзор, я решил немного отвлечься и написать про Bluetooth-UART модуль.
Относительно недавно я делал серию обзоров, посвященную одному из основных приборов радиолюбителя, лабораторному блоку питания. Когда уже писался обзор USB-RS232 адаптера, то я уже собирался на этом и закончить. Но потом подумал, а зачем в 21 веке использовать провода для управления блоком питания. Продолжение об этом эксперименте читайте под катом.

Как я выше написал, во время работы над последним обзором из серии посвященной лабораторному блоку питания



И косвенно
я решил было уже закрыть эту тему, но потом подумал, а зачем мне лишний кабель на рабочем столе. Нет, если устройство установлено стационарно, то кабель куда лучше, дешевле, надежнее и т.п. но если блок питания я использую относительно редко (по крайней мере гораздо реже паяльника, например), то лишний кабель, который к тому же может попасть под тот же паяльник, мне совсем будет неудобен.
Подумал и заказал платку Bluetooth адаптера.

Но будем последовательны.
Платка была заказана 26 июня, 28 числа пришло уведомление, что продавец отправил мою посылку, а уже 29 она начала отслеживаться, на мой взгляд очень оперативно. 11 июля я получил свою посылку на почте, на мой взгляд довольно оперативно. Правда после этого она месяц лежала у меня нетронутой, не было времени ею заниматься, но вот недавно у меня наконец то дошли руки поэкспериментировать с ней.
Пришла она в беленьком конвертике (уже так привык к желтым, что было даже непривычно).

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

Сам модуль представляет собой небольшую платку, которая по сути является переходником, на который установлена плата именно Bluetooth приемо-передатчика. На обратной стороне есть маркировка назначения контактов. Все так же в минималистическом стиле, Питание, общий, прием, передача.

С лицевой стороны видно сам Bluetooth и плату-адаптер, на которую он установлен. На этой плате установлен стабилизатор питания (сам Bluetooth модуль питается от 3.3 Вольта) и светодиод индикации установки связи (при установленной связи светит непрерывно, при отсутствии моргает). В принципе ничего не мешает использовать Bluetooth модуль отдельно от платы-адаптера (есть в продаже и в таком исполнении), но мне так было удобнее.

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

У устройства есть 2 режима, активный и спящий, с низким потреблением.
В спящий режим устройство автоматически переходит через 5 секунд неактивности, просыпается при поступлении любой команды.
В рабочем режиме потребление от 5 Вольт чуть больше, чем 20мА.

В спящем режиме чуть больше чем 4мА. Думаю, что в этом режиме, больше половины это светодиод и стабилизатор 3.3, если их исключить, то ток будет еще меньше.

После этого я соединил контакты RX и TX модуля между собой и проверил наличие эха в терминале (я использую Putty). Связь проходит без проблем, Проверил дальность, в пределах комнаты работает, если для кого то важно, то могу проверить на большей дистанции, но проверка не будет объективной, так как дальность зависит и от Bluetooth адаптера в компьютере.

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

Система команд модулей (не всех, так как система команд зависит от прошивки, есть HC-05 и Linor), У прошивки HC-05 (модули HC-03/HC-05) одни команды (их много), у прошивки Linvor (модули HC-04/HC-06) другие команды (всего три AT-команды). Также, различна методика работы с AT-командами.

Кстати, при отправке команды модулю, надо ее отсылать целиком, т.е. сначала набрать всю команду, потом отослать, иначе модуль команду не воспримет. Я сначала попробовал это делать при помощи терминала от Bray, получилось без проблем, но было не очень удобно.

Полазив по инету еще, вылез на с довольно удобной программой конфигурирования этих модулей.
Подключил модуль через .
Все завелось без проблем, кстати по умолчанию настройки модуля стандартные для многих устройств - 9600,n,8,1
Из программы я узнал, что модуль мой с версией прошивки 1.8, хорошо это или плохо я не знаю, пишу просто для информирования, вдруг кому-то будет полезно.

Сразу переименовал мой модуль, назвав его по имени , в который я собирался его устанавливать.
В общем открыл блок питания, отключил уже установленный адаптер COM-USB, подключил четыре проводка, запустил программу работы с блоком питания, и тут ОБЛОМ. :((((
Программа не видит мой блок питания, при том, что эхо проходит без проблем.
Потыкавшись и так и эдак я выяснил, что команда от программы в блок питания приходит, мало того, даже блок питания отвечает, но родная программа в упор не видит ответа от БП.
Расстроился я сильно, и решил использовать такой бонус как Звонок другу.
Мой товарищ работает программистом, и мы иногда делаем некоторые проекты в паре, я аппаратную часть, он программную.
И здесь он меня удивил, так как оказалось, что он, почитав мой обзор блока питания, решил сам написать программу для управления этим БП, но как полагается, с блэкджеком и «девушками», а точнее с графиками, большими индикаторами, возможностью добавления режимов заряда аккумуляторов с корректным окончанием заряда, ведением логов и т.п…
А самое интересное было то, что дла того, что бы легче было писать программу для работы с БП, он написал Эмулятор этого БП.
Т.е. он почитав систему команд БП, сделал виртуальный БП. Типичный подход программиста, напомнило - CPU not found! Press any key to emulation. :)))
Но самым удивительным было то, что с этой программой Bluetooth заработал без проблем.
Т.е. так случайно получилось, что программа, написанная в процессе работы с эмулятором БП, работает лучше, чем родная от производителя.
Ниже скриншоты программы, это пока тестовые версии, еще без довесков, но уже подающие признаки жизни, а самое главное, корректно работающие с Bluetooth адаптером (с ЮСБ так же работает без проблем).
По скриншотам видно, что программа еще сыровата. График автомасштабируется, потому при 12 Вольт он показывает максимум.



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

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

Резюме.
Адаптер работает без проблем, нареканий или замечаний нет, пробовал оставить на сутки, ничего не виснет, не греется. Не могу судить насчет потребляемого тока, меня более чем устроило, как и дальность работы. Цена вполне адекватная.
Минусов пока не обнаружил.

В дальнейших планах допиливание ПО (хотя это скорее в планах программиста), а я хочу доработать плату адаптера COM-USB так, что бы можно было использовать оба варианта подключения (естественно не одновременно) и что бы это переключение переходило автоматически. Теоретически, сигналы от модулей можно развязать банальными диодными развязками, но руки до этого еще не дошли.

На всякий случай для конфигурирования этих модулей.

P.S. Кто-то скажет, что лабораторный блок питания с управлением по Bluetooth это блажь, по своему он будет прав. Но блоком питания я пользуюсь не часто и он не всегда стоит на столе, а лишний провод только мешает, а так можно вообще поставить его в другом углу комнаты, включить например зарядку аккумулятора и периодически поглядывать на состояние процесса не вставая из-за рабочего стола. На мой взгляд довольно удобно.

Надеюсь мой обзор будет кому нибудь полезен.

Вместо котика.

Планирую купить +56 Добавить в избранное Обзор понравился +78 +144

Ищете простой способ беспроводного дистанционного управления вашим устройством с помощью bluetooth? Воспользуйтесь bluetooth-модулем HC-06.

Со стороны управляемого устройства, такого как Arduino , этот модуль выглядит как обычный последовательный интерфейс. Поэтому вы можете отладить всё общение с устройством на компьютере, а потом просто подключить этот bluetooth-модуль, и всё заработает как надо.

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

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

Рабочее напряжение этого bluetooth-модуля - 3,3 В, но его входы толерантны к 5 В, поэтому он совместим со всеми платами Arduino .

Подключение

Контакты модуля можно соединить с макетной платой или Arduino проводами «мама-папа» . А с Troyka Shield через провода «мама-мама» .

Подключение стандартное для устройств, подключающихся по последовательному интерфейсу:

  • Контакт RX модуля подключается к контакту TX целевого устройства
  • Контакт TX модуля подключается к контакту RX целевого устройства

Настройки

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

Bluetooth-модуль HC-06 может выступать только в slave-режиме. Это означает, что он не может самостоятельно подключаться к другим Bluetooth-устройствам.

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

В комплект не входят провода. Для подключения к управляющей электронике используйте макетные провода с разъёмами «мама» на стороне модуля или

1 Описание модуля bluetooth HC-06

Существует большое количество реализаций модулей Bluetooth. Каждая имеет свои особенности, но в общем и целом они все очень похожи. Рассмотрим представителя bluetooth модуля семейства HC-06 , который можно приобрести по отличной цене на этом сайте .

Данный модуль работает на частоте от 2,40 ГГц до 2,48 ГГц и поддерживает спецификацию bluetooth версии 2.1+EDR: пониженное потребление энергии, повышенный уровень защиты данных и лёгкое соединение Bluetooth-устройств. Устойчивый приём с модулем гарантирован в пределах 10 метров.

Назначение выводов bluetooth-модуля такое:

Последние два вывода могут быть не задействованы; часто можно встретить модули вообще без этих выводов.

2 Схема подключения bluetooth-модуля к Arduino

Подключим bluetooth модуль к Arduino по приведённой схеме. Обратите внимание, что передатчик (Tx) Ардуино подключается к приёмнику (Rx) модуля, и наоборот.


На выводе Status появляется высокий уровень, когда модуль сопряжён с другим bluetooth устройством, и низкий - когда не сопряжён. Можно считывать его значение, подключив к пину Arduino и назначив ему режим работы pinMode(pinStatus, INPUT) и таким образом узнавать состояние модуля. Но не на всех модулях индикатор статуса работает корректно, поэтому мы не будем его использовать в данном примере.

В результате должно получиться примерно как на фотографии.


3 Скетч для Arduino для работы по bluetooth

Напишем такой скетч и загрузим в память Arduino:

Const int ledPin = 13; // вывод встроенного светодиода char incomingbyte; // переменная для данных Bluetooth void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { if (Serial.available() > 0) { // если порт доступен incomingbyte = Serial.read(); // считываем с порта данные switch(incomingbyte) { case "1": // если приходит "1" digitalWrite(ledPin, HIGH); // break; case "0": // если приходит "0" digitalWrite(ledPin, LOW); // break; } } }

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

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

Теперь нужно добавить bluetooth-устройство в список доверенных устройств. Включаем Bluetooth на компьютере, идём в Параметры Устройства Bluetooth .

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

Убеждаемся, что наш bluetooth-модуль виден компьютеру. Выбираем его из списка и нажимаем кнопку Связать . В диалоговое окно вводим пароль по умолчанию 1234 . При успешном добавлении устройство появится в списке с пометкой Сопряжено .


Пароль по умолчанию для конкретного модуля может отличаться от "1234". Эту информацию должен предоставить изготовитель (продавец) модуля.

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

5 Подключаемся к bluetooth-модулю по bluetooth с компьютера

Для подключения к bluetooth модулю можно использовать различные программы, которые могут подключаться к COM-порту. Например, такие как HyperTerminal, PuTTY, Tera Term, Termite и другие. Они все бесплатные и свободно распространяются в интернете.

Удобство программы TeraTerm в том, что она автоматически выводит список COM-портов, которые назначены модулю bluetooth вашего компьютера. Запускаем программу, выбираем подключение Serial, из списка выбираем соответствующий bluetooth COM-порт, нажимаем OK.


Программа PuTTY при запуске также спрашивает номер порта (COM4, у вас будет свой), скорость подключения (9600), тип соединения (Serial). Затем нажимаем кнопку Соединиться .


В случае ошибки при подключении программа выведет соответствующее оповещение. Если соединение вашего компьютера с bluetooth-модулем произошло успешно, то вы увидите перед собой поле терминала. Введите с клавиатуры в это поле число 1 - и светодиод на 13 выводе Arduino загорится, введите 0 - погаснет.

6 Подключение со смартфона с помощью Bluetooth Terminal

Аналогично можно подключиться к модулю bluetooth со смартфона. Скачайте приложение для работы с bluetooth по терминалу, например Bluetooth Terminal . Подключайтесь к модулю и вводите команды 0 или 1.

Таким образом, мы научились подключаться по bluetooth к Arduino и передавать ему данные.

Bluetooth модуль HC-05 подключается по шине UART и способен выполнять AT-команды. AT-команда это строка начинающаяся с букв «AT» (от английского at tention - «внимание»). Модуль выполняет поступившую команду и отправляет обратно ответ (результат выполнения команды), который также является строкой. В Bluetooth модулях HC-05 каждая команда (как и ответ) должна заканчиваться символами перевода строки «\r\n».

Подключение:

  • Управлять Bluetooth модулем HC-05 можно либо с компьютера, либо через микроконтроллер, например, Arduino . Вывод RX модуля подключается к выводу TX, а вывод TX модуля подключается к выводу RX того устройства с которого он будет управляться.
  • Для подключения модуля к компьютеру (без микроконтроллеров) потребуется адаптер USB-UART , или адаптер RS232-UART , или программатор с выводами TX RX, вместо адаптера USB-UART можно использовать плату Arduino , как описано в статье . Для отправки команд в модуль потребуется установить программу терминал. Одним из таких терминалов является свободно распространяемая программа Termite с поддержкой Русского языка.
  • Для подключения модуля к Arduino можно воспользоваться аппаратной или программной шиной UART. При использовании аппаратной шины, модуль подключается к выводам TX и RX указанным на плате. При использовании программной шины, модуль подключается к назначаемым выводам TX и RX Arduino .

Настройка:

Модуль Bluetooth HC-05 сможет принимать команды только если правильно настроены следующие параметры последовательного порта:

  • Номер порта: Его можно узнать экспериментально, отключите адаптер или Arduino , посмотрите какие порты доступны. Подключите адаптер или Arduino и вновь посмотрите какие порты доступны. Появившийся порт и есть тот самый.
  • Скорость передачи данных: В обычном режиме, Bluetooth модуль HC-05 сохраняет последнюю установленную скорость передачи данных, но по умолчанию она равна 38400 бит/сек (редко 9600 бит/сек). Если обе скорости не подойдут, то смотрите примечание в конце статьи.
  • Параметры передачи данных: Модуль сохраняет последние установленные параметры передачи данных. Значения параметров по умолчанию: количество бит в пакете - 8, размер стопового бита = 1, без проверки чётности.
  • Передаваемый текст: Нужно установить пункт «добавлять символы CR & LF(NL)» это символы перевода строки «\r\n» которые Вы не сможете ставить самостоятельно в конце AT-команд.

Для настройки этих параметров в программе Termite , нажмите на кнопку «Настройки» (Settings). В том же окне можно установить Русский язык.

При использовании Arduino , номер порта указывается во вкладке «Инструменты». Параметры передачи данных используются по умолчанию. Для добавления символов NL & CR воспользуйтесь меню в правом нижнем углу монитора последовательного порта.

Проверка:

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

Для проверки связи с Bluetooth модулем отправьте тестовую команду AT (введите текст AT и нажмите Enter). Если связь установлена корректно, то модуль ответит OK . После этого можно отправлять остальные AT-команды.

AT-команды:

Если в программе терминал указано добавлять символы CR & LF или NL & CR то символы «\r\n» в командах ставить не нужно!
Команды могут быть обычными: AT+КОМАНДА\r\n , запросами: AT+КОМАНДА?\r\n , или установками: AT+КОМАНДА=ПАРАМЕТР(Ы)\r\n .

AT-команда: Ответ: Назначение:
AT AT \r\n OK\r\n Команда Тест:
Используется для проверки связи с модулем.
RESET AT+RESET \r\n OK\r\n Команда программной перезагрузки модуля:
Модуль ведёт себя так, как после кратковременного отключения питания.
VERSION AT+VERSION? \r\n +VERSION:ВЕРСИЯ \r\n
OK\r\n
Запрос версии прошивки модуля:
Модуль возвращает версию в виде строки до 32 байт.
Пример ответа: +VERSION:hc01.comV2.1\r\n OK\r\n
AT+ORGL AT+ORGL \r\n OK\r\n Сброс пользовательских настроек:
Модуль сбрасывает следующие настройки:
CLASS=0, IAC=9e8b33, ROLE=0, CMODE=0, UART=38400,0,0, PSWD=1234, NAME=hc01.com.
ADDR AT+ADDR? \r\n +ADDR:АДРЕС \r\n
OK\r\n
Запрос адреса модуля:
Модуль возвращает три части своего адреса NAP:UAP:LAP разделённые двоеточием.
Каждая часть состоит из шестнадцатиричных цифр.
Пример ответа: +ADDR:1234:56:789ABC\r\n OK\r\n
NAME AT+NAME? \r\n +NAME:ИМЯ \r\n
OK\r\n
Запрос / установка имени модуля:
Имя модуля представлено строкой до 32 байт.
Пример ответа: +NAME:iArduino\r\n OK\r\n
Пример установки: AT+NAME=iArduino\r\n
Некоторые модули реагируют на команду AT+NAME?\r\n только при нажатой кнопке модуля или наличии высокого уровня на входе K.
AT+NAME= ИМЯ\r\n OK\r\n
RNAME AT+RNAME? АДРЕС\r\n +RNAME:ИМЯ \r\n
OK\r\n
Запрос имени найденного Bluetooth устройства:
Адрес вводится после пробела, а части адреса (NAP,UAP,LAP) разделены запятой. Модуль возвращает имя найденного Bluetooth устройства находящегося в зоне действия, адрес которого был в запросе.
Пример запроса: AT+NAME? 1234,56,789ABC\r\n
Пример ответа: +RNAME:iArduino\r\n OK\r\n
ROLE AT+ROLE? \r\n +ROLE:РОЛЬ \r\n
OK\r\n
Запрос / установка роли модуля:
Роль модуля представлена цифрой:
0 - ведомый, 1 - ведущий, 2 - ведомый в цикле*.
Пример ответа: +ROLE:1\r\n
Пример установки: AT+ROLE=0\r\n
AT+ROLE= РОЛЬ\r\n OK\r\n
CLASS AT+CLASS? \r\n +CLASS:ТИП \r\n
OK\r\n
Запрос / установка типа устройства:
Тип устройства представляется 32 битным числом, по которому можно определить назначение модуля: Bluetooth клавиатура, Bluetooth мышь, гарнитура...
Пример установки: AT+CLASS=0\r\n
AT+CLASS= ТИП\r\n OK\r\n
IAC AT+IAC? \r\n +IAC:КОД \r\n OK\r\n Запрос / Установка кода общего доступа GIAC:
Код представлен 32 битным числом и используется для обнаружения Bluetooth устройств.
В роли ведущего, по данному коду модуль будет получать доступ к другим Bluetooth устройствам для их поиска (опроса), а в роли ведомого по данному коду будет предоставляться доступ для опроса модуля другими ведущими.
Пример ответа: +IAC:9e8b33\r\n OK\r\n
Пример установки: AT+IAC=9e8b33\r\n
AT+IAC= КОД\r\n OK\r\n
или
FAIL\r\n
INQM AT+INQM? \r\n +INQM:РЕЖИМ ,КОЛ ,ВРЕМЯ \r\n
OK\r\n
Запрос / Установка режима опроса модулей:
Используемые параметры являются настройками для команды поиска (опроса) других Bluetooth устройств.
- Режим поиска представлен цифрой:
0-стандартный, 1-поиск по интенсивности сигнала.
- Количество представлено цифрой определяющей предельное количество найденных Bluetooth устройств, после которого требуется прекратить поиск.
- Время поиска задаёт таймаут после которого поиск прекращается. Реальное время поиска в секундах равно указанному числу умноженному на 1,28.
Пример ответа: +INQM:1,1,48\r\n OK\r\n
Пример установки: AT+INQM:1,1,48\r\n
AT+INQM= РЕЖИМ,КОЛ,ВРЕМЯ\r\n OK\r\n
или
FAIL\r\n
PSWD AT+PSWD? \r\n +PSWD:КОД \r\n
OK\r\n
Запрос / Установка PIN-кода:
Код доступа представлен строкой до 16 байт.
Код модуля в роли ведомого устройства является паролем доступа к текущему модулю.
Код модуля в роли ведущего устройства является паролем доступа к внешним Bluetooth устройствам.
Пример ответа: +PSWD:1234\r\n OK\r\n
Пример установки: AT+PSWD=1234arduino\r\n
AT+PSWD= КОД\r\n OK\r\n
UART AT+UART? \r\n +UART:СКОР ,СТОП ,ПРОВ \r\n
OK\r\n
Запрос / установка скорости UART:
Скорость представлена числом бит/сек
Стоп бит представлен цифрой: 0 - один, 1 - два
Проверка представлена цифрой: 0 - без проверки,
1 - проверка нечётности, 2 - проверка чётности.
Пример ответа: +UART:38400,0,0\r\n OK\r\n
Пример установки: AT+UART=38400,0,0\r\n
AT+UART= СКОР,СТОП,ПРОВ\r\n OK\r\n
CMODE AT+CMODE? \r\n +CMOD:РЕЖИМ \r\n
OK\r\n
Запрос / установка режима подключения:
Режим представлен цифрой:
0 - модуль в роли ведущего подключается только к тому Bluetooth устройству, адрес которого указан командой AT+BIND.
1 - модуль в роли ведущего подключается к любому ведомому Bluetooth устройству.
2 - модуль в роли ведомого работает в цикле*
Пример ответа: +CMOD:0\r\n OK\r\n
Пример установки: AT+CMOD=1\r\n
AT+CMODE= РЕЖИМ\r\n OK\r\n
BIND AT+BIND? \r\n +BIND:АДРЕС \r\n
OK\r\n
Запрос / установка фиксированного адреса:
Если модуль находится в роли ведущего (ROLE=1) и установлен режим подключения к фиксированному адресу (CMODE=0), то он будет подключаться только к тому Bluetooth устройству, адрес которого указан данной командой.
Части адреса вводятся: при установке - через запятую, а при ответе - через двоеточие.
Пример ответа: +BIND:1234:56:789ABC\r\n OK\r\n
Пример установки: AT+BIND=0,0,0\r\n
AT+BIND= АДРЕС\r\n OK\r\n
POLAR AT+POLAR? \r\n +POLAR:ЛОГ ,ЛОГ \r\n
OK\r\n
Запрос / установка активного логического уровня для включения светодиодов:
Полярность представлена цифрой 0 или 1 соответствующей активному логическому уровню.
Первый параметр указывает логический уровень для включения светодиода подключённого к выводу PIO8 (отображает режим работы), а второй для светодиода подключённого к выводу PIO9 (отображает статус соединения).
Пример ответа: +POLAR:1,1\r\n OK\r\n
Пример установки: AT+POLAR=1,1\r\n
AT+POLAR= ЛОГ,ЛОГ\r\n OK\r\n
PIO AT+PIO= НОМЕР,УРОВЕНЬ\r\n OK\r\n Установка логического уровня PIO:
Позволяет установить логический уровень на выводе PIO. Номер вывода представлен числом от 2 до 11, кроме 8 и 9. Уровень представлен цифрой 0 или 1.
Пример установки: AT+PIO=11,0\r\n
MPIO AT+MPIO? \r\n +MPIO:ЧИСЛО \r\n
OK\r\n
Запрос / установка логических уровней PIO:
Позволяет узнать или установить логические уровни сразу на всех выводах PIO.
Уровни представлены шестнадцатиричным числом, каждый бит которого соответствует уровню вывода PIO.
Пример ответа: +MPIO:1F0\r\n OK\r\n
Пример установки: AT+MPIO:CFC\r\n
AT+MPIO= ЧИСЛО\r\n OK\r\n
IPSCAN AT+IPSCAN? \r\n +IPSCAN:А ,Б ,В ,Г \r\n
OK\r\n
Запрос / установка параметров IP сканирования:
А - интервал сканирования
Б - продолжительность сканирования
В - интервал страниц
Г - количество страниц
Пример ответа: +IPSCAN:1024,512,1024,512\r\n OK\r\n
Пример установки: AT+IPSCAN:1024,512,1024,512\r\n
AT+IPSCAN= А,Б,В,Г\r\n OK\r\n
SNIFF AT+SNIFF? \r\n +SNIFF:А ,Б ,В ,Г \r\n
OK\r\n
Запрос / установка параметров энергосберегающего режима:
А - максимальное время
Б - минимальное время
В - период повторов
Г - таймаут
Пример ответа: +SNIFF:0,0,0,0\r\n OK\r\n
Пример установки: AT+SNIFF=0,0,0,0\r\n
AT+SNIFF= А,Б,В,Г\r\n OK\r\n
ENSNIFF AT+ENSNIFF= АДРЕС\r\n OK\r\n Переход в энергосберегающий режим:

Пример команды: AT+ENSNIFF=1234,56,789ABC\r\n
EXSNIFF AT+EXSNIFF= АДРЕС\r\n OK\r\n Выход из энергосберегающего режима:
Части адреса вводятся через запятую (NAP,UAP,LAP)
Пример команды: AT+EXSNIFF=1234,56,789ABC\r\n
SENM AT+SENM? \r\n +SENM:СЕКРЕТ ,ШИФР \r\n
OK\r\n
Запрос / установка параметров безопасности:
Режим секретности представлен цифрой:
0 - выключен
1 - незащищённое соединение
2 - защита на сервисном уровне
3 - защита на уровне соединения
4 - неизвестный режим
Режим шифрования представлен цифрой:
0 - без шифрования
1 - шифруется только трафик PTP
2 - шифруется весь трафик
Пример ответа: +SENM:0,0\r\n OK\r\n
Пример установки: AT+SENM:0,0\r\n
AT+SENM= СЕКРЕТ,ШИФР\r\n OK\r\n
PMSAD AT+PMSAD= АДРЕС\r\n OK\r\n Удаление устройства из списка пар:
Удаление Bluetooth устройства из списка приведёт к необходимости заново образовывать пару для подключения к нему.
Части адреса удаляемого устройства вводится через запятую (NAP,UAP,LAP)
Пример команды: AT+PMSAD=1234,56,789ABC\r\n
RMAAD AT+RMAAD \r\n OK\r\n Удаление всех устройств из списка пар:
Очистка данного списка приведёт к необходимости заново образовывать пары с Bluetooth устройствами для подключения к ним.
FSAD AT+FSAD= АДРЕС\r\n OK\r\n
или
FAIL\r\n
Поиск устройства в списке пар:
Если Bluetooth устройство с указанным адресом имеется в списке, то модуль вернёт OK\r\n иначе FAIL\r\n .
Части адреса вводятся через запятую (NAP,UAP,LAP)
Пример запроса: AT+FSAD=1234,56,789ABC\r\n
ADCN AT+ADCN? \r\n +ADCN:КОЛИЧЕСТВО \r\n
OK\r\n
Запрос количества устройств в списке пар:
При образовании пары ведущий-ведомый, данные о паре автоматически попадают в список пар и для последующих подключений (даже после отключения питания) не требуется повторно устанавливать пару.
Пример ответа: +ADCN:10\r\n OK\r\n
MRAD AT+MRAD? \r\n +MRAD:АДРЕС \r\n
OK\r\n
Запрос адреса устройства из списка пар:
Модуль вернёт адрес Bluetooth устройства из списка пар с которым выполнялось последнее успешное соединение.
Части адреса выводятся через двоеточие (NAP:UAP:LAP)
Пример ответа: +MRAD:1234:56:789ABC\r\n OK\r\n
STATE AT+STATE? \r\n +STATE:СТАТУС \r\n
OK\r\n
Запрос статуса модуля:
Модуль вернёт свое текущее состояние в виде строки:
INITIALIZED - инициализация
READY - готов
PAIRABLE - образование пары
PAIRED - пара образована
INQUIRING - запрос
CONNECTING - подключение
CONNECTED - подключён
DISCONNECTED - отсоединён
NUKNOW - неизвестное состояние
Пример ответа: +STATE:CONNECTED\r\n OK\r\n
INIT AT+INIT \r\n OK\r\n
или
FAIL\r\n
Инициализация профиля SPP:
Профиль SPP эмулирует последовательный порт.
INQ AT+INQ \r\n +INQ:АДРЕС,ТИП,СИГНАЛ\r\n
+INQ:АДРЕС,ТИП,СИГНАЛ\r\n
...
+INQ:АДРЕС,ТИП,СИГНАЛ\r\n
Поиск (опрос) Bluetooth устройств:

Модуль ищет Bluetooth устройства в радиусе действия и выводит каждый найденный модуль на новой строке. Режим поиска (опроса) устанавливается командой AT+INQM, код опроса устанавливается командой AT+IAC, тип искомых устройств указывается командой AT+CLASS. Поиск завершается по достижении предельного количества найденных Bluetooth устройств, или по достижении таймаута, или командой AT+INQC.
Пример ответа: +INQ:1234:56:789ABС,240404,7FFF
INQC AT+INQC \r\n OK\r\n Завершить поиск (опрос) Bluetooth устройств:
Досрочно завершает поиск Bluetooth устройств инициированный командой AT+INQ
PAIR AT+PAIR= АДРЕС,ТАЙМАУТ\r\n OK\r\n
или
FAIL\r\n
Создать пару с Bluetooth устройством:
Создание пары или сопряжение Bluetooth устройств инициируется ведущим устройством.
Таймаут указывается десятичным числом в секундах.
Если пара создана, то информация о ней автоматически запишется в список пар, модуль ответит OK\r\n после чего можно подключить Bluetooth устройство командой AT+LINK. Если пара не создана (например не подошёл PIN-код или истек таймаут), то модуль ответит FAIL\r\n .
Пример команды: AT+PAIR=1234,56,789ABC,10\r\n
LINK AT+LINK= АДРЕС\r\n OK\r\n
или
FAIL\r\n
Подключиться к Bluetooth устройству:
После выполнения данной команды можно общаться с подключённым Bluetooth устройством.
Команда доступна модулю в роли ведущего.
Пример команды: AT+LINK=1234,56,789ABC\r\n
DISC AT+DISC \r\n +DISC:РЕЗУЛЬТАТ \r\n
OK\r\n
Отключиться от Bluetooth устройства:
Команда указывает модулю отключиться от Bluetooth устройства с которым установлено соединение. После отключения от Bluetooth устройства информация о нём сохраняется в списке пар. Если потребуется вновь подключиться к этому устройству, то создание пары будет необязательно (если Bluetooth устройство намеренно не удалить из списка пар).
После выполнения команды модуль ответит результатом её выполнения:
SUCCESS - успех
LINK_LOSS - соединение потеряно
NO_SLC - отсутствует SLC
TIMEOUT - истекло время ожидания
ERROR - ошибка
Пример ответа: +DISC:SUCCESS\r\n OK\r\n

* Ведомый в цикле - это ведомая роль модуля в которой он отправляет обратно всё что получает от ведущего.
** На некоторые команды модуль реагирует только при нажатой кнопке модуля или наличии высокого уровня на выводе K.

Описание ошибок выдаваемых модулем:

Если отправить команду, которую модуль не знает, не может выполнить, или у команды неправильные аргументы, то модуль вернёт строку «ERROR:(НОМЕР )», где по указанному шестнадцатиричному номеру можно определить, на что «ругается» модуль.

№ ошибки Описание ошибки
0 Неправильная AT команда (нет такой команды)
1 Результат по умолчанию
2 Ошибка сохранения пароля
3 Слишком длинное имя устройства (более 32 байт)
4 Имя устройства не указано
5 Часть адреса NAP слишком длинная (более 4 разрядов в шестнадцатиричной системе)
6 Часть адреса UAP слишком длинная (более 2 разрядов в шестнадцатиричной системе)
7 Часть адреса LAP слишком длинная (более 6 разрядов в шестнадцатиричной системе)
8 Не указана маска порта PIO
9 Не указан номер вывода PIO
A Не указан тип (класс) устройства
B Слишком длинный тип (класс) устройства
C Не указан общий код доступа IAC (Inquire Access Code)
D Слишком длинный общий код доступа IAC (Inquire Access Code)
E Недопустимый общий код доступа IAC (Inquire Access Code)
F Не указан пароль (или пароль пуст)
10 Слишком длинный пароль (более 16 байт)
11 Недопустимая роль модуля
12 Недопустимая скорость передачи данных
13 Недопустимый размер стоп-бита
14 Недопустимая настройка бита четности
15 Устройство отсутствует в списке пар (списке сопряжённых Bluetooth устройств)
16 Профиль последовательного порта (SPP, Serial Port Profile) не инициализирован
17 Повторная инициализация профиля SPP (SPP, Serial Port Profile)
18 Недопустимый режим опроса Bluetooth устройств
19 Слишком большое время опроса
1A Не указан адрес Bluetooth устройства
1B Недопустимый режим безопасности (секретности)
1C Недопустимый режим шифрования

Примечание:

Если нажать на кнопку или подать высокий уровень на вход K непосредственно в момент включения модуля (подачи питания), то модуль перейдёт в режим AT-команд. В этом режиме модуль не соединится с другими модулями, но у этого режима фиксированная скорость = 38400 бит/сек. Если при настройке, в обычном режиме работы модуля, Вы не смогли определить скорость модуля, то можно войти в данный режим и установить новую скорость. Вновь установленная скорость вступит в силу только в обычном режиме, для этого потребуется перезагрузить модуль не удерживая кнопку и не подавая высокий уровень на вход K в момент включения. Помните, что в обычном режиме, не раньше чем через пол секунды после подачи питания (или перезагрузки) нужно кратковременно нажать на кнопку или подать кратковременный высокий уровень на вход K модуля, иначе он не будет воспринимать AT-команды.

Если Вы хотите иметь возможность «нажимать» на кнопку программно, но у Вашего модуля нет вывода K, воспользуйтесь командой AT+PIO=11,УРОВЕНЬ \r\n, где уровень представляется цифрой 1 или 0 соответствующий устанавливаемому логическому уровню. (AT+PIO=11,0 \r\n - кнопка отпущена, AT+PIO=11,1 \r\n - кнопка нажата).

У некоторых модулей есть вывод En который управляет питанием и подтянут к Vcc. Если на вывод En подать низкий логический уровень, то отключится питание чипов. Данный вывод можно использовать для программного входа в режим AT-команд. Если сразу после снятия низкого уровня с вывода En подать команду AT+PIO=11,1\r\n это будет эквивалентно включению модуля с нажатой кнопкой.

Создание ведомого ожидающего подключения ведущего:

  • AT+DISC
  • AT+ORGL
  • AT+RMAAD \r\n - Очистить список пар (авторизованных устройств) чтоб к модулю не подключился тот кого отсоединили.
  • AT+NAME= iArduino\r\n - Установить имя модуля (не более 32 символов).
  • AT+PSWD= 1234\r\n - Установить PIN-код для подключения к модулю (не более 16 символов).
  • AT+ROLE=0 \r\n - Установить модулю роль ведомого (если она не установилась при сбросе пользовательских настроек).
  • AT+RESET \r\n - Перезагрузить модуль.

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

Если модуль с ведущей ролью подключается к ведомым модулям по их адресу, а не через их имя, то адрес данного (ведомого) модуля можно узнать выполнив команду AT+ADDR?\r\n .

Создание ведущего с подключением к ведомому:

  • AT+DISC \r\n - Разорвать соединение (на случай если модуль соединён).
  • AT+ORGL \r\n - Сбросить пользовательские настройки в значения по умолчанию.
  • AT+RMAAD \r\n - Очистить список пар (авторизованных устройств) чтоб к модуль не пытался подключился к тому от кого отсоединили.
  • AT+BIND= АДРЕС\r\n - Установить фиксированный адрес для подключения (указываем адрес ведомого Bluetooth устройства)
  • AT+CMODE=0 \r\n - Указываем модулю подключаться только к фиксированному адресу
  • AT+ROLE=1 \r\n - Установить модулю роль ведущего устройства
  • AT+PSWD= 1234\r\n - Запомнить PIN-код ведомого Bluetooth устройства
  • AT+PAIR= АДРЕС,10\r\n - Образовать пару с ведомым Bluetooth устройством, указав его адрес и таймаут 10 сек
  • .

Блютуз свисток для компьютера: http://ali.pub/2jfj3y

Для начала давайте разберемся что такое блютуз.

Bluetooth (от слов англ. blue - синий и tooth - зуб; произносится /bluːtuːθ/ ), блюту́с - производственная спецификация беспроводных персональных сетей (Wireless personal area network, WPAN ). Bluetooth обеспечивает обмен информацией между такими устройствами, как персональные компьютеры (настольные, карманные, ноутбуки), мобильные телефоны, принтеры, цифровые фотоаппараты, мышки, клавиатуры, джойстики, наушники, гарнитуры на надёжной, бесплатной, повсеместно доступной радиочастоте для ближней связи. Bluetooth позволяет этим устройствам сообщаться, когда они находятся в радиусе до 10 м друг от друга (дальность сильно зависит от преград и помех), даже в разных помещениях.

Теперь зная что блютуз служит для построения сетей и обмена данными между устройствами, мы будем его использовать для соединения между собой CNC (ЧПУ) станка и компьютера или телефона или планшета и ноутбука.

Так как я использую прошивку grbl на платформе arduino для управления ЧПУ, то и подключать будем к станку блютуз модуль подходящий для arduino, а именно блютуз модуль HC-06.

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

Если вы используете прошивку grbl 0.8, то ничего менять не нужно, но если grbl 0.9 и выше, то скорость COM порта ардуино станет 115200, а по умолчанию на модуле скорость 9600.

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

Для настройки Bluetooth-модулей существуют специальные АТ-команды , с помощью которых мы можем устанавливать необходимые параметры модуля.

AT-командами мы можем изменить скорость COM порта или изменить название Bluetooth устройства или узнать или поменять пин код для сопряжения.

Для того чтоб подключить блютуз модуль к компьютеру для ввода AT-команд нам понадобится программаторFTDI ссылка на него в начале статьи. Схема подключения я думаю тут ненужна. Подключать нужно gnd к gnd, 5в к 5в, rx к tx и tx к rx.

После подключения нам понадобится программа HMComAssistant для ввода AT команд и программирования нашего модуля. Скачать: https://yadi.sk/d/eVzPmnh63Wab5R

Ну и здесь я приведу некоторые AT-команды для изменения настроек блютуз модуля:

АТ-команда Ответ модуля Комментарий
AT ОК Используется для проверки связи, как правило перед выполнением любых операций сперва используется данная команда для проверки связи.
AT+BAUD1 OK или OK1200 Устанавливает скорость передачи данных в 1200 бод
AT+BAUD2 OK или OK2400 Устанавливает скорость передачи данных в 2400 бод
AT+BAUD3 OK или OK4800 Устанавливает скорость передачи данных в 4800 бод
AT+BAUD4 OK или OK9600 Устанавливает скорость передачи данных в 9600 бод
AT+BAUD5 OK или OK19200 Устанавливает скорость передачи данных в 19200 бод
AT+BAUD6 OK или OK38400 Устанавливает скорость передачи данных в 38400 бод
AT+BAUD7 OK или OK57600 Устанавливает скорость передачи данных в 57600 бод
AT+BAUD8 OK или OK115200 Устанавливает скорость передачи данных в 115200 бод
AT+BAUD9 OK или OK230400 Устанавливает скорость передачи данных в 230400 бод
AT+BAUDA OK или OK460800 Устанавливает скорость передачи данных в 460800 бод
AT+BAUDB OK или OK921600 Устанавливает скорость передачи данных в 921600 бод
AT+BAUDC OK или OK1382400 Устанавливает скорость передачи данных в 1382400 бод
AT+NAME +NAME=test Возвращает текущее имя модуля
AT+NAMEiarduino_BLU +NAME=test OK Устанавливает новое имя модуля “test“
AT+PIN +PIN=000000 Возвращает текущий пароль, в данном случае пароль “000000”
AT+PIN123456 +PIN=123456 OK Устанавливаем новый пароль, в данном случае пароль “123456”
AT+VERSION +VERSION=Firmware V3.0.6,Bluetooth V4.0 LE Возвращает версию прошивки, в данном случае пароль “Firmware V3.0.6,Bluetooth V4.0 LE”
AT+RESET +RESET OK
AT+HELP ——– Возвращает список всех доступных АТ-команд

После изменения скорости ком порта и установки пин кода для сопряжения. (по умолчанию пин код для сопряжения “1234”, давайте подключим модуль к ардуино.

И так как я использую CNC shield v 3.0. То и схему подключения приведу к нему.

Я не буду создавать свою схему, а возьму с одной статьи. Да простит меня ее создатель.

Схема конечно не очень ровная, но на мой взгляд довольно понятная.

Итак для чего в схеме используются резисторы? Ардуино имеет 5 вольтовую логику, это значит, что на все выходы свои ардуино посылает напряжение 5В. Но на модуле написано LEVEL 3.3v это значит что Блютуз требует 3.3В, но никак не 5в. Поэтому и подключаются резисторы, чтобы понизить напряжение и предотвратить выход из строя блютуз модуль.

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

Для управления CNC (ЧПУ) станком с телефона или планшета я использовал программу “Grbl controller” она бесплатная и довольно многофункциональная. В видео приведенном ниже я мельком показывал как управляется станочек с этой программы.

Но если вы будете подключаться с компьютера, то тут есть нюанс, при сопряжении соединения с модулем, в устройствах появится два новых COM порта. У меня это COM6 и COM7. Так вот один из них служит для отправки данных, а другой для приема. Поэтому ненужно пугаться и просто попробовать подключиться к одному если ничего не произойдет то подключитесь к другому.

Но если что-то непонятно, но наглядно я это показал в видео: