Обзор модуля Bluetooth HC-05
Контроллер Arduino не поддерживают беспроводную связь, а часто это просто необходимо. Например, удаленное управление роботом на Arduino, отправка данных с метеостанции на арудино в Интернет или на домашний сервер, связь нескольких устройств между собой. Здесь в помощь разработчикам устройств множество внешних модулей для организации различных технологий беспроводной связи: модули WiFi, GSM/GPRS, IR, Bluetooth, радиомодули для работы в различных частотных диапазонах.
Технология Bluetooth используется для передачи данных между двумя устройствами, которые находятся в непосредственной близости друг с другом, причем необязательна прямая видимость. Технология Bluetooth обеспечивает хорошую устойчивость к широкополосным помехам, что позволяет множеству устройств, находящихся в одном месте, одновременно общаться между собой, не мешая друг другу. Очень широко данная технология используется в телефонах, планшетах, ноутбуках.
Одно из лучших решений для организации двусторонней связь по Bluetooth вашего Arduino-устройства с планшетом, ноутбуком или другим Bluetooth-устройством – Bluetooth-модуль HC-05 , который может работать как master (осуществлять поиск Bluetooth-устройств и инициировать установку связи), так и slave (ведомое устройство).
Технические характеристики модуля HC05
- Чип Bluetooth: HC-05(BC417143)
- Диапазон частот радиосвязи: 2,4–2,48 ГГц
- Мощность передачи: 0,25–2,5 мВт
- Чувствительность: –80 dBм
- Напряжение питания: 3,3–5 В
- Потребляемый ток: 50 мА
- Радиус действия: до 10 метров
- Интерфейс: последовательный порт
- Режимы: master, slave
- Температура хранения: –40…85 °C
- Рабочий диапазон температур: –25…75 °C
- Габариты: 27 x 13 x 2,2 мм
Подключение
Датчик имеет 6 выводов стандарта 2,54 мм:
- VCC - (питание 3,6 – 6 В);
- GND - (земля).
- TXD, RXD - UART интерфейс;
- STATE - индикатор состояния;
- KEY - контакт для входа в режим программирования.
Настройка модуля осуществляется в режиме программирования отправкой AT-команд по последовательному порту. Для входа в режим программирования необходимо подать на контакт KEY сигнал высокого уровня. На некоторых модулях контакт KEY отсутствует, и вместо него контакт EN:
- EN - включение/выключение модуля;
В этом случае для входа в режим программирования необходимо подать сигнал высокого уровня на контакт 34:
Для модуля к плате Arduino по последовательному порту будем использовать со сторону Arduino программный UART. Схема подключения на рисунке:
Получить должны примерно следующие:
Программирование модуля Bluetooth HC05
Настройка модуля осуществляется в режиме программирования отправкой AT-команд по последовательному порту. Подключим модуль HC05 к плате Arduino по схеме соединений на рисунке 5. На контакт KEY модуля (или вывод 34 платы) подадим 3.3В. AT-команды будем отправлять из монитора последовательного порта Arduino IDE. Загрузим в Arduino скетч из листинга 1. Нам понадобится Arduino-библиотека SoftwareSerial. Скорость UART модуля в режиме программирования 38400 бод, но может и отличаться, в этом случае следует подобрать.
Include
После загрузки скетча откроем монитор последовательного порта Arduino IDE и начнем отправлять AT-команды:
Список основных AT-команд:
- AT - тестовая команда.
Параметров нет.
Ответ модуля: OK
- AT+VERSION? - получить версию прошивки модуля.
Параметров нет.
Ответ модуля: +VERSION:
где Версия прошивки Bluetooth-модуля.
- AT+RESET - сброс настроек.
Параметров нет.
Ответ модуля: OK
- AT+ORGL - установка пользовательских настроек модуля.
Параметров нет.
Ответ модуля: OK
- AT+ADDR? - получить адрес модуля.
Параметров нет.
Ответ модуля: +ADDR:
где Адрес Bluetooth-модуля NAP: UAP: LAP.
- AT+NAME? - получить имя модуля.
Параметров нет.
Ответ модуля: +NAME:
где Имя Bluetooth-модуля.
- AT+NAME=Установить новое имя модуля.
Параметр: Имя Bluetooth-модуля.
Ответ модуля: +NAME:
OK (или FAIL)
- AT+PSWD? - получить пин-код доступа к Bluetooth-модулю.
Параметров нет.
Ответ модуля: + PSWD:
где Пин-код. По умолчанию 1234.
- AT+PSWD=Установить код доступа к Bluetooth-модулю.
Параметр: Код доступа к модулю.
Ответ модуля: OK (или FAIL)
- AT+CLASS=Установить режим работы модуля Bluetooth-модуля.
Параметр: Класс. В документации модуля не приведены возможные значения данного параметра. По умолчанию он установлен в 0. Если предполагается использовать модуль в режиме master, значение не надо изменять. Если использовать модуль в режиме slave, при значении параметра, равном 0, он невидим для устройств с операционной системой Android. Для видимости необходимо установить значение параметра равным 7936.
Ответ модуля: OK
- AT+CLASS? - получить класс модуля.
Параметров нет.
Ответ модуля: +CLASS:
где Класс модуля.
- AT+IAC - получить код доступа к запросу GIAC (General Inquire Access Code).
Различным физическим каналам связи, используемым в процессе установления соединения, соответствуют различные коды доступа к каналам. В каналах опроса, за исключением выделенных, используется одинаковый для всех устройств общий код доступа к запросу.
Параметров нет.
Ответ модуля: + IAC:
где Код доступа к запросу.
- AT+IAC=Установить код доступа к запросу.
Параметр: Код доступа к запросу. Значение по умолчанию 9e8b33.
Ответ модуля: OK (или FAIL)
- AT+ROLE? - получить режим работы модуля.
Параметров нет.
Ответ модуля: +ROLE:
где Режим работы модуля Bluetooth-модуля:
- 0 - slave. В этом режиме другой мастер может подключиться к модулю;
- 1 - master. В этом режиме модуль может сам подключиться к какому-нибудь Bluetooth-устройству;
- 2 - slave-loop. Модуль отправляет обратно все байты, которые ему прислали.
- AT+ROLE=Установить режим работы Bluetooth-модуля.
Параметр: Режим работы Bluetooth-модуля:
- 0 - slave;
- 1 - master;
- 2 - slave-
Ответ модуля: OK
- AT+UART=
, , Установить модуль для последовательного порта.
Параметры:
Стоп-бит: - 0 - нет;
- 1 - есть;
Бит паритета: - 0 - нет;
- 1 - есть.
Ответ модуля: OK (или FAIL).
- AT+UART? - получить параметры обмена модуля.
Параметров нет.
Ответ модуля: +UART: Параметр: Ответ модуля: OK Параметров нет. Ответ модуля: +CMODE:
где Режим подключения Bluetooth-модуля: Параметры: Ответ модуля: OK (или FAIL). Параметров нет. Ответ модуля: +UART: Параметров нет. Ответ модуля - список найденных устройств. Ответ модуля: OK (или FAIL). Параметров нет. Ответ модуля: Адрес устройства, привязанного к Bluetooth-модулю. Ответ модуля: OK (или FAIL). Ответ модуля: OK (или FAIL). Ответ модуля: OK (или FAIL). Параметр: Адрес Bluetooth-устройства. Ответ модуля: OK (или FAIL). Полный список AT-команд можно найти . Рассмотрим пример получения на Android-устройстве (телефон, смартфон, планшет) данных влажности воздуха и температуры с датчика DHT11, подключенного к Arduino. Arduino каждые 10 секунд получает данные с датчика DHT11 и отправляет их через модуль HC05 на Android-устройство. Нам понадобятся следующие детали: Соберем схему, показанную на рисунке: Получаем: Загрузим на плату Arduino скетч (смотрите ниже) – получение данных влажности и температуры с датчика DHT11 и выдача данных в последовательный порт (hardware) через модуль HC05 на Android-устройство. H"
// константы
#define DHTPIN 8 // пин подключения контакта DATA
#define DHTTYPE DHT11 // датчик DHT 11
#define INTERVAL_GET_DATA 2000 // интервала измерений, мс
// создание экземпляра объекта DHT
DHT dht(DHTPIN,DHTTYPE);
// переменная для интервала измерений
unsigned long millis_int1=0;
int pos=0;
// подключение библиотеки SoftwareSerial.h
#include Проверим на Android-устройстве получение данных, отправляемых Arduino через bluetooth-модуль HC05. На Android-устройчстве установим программу Bluetooth Terminal. В программе установим соединение с модулем HC05: И наблюдаем прием данных, поступающих из Arduino через модуль HC05: И выдача данных в монитор последовательного порта Arduino IDE: Существует большое количество реализаций модулей Bluetooth. Каждая имеет свои особенности, но в общем и целом они все очень похожи. Рассмотрим представителя bluetooth модуля семейства HC-06
, который можно приобрести по отличной цене на этом сайте . Данный модуль работает на частоте от 2,40 ГГц до 2,48 ГГц и поддерживает спецификацию bluetooth версии 2.1+EDR: пониженное потребление энергии, повышенный уровень защиты данных и лёгкое соединение Bluetooth-устройств. Устойчивый приём с модулем гарантирован в пределах 10 метров. Назначение выводов bluetooth-модуля такое: Последние два вывода могут быть не задействованы; часто можно встретить модули вообще без этих выводов. Подключим bluetooth модуль к Arduino по приведённой схеме. Обратите внимание, что передатчик (Tx) Ардуино подключается к приёмнику (Rx) модуля, и наоборот.
На выводе Status
появляется высокий уровень, когда модуль сопряжён с другим bluetooth устройством, и низкий - когда не сопряжён. Можно считывать его значение, подключив к пину Arduino и назначив ему режим работы pinMode(pinStatus, INPUT)
и таким образом узнавать состояние модуля. Но не на всех модулях индикатор статуса работает корректно, поэтому мы не будем его использовать в данном примере. В результате должно получиться примерно как на фотографии. Напишем такой скетч и загрузим в память Arduino: Const int ledPin = 13; // вывод встроенного светодиода
char incomingbyte; // переменная для данных Bluetooth
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) { // если порт доступен
incomingbyte = Serial.read(); // считываем с порта данные
switch(incomingbyte) {
case "1": // если приходит "1"
digitalWrite(ledPin, HIGH); //
break;
case "0": // если приходит "0"
digitalWrite(ledPin, LOW); //
break;
}
}
}
Включаем собранную схему с Arduino и подключённым к нему bluetooth-модулем. Правильно подключённый модуль сразу входит в режим ожидания подключения, о чём будет свидетельствовать ритмично мигающий светодиод статуса. Теперь нужно добавить bluetooth-устройство в список доверенных устройств. Включаем Bluetooth на компьютере, идём в Параметры Устройства Bluetooth
. Если в области уведомлений при включении bluetooth на компьютере появилась иконка bluetooth, то можно кликнуть по ней правой кнопкой мыши и выбрать пункт : Убеждаемся, что наш bluetooth-модуль виден компьютеру. Выбираем его из списка и нажимаем кнопку Связать
. В диалоговое окно вводим пароль по умолчанию 1234
. При успешном добавлении устройство появится в списке с пометкой Сопряжено
. Пароль по умолчанию для конкретного модуля может отличаться от "1234". Эту информацию должен предоставить изготовитель (продавец) модуля. Если вы хотите подключиться к вашему модулю bluetooth со смартфона, то порядок действий аналогичный: включить bluetooth на смартфоне, обнаружить модуль, подключённый к Arduino, выполнить сопряжение с ним. Для подключения к bluetooth модулю можно использовать различные программы, которые могут подключаться к COM-порту. Например, такие как HyperTerminal, PuTTY, Tera Term, Termite и другие. Они все бесплатные и свободно распространяются в интернете. Удобство программы TeraTerm
в том, что она автоматически выводит список COM-портов, которые назначены модулю bluetooth вашего компьютера. Запускаем программу, выбираем подключение Serial, из списка выбираем соответствующий bluetooth COM-порт, нажимаем OK. Программа PuTTY
при запуске также спрашивает номер порта (COM4, у вас будет свой), скорость подключения (9600), тип соединения (Serial). Затем нажимаем кнопку Соединиться
. В случае ошибки при подключении программа выведет соответствующее оповещение. Если соединение вашего компьютера с bluetooth-модулем произошло успешно, то вы увидите перед собой поле терминала. Введите с клавиатуры в это поле число 1 - и светодиод на 13 выводе Arduino загорится, введите 0 - погаснет.
Аналогично можно подключиться к модулю bluetooth со смартфона. Скачайте приложение для работы с bluetooth по терминалу, например Bluetooth Terminal
. Подключайтесь к модулю и вводите команды 0 или 1. Таким образом, мы научились подключаться по bluetooth к Arduino и передавать ему данные.
В настоящее время в зарубежных и отечественных магазинах можно найти большое количество различных Bluetooth Serial модулей для DIY-устройств. Цена на них не сильно высока: 5-10$ за модуль (с учетом бесплатной доставки в любую страну). Их легко можно найти на широко известной площадке AliExpress введя в поисковую строку одно из словосочетаний: Bluetooth RS232, Bluetooth Serial, HC-03, HC-04, HC-05, HC-06 или нажать на эту ссылку . В большинстве модулей используется чип BC417, плюс Flash-память. Чип поддерживает спецификацию Bluetooth v2.0 + EDR, AT-команды, может работать в режиме Master или Slave (модули HC-03/HC-5, может устанавливаться AT-командой), поддерживает скорость обмена от 2400 до 1382400. Основные выводы модулей HC-04/HC-06: Для модулей HC-03/HC-05 есть некоторые отличия. Линии UART и питания те же самые, но: За более подробной документацией обращайтесь к PDF . Итак, соберем простую схему для подключения Bluetooth модуля HC-06 к плате Arduino Nano V3. Обратите внимание, что выводы TX и RX в плате Arduino Nano поменяны местами в отличии от Ardunio UNO и др. Поэтому внимательно смотрите распиновку своей Arduino платы. Шаг между выводами в модуле составляет всего 1.5мм, поэтому придется взяться за паяльник и припаять провода к модулю. Всего необходимо припаять 5 проводов, однако светодиод подключать необязательно, он служит для индикации состояния. Итак припаиваем провода и подключаем Bluetooth модуль следующим образом: Int cnt = 0; // счетчик
void setup() {
Serial.begin(9600); // инициализация порта
}
void loop() {
cnt++;
Serial.print("Hello BB from Arduino! Counter:"); // выводим надпись
Serial.println(cnt); // выводим значение счетчика и переводим на новую строку
delay(1000); // ждем 1 секунду
}
Как видите скетч довольно простой и хорошо прокомментирован. В цикле, раз в секунду происходит увеличение переменной cnt, которая затем с текстовой надписью выводится в последовательный порт на Bluetooth модуль. Обратите внимание, что скорость порта установлена в значение 9600. При покупке модуля, спрашивайте на какое значение установлена скорость обмена по последовательному интерфейсу. Но в большинстве случаев это 9600. При необходимости, скорость обмена можно изменить АТ-командами. Откройте данный скетч в Arduino IDE, скомпилируйте и прошейте ваш Arduino. Если вы подключали светодиод в Bluetooth модулю, то он должен мигать, показывая тем самым, что модуль ожидает соединение. Внимание! Если при прошивке платы Arduino ругается прошивальщик, то отключите питание 3.3В с Bluetooth модуля. На компьютере, в качестве Bluetooth модуля использовался самый дешевый китайский Bluetooth USB адаптер, стоимостью около 200 руб. После того, как адаптер подключается к компьютеру, установите необходимые драйвера (в Windows 7 x64 у меня все драйвера поставились автоматом). Имя моего модуля BOLUTEK, у вас оно скорее всего будет другим. Нажимаем "Далее" и переходим к окну, где необходимо ввести пароль для устройства: Выбираем второй пункт: "Введите код образования пары устройства". С завода, код установлен 1234. Его и вводим. Программа настроит и пропишет в системе виртуальные COM-порты (у меня прописало 2 шт, но может быть и один): В дальнейшем, можно посмотреть на какой COM-порт назначилось и его параметры. Для этого щелкаем правой кнопкой мыши по устройству и выбираем "Свойства" и вкладку "Оборудование". Там можно посмотреть и изменить параметры виртуального COM-порта: Теперь, для приема и передачи данных на виртуальный COM порт можно использовать любую терминал программу. Я использовал бесплатную . При каждом запуске программы предлагается выбор соединения, переключаем флажок на Serial и выбираем COM порт вашего Bluetooth модуля. У меня это COM4. В терминале мы видим данные счетчика с платы Arduino: Как видим, данные успешно передаются по Bluetooth соединению. Ниже в статье вы можете посмотреть видео. Следующим шагом будет написание простенькой программы двунаправленного обмена данными между Arduino и компьютером. В схему я добавил светодиод, подключив его к 12 пину Arduino, через токоограничительный резистор. Но можно использовать и встроенный LED (обычно 13 пин). Char incomingByte; // входящие данные
int LED = 12; // LED подключен к 12 пину
void setup() {
Serial.begin(9600); // инициализация порта
pinMode(LED, OUTPUT);
Serial.println("Press 1 to LED ON or 0 to LED OFF...");
}
void loop() {
if (Serial.available() > 0) { //если пришли данные
incomingByte = Serial.read(); // считываем байт
if(incomingByte == "0") {
digitalWrite(LED, LOW); // если 1, то выключаем LED
Serial.println("LED OFF. Press 1 to LED ON!"); // и выводим обратно сообщение
}
if(incomingByte == "1") {
digitalWrite(LED, HIGH); // если 0, то включаем LED
Serial.println("LED ON. Press 0 to LED OFF!");
}
}
}
Программа работает очень просто. После запуска или сброса устройства, в последовательный порт выводится сообщение с предложением нажать 1 или 0. В зависимости от нажатой цифры светодиод будет загораться или гаснуть. А также, от Arduino будет выводиться сообщение загорелся светодиод, или погас. Очень часто в ваших проектах возникает необходимость в дистанционном управлении или передачи данных с ваших телефонных гаджетов. Один из самых популярных и распространенных методов обмена данными посредством Bluetooth.
Сегодня мы разберем простые примеры как можно подключить Bluetooth модуль к Arduino и настроить дистанционное управление с телефона.
Нам понадобится:
Подключать Bluetooth модуль к микроконтроллеру Arduino удобнее всего с помощью проводков ПАПА-МАМА .
Будьте внимательны, подключать подключать нужно 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 технологии тем не менее не закончилась, ее простота и надежность нашла себе новое применение. В данный момент ее используют сотни различных устройств, от беспроводных клавиатур до наушников, от колонок до весов, от пультов до дронов. Именно по этой причине найти современный телефон без поддержки технологии 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 бод. Список АТ команд Это первая вводная статья посвященная bluetooth модулям. Оставляйте свои комментарии и задавайте ваши вопросы. Ну а у меня на этом все, успех вам и удачи.
Пример использования
Часто задаваемые вопросы FAQ
1. На AT-команды нет ответа модуля
2. Android-устройство не может подключиться к bluetooth-модулю
HC05
3. Не передаются данные на
Android-устройство
1
Описание
модуля bluetooth HC-06
2
Схема подключения
bluetooth-модуля к Arduino
3
Скетч для Arduino
для работы по bluetooth
4
Сопряжение
с bluetooth-устройством
5
Подключаемся к bluetooth-модулю
по bluetooth с компьютера
6
Подключение со смартфона
с помощью Bluetooth Terminal
Напряжение питание модуля составляет 3.3В, ток потребления ~50мА.
Модули HC-03/HC-05 более функциональные, чем HC-04/HC-06.
UART_TX (pin 1), UART_RX (pin 2), UART_CTS (pin 3), UART_RTS (pin 4) - пины UART.
3,3V (pin 12) - питание 3.3В.
GND (pin 13) - общий.
PIO1 (pin 24) - индикатор рабочего режима. Если соединение не установлено - то светодиод мигает, если установлено, то постоянно горит.
PIO8 (pin 31) - индикатор рабочего режима.
PIO9 (pin 32) - статус соединения, если соединение установлено, то на выходе будет высокий уровень.
PIO11 (pin 34) - вход включения режима AT-команд (необходимо подать лог. 1).
вывод Arduino 3.3В - к 12 пину модуля
вывод Arduino GND - к 13 пину модуля
вывод Arduino TX - к 2 пину модуля RX
вывод Arduino RX - к 1 пину модуля TXПередача данных из Arduino по Bluetooth
Затем щелкаем в трее по иконке Bluetooth модуля и выбираем "Добавить устройство":Двунаправленный обмен данными по Bluetooth
Arduino
Bluetooth
Pin 1 (TX)
RXD
Pin 0 (RX)
TXD
GND
GND
5V
VCC
Подключение Bluetooth к телефону
Введение
Описание
Подключение
Пример
// Подключаем библиотеку SoftwareSerial
#include "SoftwareSerial.h"
// Создаем класс BTserial для работы с bluetooth модулем.
SoftwareSerial BTserial(8, 9); // порт RX, порт TX
void setup()
{
// Настраиваем скорость передачи данных.
Serial.begin(9600);
BTserial.begin(9600); // По умолчанию 9600 бот.
}
void loop()
{
// Получаем данные от bluetooth модуля и передаем их в монитор порта.
if (BTserial.available())
{
Serial.write(BTserial.read());
}
// Получаем данные от монитора порта и передаем их в bluetooth модуль.
if (Serial.available())
{
BTserial.write(Serial.read());
}
}
Проверка связи
AT команды
Команда Ответ Комментарий
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 бод.
Заключение