Управление по bluetooth. Уроки Arduino: управление устройствами со смартфона для чайников Arduino блютуз работа с системой без программ

Bluetooth в Arduino позволяет объединять различные устройства по беспроводному каналу связи. Вы можете передавать сообщения от датчиков и контроллеров Arduino на Android устройства и наоборот, получать команды со смартфонов по bluetooth. В этой статье мы узнаем, как с помощью популярных и не очень недорогих bluetooth модулей HC05 и HC06 организовать беспроводную работу своего ардуино проекта. Вы не поверите, но подключение и программирование Bluetooth модулей совсем не сложное занятие и доступно даже начинающим. Давайте убедимся в этом.

Нередко в проектах возникает необходимость дистанционного управления или передачи данных с телефона или другого устройства. Одним из самых популярных и удобных способов является обмен данных через Bluetooth. Для связи платы Ардуино и компьютера используется интерфейс UART (Serial). Так как любая плата Ардуино имеет хотя бы 1 последовательный порт UART, для подключения Bluetooth модуля не требуются специализированные библиотеки и схемы.

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

Для подключения к ПК потребуются модуль Bluetooth, плата Ардуино, соединительные провода и компьютер. Скетч для управления платой Ардуино через смартфон и компьютер будет одинаковым, так как в обоих случаях данные в микроконтроллер буду поступать по протоколу UART. Схема подключения Bluetooth-модуля к плате представлена на рисунке. Пин RX на ардуино подключается к TDX, TX – к RDX, GND – к GND, 5V – к VCC.

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

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» и выбрать нужное устройство. При успешном сопряжении на модуле светодиод начнет мигать медленнее, примерно 1 раз в 2 секунды.

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

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

Описание модуля Bluetooth HC 06

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

Основные характеристики модуля:

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

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

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

Модуль HC-06 используется только в режиме slave, то есть он не может самостоятельно подключаться к другим устройствам Bluetooth. Все настройки для подключения «пароль, скорость передачи данных» можно изменить при помощи АТ-команд.

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

Сравнение модулей Bluetooth HC 05 и HC 06

Модули HC 05 и HC 06 являются наиболее используемыми, их чаще остальных можно найти в продаже. Принцип действия этих модулей схож, оба модуля основаны на одинаковом чипе, но есть и важные отличия. В первую очередь, модуль HC 05 может работать в двух режимах работы – и в качестве ведущего (master), и в качестве ведомого (slave).

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

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

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

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

Скорость передачи АТ команд по умолчанию для HC-05 равна 38400, для HC-06 – 9600. Важным моментом является то, что в конце АТ команд для HC-05 должны быть символы CRLF.

Основные характеристики HC-05:

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

Подключение обоих модулей к плате Ардуино одинаково.

Вариант подключение модуля с использованием делителя.Представлен вариант для Arduino Nano, но он подойдет и к плате Uno.

Заключение

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

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


Как правило в заголовках к подобным статьям указывается конкретная модель модуля, например, HC-05 или HC-06. На самом деле все они подключаются одинаково. На что действительно следует обратить внимание, так это на режим работы. Bluetooth модуль может работать в одном из двух режимов: master или slave.

Slave (ведомый) - наиболее часто встречающийся режим работы, в котором устройство ожидает подключения, само при этом не способно подключиться к другому устройству.
Данный режим может использоваться в роботе, bluetooth розетке, метеостанции и любом другом устройстве, к которому планируется подключение, например, со смартфона или компьютера.

В режиме master (ведущий) устройство, напротив, является инициатором соединения и может подключиться к slave модулю. Для создания связи между двумя Ардуино посредством Bluetooth потребуются два модуля, один из которых сконфигурирован на работу в режиме master, другой - slave.

