СОДЕРЖАНИЕ ►
Рассмотрим, как сделать настройку Bluetooth модуля для Arduino с помощью AT-команд, отправляемых по последовательному порту. Данная информация будет полезна для тех, кто решил сделать проект на Ардуино в котором необходимо использовать беспроводную передачу данных между устройствами. При прошивке модуля, можно изменить многие параметры, установленные производителем.
Схема и распиновка Bluetooth модуля

Для настройки модуля необходимо подключить к нему питание от 3,3 Вольт, кроме того необходимо подать 3,3 Вольта на порт 34 (см. фото выше). Прошивка осуществляется по последовательному порту, так как аппаратный последовательный порт у Ардуино (порты TX и RX) будет занят для отправки AT-команд с компьютера, то мы используем программный последовательный порт с помощью библиотеки SoftwareSerial.h.
Данная библиотека позволяет реализовать программный последовательный порт на любых цифровых выходах Ардуино. Для настройки Bluetooth модуля его следует перевести в режим отладки — необходимо подключить вывод 34 к 3,3 Вольтам, питание модуля при прошивке тоже идет от 3,3 Вольт. В качестве контактов программного последовательного порта будем использовать цифровые выводы 2 и 3 на Arduino UNO.
Настройка Bluetooth модуля HC-05/06
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- Bluetooth модуль HC-05/06;
- провода «папа-папа» и «папа-мама».

После подключения модуля, загрузите скетч для настройки модуля HC-05/06. Скачать скетч и библиотеку SoftwareSerial можно с Google Диск по ссылке здесь. После загрузки скетча, открывайте монитор последовательного порта Arduino IDE и отправляйте AT-команды. Первым делом, следует отправить тестовую команду — AT, для проверки соединения модуля. Ответ модуля HC-05 / HC-06 должен быть — OK.
Скетч для прошивки блютуз модуля Arduino
#include "SoftwareSerial.h" // подключаем библиотеку SoftwareSerial mySerial(2,3); // указываем пины tx и rx void setup() { pinMode(2,INPUT); pinMode(3,OUTPUT); Serial.begin(9600); // включаем hardware-порт mySerial.begin(38400); // включаем software-порт Serial.println("start setting"); } void loop() { if (mySerial.available()) { char c = mySerial.read(); // читаем из software-порта Serial.print(c); // пишем в hardware-порт } if (Serial.available()) { char c = Serial.read(); // читаем из hardware-порта mySerial.write(c); // пишем в software-порт } }
Пояснения к коду:
- В программе все предельно просто: при получении данных на аппаратном (встроенном) последовательном порту, данные отправляются в программный последовательный порт (на модуль). А при получении данных с модуля, они отправляются на аппаратный последовательный порт, то есть на монитор порта.
Прошивка модуля HC-05 AT-командами

Итак, чтобы изменить код доступа к Bluetooth-модулю, имя или другие характеристики, следует отправить следующие команды через монитор последовательного порта Arduino IDE (смотри скрин ниже). Также приведем пошаговую инструкцию, какие необходимо использовать AT команды для перепрошивки HC-05. А в конце статьи размещена более полная таблица at команд с небольшими пояснениями.
- узнаем имя Bluetooth-модуля: AT+NAME?
- задаем новое имя модуля: AT+NAME=ROBOT
- узнаем имя Bluetooth-модуля: AT+NAME?
- узнаем пин-код Bluetooth-модуля: AT+PSWD?
- задаем новый пин-код доступа: AT+PSWD=0000
- узнаем пин-код Bluetooth-модуля: AT+PSWD?
Обратите внимание, что при настройке модуля, в мониторе последовательного порта IDE Arduino следует выбрать пункт «NL & CR». После программирования модуля отсоедините вывод 34 от 3,3 Вольт и подключитесь к Bluetooth-модулю с телефона или планшета. Если при первом подключении блютуз модуля к Ардуино, у нас были стандартные настройки, то сейчас наш модуль имеет свое имя и новый пин-код.

