Передача данных по Bluetooth между Android и Arduino

Передача данных по Bluetooth между Android и Arduino Квадрокоптеры

Описание модуля bluetooth hc 06

Все существующие типы модулей Bluetooth имеют свои особенности, но схожи по принципу работы и действия. Одним из типов модулей является Bluetooth HC 06. Со стороны Arduino модуль выглядит как обычный последовательный интерфейс, поэтому он может сразу общаться с устройством на компьютере.

Основные функции модуля:

  • Питание 3,3 В – 6 В;
  • Максимальное входное напряжение 5 В;
  • Максимальный ток 45 мА;
  • Скорость передачи данных 1200-1382400 бод;
  • Рабочие частоты 2,40 ГГц – 2,48 ГГц;
  • Поддерживает спецификацию bluetooth версии 2. 1;
  • Низкое энергопотребление;
  • Высокая защита данных;
  • Расстояние связи 30 м;
  • Подключение к смартфону использует следующие данные – пароль “1234”, скорость передачи данных 9600, имя модуля NS-06.

В модуле есть следующие контакты:

  • VCC , GND – плюс и минус питания;
  • RX и TX – приемник и передатчик;
  • MCU-INT – выход состояния;
  • Clear (Reset) – сброс и перезагрузка модуля. Последние два контакта обычно не используются в работе, поэтому в настоящее время модули выпускаются без этих контактов.

Модули H C-06 используются только в качестве ведомых. он не может самостоятельно подключаться к другим устройствам Bluetooth. С помощью AT-команд можно изменить все настройки соединения, включая пароль и скорость передачи данных.

В комплект поставки модуля не входят провода для подключения.

Android – передаем данные в arduino

В качестве первой программы есть только две кнопки: “вкл.” и “выкл.”. При нажатии кнопки включения светодиода Bluetooth передает “1”, при нажатии кнопки выключения светодиода – “0”.

Смотрите про коптеры:  Структурные и функциональные схемы РТС, Системы передачи информации, Системы извлечения информации, Системы радиоуправления, Системы радиопротиводействия - РАДИОТЕХНИЧЕСКИЕ СИСТЕМЫ: ОСНОВЫ ТЕОРИИ

В файле манифеста необходимо ввести 2 строки разрешений для работы Bluetooth:

Главный код активации:.

Android – прием и передача данных к arduino

Но здесь нам пришлось повозиться. Обычно в Android для получения данных от устройства необходимо создать отдельный фоновый поток, чтобы не задерживать основную активность. Активация потока приводит к тому, что все данные будут получены в отдельном потоке.

Окно нашей основной деятельности будет украшено элементом TextView, который отображает данные, полученные от Arduino. Чтобы сделать Java-код основной деятельности читабельным, я его хорошо прокомментировал:

Bluetooth в arduino проектах

Многие проекты требуют дистанционного управления или передачи данных с телефона или другого устройства. Bluetooth – один из самых популярных и удобных способов обмена данными. Платы Arduino и компьютеры обмениваются данными с помощью интерфейсов UART (последовательный порт).

Модули на базе микросхемы BC417 являются самыми популярными. Эта серия называется HC. Модули HC-03 и HC-05 могут использоваться как для серверных, так и клиентских функций соединения и предлагают широкий набор AT-команд.

Для подключения к компьютеру необходимы модули Bluetooth, платы Arduino, соединительные провода и компьютер. Скетч для управления платой Arduino через смартфон и компьютер будет одинаковым, поскольку оба устройства подключаются к микроконтроллерам через UART.

Перед загрузкой скетча необходимо отключить модуль Bluetooth, иначе при обращении к Arduino появится ошибка. В качестве альтернативы можно установить приложение для Android, чтобы отправлять данные на модуль на смартфоне или планшете. Установите приложение и загрузите скетч на плату Arduino, затем подключите модуль к плате. Пример кода мигания светодиода:


int val;

void setup()

{

Serial.begin(9600);

pinMode(13, OUTPUT); // 13 пин – светодиод, объявляется как выход

}

void loop()

{

if (Serial.available()) // проверка поданных команд

{

val = Serial.read();

if (val == '1') {digitalWrite(13, HIGH);} // при 1 включается светодиод

if (val == '0') {digitalWrite(13, LOW);}  // при 0 выключается светодиод

}

}

Теперь необходимо настроить телефон для работы с модулем. Зайдите в настройки телефона и включите Bluetooth для установления соединения. После того как устройство будет найдено, необходимо ввести пароль. Обычно это либо “1234”, либо “0000”. После этого нужно зайти в приложение, нажать “Подключить Bluetooth”, затем выбрать устройство. Если сопряжение прошло успешно, светодиод на модуле начнет мигать медленнее, примерно раз в 2 секунды.