Вот теперь, пожалуй, можно уточнить в чем разница между всеми этими HC-03, -04, -05...

  • HC-03, HC-05 - позволяют изменять режим работы slave/master с помощью AT-команд;
  • HC-04, HC-06 - сконфигурированы заводом-изготовителем для работы в определенном режиме, который в дальнейшем не может быть изменен штатными средствами. Хотя master модули мне не попадались;
  • HC-07- позиционируется как замена HC-06;
  • HC-08 - работает по протоколу Bluetooth v4.0 BLE (Bluetooth Low Energy - Bluetooth с низким энергопотреблением). Позволяет изменять режим работы с помощью AT-команд;
  • HC-09 - позиционируется как замена HC-06 и HC-07, но работает только в slave режиме.
Модули, позволяющие изменять режим работы, по умолчанию сконфигурированы как slave. Также в продаже можно встретить SPP-C Bluetooth модули, которые предлагаются как улучшенная замена HC-05 и HC-06 для работы в режиме slave.

Итак, сегодня речь пойдет о подключении к Ардуино модулей Bluetooth в режиме slave. Причем не "голых", а уже распаянных на интерфейсную плату. Такая плата содержит преобразователь уровней и стабилизатор напряжения, что позволяет подключать ее к Ардуино напрямую и запитывать от 5 вольт. Для общения с модулями используется интерфейс UART (Universal Asynchronus Receiver-Transmitter или универсальный асинхронный приемопередатчик). Все платы Ардуино имеют хотя бы один последовательный порт UART, это означает что для подключения к ним Bluetooth не требуется каких-либо специализированных библиотек или схем. Достаточно соединить контакты Rx, Tx модуля с контактами Tx и Rx Ардуино соответственно. То есть передатчик одного устройства соединяется с приемником другого. Ниже приведена схема подключения Bluetooth модуля к Arduino UNO.


Для обмена данными через последовательный интерфейс в Ардуино используется объект Serial. Попробуем управлять встроенным в Ардуино светодиодом: будем включать его при получении по Bluetooth символа "1" и выключать при получении "0". Для этого загрузим в него приведенный ниже скетч. Обратите внимание: выводы 0 и 1 (RX и TX) используется при программировании Ардуино, поэтому от них необходимо отключить модуль Bluetooth перед загрузкой скетча.

