Урок 15. Bluetooth модуль HC-06 подключение к Arduino. Управление устройствами с телефона.
ГЛАВНАЯ / Уроки и проекты / Урок 15. Bluetooth модуль HC-06 подключение к Arduino. Управление устройствами с телефона.
Очень часто в ваших проектах возникает необходимость в дистанционном управлении или передачи данных с ваших телефонных гаджетов.
Один из самых популярных и распространенных методов обмена данными посредством Bluetooth.
Сегодня мы разберем простые примеры как можно подключить Bluetooth модуль к Arduino и настроить дистанционное управление с телефона.
Нам понадобится:
Схема подключения Bluetooth к Arduino:
Подключать Bluetooth модуль к микроконтроллеру Arduino удобнее всего с помощью проводков ПАПА-МАМА.
| Arduino | Bluetooth |
|---|---|
| Pin 1 (TX) | RXD |
| Pin 0 (RX) | TXD |
| GND | GND |
| 5V | VCC |
Будьте внимательны, подключать подключать нужно TX -> RXD ,RX -> TXD.
Теперь необходимо записать пробный код программы:
Во время загрузки скетча необходимо что бы Bluetooth модуль был отключен от микроконтроллера arduino. В противном случае скетч не запишется, потому что связь с Bluetooth модулем происходит по одному и томуже порту RX и TX, что и USB.
int val; int LED = 13; void setup() < Serial.begin(9600); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); >void loop() < if (Serial.available()) < val = Serial.read(); // При символе "1" включаем светодиод if (val == '1') < digitalWrite(LED, HIGH); >// При символе "0" выключаем светодиод if ( val == '0') < digitalWrite(LED, LOW); >> >
Скачать скетч можно по ссылке.
После того как скетч записан и Bluetooth модуль подключен к Arduino, можно перейти к следующему шагу.
Подключение Bluetooth к телефону
Желательно в качестве источника питания для arduino использовать не USB, а внешний Блок питания на 9 В.
- Включаем Bluetooth на телефоне и ищем новые устройства
- Находим в списке расстройств «HC-06″ и подключаемся к нему.
- Телефон спросит пин-код. необходимо ввести «1234» или «0000«
- Ура. Устройство подключено.
Теперь нужно скачать bluetooth terminal на ваш телефон. Мы рассмотрим на примере платформы Android.


Вы можете установить разные bluetooth терминалы, как правило они отличаются только разными дизайнами, функционал от этого не меняется. Так же можно найти и терминал и для продуктов ios.
После того как мы установили терминал, запускаем его выбираем наш bluetooth модуль HC-06 и подключаемся к нему.
Пришло время попробовать проект в деле. Пишем в терминале цифру «0» и отправляем. Светодиод L который находится на плате arduino рядом с pin 13, должен погаснуть. Теперь отправим через терминал цифру «1» и светодиод L должен зажечься.
Демонстрация работы:
Домашняя работа:
- Изменить скетч так, что бы светодиод зажигался и потухал с помощью одной и той же команды например «G».
- Дописать скетч и научить его преобразовывать текстовые данные приходящие через блютус в цифровые и реализовать димер, зажигать светодиод с помощью ШИМ, на заданную яркость от 0 до 254 приходящую через bluetooth.
Подключение Блютуз модуля к Ардуино

Рассмотрим в этой статье, как подключить блютуз модуль к Arduino UNO, для возможности управления устройством через bluetooth со смартфона. Данный модуль позволяет наладить двухстороннюю связь по bluetooth, т.е. можно не только управлять Ардуино, но и получать данные от устройства. Представим схему подключения HC-05 и HC-06 и дадим несколько скетчей вместе с приложениями для смартфона.
Характеристики Bluetooth модуля HC-06 / HC-05
Bluetooth является сегодня одним из самых популярных типов связи для коротких дистанций, которым пользуются большинство бытовых приборов и электронных устройств — наушники, компьютерные клавиатуры и мышки и другие гаджеты. В робототехнике Bluetooth модуль используют для управления различных устройств на Arduino NANO, например, управление машинкой или катером со смартфона.