В этом скетче светодиод включается и выключается на основе цифр “1” и “0”. В дополнение к цифрам можно использовать буквы латинского алфавита, чувствительные к регистру.

Таким же образом для подключения к модулю можно использовать компьютер. Для этого к COM-порту подключаются различные программы. При запуске программы они запрашивают порт, скорость и тип соединения. В случае успешного подключения на экране появляется терминальное поле, в котором можно ввести с клавиатуры цифры или буквы, активирующие светодиод.

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

1 473 просмотров

Исходный код программы

Пожалуйста, задавайте вопросы по тексту этой программы в комментариях. Я постараюсь ответить на них.

Объяснение программы для arduino

В конце этой статьи мы приводим полный код программы. Ниже мы рассмотрим наиболее важные части.

Сначала необходимо определить в программе контакты Arduino, которые мы будем использовать для последовательного обмена данными (Rx и Tx).

Затем переведите второй и третий контакты (к ним подключены светодиоды) платы Arduino в режим выхода данных.

Следуя функции цикла, плата Arduino будет постоянно проверять данные, поступающие от модуля Bluetooth (который, в свою очередь, реагирует на голосовые команды), и управлять светодиодами на основе этой информации. В “Value” будут храниться все полученные команды.

Используя значение этой переменной, мы включим оба светодиода. Аналогичным образом мы будем включать и выключать светодиоды в нашей схеме при получении других голосовых команд. Видео в конце статьи объясняет эти процессы более подробно.

Работа проекта

1. Сборка схемы на рисунке 1. Перед загрузкой программного кода убедитесь, что контакты Rx и Tx отсоединены. Подключите их снова после загрузки программы.

Сравнение модулей bluetooth hc 05 и hc 06

На рынке наиболее популярными являются модули HC 05 и HC 6. Принцип работы этих модулей схож, оба модуля состоят из одного и того же чипа, но есть ряд различий. Прежде всего, следует помнить, что модуль HC 05 может быть настроен в двух различных конфигурациях.

Оба модуля собираются из двух спаянных плат. Помимо заводской платы с микросхемой, вторая необходима для самодельных устройств; она имеет ножки GPIO со стандартным шагом 2,54 мм и оснащена регулятором напряжения.

Кроме того, что модуль HC-05 стоит дороже, он имеет больше полезных рабочих функций.

Распиновка модуля HC-05 :

  • EN – управление питанием;
  • VCC – питание;
  • GND;
  • RX, TX;
  • STATE – индикация;
  • KEY – включает режим управления с помощью AT-команд. При KEY=0 – передача данных, при KEY=1 – AT-команды.

В HC-05 по умолчанию используется скорость передачи AT-команд 38400; в HC-06 по умолчанию используется скорость 9600. Для HC-05 в конце AT-команд должен стоять символ CRLF.

Основные особенности HC-05:

  • Рабочая частота 2,4-2,48 ГГц;
  • Мощность передачи 0,25-2,5 мВт;
  • Дальность действия 10 м;
  • Максимальная скорость передачи данных 115200 бод;
  • Питание 3,3 В;
  • Ток 30-40 мА;
  • Рабочая температура от -25 C до 75 C.

Каждый модуль подключается к плате Arduino одинаковым образом.

Одним из вариантов является соединение модулей с помощью делителя. Представленный здесь вариант также будет работать на плате Arduino Uno.

Схема проекта

На следующем рисунке показана схема голосового управления светодиодом с помощью Arduino и Bluetooth. Отсоедините контакты Rx и Tx перед загрузкой программы на плату Arduino и снова подсоедините их после загрузки программы.

Заключение

Здесь мы рассмотрели некоторые из наиболее распространенных Bluetooth-модулей Arduino HC05 и HC06, а также варианты их подключения и работы с ними. Использование этих модулей не должно быть проблематичным – просто подключите его к выводам с помощью аппаратного или программного UART, а затем используйте традиционные библиотеки (Serial для выводов 0, 1, SoftwareSerial для остальных).

Соединение Bluetooth может значительно расширить возможности проектов Arduino по общению с другими устройствами. Состояние датчиков и параметры системы можно отслеживать без перезагрузки контроллера. Кроме того, с помощью Arduino можно легко создавать роботов и автомобили, которыми можно управлять со смартфона через bluetooth. Прочитав эту статью, вы должны быть в состоянии сделать свой первый проект.

Оцените статью
Радиокоптер.ру
Добавить комментарий