char incomingByte = 0 ; void setup () { Serial .begin (9600 ); Serial .println ("Hello" ); } void loop () { if (Serial .available ()) { incomingByte = Serial .read (); if (incomingByte=="0" ) // и проверяем его на равенство "0" else if (incomingByte=="1" ) // если не равно, то сравниваем с "1" digitalWrite (LED_BUILTIN , HIGH ); } }

Функцией Serial.begin() устанавливаем скорость передачи данных, на которую сконфигурирован наш модуль. Как правило, заводом-изготовителем модули настраиваются на скорость 9600 бит/с. Загружаем код в Ардуино и подключаем Bluetooth. Для управления будем использовать смартфон и Bluetooth терминал - по этому сочетанию можно найти довольно много приложений в маркете. Я пользуюсь Bluetooth Terminal от Alexander Vozjennikov, на ее примере я буду описывать дальнейшие действия, но можно установить и любой другой терминал, это дело вкуса. Владельцам айфонов, думаю, также не составит труда найти подобное приложение. Итак, запускаем терминал, соглашаемся на предложение включить Bluetooth. Если ранее смартфон не связывался с данным модулем, то ищем новое устройство и пробуем подключиться, на запрос PIN-кода вводим 1234 или 0000.

Если соединение установилось, то можем посылать данные на Ардуино. Попробуем отправить 1, светодиод должен зажечься; при отправке 0 он потухнет. Если мы теперь нажмем кнопку сброса на Ардуино, то в терминале появится строка Hello - это выполнилась функция Serial.println("Hello") в функции setup() .


А что если кроме Bluetooth требуется подключить еще какое-то UART устройство? В случае с Arduino Mega и Mega2560 нам кроме порта Serial доступны еще 3 аппаратных последовательных порта: Serial1 (RX-19 и TX-18), Serial2 (RX-17 и TX-16), Serial3 (RX-15 и TX-14), а значит можно использовать их вместо Serial, соответственно, нам уже не придется отключать модуль перед прошивкой Ардуино. Для других плат можно воспользоваться библиотекой SoftwareSerial. Данная библиотека позволяет реализовать последовательный интерфейс на любых цифровых выводах Ардуино с помощью программных средств, дублирующих функциональность UART (отсюда и название "SoftwareSerial"). Библиотека позволяет программно создавать несколько последовательных портов, работающих на скорости до 115200 бит/с. Давайте немного изменим предыдущий скетч, чтобы использовался не аппаратный, а программный последовательный порт.

#include SoftwareSerial mySerial(2 , 3 ); // RX, TX char incomingByte = 0 ; void setup () { // Задаем режим работы вывода к которому подключен встроенный светодиод pinMode (LED_BUILTIN , OUTPUT ); // Устанавливаем скорость передачи данных по последовательному интерфейсу mySerial.begin (9600 ); mySerial.println ("Hello" ); } void loop () { if (mySerial.available ()) { // Если последовательным портом приняты данные incomingByte = mySerial.read (); // то считываем из буфера один байт if (incomingByte=="0" ) // и проверяем его на равенство "0" и "1" digitalWrite (LED_BUILTIN , LOW ); // если принят "0", то гасим светодиод else if (incomingByte=="1" ) digitalWrite (LED_BUILTIN , HIGH ); // если принят "1", то зажигаем светодиод } }
Здесь для работы с Bluetooth создается программный последовательный порт на выводах 2 и 3. Можно использовать и другие выводы, но необходимо учитывать следующие ограничения: не все выводы Arduino Mega и Mega2560 поддерживают прерывания, возникающие при изменении уровня сигнала, поэтому на данных платах в качестве вывода Rx могут использоваться только следующие выводы: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69). Аналогичное ограничение для платы Leonardo оставляет нам для использования в качестве Rx выводы: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

Итак, давайте загрузим данный скетч в Ардуино, подключим наш модуль к выводам 2 (Rx) и 3 (Tx) и попробуем управлять светодиодом со смартфона. Всё работает! Как видите, нет ничего сложного в управлении устройством на базе Ардуино по Bluetooth.

Остается только подумать о более удобном интерфейсе для управления конечным устройством. Если для этих целей планируется использовать смартфон, то в маркете можно найти большое количество Bluetooth контроллеров. Я же советую обратить внимание на приложение RemoteXY. Оно позволяет создать свой собственный интерфейс управления, заточенный под конкретный проект. На сайте разработчика можно найти подробную документацию и примеры. В общем, рекомендую!

В следующих публикациях обязательно рассмотрим конфигурирование модулей HC-0x при помощи AT-команд и работу в режиме master. А пока этой информации для быстрого старта, я думаю, достаточно.

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

Непосредственно сам Bluetooth-модуль. В таком виде он может использоваться в различных устройствах, где впаивается непосредственно в плату. Модуль имеет 34 вывода, среди которых: выводы для соединения с компьютером по UART, передачи звука по методу PCM (импульсно кодовая модуляция), аналоговый вход и выход, контакты для подключения к USB разъёму, SPI интерфейс, а также порты общего назначения. На самом деле не все эти выводы доступны к использованию, заблокирован доступ к выводам передачи звука (5-8), аналоговым входу и выходу (9, 10), а так же к группе контактов для подключения к USB (15, 20).

HC-06 построен на чипе BC417 (BlueCore4-External device), спецификация Bluetooth V2.0. На борту так же имеется кварц на 26 МГц и флеш-память на 8 Мб. Питание осуществляется от 3,3В.

Для своих конструкций удобнее всего использовать модуль с макетной платой, на которой выведены необходимые контакты для подключений, а так же имеется стабилизатор напряжения, который позволяет питаться от 5 вольт.
При покупки подобных модулей, можете столкнуться с различными их маркировками. По сути это одно и то же устройство, отличающееся прошивкой, которая определяет режим модуля (master / slave).

Отличие HC-05 от HC-06 состоит в том, что HC-05 можно использовать в качестве ведомого (master) или ведущего (slave). Данные режимы задаются с помощью АТ-команд. Кнопка на плате модуля переключает его в режим ввода АТ-команд. Режим master даёт возможность модулю самому обнаруживать подобное устройство и организовывать связь с ним. Модуль HC-06 может работать только в одном фиксированном режиме slave.

Так же существуют модели HC-03 и HC-04, но они выпускаются для промышленных целей.

Обозначение контактов на плате HC-06.

STATE - проверка состояние модуля. На этом контакте дублируется сигнал, который отображает встроенный на плате светодиод. Если он очень быстро мигает, значит модуль находится в активном состоянии. В режиме установления связи ток составляет 30-40 мА. Когда модуль устанавливает связь с другим устройством, светодиод просто горит. В режиме передачи данных ток составляет 8 мА.
RX - получение данных.
TX - передача данных.
GND - подключается к земле.
+5V - питание +5 Вольт
EN - включение / выключение модуля. Если на этот контакт подать логическую 1 (5 вольт), модуль выключится, если подать логический 0 или не подключаться к этому контакту, модуль будет работать.

По-умолчанию HC-06 имеет имя для обнаружения другими устройствами «HC-06 », с пин-кодом «1234 ».

Для изменения этих данных нужно модуль подключить к компьютеру и с помощью программы-терминала ввести АТ-команды. Это можно сделать с помощью переходника USB to COM с TTL уровнями. Для этих целей подойдёт адаптер на PL2303HX , CH340G , либо другой подобный. На компьютере к этому моменту уже должен быть установлен драйвер для USB адаптера.

Контакты соединяем следующим образом:

HC-06 Переходник USB to COM
+5V +5V
GND GND
RX TX
TX RX

При подключении этой сборки к компьютеру, красный светодиод на плате Bluetooth-модуля начнёт быстро мигать. Для ввода АТ-команд можно воспользоваться любой терминальной программой, я использую для этой цели Arduino IDE.

В настройках выбираем номер виртуального COM-порта, на котором подключен USB адаптер, в моём случае это COM44. Откроем окно «Монитора последовательного порта ».

Введём заглавными буквами команду «AT », если устройство удачно подключилось, в ответ должно возвратится «ОК ». По-умолчанию скорость обмена данными 9600 бод.

Для проверки версии прошивки, введём команду «AT+VERSION », в моём случае ответ возвратился «OKlinvorV1.8 ».

Командой «AT+NAMEyyy », где ууу - произвольный набор символов на латинице, можем сменить имя, по которому будут находить наш модуль bluetooth-устройства (по-умолчанию HC-06). В своём примере я ввёл «AT+NAMEfox », ответ возвращается OKsetname .

Командой «AT+PINxxxx », где xxxx – произвольный набор цифр, можно сменить пин-код (по-умолчанию 1234). В ответ возвращается «OKsetPIN ».

Командой «AT+BAUDx », где x – значение от 1 до 9, можно изменить скорость в бодах (по-умолчанию 9600).

1 - 1200
2 - 2400
3 - 4800
4 - 9600
5 - 19200
6 - 38400
7 - 57600
8 - 115200
9 - 230400

Допустим, если ведём команду «AT+BAUD8 », где 8 - скорость 115200 бод, в ответ возвратится «OK115200 ».

Подключение HC-06 к Arduino.

Пример 1. Зальём в Arduino скетч, с помощью которого будем включать и выключать светодиод, распаянный на 13 пине Arduino, через Bluetooth-модуль.

int data;
int LED = 13;
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
}
void loop()
{
if (Serial.available())
{
data = Serial.read();
if (data == "1")
{
digitalWrite(LED, HIGH);
}
if (data == "0")
{
digitalWrite(LED, LOW);
}
}
}