Оба устройства построены на чипе CSR BC417, который поддерживает радиосигнал по протоколу Bluetooth со скоростью до 3 Мбит/сек. На самой плате находится антенна из дорожки в виде змейки, обеспечивающая дальность связи до 10 метров. Главным преимуществом можно назвать устойчивость к широкополосным помехам, а значит несколько устройств могут общаться между собой, не мешая друг другу.
Скетч для управления Ардуино через блютуз со смартфона на Android ничем не отличается от скетча, который применяется для управления Ардуино с компьютера. Так как в обоих случаях микроконтроллер будет получать данные по протоколу UART (универсальный асинхронный приемопередатчик) — самый первый и наиболее распространенный сегодня физический протокол передачи данных.
Как подключить блютуз модуль Ардуино
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- Bluetooth модуль HC-05/06;
- светодиоды и резисторы;
- сервомотор;
- провода «папа-папа» и «папа-мама».
Обратите внимание, что при подключении любого модуля к портам TX и RX на Arduino, скетч загрузить в плату не получится — у вас будет выходить ошибка, что Arduino Nano не доступна. Перед загрузкой скетча — отключайте Bluetooth модуль. Во-вторых, вам потребуется установить приложение на смартфон для отправки данных на блютуз модуль hc-05/06, скачайте приложение здесь и загрузите на телефон с компьютера.

Для начала мы будем дистанционно включать и выключать светодиод, подключенный параллельно к 13 порту на Ардуино и, расположенный на самой плате. После установки приложения на смартфон или планшет и загрузки скетча (скачать архив со скетчем можно далее), подключите блютуз модуль к Ардуино, как изображено на схеме выше. До сопряжения устройств, светодиод на модуле HC-05 начнет быстро мигать.
Скетч для модуля hc-05 Bluetooth Arduino
int val; // освобождаем память в контроллере для переменой void setup() < Serial.begin(9600); // подключаем последовательный порт pinMode(13, OUTPUT); // объявляем пин 13 как выход > void loop() < if (Serial.available()) // проверяем, поступают ли какие-то команды < val = Serial.read(); // переменная val равна полученной команде if (val == '1') digitalWrite(13, HIGH);> // при 1 включаем светодиод if (val == '0') digitalWrite(13, LOW);> // при 0 выключаем светодиод > >
Соединение с телефоном Bluetooth модуля
Для сопряжения смартфона с Bluetooth модулем HC-06 и HC-05 перейдите в настройки телефона и включите блютуз. У вас активируется поиск устройств, кроме названия HC-05 или HC-06, вы увидите адрес устройства. Для подключения потребуется ввести пароль, обычно, это «1234» или «0000». Пароль потребуется ввести только один раз, при последующих подключениях сопряжение будет происходить автоматически.

Далее откройте приложение, которое вы установили на смартфон или планшет и нажмите на кнопку «Подключить Блютуз». У вас появится список устройств с адресами — выберите нужное устройство. Если сопряжение прошло успешно, то светодиод на модуле начнет мигать реже — примерно 1 раз в две секунды. Теперь вы можете дистанционно включать/выключать светодиод на Ардуино, используя блютуз модуль.

В следующем примере мы добавим к светодиоду сервопривод. Вы уже знаете, как подключить сервомотор к Ардуино, осталось лишь загрузить в плату новый скетч. Скачать скетч и приложение для смартфона можно одним архивом здесь.
Скетч для серво и модуля Bluethooth Arduino
#include "Servo.h" // подключаем библиотеку для работы с сервоприводом Servo servo1; // объявляем переменную servo типа "servo1" int val; // освобождаем память в контроллере для переменой void setup() < servo1.attach(11); // привязываем сервопривод к аналоговому выходу 11 Serial.begin(9600); // подключаем последовательный порт pinMode(13, OUTPUT); // объявляем пин 13 как выход > void loop() < if (Serial.available()) // проверяем, поступают ли какие-то команды < val = Serial.read(); // переменная val равна полученной команде if (val == '1') digitalWrite(13, HIGH);> // при 1 включаем светодиод if (val == '0') digitalWrite(13, LOW);> // при 0 выключаем светодиод if (val == '4') write(0);> // ставим угол поворота 0 if (val == '5') write(90);> // ставим угол поворота 90 if (val == '6') write(180);> // ставим угол поворота 180 > >
Пояснения к коду:
- кроме цифр можно отправлять команды в виде букв латинского алфавита, при этом важен регистр — заглавная или строчная буква будет получена;
- перед загрузкой скетча — отключайте Bluetooth модуль от портов TX и RX;
- приложение подходит только для ОС Android. Вы можете сделать собственное приложение, воспользовавшись нашими уроками в разделе Программирование.
Arduino UNO + модуль Bluetooth HC-05
Эта пошаговая инструкция поможет вам запустить графический интерфейс RemoteXY на контроллере Arduino UNO используя модуль связи Bluetooth HC-05 или HC-06. Инструкция так же может быть использована для контроллеров Arduino Nano, Arduino Mini и совместимых.
Примечание. Устройства iOS не поддерживают модули с классическим Bluetooth HC-05(06). Вместо них вы можете использовать модуль BLE HM-10.
Шаг 1. Создайте графический интерфейс
Войдите в редактор RemoteXY. Найдите на левой панели инструментов элемент Кнопка, и переместите его в поле телефона. Выделите кнопку в поле телефона, что бы вокруг нее отобразилась рамка. Когда кнопка выделена, в правой панели свойств разверните вкладку Элемент. В свойстве элемента Привязать к выводу установите значение 13(LED).
Примечание. Редактор позволяет указать вывод контроллера для некоторых элементов, которые могут однозначно определить состояние вывода, например «Включен «или «Отключен». Однако лучшим решением будет написание собственного кода управления выводами контроллера.
Шаг 2. Настройте конфигурацию
Разверните вкладку Конфигурация на правой панели свойств. Кликните в любой элемент списка, откроется окно выбора конфигурации. Настройка конфигурации позволяет указать параметры вашей схемы. Выберите следующие параметры и нажмите кнопку Применить:
- Соединение: Bluetooth
- Контроллер: Arduino UNO
- Модуль: HC-05 Bluetooth module
- Среда: Arduino IDE
Вкладка Конфигурация должна выглядеть как на рисунке:
Разверните вкладку Подключение модуля и установите следующие значения настроек:

