- Необходимые материалы
- Модуль Bluetooth (HC-05)
- Порты STM32 USART
- Принципиальная схема и подключения
- Программирование STM32F103C8
- Шаги по подключению модуля Bluetooth к телефону Android
В современном мире Bluetooth стал очень популярным, и почти каждое устройство, такое как мобильный телефон, ноутбук и информационно-развлекательная система автомобиля, использует Bluetooth для беспроводной связи. Bluetooth используется не только для передачи данных, но и для беспроводного управления другими устройствами Bluetooth. Например, с помощью гарнитуры Bluetooth вы можете прослушивать песню по беспроводной сети со своего мобильного телефона или использовать автомобильную аудиосистему для воспроизведения песен со своего мобильного телефона.
Bluetooth - это беспроводная технология, работающая на частоте 2,4 ГГц. Нормальный сигнал Bluetooth находится в радиусе 10 метров. Bluetooth - это наиболее часто используемая беспроводная технология во встроенных проектах при условии, что диапазон связи ограничен. Bluetooth имеет дополнительное преимущество в виде низкого энергопотребления и низкой стоимости эксплуатации. Обычно он используется для сопряжения микроконтроллеров со смартфонами с помощью приложений Bluetooth.
Мы видели взаимодействие модуля Bluetooth с другими микроконтроллерами, такими как Arduino, 8051, PIC и т. Д. Теперь в этом руководстве мы будем сопоставлять модуль Bluetooth HC-05 с STM32F103C8 и включать / выключать светодиод с помощью мобильного телефона Android.
Необходимые материалы
- STM32F103C8
- Модуль Bluetooth (HC-05)
- СВЕТОДИОД
- Android Mobile
- Макетная плата
- Соединительные провода
Программного обеспечения:
- Терминал Bluetooth (приложение для Android)
Модуль Bluetooth (HC-05)
Чаще всего используется модуль Bluetooth во встраиваемых проектах. Это последовательный модуль Bluetooth, который использует последовательную связь с дальностью действия менее 100 м и работает при 5 В (минимум 3,3 В). Его можно использовать для беспроводного соединения двух микроконтроллеров, а также с мобильным телефоном и ноутбуками. Поскольку доступно множество приложений для Android, это очень полезно для создания проектов с беспроводным управлением через Bluetooth.
Он использует связь USART и может взаимодействовать с микроконтроллерами, имеющими протокол связи USART.
Имеет встроенную антенну. Он имеет конфигурации Master / Slave, которые можно изменить в командном режиме AT, который полезен, когда только одно устройство должно отправлять данные (от главного к подчиненному), например, с ПК (MASTER) на подчиненное устройство (любой MCU). Мастер может подключаться к другим устройствам, а подчиненный не подключается к другому соединению, кроме мастера.
Режимы работы
Он имеет два режима: AT Command Mode и Data Mode.
Когда Bluetooth включен, он переходит в режим передачи данных по умолчанию. Этот режим можно использовать для передачи данных. Чтобы войти в режим AT-команд во время включения, нам нужно нажать кнопку, присутствующую в модуле, чтобы изменить настройки модуля по умолчанию, такие как конфигурации ведущий / ведомый.
Контакты модуля Bluetooth
- Контакт EN (ENABLE) - этот контакт используется для установки режима данных или режима AT-команд. По умолчанию он находится в РЕЖИМЕ ДАННЫХ. При нажатии кнопки во время включения он переходит в командный режим AT.
- Вывод + 5V - используется для питания модуля
- Вывод GND - используется для заземления модуля.
- Вывод TX - этот вывод подключается к выводу RX MCU.
- Вывод RX - этот вывод подключен к выводу TX MCU.
- СОСТОЯНИЕ - этот вывод указывает на состояние модуля, см. Ниже об индикации
Светодиодная индикация
- Он имеет светодиодный (КРАСНЫЙ) индикатор, который показывает состояние модуля Bluetooth.
- Когда модуль Bluetooth НЕ ПОДКЛЮЧЕН к какому-либо устройству, сигнал становится низким, а красный светодиод постоянно мигает, что указывает на то, что модуль НЕ СОПРЯЖЕН.
- Когда модуль Bluetooth ПОДКЛЮЧЕН к любому устройству, сигнал становится ВЫСОКИМ, а красный светодиод мигает с некоторой задержкой, что указывает на то, что модуль СОПРЯЖЕН.
Ознакомьтесь с нашими другими проектами, чтобы узнать больше о Bluetooth-модуле HC-05 с другими микроконтроллерами:
- Игрушечная машинка с управлением по Bluetooth и Arduino
- Система домашней автоматизации с управлением по Bluetooth с использованием 8051
- Голосовое управление подсветкой с использованием Raspberry Pi
- FM-радио, управляемое смартфоном, с использованием Arduino и обработки
- Автомобиль-робот, управляемый мобильным телефоном, с помощью G-сенсора и Arduino
- Взаимодействие модуля Bluetooth HC-06 с микроконтроллером PIC
Порты STM32 USART
Порты последовательной связи USART STM32F103C8 (СИНЯЯ ПИЛЛЯ) показаны на изображении контактов ниже. Они окрашены в синий цвет и имеют (PA9-TX1, PA10-RX1, PA2-TX2, PA3-RX2, PB10-TX3, PB11-RX3). Таких каналов связи у него три.
Принципиальная схема и подключения
Схема подключения для взаимодействия модуля Bluetooth с STM32 выполнена, как показано ниже.
Соединение между STM32F103C8 и модулем Bluetooth (HC-05)
- Контакт TX (PA9) STM32F103C8 подключен к контакту RX модуля Bluetooth.
- Контакт RX (PA10) STM32F103C8 подключен к контакту TX модуля Bluetooth.
- Вывод VCC (+ 5V) модуля Bluetooth подключен к выводу 5V STM32F103C8.
- Контакт GND модуля Bluetooth подключен к контакту GND STM32F103C8.
Прочие подключения
- Вывод (PA0) STM32 (Blue Pill) подключен к положительному выводу светодиода через последовательный резистор. Здесь используется светодиод смешанного цвета.
- Другой вывод светодиода подключен к GND STM32.
Программирование STM32F103C8
Взаимодействие Bluetooth с STM32 такое же, как у Arduino, а программирование в STM32 такое же, как у Arduino IDE. См. Это руководство по программированию STM32 с USB с использованием Arduino IDE.
Как уже говорилось, в этом проекте мы будем сопрягать модуль Bluetooth (HC-05) с STM32F103C8 и использовать Android-смартфон с Android-приложением Bluetooth Terminal для включения и выключения светодиода.
Примечание . Вывод RX и TX необходимо удалить при загрузке кода в STM32F103C8.
Полный код этого проекта приведен в конце этого руководства с демонстрационным видео.
Кодировать этот проект так просто. Можно использовать те же коды Arduino, но следует изменить только пин. Поскольку у нас есть три набора контактов USART в STM32F103C8, мы должны указать правильный контакт, который мы использовали для подключения модуля Bluetooth.
1. Сначала нам нужно назвать выводы с соответствующими номерами контактов с типом данных int, как показано ниже.
const int распиновка = PA0;
2. Далее нам нужна переменная для хранения последовательных данных с мобильного телефона Android. Данные могут быть символьными или целыми числами, как показано ниже.
char inputdata = 0;
3. Затем в void setup () мы должны запустить последовательную связь между STM32 Blue Pill и модулем Bluetooth, задав скорость передачи 9600 бод.
Serial1.begin (9600);
Здесь мы использовали Serial1, потому что мы подключили HC-05 к TX1 и RX1 STM32.
Мы также можем использовать Serial2 или Serial3, но, соответственно, должен быть подключен контакт.
4. Вводное сообщение отправляется в виде последовательных данных на serial1, то есть на модуль Bluetooth HC05. Этот модуль дополнительно отправляет данные в приложение Bluetooth Terminal мобильного телефона Android. Итак, мы используем следующие утверждения
Serial1.print ("ДАЙДЖЕСТ ЦЕПИ \ n"); Serial1.print («BLUETOOTH С STM32 \ n»);
5. Затем нам нужно установить режим вывода (PA0) как выход, поскольку мы подключили светодиод к этому выводу. Поэтому мы используем
pinMode (распиновка, ВЫХОД);
6. Затем в цикле void () мы запускаем следующие данные для чтения последовательных данных и соответственно включаем / выключаем светодиод.
void loop () { Если (Serial1.available ()> 0) { inputdata = Serial1.read (); если (inputdata == '1') { digitalWrite (распиновка, ВЫСОКИЙ); Serial1.print ("Светодиод горит \ n"); } иначе, если (inputdata == '0') { digitalWrite (распиновка, LOW); Serial1.print («Светодиод выключен \ n»); } } }
Здесь мы используем оператор if, потому что этот код выполняется только тогда, когда порт Serial1 имеет какие-либо данные, полученные от модуля Bluetooth, поэтому этот оператор используется Serial1.available ()> 0 . В противном случае, если он не войдет, он ждет, пока не начнет последовательную связь. Теперь он сохраняет полученные данные в переменной inputdata = Serial1.read (). Затем он проверяет значение, отправленное из приложения терминала Bluetooth. Таким образом, если значение равно 1, он печатает LED ON и переводит вывод (PA0) в состояние ВЫСОКОГО уровня с помощью инструкции digitalWrite (pinout, HIGH), а если значение равно 0, он выводит светодиод ВЫКЛ и переводит вывод (PA0) в состояние НИЗКОГО.
Шаги по подключению модуля Bluetooth к телефону Android
Шаг 1: - Откройте Bluetooth с мобильного телефона после загрузки кода в STM32 из Arduino IDE и подачи питания на схему. ПОМНИТЕ удалить контакты RX и TX при ЗАГРУЗКЕ кода
Шаг 2: - В доступных устройствах выберите HC-05 и введите пароль 1234
Шаг 3: - После сопряжения откройте приложение Bluetooth Terminal, выберите подключение устройства и выберите HC-05, как показано ниже.
Шаг 4: - После подключения к модулю Bluetooth HC-05 введите значения на клемме 1 или 0, чтобы включить и выключить светодиод. Вы также получите сообщение о том, что светодиод горит или выключен.