Если у вас нет на плате данного светодиода, подключите его к 13 пину по схеме, номиналы резисторов можно взять от 220 Ом до 1кОм.

Обесточим Arduino и подключим HC-06. Контакт TX модуля подключаем к контакту RX Ардуино (пин 0 на плате UNO), а контакт RX , к контакту TX (пин 1). Контакты +5V и GND , подключаются к соответствующим пинам Ардуино.

Конструкция в сборе. Подав питание на Ардуино, светодиод на HC-06 должен быстро мигать.

Управление Arduino через HC-06, с помощью компьютера.

Пример буду показывать на Windows XP. К компьютеру должен быть подключен любой USB Bluetooth-адаптер и установленны на него драйвера.

В моём случае использовался вот такой адаптер.

При его подключении к ПК, в трее (возле часов) появляется соответствующая иконка.

Нажимаем правой кнопкой мыши на данной иконке и в контекстном меню выбираем «Добавить устройство Bluetooth ».

Ставим переключатель «Устройство установлено и готово к обнаружению » и нажимаем «Далее ».

В списке обнаруженных устройств отобразится наш Bluetooth-модуль, с новым именем, которое я поменял ранее. Выбираем его и нажимаем «Далее ».

В следующем окне вводим пин-код для подключения к модулю, выбрав пункт «Использовать ключ доступа из документации: ». По-умолчанию это «1234», но я его сменил на «9999». Нажимаем «Далее ».

