- Подключение Bluetooth модуля HC-05 к STM32 Blue Pill
- Необходимые компоненты
- Аппаратное обеспечение
- Программное обеспечение
- Bluetooth модуль HC-05
- Порты последовательной связи (USART Ports) в STM32 Blue Pill
- Схема проекта
- Объяснение программы для платы STM32
- Подключение Bluetooth-модуля HC-05 к микроконтроллеру AVR ATmega8
- Необходимые компоненты
- Аппаратное обеспечение
- Программное обеспечение
- Общие принципы работы Bluetooth-модуля HC-05
- Создание проекта для ATmega8 в программной среде CodeVision
- Работа схемы
- Пояснение части кода программы
Подключение 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), то в программе необходимо указать какой из них мы будем использовать.
Также укажем контакт, к которому в нашей схеме подключен светодиод.
Подключение Bluetooth-модуля HC-05 к микроконтроллеру AVR ATmega8
В этой статье мы рассмотрим подключение Bluetooth-модуля HC-05 к микроконтроллеру ATmega8 (семейство AVR), а затем установим связь между смартфоном под управлением операционной системы Android и микроконтроллером ATmega8 с помощью Bluetooth-модуля, который будет использовать для связи с микроконтроллером универсальный асинхронный приемопередатчик (UART). Для контроля за успешностью процесса взаимосвязи будем использовать светодиод.
Необходимые компоненты
Аппаратное обеспечение
- Микроконтроллер ATmega8 (купить на AliExpress).
- Программатор AVR-ISP (купить на AliExpress), USBASP (купить на AliExpress) или другой подобный.
- Bluetooth-модуль HC-05 (купить на AliExpress).
- 10-пиновый FRC кабель.
- Светодиод (купить на AliExpress).
- Макетная плата.
- Соединительные провода.
- Источник питания с напряжением 5 Вольт.
Программное обеспечение
CodeVisionAVR (или другое подобное, например, Atmel Studio)
SinaProg – для загрузки программы в микроконтроллер ATmega8 с помощью программатора USBASP
Скачать CodeVisionAVR — http://www.hpinfotech.ro/cvavr_download.html.
Общие принципы работы Bluetooth-модуля HC-05
Bluetooth-модуль может работать в двух режимах:
В режиме управления можно конфигурировать свойства Bluetooth-модуля такие как: имя источника сигнала Bluetooth, пароль, бодовая скорость и т.д. В режиме функционирования можно получать и передавать данные между Bluetooth-модулем и микроконтроллером, поэтому в данном проекте мы будем использовать режим функционирования. Для режима управления оставим его настройки по умолчанию. То есть имя устройства будет HC-05 (автор статьи использует HC-06), пароль будет 0000 или 1234, а скорость передачи будет равна 9600 бод/с.
Модуль работает при напряжении питания 5В, а его сигнальные контакты оперируют напряжением 3.3В, поэтому регулятор данного напряжения (3.3В) присутствует в данном модуле. Следовательно, нам не нужно беспокоиться о стабильности этого напряжения. У модуля 6 выходных контактов, но в режиме функционирования используются только 4. Схема соединения контактов модуля приведена в следующей таблице.
Создание проекта для ATmega8 в программной среде CodeVision
Аналогичные операции можно произвести и в других программных средах для программирования микроконтроллеров AVR, например, Atmel Studio.
После установки CodeVision вам необходимо выполнить следующие ниже перечисленные шаги чтобы создать проект и написать программу.
Шаг 1. Создайте новый проект в CodeVision, выбрав пункт меню File -> New -> Project. В появившемся диалогом окне нажмите Yes.
Шаг 2. Откроется CodeWizard. Кликните в ней на первой опции, то есть AT90, затем нажмите OK.
Шаг 3. Выберите свой микроконтроллер, в нашем случае им будет Atmega8.
Шаг 4. Кликните на Ports (порты). В нашем проекте мы будем использовать Port C4 и C5 для управления светодиодом. Таким образом, необходимо сконфигурировать биты 4 и 5 как выходные кликнув на них, как показано на рисунке:
Шаг 5. Мы будем использовать универсальный асинхронный последовательный приемопередатчик (USART) для Rx и Tx (приема и передачи данных). Поэтому необходимо выбрать настройки USART, в них кликнуть на настройки приема и оставить их по умолчанию.
Шаг 6. Выберите Program -> Generate, Save and Exit. Теперь более половины вашей работы по программированию микроконтроллера Atmega8 можно считать выполненной.
Шаг 7. Создайте новую папку на рабочем столе чтобы записывать туда наши файлы.
У нас будет 3 диалоговых окна (будут появляться последовательно одно за другим) для сохранения наших файлов.
Сделайте то же самое (что и на представленном рисунке) с двумя другими диалоговыми окнами – то есть сохраните предлагаемые ими файлы.
После этого рабочая область программы будет выглядеть следующим образом:
Теперь большая часть работы по программированию микроконтроллера Atmega8 нами выполнена с использованием такой удобной программной среды как CodeVision. Но ели вы не хотите использовать данную программную среду, то вы можете запрограммировать работу с последовательным портом микроконтроллера вручную по аналогии с последовательностью действий в таких статьях на нашем сайте как:
Работа схемы
Схема подключения Bluetooth-модуля HC-05 к микроконтроллеру AVR ATmega8 приведена на следующем рисунке.
Подключите одну сторону FRC кабеля к программатору USBASP, а другую к контактам SPI микроконтроллера.
Необходимо сделать следующие соединения:
1. Pin1 of FRC female connector -> Pin 17 ,MOSI of Atmega8
2. Pin 2 connected to Vcc of atmega8 i.e. Pin 7
3. Pin 5 connected to Reset of atmega8 i.e. Pin 1
4. Pin 7 connected to SCK of atmega8 i.e. Pin 19
5. Pin 9 connected to MISO of atmega8 i.e. Pin 18
6. Pin 8 connected to GND of atmega8 i.e. Pin 8
Соедините остальные компоненты на макетной плате в соответствии с представленной выше схемой.
Пояснение части кода программы
Полный код программы вместе с видео, демонстрирующим работу схему, приведен в конце статьи. В этой же части статьи мы лишь поясним как правильно объявить переменные в программе, в которых будут храниться символы, поступающие от Bluetooth-модуля.