Настройка HC-05
В отличие от модуля HC-06, при подаче питания на HC-05 он перейдет в рабочий режим и не будет слушать никакие AT-команды. Чтобы изменить режим, нужно проделать некоторые манипуляции.
Переход в режим AT-команд
Чтобы получить доступ к настройкам ведущего модуля HC-05, его необходимо перевести в режим AT-команд. Для входа в этот режим можно воспользоваться двумя методами.
Первый метод:
- Отключаем модуль от питания.
- Соединяем контакт KEY к питающим контактом +3,3 Вольта;
- Включаем модуль;
- Контакт KEY можно отсоединить от питания.
В этом случае скорость обмена с модулем устанавливается в 38400 бод.
После успешного перехода в режим AT-команд светодиод на модуле начнет мигать раз в две секунды.
Второй метод
- Включаем модуль.
- Соединяем контакт KEY к питающим контактом +3,3 Вольта;
Теперь скорость обмена с модулем будет равна стандартной, установленной настройками для рабочего режима. По-умолчанию 9600 бод.
Проверка соединения HC
Проверим командный режим HC-05 так же как и в случае ведомого модуля:
>>: AT
<<: OK
>>: AT+VERSION?
<<: +VERSION:2.0-20100601
Настройка HC-05 как ведомого (slave)
Для превращения модуля в ведомого потребуется выполнить несколько команд:
Сброс предыдущих настроек: AT+ORGL
Сброс спаренных устройств: AT+RMAAD
Установка нового пароля: AT+PSWD:»1234″
Включение режима ведомого: AT+ROLE=0
Дополнительно можно узнать адрес устройства (понадобится для настройки спаренного модуля): AT+ADDR?
В ответ получим сам адрес: +ADDR:98D3:41:F95119
Готово!
Настройка HC-05 как ведущего (master)
С завода модуль идет ведомым, и чтобы сделать его ведущим потребуется выполнить следующие команды.
1. Сброс предыдущих настроек: AT+ORGL
2. Сброс спаренных устройств: AT+RMAAD
3. Включение режима ведущего: AT+ROLE=1
4. Рестарт после смены роли: AT+RESET
Соединение ведущего(master) с ведомым(slave)
Если мы хотим связать ведомого и ведущего, пишем такие команды:
1. Если мы еще не знаем адрес модуля, с которым хотим связаться, можем запросить у ведущего поиск в эфире доступных модулей: AT+INQ
В ответ получим список доступных устройств:
+INQ:14:3:5A694,1F00,7FFF
+INQ:23:4D:EB3193,0,7FFF
2. Установка пароля ведомого модуля, к которому будем подключаться: AT+PSWD:»1234″
3. Указываем парное устройство: AT+PAIR=<адрес>,<таймаут> (пример: AT+PAIR=98D3,41,F95119,5)
4. Связываем с конкретным адресом: AT+BIND=<адрес> (пример: AT+BIND=98D3,41,F95119)
5. Запрещаем соединяться с другими адресами: AT+CMODE=0
Готово! Теперь модуль связан с ведомым, и при каждом включении будет пытаться с ним соединиться.
Подробный список AT-команд модуля HC-05: AT-команды модулей HC-03/HC-05
Все сделал как написано, но ЛЕД на модуле все равно продолжает быстро мигать не переходя в АТ режим… в чем дело?
Нужно приконектится с мобилки, Включить прогу «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. если вбивать команды неспешно, то модуль на них не реагирует