Bluetooth-модуль успешно связался с компьютером, о чём можно узнать с соответствующего окна. Следует обратить внимание, при образовании связи между двумя Bluetooth-устройствами, на компьютере создастся два новых виртуальных COM-порта (будут отображаться в диспетчере устройств), один для исходящих данных, другой для входящих. Нам понадобится порт для исходящих данных, в моём случае это COM45.

Вновь открываем какую-нибудь программу-терминал, я воспользуюсь Arduino IDE. В настройках выбираем исходящий порт (у меня COM45), открываем «Монитор последовательного порта », вводим переменно команды «1 » и «0 ». При команде «1» светодиод загорается, при «0» гаснет.

Управление Arduino через HC-06 с помощью смартфона.

Наверное уже все современные смартфоны имеют в своём составе встроенный Bluetooth. Остаётся только установить программу терминал. В моём случае использовалась Lumia 640 DS , с установленной Windows mobile 10 . В качестве программы терминала использую «». На Android-смартфонах всё аналогично, в качестве программы можно использовать «Bluetooth Terminal ».

Для обладателей смартфонов компании Apple не получится работать с Bluetooth-модулями HC-05 и HC-06 (Bluetooth V2.0), для них придётся использовать адаптеры с технологией BLE (Bluetooth low energy), спецификация Bluetooth 4.0. Ярким представителем является модуль HM-10.

Сопрягаем HC-06 с блютузом смартфона.

1. В «Параметрах » смартфона выбираем пункт «Устройства ».
2. Далее «Bluetooth и другие устройства ».
3. Включаем ползунком блютуз смартфона и нажимаем на «плюс в квадрате » для поиска и добавления нового Bluetooth-устройства, в нашем случае HC-06.

4. В разделе «Добавить устройство » выбираем «».
5. Смартфон произведёт поиск Bluetooth-устройств находящихся в округе и отобразит их имена. В моём примере найден модуль HC-06, который я переименовал в «fox ».

6. Вводим пин-код устройства, к которому подключаемся, нажимаем кнопку «Подключиться ».

Устанавливаем и запускаем терминальную программу «». Подключенный к смартфону модуль HC-06, отображается в списке, выбираем его.

Появится поле для ввода команд и кнопка для отправки. Вводим попеременно «1 » и «0 » и наблюдаем за светодиодом на 13 пине, который будет зажигаться или гаснуть.

