Bluetooth в настоящее время является одной из самых популярных технологий для радиосвязи на короткие расстояния. При этом наиболее распространенными Bluetooth модулями, находящими широкое применение во встраиваемых системах, являются модули HC-05/06. И в данной статье мы рассмотрим подключение Bluetooth модуля HC-05 к плате MSP430G2 Launchpad. С помощью технологии Bluetooth в нашем проекте мы будем из приложения Bluetooth Terminal на смартфоне управлять встроенным светодиодом платы MSP430G2.
Ранее на нашем сайте мы рассматривали подключение Bluetooth модуля HC-05 (HC-06) к следующим микроконтроллерам (платам):
- к микроконтроллеру AVR;
- к микроконтроллеру PIC;
- к плате Arduino;
- к плате Raspberry Pi Pico;
- к NodeMCU ESP8266;
- к плате STM32 Blue Pill.
Необходимые компоненты
- Плата MSP430G2 LaunchPad (купить на AliExpress).
- Bluetooth модуль HC-05 (купить на AliExpress).
- Android приложение Bluetooth Terminal.
Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158
Bluetooth модуль HC-05
HC-05 – это один из самых простых в применении Bluetooth модулей. Он использует протокол последовательной связи (USART) для связи с другими устройствами. У модуля два режима работы – режим команд (Command mode) и рабочий режим (Operating mode). Режим команд используется для настройки модуля – смены пароля, установки бодовой скорости и т.д. Рабочий режим используется для передачи или приема данных.
В нашем проекте мы будем использовать настройки модуля по умолчанию – пароль по умолчанию равен 0000 или 1234, имя устройства HC-05 и скорость 9600 бод. В дальнейшем мы будем использовать только рабочий режим модуля.
Рабочее напряжение для модуля HC-05 составляет от 4V до 6V (обычно +5V), рабочий ток – 30 mA. Дальность работы модуля – 100 метров. Модуль содержит 6 контактов, из которых контакты EN и State используются только в режиме команд. Распиновка и внешний вид Bluetooth модуля HC-05 с обоих сторон показаны на следующем рисунке.
Схема проекта
Схема подключения Bluetooth модуля HC-05 к плате MSP430G2 представлена на следующем рисунке.
Как видно из представленной схемы, у нас всего 4 соединения с модулем HC-05. Контакты RxD и TxD модуля HC-05 (контакты последовательной связи) подключены к контактам P1.1 и P1.2 платы MSP430 соответственно. Контакты VCC и GND модуля HC-05 подключены к контактам VCC и GND платы.
Объяснение кода программы
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты. Код программы мы будем писать в среде Energia IDE, которая является фактически аналогом Arduino IDE.
Первым делом в программе дадим осмысленное название контакту, с которого мы будем управлять светодиодом.
1 |
#define LED RED_LED |
Далее, в функции setup(), используем функцию Serial.begin() для установки бодовой скорости равной 9600 – это скорость работы по умолчанию для модуля HC-05. Затем с помощью функции pinMode() зададим режим работы используемого контакта на вывод данных.
1 2 3 4 |
void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); } |
В функции void loop() мы первым делом с помощью функции Serial.available() будем проверять имеются ли какие либо данные в последовательном порту. Затем объявим переменную data_recieved, в которую будем сохранять поступающие данные с помощью функции Serial.read().
Далее с помощью операторов if-else мы будем проверять данные, принятые со смартфона. Если мы приняли символ 1, мы будем включать светодиод с помощью команды digitalWrite(LED, HIGH) и передавать с помощью функции Serial.write() сообщение в приложении на смартфоне о том, что светодиод включен. Если мы приняли 2, то мы будем выключать светодиод с помощью команды digitalWrite(LED, LOW) и передавать сообщение в приложении на смартфоне о том, что светодиод выключен
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
void loop() { if (Serial.available()) { char data_received; data_received = Serial.read(); if (data_received == '1') { digitalWrite(LED, HIGH); Serial.write("LED turned ON"); } else if (data_received == '2') { digitalWrite(LED, LOW); Serial.write("LED turned OFF"); } } } |
Тестирование работы проекта
После сборки аппаратной части проекта загрузите код программы в MSP430 с помощью Energia IDE и загрузите и установите на свой смартфон приложение Bluetooth Terminal. Главный экран этого приложения выглядит следующим образом:
После этого включите Bluetooth на своем смартфоне и выберите ваш Bluetooth модуль HC-05 из списка доступных устройств. Используйте пароль 0000 или 1234 для подключения к модулю. После подключения к модулю откроется окно с названием модуля и надписью что имеется подключение к нему.
В этом окне введите 1 или 2 чтобы передать это число в MSP430 через Bluetooth модуль HC-05. Передача 1 включит светодиод платы и в окне приложения появится надпись “LED turned ON” как показано на следующем рисунке.
Передача 2 выключит светодиод платы и в окне приложения появится надпись “LED turned OFF” как показано на следующем рисунке.
Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.
Исходный код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#define LED RED_LED void setup() { Serial.begin(9600); pinMode(2, OUTPUT); } void loop() { if (Serial.available()) { char data_received; data_received = Serial.read(); if (data_received == '1') { digitalWrite(LED, HIGH); Serial.write("LED turned ON\n"); } if (data_received == '2') { digitalWrite(LED, LOW); Serial.write("LED turned OFF\n"); } } } |
Здравствуйте. Можно ли подключить через ваше устройство геодезическое оборудование тахеометры?
Добрый день. К сожалению я не знаю что это за оборудование, но если вы подскажете какие у него есть интерфейсы для взаимодействия с "внешним миром", возможно, я смогу вам помочь