Очень часто в ваших проектах возникает необходимость в дистанционном управлении или передачи данных с ваших телефонных гаджетов.
Один из самых популярных и распространенных методов обмена данными посредством Bluetooth.
Сегодня мы разберем простые примеры как можно подключить Bluetooth модуль к Arduino и настроить дистанционное управление с телефона.
Нам понадобится:
Подключать Bluetooth модуль к микроконтроллеру Arduino удобнее всего с помощью проводков ПАПА-МАМА .
Arduino | Bluetooth |
---|---|
Pin 1 (TX) | RXD |
Pin 0 (RX) | TXD |
GND | GND |
5V | VCC |
Будьте внимательны, подключать подключать нужно TX -> RXD ,RX -> TXD .
Теперь необходимо записать пробный код программы:
Во время загрузки скетча необходимо что бы Bluetooth модуль был отключен от микроконтроллера arduino. В противном случае скетч не запишется, потому что связь с Bluetooth модулем происходит по одному и томуже порту RX и TX, что и USB.
Int val; int LED = 13; void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); } void loop() { if (Serial.available()) { val = Serial.read(); // При символе "1" включаем светодиод if (val == "1") { digitalWrite(LED, HIGH); } // При символе "0" выключаем светодиод if (val == "0") { digitalWrite(LED, LOW); } } }
После того как скетч записан и Bluetooth модуль подключен к Arduino, можно перейти к следующему шагу.
Желательно в качестве источника питания для arduino использовать не USB, а внешний Блок питания на 9 В.
Теперь нужно скачать bluetooth terminal на ваш телефон. Мы рассмотрим на примере платформы Android.
Вы можете установить разные bluetooth терминалы, как правило они отличаются только разными дизайнами, функционал от этого не меняется. Так же можно найти и терминал и для продуктов ios.
После того как мы установили терминал, запускаем его выбираем наш bluetooth модуль HC-06 и подключаемся к нему.
Пришло время попробовать проект в деле. Пишем в терминале цифру "0" и отправляем. Светодиод L который находится на плате arduino рядом с pin 13, должен погаснуть. Теперь отправим через терминал цифру "1" и светодиод L должен зажечься.
Демонстрация работы:
Домашняя работа:
Bluetooth — это пожалуй самый распространенный тип связи для коротких дистанций, которым пользуются большинство современных электронных устройств. Телефонные гарнитуры, наушники, клавиатуры и мышки, принтеры и бог знает какие еще гаджеты. Некоторое время назад bluetooth был распространен как средство передачи файлов между телефонами. Главными достоинствами BT можно назвать хорошую устойчивость к широкополосным помехам и простоту реализации. Первое значит, что куча устройств, находящихся в одном месте, могут одновременно общаться между собой, не мешая друг другу. Второе же помогло широкому распространению Bluetooth в среде DIY, и вообще во всех средах. Лично я использую BT для управления роботами со смартфона. В Google play уже есть несколько приложений с удобным интерфейсом именно для этих целей. Участники нашего хакспейса MakeItLab с помощью Bluetooth управляют удаленно светом и собирают телеметрию с борта квадрокоптеров. Самыми доступными на сегодня Bluetooth модулями можно назвать HC-05 и HC-06. Они в изобилии присутствуют в Китайских онлайн-магазинах и на ebay. Отличия между ними в том, что первый может работать как в режиме ведущего (slave), так и в режиме ведомого (master). Второй же является чисто ведомым устройством (но это поправимо!). Другими словами, HC-06 не может сам обнаружить парное устройство и наладить с ним связь, он может лишь подчиниться ведущему. Оба устройства базируются на чипе CSR BC417 , который поддерживает Bluetooth версии 2.0 со скоростью до 3 Мбит/сек. Именно об этих модулях далее и пойдет речь.
Bluetooth | GND | VCC | TXD | RXD | KEY |
Ардуино Уно | GND | +5V | 10 | 11 |
Bluetooth - популярная технология передачи данных, которую знают все, еще недавно мы передавали свои фотографии и видео ролики с телефона на телефон, но сейчас с приходом глобальной паутины и облачных технологий почти в каждый дом, необходимость в этом сошла на-нет. Популярность же bluetooth технологии тем не менее не закончилась, ее простота и надежность нашла себе новое применение. В данный момент ее используют сотни различных устройств, от беспроводных клавиатур до наушников, от колонок до весов, от пультов до дронов. Именно по этой причине найти современный телефон без поддержки технологии Bluetooth почти невозможно. Естественно данная технология не обошла себя и в области робототехники и конструирования, за небольшой промежуток времени друзья из Поднебесной выпустили несколько копеечных модулей для подключения их к различным микроконтроллерам, в том числе и к микроконтроллерам линейке Arduino. В данной же статье мы поговорим об одном из таких модулей, а именно о Bluetooth модуле ZS-040.
Bluetooth модуль ZS-040 состоит из двух печатных плат спаянных вместе:
Заводской модуль с микросхемой CSR BC417.
Адаптер ZS-040.
Подключается модуль к Arduino довольно просто (смотри таблицу или схему подключения снизу) . Питание модуля осуществляется от 5В линии Arduino (Так как адаптер содержит стабилизатор напряжения на 3.3В подключать модуль от линии 3.3В - нельзя) . Линия передачи (TXD) подключается напрямую к одному из портов Arduino, а вот линию приема (RXD) необходимо подключать через делитель напряжения, так как нам надо преобразовать 5В сигналы от Arduino в 3.3В для модуля. Выполняется это двумя резисторами в 1 и 2 кОм-а. На самом деле модуль стерпит и не выйдет из строя и от сигналов в 5В. Тем не менее это скажется на его сроке службы. По этому использовать делитель напряжения строго рекомендуется.
В данном примере мы передаем данные из монитора порта в bluetooth модуль и обратно.
Для проверки нашего скетча мы воспользуемся телефоном и установленным на него приложением. Лично я использую Android телефон и приложение "Serial Bluetooth Terminal ". Скачать приложение вы можете в Play Маркете .
Если по какой либо причине у вас данное приложение не заработает или у вас телефон с другой операционной системой не растраивайтесь, подобных приложений десятки на всех платформах, воспользуйтесь любым из них, для этого в поиске напишите следующий запрос "Bluetooth Terminal " и магазин предложит вам с десяток других приложений.
Теперь нам надо перейти в настройки телефона и найти там пункт для работы с Bluetooth устройствами. Включить Bluetooth если он был выключен и подождать пока ваш телефон найдет новое устройство. У меня Bluetooth модуль появился под названием HC-06. Выбираем его и вводим пароль. По умолчанию пароль 1234 или 0000. Если по какой либо причине пароли не подходят попробуйте другие простейшие пароли вроде 1111, 5555 и тд.
Теперь запускаем наше приложение Serial Bluetooth Terminal. Открываем выпадающий список и переходим в меню "Devices". В списке выбираем наш модуль HC-06 и возвращаемся на главное окно (Тап по выпадающему списку и далее по меню Terminal). В верхнем правом углу нажимаем на кнопку соединиться (Значок двух коннекторов) . Все. передаем данные из приложения в монитор порта и обратно. Ниже я сделал несколько скриншотов для наглядности.
Как я упомянул ранее наш bluetooth модуль имеет базовую прошивку, а это значит что его настройки можно менять. Для этого существуют AT команды, ввод которых изменяет наименование bluetooth модуля, пароль к нему и скорость передачи данных. К сожалению модуль отказывается принимать АТ команды через приложение на телефоне или из монитора порта в режиме передачи данных. Но есть небольшая хитрость. Для этого нам надо подключить bluetooth модуль напрямую к ПК. Для этого необходимо подключить контакты модуля RXD и TXD непосредственно к контактам Arduino (RX и TX), а саму Arduino отключить установив перемычку между портами RST и GND. При этом не важно какой скетч залит в Arduino ведь оно будет отключено нашей перемычкой.
Далее открываем Arduino IDE, запускаем монитор порта и отправляем AT команды в наш модуль. Если по какой либо причине ваш модуль не отвечает на команды, в выпадающих списках снизу необходимо выбрать "Нет конца строки" и скорость передачи данных 9600 бод.
Список АТ команд
Команда | Ответ | Комментарий |
|
---|---|---|---|
AT | OK | Проверка связи. |
|
AT+VERSION | hc01.comV2.0 | Версия прошивки bluetooth модуля. |
|
AT+NAMEnewName | OKsetname | Задать новое имя bluetooth модулю (newName). |
|
AT+PIN6789 | OKsetPIN | Задать новый пароль (6789). |
|
AT+BAUD1 | OK1200 | Установить скорость передачи данных 1200 бод. |
|
AT+BAUD2 | OK2400 | Установить скорость передачи данных 2400 бод. |
|
AT+BAUD3 | OK4800 | Установить скорость передачи данных 4800 бод. |
|
AT+BAUD4 | OK9600 | Установить скорость передачи данных 9600 бод. |
|
AT+BAUD5 | OK19200 | Установить скорость передачи данных 19200 бод. |
|
AT+BAUD6 | OK38400 | Установить скорость передачи данных 38400 бод. |
|
AT+BAUD7 | OK57600 | Установить скорость передачи данных 57600 бод. |
|
AT+BAUD8 | OK115200 | Установить скорость передачи данных 115200 бод. |
|
AT+BAUD9 | OK230400 | Установить скорость передачи данных 230400 бод. |
|
AT+BAUDA | OK460800 | Установить скорость передачи данных 460800 бод. |
|
AT+BAUDB | OK921600 | Установить скорость передачи данных 921600 бод. |
|
AT+BAUDC | OK1382400 | Установить скорость передачи данных 1382400 бод. |
Это первая вводная статья посвященная bluetooth модулям. Оставляйте свои комментарии и задавайте ваши вопросы. Ну а у меня на этом все, успех вам и удачи.
Пожалуйста, включите javascript для работы комментариев.Вам необходимо дистанционно управлять вашей Arduino платой, обмениваться данными с другими bluetooth устройствами? Блютуз модули HC-05, HC06 помогут справиться с этой задачей.
В первой части статьи мы расскажем о том, как установить беспроводное соединение между Arduino и компьютером, а во второй части как установить соединение между Arduino и телефоном на платформе Android. .
Данная статья будет составной частью в дальнейшей сборке дистанционно управляемой машинки.
Компоненты для повторения (купить в Китае):
Модули HC-05/06 представляют из себя голые блютузы с дополнительной обвязкой.
А именно: установлены на подложку, на которой расположен стабилизатор с 5 на 3.3Вольта, светодиод, указывающий на состояние модуля (образовано соединение или нет), и конденсаторы на линиях питания. Также на плате установлен mosfet транзистор (Q1), который при надобности может разрывать цепь питания блютуза, тем самым отключая его, но в нашем обзоре это задействовано не будет.
С лицевой стороны модуль выглядит вот так
Bluetooth HC-05/06 | Arduino |
VCC | +5V |
GND | GND |
TX | RX |
RX | TX |
При подаче питания на модуль встроенный светодиод начинает мигать.
1) C компьютером (операционка WIN7)
2) C телефоном (операционка ANDROID)
В обоих случаях нам будет необходимо выполнить 2 действия : выполнить сопряжение модуля и устройства, управлять через какой-нибудь терминал.
Если в вашем компьютере нет встроенного блютуза, то можно воспользоваться . Найти его в салонах связи или на радио рынках не составит труда.
После установки драйверов на блютуз можно приступать к работе.
Идем в панель управления, щелкаем на иконку блютуза и выбираем "Показать устройства Bluetooth"
Через некоторое время компьютер произведет поиск и вы увидите ваш модуль (У вашего модуля может быть другое имя).
Выбираем второй вариант - "Введите код образования пары устройства"
Для HC-06 этот код 1234
Завершается все такой картиной.
А за ним еще одно
Первый этап настройки завершен
В случае, если вы забудете каким COM портом у вас определился блютуз, это всегда можно посмотреть выполнив следующие действия:
Действия
P.S. Или посмотреть в диспетчере устройств
Для передачи данных можно использовать любой терминал. Я использовал простой и бесплатный "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 отправляемые символы отмечает синим цветом, полученные зелеными. Т.е. если при закороченных выводах мы отправили и нам пришло тоже самое - значит что модуль работает исправно. На фото ниже это и продемонстрировано.
В качестве подопытного будет взят телефон Samsung Galaxy Ace 2 на операционке Android.
Соединяем с телефоном
В качестве терминала выберем опять-таки простой и бесплатный, но уже "Bluetooth Terminal "
P.S. В случае если не удается подключиться, отключайте питание от блютуза и подключайте заново.
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 имеют свои особенности, но по функциям и действию они похожи. Одним из видов модулей является Bluetooth HC 06. Со стороны Ардуино модуль выглядит как обычный последовательный интерфейс, поэтому можно сразу наладить взаимодействие с устройством на компьютере.
Основные характеристики модуля:
Модуль имеет следующие контакты:
Модуль HC-06 используется только в режиме slave, то есть он не может самостоятельно подключаться к другим устройствам Bluetooth. Все настройки для подключения «пароль, скорость передачи данных» можно изменить при помощи АТ-команд.
В комплектацию модуля не входят соединительные провода.
Модули HC 05 и HC 06 являются наиболее используемыми, их чаще остальных можно найти в продаже. Принцип действия этих модулей схож, оба модуля основаны на одинаковом чипе, но есть и важные отличия. В первую очередь, модуль HC 05 может работать в двух режимах работы – и в качестве ведущего (master), и в качестве ведомого (slave).
Оба модуля представляют собой две спаянные платы. Одна из них – заводская с микросхемой, другая нужна для самодельных устройств, она оснащена ножками GPIO со стандартным шагом 2,54 мм и стабилизатором напряжения.
Модуль HC-05 стоит несколько дороже, но он имеет большее количество полезных рабочих функций.
Распиновка модуля HC-05:
Скорость передачи АТ команд по умолчанию для HC-05 равна 38400, для HC-06 – 9600. Важным моментом является то, что в конце АТ команд для HC-05 должны быть символы CRLF.
Основные характеристики HC-05:
Подключение обоих модулей к плате Ардуино одинаково.
Вариант подключение модуля с использованием делителя.Представлен вариант для Arduino Nano, но он подойдет и к плате Uno.
В этой статье мы рассмотрели варианты подключения и работы с одними из самых распространенных Ардуино модулей Bluetooth HC05, HC06 . Никаких особенных сложностей с этими модулями у вас быть не должно – просто подключайте его к пинам с аппаратным или программным UART, после чего используйте традиционные библиотеки (Serial для модуля, подключенного к 0, 1 пинам, SoftwareSerial в случае присоединения к другим).
Подключение Bluetooth к вашему Arduino-проекту может существенно увеличить ваши возможности по взаимодействию с другими устройствами. Вы сможете контролировать состояния датчиков и изменять параметры системы без перезагрузки контроллера. И. конечно же, вы сможете без проблем создать роботы и машинки на ардуино, управляемые через bluetooth со смартфона. Будем надеяться, что вы сможете сделать свой первый проект после прочтения этой статьи.