Пример 2 . Подключим к Arduino три светодиода и попробуем управлять ими через Bluetooth-модуль HC-06.

Светодиоды подключил к 9, 11 и 13 пину, если будите использовать другие пины, их нужно указать в скетче.

int data;
int LED1 = 9;
int LED2 = 11;
int LED3 = 13;
void setup()
{
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
}
void loop()
{
if (Serial.available())
{
data = Serial.read();
if (data == "1")
{
digitalWrite(LED1, HIGH);
}
if (data == "2")
{
digitalWrite(LED1, LOW);
}
if (data == "3")
{
digitalWrite(LED2, HIGH);
}
if (data == "4")
{
digitalWrite(LED2, LOW);
}
if (data == "5")
{
digitalWrite(LED3, HIGH);
}
if (data == "6")
{
digitalWrite(LED3, LOW);
}
}
}

При заливке скетча модуль HC-06 нужно отсоединить от Ардуино, потому что и компьютер, и блютуз работают по UART. Ардуина не может на одном UART работать с несколькими устройствами.

Запускаем программу-терминал и пробуем скетч в действии. Смысл управления светодиодами следующий, имеется три светодиода, каждый из которых может быть либо включенный, либо выключенный. Получается 6 команд. Команды представляют из себя цифры от 1 до 6 (1, 3, 5 - зажечь 1, 2 и 3 светодиоды. 2, 4, 6 - погасить). Цифры можно вводить по одной, либо в виде комбинаций. Например: 145 - зажечь первый, погасить 2-й, зажечь 3-й.

Пример 3 . Подключим к Arduino реле-модуль из статьи « » и попробуем управлять мощной нагрузкой через Bluetooth. По сути, у нас получится «умная розетка». К реле-модулям можно подключать различные нагрузки (лампочки, насосы, вентиляторы) и управлять ими на расстоянии.

Скетч по этому примеру появится в ближайшее время.

Блютуз свисток для компьютера: http://ali.pub/2jfj3y

Для начала давайте разберемся что такое блютуз.

Bluetooth (от слов англ. blue - синий и tooth - зуб; произносится /bluːtuːθ/ ), блюту́с - производственная спецификация беспроводных персональных сетей (Wireless personal area network, WPAN ). Bluetooth обеспечивает обмен информацией между такими устройствами, как персональные компьютеры (настольные, карманные, ноутбуки), мобильные телефоны, принтеры, цифровые фотоаппараты, мышки, клавиатуры, джойстики, наушники, гарнитуры на надёжной, бесплатной, повсеместно доступной радиочастоте для ближней связи. Bluetooth позволяет этим устройствам сообщаться, когда они находятся в радиусе до 10 м друг от друга (дальность сильно зависит от преград и помех), даже в разных помещениях.

Теперь зная что блютуз служит для построения сетей и обмена данными между устройствами, мы будем его использовать для соединения между собой CNC (ЧПУ) станка и компьютера или телефона или планшета и ноутбука.

Так как я использую прошивку grbl на платформе arduino для управления ЧПУ, то и подключать будем к станку блютуз модуль подходящий для arduino, а именно блютуз модуль HC-06.

Перед подключением Блютуз модуля к ардуино, нужно убедиться, на одинаковой ли скорости COM порта работают блютуз модуль и ардуино.

Если вы используете прошивку grbl 0.8, то ничего менять не нужно, но если grbl 0.9 и выше, то скорость COM порта ардуино станет 115200, а по умолчанию на модуле скорость 9600.

Вот нам и понадобится на самом блютуз модуле поменять скорость порта.

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

AT-командами мы можем изменить скорость COM порта или изменить название Bluetooth устройства или узнать или поменять пин код для сопряжения.

Для того чтоб подключить блютуз модуль к компьютеру для ввода AT-команд нам понадобится программаторFTDI ссылка на него в начале статьи. Схема подключения я думаю тут ненужна. Подключать нужно gnd к gnd, 5в к 5в, rx к tx и tx к rx.

