Настройка HC-06
После подачи питания на модуль, светодиод начнет бодро мигать:
Переход в режим AT-команд
Сразу после подачи питания модуль HC-06 автоматически переходит в режим AT-команд. При этом скорость обмена с модулем по-умолчанию будет равна 9600. Заходим в терминал, подключаемся к bluetooth устройству, указываем правильную скорость и вводим команду: AT
В ответ, модуль нам должен сказать: OK
Следующая команда запросит у модуля его версию: AT+VERSION
Получаем что-то вроде такого: VERSION:3.0-20170609
Получилось? Если нет, то проверяем:
- Правильная ли выбрана скорость в терминале? Нужно именно 9600
- Если используется программный USB-UART: следует проверить строку: BTSerial.begin(9600) — должно быть 9600. При этом в терминале должна стоять скорость из строки Serial.begin(9600).
- Настройки символа перевода строки: не забываем про CR+LF!
- Нажимаем ли после каждой команды Enter? Мало ли…
Примечание. Есть и другой способ перехода в режим AT-команд, он эквивалентен методу для модуля HC-05: соединяем контакт KEY с питанием 3,3 В и подключаем модуль к компьютеру. Светодиод в этом случае начнет мигать медленно — две секунды горит/ две секунды не горит.
Полезные команды
У ведомого Bluetooth модуля HC-06 есть множество команд, которые помогут прочитать текущие настройки и изменить их в случае необходимости. Рассмотрим некоторые их них, которые чаще всего бывают нужны в повседневной работе.
1. Уже знакомая нам команда AT+VERSION вернет версию прошивки.
2. Пароль для сопряжения с модулем. Чтобы узнать текущий пароль, пишем: AT+PSWD
Ответ может быть таким: +PIN:»1234″
Для установки нового пароля вводим команду: AT+PSWD:»<пароль>». Пример: AT+PSWD:»4321″
В других версиях прошивки: AT+PIN4321, AT+PSWD=4321
3. Скорость обмена по UART. Для выяснения текущей скорости используем команду: AT+UART
Ответ: +UART:9600,0,0
Если нужно изменить скорость: AT+UART=<скорость>,<стоп бит>,<проверка четности>
Здесь <скорость> — скорость в бодах: 1200, 2400, 4800, 9600 (по-умолчанию), 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1382400. <стоп бит> = 0 (по-умолчанию) — один бит, 1 — два бита. <проверка четности> = 0 (по-умолчанию) — без проверки, 1- проверка нечетности, 2 — проверка четности.
Пример команды: AT+UART=19200,0,0
4. Имя устройства. Узнать текущее имя можно командой: AT+NAME?
Задать новое имя: AT+NAME=<имя>. Например, для смены имени пишем: AT+NAME=robotclass
5. Адрес модуля можно узнать командой: AT+ADDR?
Ответ: +ADDR:98D3:41:F95119
6. Сброс всех настроек: AT+ORGL
Примечание. Надо отметить, что набор команд и даже их формат зависит от версии прошивки модуля. Например, в старой версии прошивки имя модуля нужно было менять так: AT+NAMErobotclass, а в свежей версии это делается через знак равно: AT+NAME=robotclass. То же самое с командой скорости: раньше было AT+BAUD, а теперь AT+UART. Команды на запрос параметров ранее могут передаваться с вопросительным знаком в конце: AT+NAME?. А команда для работы с паролем AT+PSWD вообще имеет три версии. Список команд для одной из старых версий прошивки: HC-06 V1-2.
Все сделал как написано, но ЛЕД на модуле все равно продолжает быстро мигать не переходя в АТ режим… в чем дело?
Нужно приконектится с мобилки, Включить прогу «terminal bluetoth», и ей приконектится к модульчику. Тампочка сразу начинает мигать,.. длинный пропуск, короткие два мигания…
**** А еще, кнопочка «EN», она подает 3,6 вольта через делитель напряжения на платке..
Выдернув питание, прижав кнопку, и подав питание снова, модуль моргает мЕЕЕдленно. Это похоже и есть тот режим, пронраммирования модуля.
Я пака свою беду не победил. Есть много подозрений, одна, что уровни 3.6 не видит комп, через микруху (как ее, не помню), котора соединяет МК с RS-232 на МК.
…воюем дальше.
У меня тоже не работало. Во первых поменял подключение каналов зеркально(подключил rx-tx и tx-rx) и перебирая скорости поставил 38400. и сразу заработало.
Эти контакты надо включать зеркально всегда tx -прием сигнала rx выход сигнала
Здравствуйте! Почему модуль тройка bluetooth hc-05 может быть не видима ни для компьютера, ни для телефона? Модуль соединяю с Arduino Uno, K — 3.3В, V — 5В, G-Gnd, RX — TX, TX-RX. При подключении Ардуино через USB к компьютеру на модуле мигает светодиод ‘mode’ в режиме 2с/2с
В АТ режиме пропиши «AT+CLASS?»
если там 0 или 1 то пропиши «AT+CLASS:7936»
после на AT+CLASS? должен ответить +CLASS:1f00
Модуль на вид HC-05, все ножки в круговую припаяны. есть вход KEY, его и включаю на 3.3В на ардуино.
А кнопка есть? Можно попробовать зажать кнопку, подать питание, отпустить кнопку
А почему в делителе напряжений резисторы на 47к и 10к? Ведь тогда при напряжении 5В с ардуино на блютуз пойдёт 0,8В???
Андрей, спасибо за замечание! Опечатка:) Исправлено.
Вам спасибо, за статью 🙂
Автор будь внимателен , будет время ,поставлю 4.7 k ,про верю отпишусь 😉
Леонид, будь уважителен, автор в 100 раз больше пользы сделал на этой странице
Здравствуйте!
У кого есть этот модуль HC-06, замерьте и подскажите пожалуйста, что это диод или стабилитрон или еще что, который идет от плюсовой ноги (черная) видел на фото на нем было написано «B2», дело в том что пришло мне это чудо, долго не мог понять почему не работает, оказывается не хватает этой детали!
Кто разбирается подскажите что это и его номинал?
Спасибо!
Если через эту деталь идёт питание, то скорее всего это диод — защита от переплюсовки. Можно поставить любой. В прямом направлении. Или заменить перемычкой
Диод от переплюсовки нельзя заменить перемычкой.
Но если очень нужно, то можно)
Здравствуйте!
У меня задача стоит передать MIDI команды без проводов. Это UART со скоростью 31 250 бит в сек. Возможно ли это осуществить на данных модулях? Меня смущает скорость, необходимо передавать именно со скорость 31250.
Спасибо.
Модуль устойчиво работает на скорости 115200, а максимум установлен вообще на уровне 1382400.
сделал всё по аналогии, подключаюсь к hc-06, лед горит непрерывно (статус коннект), но при посылке любых команд ничего не происходит 🙁
не подскажите, в чем проблема?
Команды должны заканчиваться комбинацией 0х13 0х10. Скорее всего нет символа конца строки и он считает что команда не завершена.
Неправильно! В конце AT-команды комбинация символов такая: 0x0d 0x0a
скетч:
#include
int gLedPin = 13;
int gRxPin = 10;
int gTxPin = 11;
SoftwareSerial BTSerial(gRxPin, gTxPin);
void setup() {
BTSerial.begin(9600);
Serial.begin(9600);
delay(500);
}
void loop() {
if (BTSerial.available()) {
Serial.write(BTSerial.read());
}
if (Serial.available()) {
BTSerial.write(Serial.read());
}
}
Пробовали ли Вы подключать, например, к HC-5 (в режиме мастер) другие устройства. Например, гарнитуру, или пульсометр?
Доброго времени суток! Вопрос, при отправки команды «АТ» на BT не могу распознать ответ от него, т.к. приходит в формате «xxxx⸮», может кто сталкивался.
разобрался, проблема была в разности скоростях «BTSerial.begin» и «Serial.begin».
Спасибо за статью. Остались вопросы:
1. Зачем кнопка на модуле?
2. Что выдается на ноге STATE?
3. Как управлять модулем с ноги EN?
Спасибо за ответы…
Кнопка соединяется к контактом KEY. С помощью неё можно переходить в режим настройки.
STATE — это контакт, который отвечает за светодиод состояния. Можно подключить STATE к Ардуино и проверять, например, есть ли соединение в данный момент.
EN переключает модуль в активное состояние. По-умолчанию модуль активен, так что можно не трогать этот контакт.
1. Кнопку необходимо удерживать, чтобы проходили команды? Или достаточно нажать и отпустить?
2. А на выводе STATE будет также мигание 2 раза в секунду или 1 раз в две секунды как и светодиод состояния?
3. Какой уровень надо подать на EN чтобы отключить модуль?
Извините за въедливость мою… хочу поэкспериментировать и прикинуть где и как это может пригодиться. Спасибо…
Кнопка привязана к контакту KEY, так что пользуйтесь ей как описано в статье.
STATE привязан к светодиоду, соответственно полностью повторяет его поведение.
Про EN не подскажу, на самом чипе такого пина вообще не предусмотрено. Кто-то пишет, что он вообще может быть никуда не подключен. Вам стоит проверить, подать на него высокий и низкий уровень.
Спасибо
почему при компиляции скетча из п4 выходит exit status 1
Ошибка компиляции.?
потому что в скетче ошибка. Комментарий в ардуине начинается с //, а не с #
подскажите, пожалуйста, все сделал как надо:подключил на KEY, светодиод моргал раз в две секунди, но команды АТ не принимаются. не знаю что делать дальше. помогите!
Проверьте все скорости обмена. Для разных вариантов входа в режим AT команд, будет разная скорость обмена с модулем — 9600 или 38400.
Если не получается, попробуйте скорость 115200
нужно получать отладочные данные с ком порта приличной кучи ардуин но ноут с 2303 прожигателем таскать не удобно. смотрю на телефон и этот блютус. хочу узнать. этот модуль может передавать данные с ком порта сам если просто подключить рх тх и питание? его можно настраивать с телефона? или нужна еще ардуинка как переходник с юарта нужного устройства на юарт блютуза? вроде как по логике модуль должен передавать все что на него приходит по юарту кроме команд настройки.
Если вы умеете с телефона передавать данные по UART, то контроллер не нужен. Максимум, что может потребоваться, это согласовать уровни напряжения 3.3В — 5В. Настройки модуля тоже делаются через UART с помощью AT Команд.
Привет всем. Попался мне тут Bluetooth-модуль BT-20 на чипе BC212 от CSR. Стоит задача поднять на нём виртуальный COM-порт (режим ведомого, чтобы на смарте/ноуте появлялся виртуальный ком-порт при подключении к модулю). Поиск документации на сей модуль и чип особого успеха не принёс. Как я понимаю, конфигурация и общение с модулем со стороны микроконтроллера ведётся с помощью АТ-команд через UART. Хотелось бы понять как его перевести в режим АТ-команд, какие команды воспринимаются модулем и как его необходимо конфигурить, чтобы он работал как виртуальный com-порт? Какова сама процедура приёма/передачи потока данных черех модуль?
Спасибо!
Друзья, помогите пожалуйста ! Можно ли с помощью hc-5 сделать такое: два модуля при обнаружения друг, друга начинаю т подавать сигнал (включение светодиода) Напишите в whattssapp пожалуйста +79091554056 очень нужно. Или инстаграм @valery_voropaev
пропиши им пару как описано в статье и будешь понимать, что есть сопряжение и связь по выходу 32 — bt_link. подключи к этому выходу LED.
Плата arduino nano, при подачи напряжения на модуль HC-06, индикатор моргает в течении 3-5 сек. и перестает моргать. Это что значит, что ему П…Ц?
Автор решил эту проблему,у меня такая же беда,что с ним не понятно,идти за новым или этот можно еще как то оживить
У меня HC-06 у меня нету пина KEY и нету никакой кнопки? Это чё мне нужно растаять пин KEY?!
Хорошая статья, спасибо!
Перейдём в терминальную программу, соединимся с портом и попробуем послать команду AT , на которую нам модуль должен ответить OK
Всем привет!
Есть модификация модуля HC-05 с 6ногами, (State,RX,TX,GND,VCC,EN), очень популярная сейчас на Алиэкспресс, так вот, для нее не нужно припаивать проводок на 34пин (KEY) и подавать туда 3.3в, чтобы включить работу RX-TX на выводах необходимо подать 3.3в. на разъем EN а не на key, после этого такой модуль начинает работать как положено начинает отвечать на AT команды отправленные с компьютера или ардуины по пинам. С трудом нашел эту информацию в одном описании этого модуля на странице товара на алиекспресс.
Короче все также как с KEY в этой статье, только 3.3в. подаем на EN! (Enter).
Привожу описание на англ.
First, the module parameters:
1.PCB Dimensions: 37.3mm (length) * 15.5mm (W)
2 Weight:. 3.5g
(3) Input voltage: 3.6V—6V, 7V ban over
4 power anti-reverse, reverse module does not work
5 leads to 6 feet: EN / VCC / GND / RXD / TXD / STATE (Bluetooth status leads to the foot, is not connected to the output low, after connecting output high)
6 with the connection status indicator, LED flash means no Bluetooth connection; LED flashing slowly that enter the AT command mode
7 onboard 3.3V regulator chip, the input voltage DC 3.6V-6V; When unpaired, current of about 30mA (because LED lights flashing, the current state of change); After successful pairing, the current is about 10mA
8 Interface level 3.3V, you can directly connect a variety of microcontroller (/51/AVR/PIC/ARM/MSP430 etc.), 5V microcontroller can also be directly connected. Directly connected to the microcontroller serial port, not through the MAX232 chip!
9 open area effective transmission distance of 10 meters, over 10 meters are possible, but do not guarantee the quality of the connection
10. After successful pairing, can be used as a full-duplex serial port. Do not need to know anything about the Bluetooth protocol, but only supports 8 data bits, 1 stop bit, no parity communication format. This is the most common communication format that does not support other formats!
11 Press the key to give the Bluetooth module is energized to enter AT mode, set parameters and query information
12 can be switched master and slave mode via AT commands
13 modules default baud rate is 9600, the default passkey is 1234, the default name for the HC-05
14 protection with transparent shrink tube
Second, wiring methods:
VCC: positive power supply
GND: power supply is negative
RXD: Receive side, the Bluetooth module receives data sent to the other device; TXD terminal normally connected to the other device to send
TXD: sending end, the Bluetooth module to send data to other devices; RXD terminal normally connected to other devices receiving
EN: Enable, then you need to enter AT mode 3.3V
Павел, у меня как раз такой модуль (с EN-Z), и вот нифига не получается его заставить что-то говорить в ответ.
Это решение помогло! Отлично! Спасибо большое!
Да и после подачи 3.3в. на EN модуль начинает работать на скорости 38400, с ним работает вот этот скетч:
#include
#include
//int gLedPin = 13;
int gRxPin = 10;
int gTxPin = 11;
SoftwareSerial BTSerial(gRxPin, gTxPin);
void setup() {
//# 38400 — для метода №1, 9600 — для метода №2
pinMode(LED_BUILTIN, OUTPUT);
BTSerial.begin(38400);
Serial.begin(9600);
delay(500);
}
void loop() {
if (BTSerial.available()) {
Serial.write(BTSerial.read());
}
if (Serial.available()) {
//digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
BTSerial.write(Serial.read());
//digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
}
}
Правильный скетч (в прошлом сообщении криво вставился…)
#include
#include
//int gLedPin = 13;
int gRxPin = 10;
int gTxPin = 11;
SoftwareSerial BTSerial(gRxPin, gTxPin);
void setup() {
//# 38400 — для метода №1, 9600 — для метода №2
pinMode(LED_BUILTIN, OUTPUT);
BTSerial.begin(38400);
Serial.begin(9600);
delay(500);
}
void loop() {
if (BTSerial.available()) {
Serial.write(BTSerial.read());
}
if (Serial.available()) {
//digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
BTSerial.write(Serial.read());
//digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
}
}
Инклюды не вставляются в сообщение, обратите внимание.
Вот такой интересный вопрос возник. Китайский аналог нс06 — jdy09. Видим не на всех моделях телефонов. Htc one, asus zenfone его видят и нормально работают. А вот шестое яблоко и сяоми шлют его лесом. Может кто сталкивался, в чем может быть проблема?
Доброго времени суток !!! Ребята ! Подскажите пожалуйста, для диагностики гбо ( газо баллонное оборудование ) ,Я купил HC-05 распаял по рекомендациям из интернета , подключил к разъёму гбо и…… Ни какого эффекта . компьютер win10 видит блютуз адаптер , информирует что устройство подключено , и работает нормально. Но!!! Программа диагностики гбо , сообщает что контролер не обнаружен!!! , те, мозги гбо, не отвечают на запрос программы диагностики, ( «косы» заводского исполнения ) на адаптер питание подаётся , подскажите пожалуйста , как мне быть, в этом случае?! Мне кажется что проблемам в HC-05 или Я ошибаюсь? Как мне проверить HC-05 заранее спасибо!!!!!
Чтобы проверить HC-05, подключите его к компу напрямую через usb-uart переходник. Затем запустите его в командном режиме, как это описано в статье, а потом передайте пару каких-нибудь AT команд. Если он отвечает, то скорее всего с самим модулем всё ок.
Спасибо!!!! буду пробовать
Привет Олег. Спасибо за статью, отчасти помогла. Команды АТ и AT+VERSION работали, а вот имя и скорость передачи данных сменить не смог. Вычитал, что производителем была сменена прошивка, и начиная с VERSION:3.0-20170609 немного видоизменились команды (появился знак = перед значением), и теперь имеют подобный вид:
AT+NAME=BT GPS 1 смена имени
AT+UART:57600,0,0 смена скорости передачи данных
Возможно эта инфа кому-то пригодится.
Как подружить HC-05 с айфоном?
Как устройство айфон его даже найти не может
Прошу прощения, не HC-05, а HC-06
После подачи питания светодиод мигает очень часто. После соединения с Андроидом мигает редко — две вспышки подряд. Передаёт лажу — в основном подряд несколько одинаковых символов, код символа — fd. Что означает мигание два раза подряд с периодом 2 секунды? Возможно это код ошибки. Где взять эти коды?
Тут проблемка возникла.При отправке символа 1 с телефона он выдает в ком порте x?x?x , с другими буквами и цифрами такая же проблема, но символы другие. Что делать? заранее спасибо!
Всё с точностью до наоборот. Когда медленно мигает скорость 38400.
at+version?
+VERSION:4.0-20190728
OK
AT+CMODE?
+CMODE: 1
OK
AT+ROLE?
+ROLE:0
OK
AT+CLASS?
+CLASS:0x1F00
OK
AT+UART=115200,0,0
OK
————-
После этого отказывается общаться на этой скорости, на 115200 опять отвечает, но после
at+reset
OK
at
at+uart?
+UART:4800,0,0,
сбрасывает.
Как с этим бороться? Это лечится?
Имя, пароль сохраняет. А скорость нет!
Для HC-06 версия 3.0-20170609
Для настройки модуля
Не должно быть соединения по блютуз с другим устройством.
Соединиться через TTL адаптер Rx к Tx, а Tx к Rx
Изначальная скорость 9600
Включить NL & CR команды отдаются только большими буквами.
Команды:
AT
AT+VERSION результат VERSION:3.0-20170609
AT+UART запрос текущей скорости
AT+UART:38400,0,0 устанавливает скорость 38400. меняйте скорость под свои нужны
AT+NAME возвращает установленное имя модуля
AT+NAME=НовоеИмя устанавливает новое имя
AT+PSWD покажет пароль
AT+PSWD:»1234′ устанавливает пароль
AT+PSWD:»1234″ устанавливает пароль
Хочу сделать блютуз музыкальный центр как сделать чтобы модуль передавал сигнал и от куда нужно его снимать( troyka bluetooth hc-05 )
Пара замечаний к статье.
1. cr-lf при работе с модулем HC-06 не нужны
2. стандартный терминал от Arduino IDE работать не будет
3. будет работать Tera Term, но, при одном условии
4. нужно выставить Transmit delay = 1msec/char
5. нет, ну можно и не выставлять конечно, но тогда модуль реагирует только на AT. А вот на AT+VERSION уже не реагирует.
6. в конце команд не нужен вопросительный знак (не уверен, что в 100% случаев)
Если вопросительный знак поставить, то команд вроде бы передаётся, но модуль на неё ничего не отвечает.
7. команды нужно вбивать БЫСТРО, например копипастом
8. если вбивать команды неспешно, то модуль на них не реагирует