- Arduino и модули Bluetooth HC-05/06
- Небольшой обзор модулей HC-05 и HC-06
- Распиновка модулей
- Подключение HC-05 и HC-06 к Arduino
- Согласование логических уровней
- Скетч для подключения к Arduino
- Подключение Bluetooth модуля HC-05 к STM32 Blue Pill
- Необходимые компоненты
- Аппаратное обеспечение
- Программное обеспечение
- Bluetooth модуль HC-05
- Порты последовательной связи (USART Ports) в STM32 Blue Pill
- Схема проекта
- Объяснение программы для платы STM32
Arduino и модули Bluetooth HC-05/06
Bluetooth — один из самых распространённых протоколов беспроводной связи на малом расстоянии для персональных электронных устройств. С его помощью работают различные устройства ввода и управления, аудиоустройства.
На фоне остальных протоколов Bluetooth выделяется прежде всего помехоустойчивостью и простотой. От не менее распространённого Wi-Fi Bluetooth отличается в первую очередь низким энергопотреблением, что делает его доступным для автономных устройств. Благодаря этому BT получил повсеместное распространение.
Чаще всего для самоделок используются BT-модули HC-05 и HC-06. Их легко найти в продаже. HC-05 отличается от HC-06 тем, что ему доступны оба режима работы: ведомый (master) и ведущий (slave). А вот HC-06 работает только ведомым, то есть он не способен находить другие устройства и самостоятельно устанавливать с ними связь (но это можно исправить).
Оба модуля основаны на одинаковом чипе и поддерживают BT версии 2.0. Их максимальная скорость работы – 3 Мегабита в секунду.
Небольшой обзор модулей HC-05 и HC-06
Чаще всего HC-05 и HC-06 представляют собой две спаянные платы. Верхняя – заводская плата с микросхемой BC417. Нижняя – специальная плата для самодельных устройств, содержащая самые нужные ножки GPIO с шагом 2.54 мм, стабилизатор напряжения и кнопку сброса. На фотографии ниже плата с BC417:
А это — модули HC-05 и HC-06 вместе с подложкой:
HC-05 не намного дороже HC-06. Но при этом он может работать в обоих режимах прямо “из коробки”. С HC-06 же придётся повозиться, чтобы заставить его работать ведущим.
Также встречаются немного другие версии модулей. Вместо вывода EN на них выведен KEY.
Распиновка модулей
- EN — управление питанием;
- VCC — питание от 3,6 до 6 В;
- GND — земля;
- RX, TX — интерфейс UART;
- STATE — индикация работы;
- KEY — активация режима управления с помощью AT-команд.
Настройка модулей производится при помощи AT-команд. Но пин KEY есть не на всех модулях. И что с этим делать?
Пин KEY конечно же присутствует на малой плате с большим числом контактов, но не разведён на большой. Причины такого странного решения китайцев неизвестны.
Этот контакт находится здесь:
Подключение HC-05 и HC-06 к Arduino
Подключение к Arduino выполняется следующими контактами:
- GND – GND;
- VCC – +5V;
- TXD – 10;
- RXD – 11;
- KEY при обычной работе модуля не используется. Для перехода в режим AT-команд его надо соединить с +3.3V.
TXD и RXD соединены с пинами 10 и 11, потому, что аппаратный UART будет использоваться для связи с компьютером.
Согласование логических уровней
Bluetooth-модули работают с логическими уровнями 3.3 В, и использование пятивольтовой логики может вывести их из строя. Но чаще всего на плате имеется всё необходимое для согласования уровней.
Бывают ситуации, в которых между Arduino TXD — Bluetooth RXD необходимо согласование напряжения. Использование делителя – гарантия надёжной работы.
Справа приведена схема простейшего делителя:
Скетч для подключения к Arduino
Для настройки модулей можно использовать USB-UART конвертер, если вы воспользуетесь им – следующий пункт можно пропустить. Для начала нам потребуется прошить Arduino.
Скетч просто отправляет данные, полученные с компьютера, на настраиваемый модуль.
Подключение Bluetooth модуля HC-05 к STM32 Blue Pill
В настоящее время Bluetooth является одной из самых популярных технологий беспроводной связи, применяющейся для передачи данных на короткие расстояния. Она находит широкое применение в современных смартфонах, планшетах, беспроводных наушниках и гарнитурах и т.п.
Технология Bluetooth работает на частоте 2.4 ГГц и имеет радиус действия около 10 метров. Ее достоинствами являются низкая стоимость, простота использования и низкое энергопотребление.
В данной статье мы рассмотрим подключение Bluetooth модуля HC-05 к плате STM32F103C8, также известной под названием STM32 Blue Pill («синяя таблетка»). С помощью связи по технологии Bluetooth мы будем с мобильного телефона, работающего на операционной системе Android, управлять включением/выключением светодиода, подключенного к плате STM32 Blue Pill.
Ранее на нашем сайте мы рассматривали подключение данного модуля (или его аналога HC-06) к следующим микроконтроллерам (платам):
Также на нашем сайте вы можете посмотреть все проекты с использованием Bluetooth модуля HC-05.
Необходимые компоненты
Аппаратное обеспечение
- Плата разработки STM32F103C8 (STM32 Blue Pill) (купить на AliExpress).
- Bluetooth модуль HC-05 (купить на AliExpress).
- Светодиод (купить на AliExpress).
- Смартфон на Android.
- Макетная плата.
- Соединительные провода.
Программное обеспечение
Bluetooth модуль HC-05
Вешний вид обеих сторон Bluetooth модуля HC-05 показан на следующем рисунке.
HC-05 является Bluetooth модулем с последовательной связью. Его можно настроить с помощью AT команд. Он может работать в различных конфигурациях: Master (ведущий), Slave (ведомый), Loop back). В нашем проекте он будет использоваться в качестве ведомого устройства.
Технические характеристики Bluetooth модуля HC-05:
- типовая чувствительность: -80dBm;
- скорость передачи данных: 9600 бод, 8 бит данных, 1 стоповый бит, нет бита четности;
- pin код для автоматического соединения: “1234” или “0000”;
- 6 контактов;
- контакты Vcc и Gnd используются для подачи питания на модуль;
- контакты Tx и Rx используются для взаимодействия с микроконтроллером;
- контакт Enable для активации модуля, когда на нем low – модуль деактивирован (отключен);
- контакт State работает как индикатор состояния модуля. Когда модуль не соединен с другим Bluetooth устройством, светодиод мигает постоянно. Когда он соединен с другим Bluetooth модулем – светодиод мигает с постоянной задержкой 2 секунды.
Режимы индикации светодиода модуля:
- светодиод красного цвета на модуле показывает состояние Bluetooth модуля HC-05;
- когда модуль не подключен ни к какому устройству светодиод мигает непрерывно;
- когда модуль подключен к какому либо устройству светодиод мигает с некоторой задержкой.
Порты последовательной связи (USART Ports) в STM32 Blue Pill
Распиновка платы STM32 Blue Pill (STM32F103C8) показана на следующем рисунке.
Порты последовательной связи (USART Ports) в плате STM32 Blue Pill обозначены на представленном рисунке синим цветом. Всего в плате STM32 Blue Pill доступны три канала (порта) последовательной связи – они находятся на контактах PA9-TX1, PA10-RX1, PA2-TX2, PA3-RX2, PB10-TX3, PB11- RX3.
Схема проекта
Схема подключения Bluetooth модуля HC-05 к плате STM32 Blue Pill (STM32F103C8) представлена на следующем рисунке.
В схеме сделаны следующие соединения между платой STM32F103C8 и Bluetooth модулем HC-05:
- контакт TX (PA9) платы STM32F103C8 подключен к контакту RX Bluetooth модуля;
- контакт RX (PA10) платы STM32F103C8 подключен к контакту TX Bluetooth модуля;
- контакт VCC (+5V) Bluetooth модуля подключен к контакту 5V платы STM32F103C8;
- контакт GND Bluetooth модуля подключен к контакту GND платы STM32F103C8.
Положительный вывод светодиода в представленной схеме подключен через токоограничивающий резистор к контакту PA0 платы STM32F103C8, другой вывод светодиода подключен к контакту GND платы.
Объяснение программы для платы STM32
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
Подключение Bluetooth модуля HC-05 к плате STM32 Blue Pill во многом аналогично его подключению к плате Arduino. Программировать плату STM32 мы будем с помощью Arduino IDE.
Как уже указывалось ранее, мы с помощью приложения Bluetooth Terminal, запущенном на смартфоне с Android, будем управлять включением/выключением светодиода, подключенного к плате STM32 Blue Pill.
Примечание : контакты RX & TX должны быть отключены во время загрузки кода в плату STM32F103C8.
Поскольку в плате STM32F103C8 у нас три порта последовательной связи (USART), то в программе необходимо указать какой из них мы будем использовать.
Также укажем контакт, к которому в нашей схеме подключен светодиод.