После подключения нам понадобится программа HMComAssistant для ввода AT команд и программирования нашего модуля. Скачать: https://yadi.sk/d/eVzPmnh63Wab5R

Ну и здесь я приведу некоторые AT-команды для изменения настроек блютуз модуля:

АТ-команда Ответ модуля Комментарий
AT ОК Используется для проверки связи, как правило перед выполнением любых операций сперва используется данная команда для проверки связи.
AT+BAUD1 OK или OK1200 Устанавливает скорость передачи данных в 1200 бод
AT+BAUD2 OK или OK2400 Устанавливает скорость передачи данных в 2400 бод
AT+BAUD3 OK или OK4800 Устанавливает скорость передачи данных в 4800 бод
AT+BAUD4 OK или OK9600 Устанавливает скорость передачи данных в 9600 бод
AT+BAUD5 OK или OK19200 Устанавливает скорость передачи данных в 19200 бод
AT+BAUD6 OK или OK38400 Устанавливает скорость передачи данных в 38400 бод
AT+BAUD7 OK или OK57600 Устанавливает скорость передачи данных в 57600 бод
AT+BAUD8 OK или OK115200 Устанавливает скорость передачи данных в 115200 бод
AT+BAUD9 OK или OK230400 Устанавливает скорость передачи данных в 230400 бод
AT+BAUDA OK или OK460800 Устанавливает скорость передачи данных в 460800 бод
AT+BAUDB OK или OK921600 Устанавливает скорость передачи данных в 921600 бод
AT+BAUDC OK или OK1382400 Устанавливает скорость передачи данных в 1382400 бод
AT+NAME +NAME=test Возвращает текущее имя модуля
AT+NAMEiarduino_BLU +NAME=test OK Устанавливает новое имя модуля “test“
AT+PIN +PIN=000000 Возвращает текущий пароль, в данном случае пароль “000000”
AT+PIN123456 +PIN=123456 OK Устанавливаем новый пароль, в данном случае пароль “123456”
AT+VERSION +VERSION=Firmware V3.0.6,Bluetooth V4.0 LE Возвращает версию прошивки, в данном случае пароль “Firmware V3.0.6,Bluetooth V4.0 LE”
AT+RESET +RESET OK
AT+HELP ——– Возвращает список всех доступных АТ-команд

После изменения скорости ком порта и установки пин кода для сопряжения. (по умолчанию пин код для сопряжения “1234”, давайте подключим модуль к ардуино.

И так как я использую CNC shield v 3.0. То и схему подключения приведу к нему.

Я не буду создавать свою схему, а возьму с одной статьи. Да простит меня ее создатель.

Схема конечно не очень ровная, но на мой взгляд довольно понятная.

Итак для чего в схеме используются резисторы? Ардуино имеет 5 вольтовую логику, это значит, что на все выходы свои ардуино посылает напряжение 5В. Но на модуле написано LEVEL 3.3v это значит что Блютуз требует 3.3В, но никак не 5в. Поэтому и подключаются резисторы, чтобы понизить напряжение и предотвратить выход из строя блютуз модуль.

Но я решил использовать напрямую без резисторов, посмотрим насколько долго прослужит модуль, некий краш тест устроим.

Для управления CNC (ЧПУ) станком с телефона или планшета я использовал программу “Grbl controller” она бесплатная и довольно многофункциональная. В видео приведенном ниже я мельком показывал как управляется станочек с этой программы.

Но если вы будете подключаться с компьютера, то тут есть нюанс, при сопряжении соединения с модулем, в устройствах появится два новых COM порта. У меня это COM6 и COM7. Так вот один из них служит для отправки данных, а другой для приема. Поэтому ненужно пугаться и просто попробовать подключиться к одному если ничего не произойдет то подключитесь к другому.

Но если что-то непонятно, но наглядно я это показал в видео:

Вам необходимо дистанционно управлять вашей Arduino платой, обмениваться данными с другими bluetooth устройствами? Блютуз модули HC-05, HC06 помогут справиться с этой задачей.

В первой части статьи мы расскажем о том, как установить беспроводное соединение между Arduino и компьютером, а во второй части как установить соединение между Arduino и телефоном на платформе Android. .

Данная статья будет составной частью в дальнейшей сборке дистанционно управляемой машинки.

Компоненты для повторения (купить в Китае):

Модули HC-05/06 представляют из себя голые блютузы с дополнительной обвязкой.

А именно: установлены на подложку, на которой расположен стабилизатор с 5 на 3.3Вольта, светодиод, указывающий на состояние модуля (образовано соединение или нет), и конденсаторы на линиях питания. Также на плате установлен mosfet транзистор (Q1), который при надобности может разрывать цепь питания блютуза, тем самым отключая его, но в нашем обзоре это задействовано не будет.

С лицевой стороны модуль выглядит вот так

Подключение к Arduino

Bluetooth HC-05/06 Arduino
VCC +5V
GND GND
TX RX
RX TX

При подаче питания на модуль встроенный светодиод начинает мигать.

1) C компьютером (операционка WIN7)