- Интерфейс подключения: Software Serial
- Контакт RX: 2
- Контакт TX: 3
- Скорость обмена: 9600
Настройки определяют, что модуль HC-05(06) подключается к Arduino через программный последовательный порт SoftwareSerial на скорости 9600 и используются контакты микроконтроллера 2 и 3 .
Примечание. Скорость 9600 является скоростью обмена по умолчанию для модулей Bluetooth HC-05 и HC-06. Не выбирайте другую скорость.
Шаг 3. Сформируйте скетч для Arduino
Нажмите кнопку Получить исходный код.
На открывшейся странице кликните ссылку Загрузить код и загрузите архив скетча. Распакуйте архив. В архиве размещен файл project.ino , откройте его в Arduino IDE.
Для компиляции скетча в среду Arduino IDE необходимо добавить библиотеку RemoteXY. Пройдите по ссылке загрузки библиотеки и следуйте инструкциям по ее установке.
В среде разработки выберите плату Arduino UNO и попробуйте скомпилировать скетч. Если вы все сделали правильно, скетч должен компилироваться без ошибок.
Шаг 4. Подключите HC-05 к Arduino Uno
Подключите модуль Bluetooth HC-05 или HC-06 к Arduino Uno по схеме приведенной на рисунке. Обратите внимание, что контакт 2 платы Arduino выбранный как RX соединяется с контактом TX модуля Bluetooth, а контакт 3 платы Arduino выбранный как TX с контактом RX модуля Bluetooth.
Шаг 5. Загрузите скетч в Arduino.
Загрузите скетч в контроллер стандартным способом. Подсоедините контроллер Arduino UNO к компьютеру, выберите COM порт к которому подключилась плата и нажмите кнопку загрузки.
Шаг 6. Подключитесь с мобильного приложения.
Запустите приложение и нажмите кнопку + (Плюс) на верхней панели справа. В открывшемся окне выберите подключение Bluetooth.
Если на вашем телефоне отключен Bluetooth, то включите его. Нажмите кнопку обновления списка доступных устройств в правом верхнем углу. Модуль Bluetooth HC-05 (HC-06) может иметь одно из следующих имен: «HC-05», «HC-06», «INVOR». Выберите его. Откроется окно для ввода пароля спаривания Bluetooth устройств. Пароль по умолчанию для HC-05 (HC-06) может быть 1234 или 0000. Введите пароль.
После ввода пароля начнется подключение. Если вы все сделали правильно ту у вас должен отобразиться графический интерфейс с кнопкой, точно такой же как вы его разработали. Попробуйте нажимать кнопку. При удерживании кнопки нажатой должен загораться светодиод LED на плате Arduino UNO.
Примечание: В приложении для iOS необходимо включить Bluetooth используя системные настройки.
Если не подключается.
Если подключение не удалось, проверьте себя по списку ниже. Это поможет вам найти ошибку.
Модуль не отображается в списке устройств приложения
Если вы не видите вашего модуля в списке доступных устройств, попробуйте повторно нажать на кнопку обновления списка устройств спустя несколько секунд. Если модуль так и не появился, возможны следующие причины:
- Вы не включили Bluetooth на вашем телефоне.
- На модуль Bluetooth не подается питание. Возможно питание подключено не верно.
- Модуль Bluetooth неисправен.
Bluetooth устройство не найдено
Если вы видите ошибку Bluetooth device not found или Bluetooth device connection error это означает что телефон не смог обнаружить модуль Bluetooth или не смог с ним соединиться. Возможны следующие причины:
- При подключении в приложении выбрано не то Bluetooth устройство. Например вы выбрали наушники или телефон вашего друга у которого включен Bluetooth.
- При подключении в приложении был введен не верный пароль для спаривания устройств.
Попробуйте разорвать пару используя системные настройки если Bluetooth устройство уже было спарено до этого.
Устройство не отвечает
Если вы видите ошибку Board not reply это означает что приложение подключилось к модулю Bluetooth но не может производить обмен данными с контроллером. Возможны следующие причины:
- Контакты RX и TX модуля Bluetooth подключены не верно, возможно они перепутаны местами. Проверьте по схеме на шаге 4.
- Контакты RX и TX модуля Bluetooth или один из них не подключены к контроллеру, плохой контакт;
- Не верно указаны настройки конфигурации или настройки подключения перед формированием исходного кода. Проверьте на шаге 2.
- Скорость передачи данных Bluetooth модуля не соответствует выбранной в настройке конфигурации. Проверьте на шаге 2.
- Вы внесли недопустимые изменения в скетч, например откорректировали структуру RemoteXY или массив RemoteXY_CONF , удалили вызовы функций RemoteXY_Init() или RemoteXY_Handler() . Сформируйте исходный код заново и загрузите его в контроллер без каких либо изменений.
- Использована старая версия библиотеки RemoteXY. Обновите версию библиотеки до последней.
- В Arduino не был загружен скетч, или был загружен другой скетч. Проверьте что вы загрузили именно нужный скетч.
- Контроллер Arduino не включен или неисправен.
Беспроводная стереофоническая гарнитура MDR-XB70BT
Согласование — это процесс, необходимый для создания связи между устройствами BLUETOOTH для установки беспроводного подключения.
Необходимо согласовать устройство с гарнитурой, чтобы в первый раз выполнить подключение BLUETOOTH.
Перед началом согласования убедитесь, что соблюдены следующие требования.
- Смартфон располагается на расстоянии 1 м от гарнитуры.
- Батарея гарнитуры имеет достаточный заряд.
- Инструкция по эксплуатации смартфона находится под рукой.
Войдите в режим согласования гарнитуры.
При согласовании гарнитуры с устройством в первый раз после покупки или после инициализации гарнитуры (гарнитура не содержит информации согласования) нажмите и удерживайте кнопку
в течение приблизительно 2 секунд, когда гарнитура выключена. Гарнитура автоматически перейдет в режим согласования. При согласовании второго устройства и последующих устройств (гарнитура содержит информацию согласования с другими устройствами) нажмите и удерживайте кнопку
приблизительно в течение 7 секунд.
Убедитесь, что после отпускания кнопки индикатор поочередно мигает синим и красным. Вы услышите голосовое уведомление “BLUETOOTH pairing” (согласование BLUETOOTH).
Разблокируйте экран смартфона Android, если он заблокирован.
Выполните поиск этой гарнитуры на смартфоне.