Таким образом, мы можем использовать в одном месте сразу несколько bluetooth модулей, а чтобы не запутаться присвоить каждому свое уникальное имя. Также мы можем задать новый пин-код, чтобы защитить модуль от постороннего вмешательства. С помощью данной настройки модуля НС-05/06 мы можем получать данные с датчиков не только на мониторе порта, но и на любом Android — устройстве.
HC-06 AT-команды для настройки
AT-команда |
Ответ модуля |
Примечание |
|---|---|---|
| AT | OK | Тестовая команда |
| AT+VERSION? | +VERSION: … | Узнать версию прошивки модуля |
| AT+RESET | OK | Сброс настроек |
| AT+ADDR? | +ADDR: … | Узнать адрес модуля |
| AT+NAME? | +NAME:«name» | Узнать имя модуля, где «name» — имя Bluetooth-модуля |
| AT+NAME=«name» | OK | Установить новое имя, где «name» — имя Bluetooth-модуля |
| AT+PSWD? | + PSWD:«pin» | Узнать код доступа, где «pin» — код, по умолчанию 1234 |
| AT+PSWD=«pin» | «pin» OK |
Установить новый код доступа к модулю, где «pin» — код доступа к Bluetooth-модулю |
| AT+ROLE? | +ROLE:«param» | Узнать режим работы модуля, где «param» — режим: 0 — slave. К модулю может подключиться мастер; 1 — master. Модуль сам подключается к устройству. |
| AT+ROLE=«param» | OK | Установить режим работы модуля, где «param» — режим |
Если у вас еще остались вопросы, то можете их задать в комментариях к этой записи. Если информация на этой странице вам пригодилась и была полезной, то поделитесь ей в социальных сетях и поставьте свою оценку (пять звезд).










Здравствуйте!
Хотел поменять имя и пароль.
Залил ваш скетч и установил библиотеку вашу.
В мониторе порта пишет «start setting». И ни на какие команды не реагирует вообще. Стоит эта надпись «start setting» и всё.
Здравствуйте.
Подали питание 3,3 Вольта на блютуз модуль ?
34 пин на блютуз модуле надежно подключили к 3,3 В ?
На мониторе порта в самом низу выбрали пункт «NL & CR» ?
Если еще актуально. Напишите на мыло.
Я поменял конфигурацию расcкажу как.
Актуально. Причем получилось однажды…щас спустя полгода пробую снова на другом модуле. также пишет statring . не могу добиться ответа на АТ. Пробовал разные скорости для софтпорта
замкни RESEET НА КОРПУС БЛЮТУЗ ТХ НА ТХ РХ НА РХ И С АРДУИНО МОНИТОР ВВОДИ AT КОМАНДЫ AT+HELP СПРАВКА ПО ТВОЕМУ МОДУЛЮ. У МЕНЯ С АЛИ HC- 06 V.5.3
Огромное спасибо автору. Все отлично загрузилось и получилось. Поменял имя модуля , а то все время путался среди четырех одинаковых устройств.
Сделал все как показано на сайте, но в ответ на AT пишет …, где я мог ошибиться?
Как отключить пин код?
Добрый день,! Сделал все как написано, но нет ответа по АТ командах, искал решения в интернете на форумах, пока результата 0.
Может подскажете что может быть?
При настройке блютуз модуля, в окне Serial монитор IDE Arduino следует выбрать пункт «NL & CR»
Здравствуйте! Спасибо за статью! Есть ли возможность настроить модуль так, чтобы он отправлял в порт данные о подключившемся устройстве? Например, его имя или Mac? Или может есть at-команда для этого?
Ввёл AT+ROLE=2 (возврат посланного байта). И теперь HC-05 зеркалит всё, что ему посылаешь. Включая команды общего сброса и тд в разных вариантах. Ну вот и что делать???
Выправить руки и чуть — чуть подумать
Всем привет! Вдруго кому пригодится — тоже собирал проект для общения с КАН шиной автомобиля, и решил сделать на блютусине. Модуль HC-05 уже 2 года лежал в коробке, поэтому взял его. Решил сразу изменить ему имя и пин, но не тут-то было!
Сколько инфы не перерыл. Настраивал Ардуино УНО оригиналом, Итальянской. Команды не шли, ответа не было. Перерыл все!!! Потом вспомнил, что у меня есть FTDI преобразователь. Подключил его — таже песня. Если просто пермкнуть Rx — Tx — что ввел, то и получил. Ардуино, кстати, не зеркалила!
Итак. Подключение простое — VCC, GND все понятно, а вот Rx и Tx на устройствах сделал крестом. В режим медленного мигания светодиода блютусину не вводил (при зажатой кнопке включаем питание). Работал в режиме быстрого мигания. Скачал терминал YAT (заработало только с ним). Скорость 9600, зажимаем кнопку на блютусе и отправляем команду — получаем ответ. Без кнопки не работает. Так, я спокойно сменил имя устройства и его пароль. Скорость пока не трогал.