2) C телефоном (операционка ANDROID)

В обоих случаях нам будет необходимо выполнить 2 действия : выполнить сопряжение модуля и устройства, управлять через какой-нибудь терминал.

Часть 1. Соединение с компьютером (WIN7)

Если в вашем компьютере нет встроенного блютуза, то можно воспользоваться . Найти его в салонах связи или на радио рынках не составит труда.

После установки драйверов на блютуз можно приступать к работе.

. Действие 1

Идем в панель управления, щелкаем на иконку блютуза и выбираем "Показать устройства Bluetooth"

Через некоторое время компьютер произведет поиск и вы увидите ваш модуль (У вашего модуля может быть другое имя).

Выбираем второй вариант - "Введите код образования пары устройства"

Для HC-06 этот код 1234

Завершается все такой картиной.

А за ним еще одно

Первый этап настройки завершен

В случае, если вы забудете каким COM портом у вас определился блютуз, это всегда можно посмотреть выполнив следующие действия:

Действия

P.S. Или посмотреть в диспетчере устройств

. Действие 2

Для передачи данных можно использовать любой терминал. Я использовал простой и бесплатный "Termite ".

В качестве примера мы будем изменять состояние встроенного на плату Arduino светодиода "LED 13". Включаться он будет при приеме символа "W", а отключаться при "S". Приведенный ниже скетч нужно залить в плату Arduino. При заливке в плату необходимо отсоединить питание от блютуз модуля , после заливки снова подсоединить.

пример программного кода:

int val; int LED = 13; void setup () { Serial .begin (9600); pinMode (LED, OUTPUT ); } void loop () { if (Serial .available ()) { val = Serial .read (); // При символе "W" включаем светодиод if (val == "W" ) { digitalWrite (LED, HIGH ); } // При символе "S" выключаем светодиод if (val == "S" ) { digitalWrite (LED, LOW ); } } } Открываем программу "Termite "

В настройках выбираем наш порт, скорость (9600).

Также модуль можно проверить и без Arduino просто замкнув выводы TX и RX. Termite отправляемые символы отмечает синим цветом, полученные зелеными. Т.е. если при закороченных выводах мы отправили и нам пришло тоже самое - значит что модуль работает исправно. На фото ниже это и продемонстрировано.

Часть 2. Соединение с телефоном (Android)

В качестве подопытного будет взят телефон Samsung Galaxy Ace 2 на операционке Android.

. Действие 1

Соединяем с телефоном

. Действие 2

В качестве терминала выберем опять-таки простой и бесплатный, но уже "Bluetooth Terminal "

P.S. В случае если не удается подключиться, отключайте питание от блютуза и подключайте заново.

© 2024 spbpda.ru
Spbpda - Обучение компьютеру