Как подключить модуль Bluetooth HC-06 / HC-05 к Arduino Uno, чтобы можно было управлять микроконтроллером дистанционно со смартфона. Модуль обеспечивает двунаправленную связь через Bluetooth связь, что означает, что вы можете не только управлять платой Ардуино, но и получать данные от устройства. Приведем схему подключения и примеры кода для HC-06 / 05, а также приложение для смартфона.
СОДЕРЖАНИЕ
- Блютуз модуль hc-06 характеристики, распиновка
- Подключение модуля bluetooth hc-06/05 к Ардуино
- Код для управления светодиодом через bluetooth
- Сопряжение bluetooth модуля со смартфоном
- Конфигурация модуля bluetooth hc-05 AT командами
- Прошивка hc-06 / hc-05 с помощью AT команд
- Список AT команд для программирования hc-06/05
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- bluetooth модуль hc-06 или hc-05
- светодиоды и резисторы
- макетная плата
- коннекторы
- библиотека SoftwareSerial.h
- приложение led_ru.apk
Дополнительные материалы на эту тему:
Bluetooth связь — один из самых популярных видов связи ближнего радиуса действия, используемый в современной электронике: беспроводные наушники, клавиатуры и другие гаджеты. В проектах для начинающих пользователей с платой Ардуино модуль Bluetooth hc-06 и hc-05 используется для управления различными устройствами, например, для дистанционного управления автомобилем или лодкой со смартфона Android.
Модуль HC-06/HC-05 распиновка, характеристики

Характеристики HC-06 / HC-05 (datasheet)
- Напряжение питания: 3,3 — 6 В
- Протокол Bluetooth: v1.1 / 2.0
- Частота: 2,4 ГГц
- Мощность передатчика: менее 4 дБм, класс 2
- Поддерживаемые профили: ведущий и ведомый
- Рабочая температура: от -5°C до 45°C
Оба модуля построены на чипе CSR BC417, который поддерживает Bluetooth сигнал со скоростью до 3 Мбит/с. На самой плате расположена змеевидная антенна, которая обеспечивает дальность связи до 10 метров. Основным преимуществом этого модуля является устойчивость устройства к широкополосным помехам. Это означает, что сразу несколько устройств могут общаться друг с другом, не мешая друг другу.
Как подключить блютуз модуль к Ардуино

Для начала мы будем дистанционно включать и выключать светодиод, подключенный к порту 13 на плате Ардуино. После установки приложения на смартфон или планшет с ОС Android и загрузки скетча в микроконтроллер, подключите блютуз модуль к Ардуино, как показано на схеме выше. Пока модуль bluetooth hc-05 или bluetooth hc-06 не сопряжен со смартфоном, встроенный светодиод на блютуз модуле будет быстро мигать.
Скетч для управления светодиодами по блютуз Ардуино
#include "SoftwareSerial.h"
SoftwareSerial mySerial(2, 3); // порты TX, RX
#define RED 10
#define BLU 12
int val;
void setup() {
mySerial.begin(9600);
pinMode(RED, OUTPUT);
pinMode(BLU, OUTPUT);
}
void loop() {
if (mySerial.available()) {
val = mySerial.read();
// включение и выключение синего светодиода
if (val == '1') { digitalWrite(BLU, HIGH); }
if (val == '0') { digitalWrite(BLU, LOW); }
// включение и выключение красного светодиода
if (val == '2') { digitalWrite(RED, HIGH); }
if (val == '3') { digitalWrite(RED, LOW); }
}
}
Сопряжение блютуз модуля со смартфоном
Для сопряжения смартфона с модулем Bluetooth HC-06 и HC-05 зайдите в настройки телефона и активируйте Bluetooth. После чего на устройстве активируется поиск устройства, и помимо названия HC-05 или HC-06, вы увидите адрес устройства. Для подключения необходимо ввести пароль — обычно «1234» или «0000». Пароль нужно ввести только один раз, последующее сопряжение будет проходить автоматически.

После установки приложения led_ru.apk, откройте его и нажмите на кнопку «bluetooth connection». Перед вами появится список доступных устройств с адресами — выберите нужное устройство. Если Bluetooth сопряжение прошло успешно, светодиод на модуле начнет мигать реже — примерно один раз в две секунды. И теперь вы сможете дистанционно включать и выключать светодиоды подключенные к Ардуино через Блютуз.
Подключение HC-05 к Ардуино в режиме прошивки

Для настройки модуля bluetooth необходимо подключить источник питания с напряжением 3,3 вольта, а также подать напряжение 3,3 вольта на порт 34 (см. рисунок выше). Прошивка осуществляется через последовательный порт, так как аппаратный последовательный порт Arduino (порты TX и RX) будет занят отправкой AT-команд с компьютера, мы используем программный последовательный порт с помощью библиотеки SoftwareSerial.h.
Скетч для прошивки HC-05 / HC-06 AT командами
#include "SoftwareSerial.h"
SoftwareSerial mySerial(2,3);
void setup() {
pinMode(2,INPUT);
pinMode(3,OUTPUT);
Serial.begin(9600);
mySerial.begin(38400);
Serial.println("start setting");
}
void loop() {
if (mySerial.available()) {
char c = mySerial.read();
Serial.print(c);
}
if (Serial.available()) {
char c = Serial.read();
mySerial.write(c);
}
}
После загрузки программы откройте монитор последовательного порта Arduino IDE и отправьте AT-команды. Перед отправкой AT команд на блютуз модуль, следует выбрать «NL & CR» на мониторе последовательного порта среды Arduino IDE (смотри картинку ниже). Первым делом отправьте команду — AT, чтобы проверить подключение модуля. Если схема собрана правильно, то ответ от блютуз модуля должен быть OK.

Чтобы изменить код доступа, имя или другие характеристики Bluetooth-модуля, необходимо отправить следующие команды через монитор последовательного порта Arduino IDE. Далее приведена пошаговая инструкция отправки AT-команд, которые необходимо использовать для небольшой конфигурации HC-06 (смена имени и пароля). А в конце статьи приведена таблица с AT-командами с краткими пояснениями.
- узнать имя модуля: AT+NAME?
- выбрать имя модуля: AT+NAME=ROBOT
- узнать имя модуля: AT+NAME?
- посмотреть пароль: AT+PSWD?
- выбрать пароль: AT+PSWD=0000
- узнать пароль: AT+PSWD?
Таблица с AT-командами для прошивки HC-05 / HC-06
| 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» — режим |
Заключение. Приложение подходит только для ОС Android. Помимо цифр, можно отправлять команды в виде букв латинского алфавита. Библиотека SoftwareSerial.h позволяет реализовать программный последовательный порт на любом цифровом выводе платы Ардуино. Подключив блютуз модуль к портам TX и RX Arduino, невозможно будет загрузить код на плату, поэтому мы и используем библиотеку SoftwareSerial.h.