- Выберите [ Setting ] — [ Bluetooth ].
- Нажмите [] рядом с [ Bluetooth ], чтобы включить функцию BLUETOOTH.


Нажмите [ Search for devices ].
Нажмите [ MDR-XB70BT ].

Если на дисплее смартфона появляется сообщение о вводе кода доступа (*), введите “0000”. Гарнитура и смартфон будут согласованы и соединены друг с другом. Вы услышите голосовое уведомление “BLUETOOTH connected” (BLUETOOTH подключено). Если подключение отсутствует, см. “Подключение к согласованному смартфону Android”. Если [ MDR-XB70BT ] не отображается на дисплее, повторите действия, начиная с шага 3. * Код связи может называться “Код доступа”, “PIN-код” или “Пароль”.
Примечание
- Если согласование не было установлено в течение приблизительно 5 минут, режим согласования будет отключен и гарнитура выключится. В этом случае начните снова с действия 1.
- Если устройства BLUETOOTH согласованы, выполнять согласование повторно не требуется, кроме следующих случаев.
- Информация о согласовании была удалена после ремонта и т. д.
- Гарнитура уже согласована с 8 устройствами и необходимо выполнить согласование еще с одним устройством.
Согласование гарнитуры можно выполнить максимум с 8 устройствами. Если новое устройство согласуется после выполнения согласования с 8 устройствами, устройство, которое согласовывалось раньше всего, будет заменено новым. - Если информация о согласовании гарнитуры удалена с устройства BLUETOOTH.
- При инициализации гарнитуры вся информация о согласовании удаляется.
В этом случае удалите информацию о согласовании с гарнитурой с устройства BLUETOOTH и выполните согласование снова.
Совет
- Указанная выше процедура приводится в качестве примера. Для получения дополнительной информации см. инструкцию по эксплуатации, прилагаемую к смартфону Android.
- Для удаления всей информации о согласовании см. “Инициализация гарнитуры для восстановления заводских настроек”.
