Рубрики
Проекты на STM32

Подключение 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.

Необходимые компоненты

Аппаратное обеспечение

  1. Плата разработки STM32F103C8 (STM32 Blue Pill) (купить на AliExpress).
  2. Bluetooth модуль HC-05 (купить на AliExpress).
  3. Светодиод (купить на AliExpress).
  4. Смартфон на Android.
  5. Макетная плата.
  6. Соединительные провода.

Программное обеспечение

Bluetooth Terminal (приложение 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), то в программе необходимо указать какой из них мы будем использовать.

Также укажем контакт, к которому в нашей схеме подключен светодиод.

Далее укажем переменную, в которую мы будем сохранять данные, поступающие по последовательному порту.

Затем в функции setup() мы инициализируем последовательную связь со скоростью 9600 бод между платой STM32 Blue Pill и Bluetooth модулем.

Здесь мы использовали название порта последовательной связи Serial1, поскольку модуль HC-05 у нас подключен к контактам TX1 и RX1 платы STM32. Аналогичным образом можно использовать названия Serial2 или Serial3 если подключить модуль HC-05 к этим портам.

Затем мы передадим приветственное сообщение в виде последовательных данных через порт serial1, поскольку к нему подключен Bluetooth модуль HC05. Далее модуль передает эти данные приложению Bluetooth Terminal на смартфоне. Таким образом, для передачи приветственного сообщения используем следующие строки кода:

После этого установим режим работы контакта PA0 на вывод данных поскольку к нему подключен светодиод.

Далее в функции void loop() мы будем считывать данные из последовательного порта и в зависимости от их значений включать/выключать светодиод.

Подключение Bluetooth модуля к приложению на смартфоне

Для этого выполните следующую последовательность шагов.

Шаг 1. После загрузки кода программы в плату STM32 (во время ее загрузки не забудьте отключить контакты RX и TX) включите Bluetooth на своем смартфоне.

Шаг 2. В доступных для подключения устройствах выберите HC-05 и в качестве пароля введите 1234.

Шаг 3. После создания соединения между модулем и смартфоном откройте приложение Bluetooth Terminal, в нем выберите пункт connect a device и затем выберите HC-05 как показано на следующем рисунке.

Шаг 4. После того как приложение Bluetooth Terminal соединится с вашим модулем HC-05, вводите в терминале приложения 1 или 0 для того чтобы включить или выключить светодиод. В ответ на эти команды вы будете получать сообщения, свидетельствующие о включении/выключении светодиода.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

Источник статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *