- Bluetooth модуль hc 06 приложение
- AT команды для Bluetooth модуля HC-06
- Настройка Android приложения для управления по Bluetooth
- Подробное видео “ Как настроить модуль HC-06 а также Android приложение для взаимодействия по Bluetooth”
- Урок 15. Bluetooth модуль HC-06 подключение к Arduino. Управление устройствами с телефона.
- Используем Bluetooth модуль HC-06 в приложениях Android.
Bluetooth модуль hc 06 приложение
В этот раз для настройки Bluetooth модуля использую USB UART TTL конвертер на микросхеме CH340G.
Подключаю к нему Bluetooth модуль HC-06, как показано на фото которое ниже.
После чего можно подключать конвертер к USB компьютера, и выполнять настройку при помощи AT команд.
AT команды для Bluetooth модуля HC-06
AT- команда для проверки модуля. При удачном подключении модуль должен вернуть ответ OK
AT+NAMExxxxx – команда для установки имени модуля, где xxxxx это будущее имя.
AT+PINxxxx – команда для установки нового пароля, где xxxx это новый пароль. Он должен состоять из 4 цифр!
AT+VERSION – команда для выяснения версии прошивки Bluetooth модуля.
AT+BAUDx – команда для установка скорости передачи данных, где x это скорость из таблицы которая ниже.
Например для установки скорости передачи данных в 115200 бод, надо отправить АТ команду AT+BAUD8
Если у вас нет такого USB UART TTL конвертера, но есть в наличии плата Arduino, то вы можете настроить Bluetooth модуль HC-06 использовав ее.
Bluetooth модуль HC-06 можно подключить к Arduino как и Bluetooth модуль HC-05, и настраивать при помощи АТ команд, с той лишь разницей что надо использовать AT команды из этой статьи.
Информацию о том как подключать Bluetooth модуль к Arduino, для настройки при помощи АТ команд, можно посмотреть по этой ссылкеКак настроить модуль HC-05
Даная статья является дополнением к проекту «Автоматическое проветривание помещений на Arduino UNO MH-Z19B и DHT11. Контроль уровня CO2 и влажности.» ознакомиться с ним можете по этой ссылкеперейти к проекту
Настройка Android приложения для управления по Bluetooth
На фото ниже показаны значения, которые должны отправляться при изменении состояния кнопок, переключателей, а также при запросе данных.
Эти настройки надо указать для управления проектом на Arduino, как это делается смотрите видео по ссылке которая ниже.
Подробное видео “ Как настроить модуль HC-06 а также Android приложение для взаимодействия по Bluetooth”
Творческая мастерская Мастер Колотушкин 2023
Проекты на базе Arduino для начинающих, электронные самоделки своими руками.
Урок 15. Bluetooth модуль HC-06 подключение к Arduino. Управление устройствами с телефона.
ГЛАВНАЯ / Уроки и проекты / Урок 15. Bluetooth модуль HC-06 подключение к Arduino. Управление устройствами с телефона.
Очень часто в ваших проектах возникает необходимость в дистанционном управлении или передачи данных с ваших телефонных гаджетов.
Один из самых популярных и распространенных методов обмена данными посредством Bluetooth.
Сегодня мы разберем простые примеры как можно подключить Bluetooth модуль к Arduino и настроить дистанционное управление с телефона.
Нам понадобится:
Схема подключения 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, можно перейти к следующему шагу.
Подключение Bluetooth к телефону
Желательно в качестве источника питания для arduino использовать не USB, а внешний Блок питания на 9 В.
- Включаем Bluetooth на телефоне и ищем новые устройства
- Находим в списке расстройств «HC-06″ и подключаемся к нему.
- Телефон спросит пин-код. необходимо ввести «1234» или «0000«
- Ура. Устройство подключено.
Теперь нужно скачать bluetooth terminal на ваш телефон. Мы рассмотрим на примере платформы Android.
Вы можете установить разные bluetooth терминалы, как правило они отличаются только разными дизайнами, функционал от этого не меняется. Так же можно найти и терминал и для продуктов ios.
После того как мы установили терминал, запускаем его выбираем наш bluetooth модуль HC-06 и подключаемся к нему.
Пришло время попробовать проект в деле. Пишем в терминале цифру «0» и отправляем. Светодиод L который находится на плате arduino рядом с pin 13, должен погаснуть. Теперь отправим через терминал цифру «1» и светодиод L должен зажечься.
Демонстрация работы:
Домашняя работа:
- Изменить скетч так, что бы светодиод зажигался и потухал с помощью одной и той же команды например «G».
- Дописать скетч и научить его преобразовывать текстовые данные приходящие через блютус в цифровые и реализовать димер, зажигать светодиод с помощью ШИМ, на заданную яркость от 0 до 254 приходящую через bluetooth.
Используем Bluetooth модуль HC-06 в приложениях Android.
Поводом к написанию статьи послужило то, что за прошедший год понадобилось подключать Bluetooth (BT) модуль HC-06 к проекту Android три раза. Стало понятно, что необходимо данный материал законспектировать (хотя бы для себя), возможно кому-то еще пригодится!
Коротко о том, что такое HC-06, для тех кто этого не знает. HC-06 — это преобразователь (конвертер) сигналов последовательного интерфейса RS232 (UART) в сигналы, которые передаются с помощью интерфейса Bluetooth и наоборот. Этот модуль чрезвычайно популярен в настоящее время у разработчиков, т.к. врядли на сегодняшний день Вы найдете что-нибудь дешевле (стоимость на Aliexpress вместе с пересылкой 200-250 рублей). Для чего все это нужно? К примеру, у Вас есть устройство на микроконтроллере, которое должно передавать данные (управляться) без проводов в пределах комнаты.
Статья адресована Android-разработчикам, которые хотели бы применить этот модуль в своем проекте для передачи данных. Я создаю приложения в Android Studio (AS), поэтому описание будет «заточено» под эту IDE.
Также стоит сказать, что за основу BT-приложения было выбрано приложение-пример из Android sample application — BluetoothChat. Это приложение можно установить в AS через меню File->New->Import Sample. Приложение многопоточное и достаточно сложное для понимания, но, как говорится «волков бояться — в лес не ходить». Для того чтобы на первых порах «поиграть» с BT через терминальную программу, можно подключить модуль HC-06 со стороны UART к адаптеру USB2COM, например на микросхеме FTDI, с уровнями сигналов 3,3V, который подключается уже в USB-порт компьютера. Как подключать смотри на рис.1
Рис.1 Подключение модуля HC-06 к адаптеру на микросхеме FTDI
Теперь опишем что необходимо сделать в приложении для того чтобы обменяться данными через модуль HC-06. Куски кода можно копировать прямо из BluetoothChat. Если нужно что-то изменить я постараюсь описать как можно подробнее.
Во-первых, для работы с Bluetooth приложение должно иметь в файле AndroidManifest.xml следующие разрешения:
Второе, создаем класс в проекте, что-то типа BluetoothService (в BluetoothChat этот класс называется BluetoothChatService), добавляем импорт и код из BluetoothChat, можно поменять константу TAG, если она вдруг не нравится.
Для модуля HC-06 необходимо установить следующие константы:
private static final UUID MY_UUID_SECURE = UUID. fromString ( «00001101-0000-1000-8000-00805F9B34FB» ) ;
private static final UUID MY_UUID_INSECURE = UUID. fromString ( «00001101-0000-1000-8000-00805F9B34FB» ) ;
Замечание: в этом классе я, например, не использовал класс AcceptThread, т.к. он нужен для обеспечения подключения других устройств в нашему, что по логике работы моих приложений оказалось лишним. Закомментировал его объявление, объявление всех его экземпляров и вызовы методов этого класса. Далее, «играясь» с BluetoothChat обнаружил «тонкое» место в методе connected этого класса. привожу часть кода
.
// Start the thread to manage the connection and perform transmissions
mConnectedThread = new ConnectedThread ( socket, socketType ) ;
setState ( STATE_CONNECTED ) ;
mConnectedThread. start ( ) ;
Log. d ( TAG, «mConnectedThread.start() » + mConnectedThread ) ;
// Send the name of the connected device back to the UI Activity
Message msg = mHandler. obtainMessage ( Constants. MESSAGE_DEVICE_NAME ) ;
Bundle bundle = new Bundle ( ) ;
bundle. putString ( Constants. DEVICE_NAME , device. getName ( ) ) ;
msg. setData ( bundle ) ;
mHandler. sendMessage ( msg ) ;
т.е. пришлось перенести установку состояния «ПОДСОЕДИНЕНО» ( setState(STATE_CONNECTED); ) перед стартом потока mConnectedThread.start(); . Плавающий баг приложения заключался в том, что подключение к модулю происходило, что называется «через раз».
Третье, создаем интерфейс Constants (файл Constants.java), в котором определены некоторые константы, используемые классом BluetoothChatService.
Четвертое, внедряем работу с BT в Activity (или Fragment) приложения.
Объявляем глобальные переменные в Activity (или Fragment)
// Intent request codes
private static final int REQUEST_CONNECT_DEVICE_SECURE = 1 ;
private static final int REQUEST_CONNECT_DEVICE_INSECURE = 2 ;
private static final int REQUEST_ENABLE_BT = 3 ;
/**
* Name of the connected device
*/
private String mConnectedDeviceName = null ;
/**
* Array adapter for the conversation thread
*/
private ArrayAdapter < String >mConversationArrayAdapter ;
/**
* String buffer for outgoing messages
*/
private StringBuffer mOutStringBuffer ;
/**
* Local Bluetooth adapter
*/
private BluetoothAdapter mBluetoothAdapter = null ;
/**
* Member object for the chat services
*/
private BluetoothChatService mChatService = null ;
В метод onCreate() активности или фрагмента добавляем:
if ( mBluetoothAdapter == null ) <
FragmentActivity activity = getActivity ( ) ;
Toast. makeText ( activity, getString ( R. string . bt_not_enabled_leaving ) , Toast. LENGTH_LONG ) . show ( ) ;
activity. finish ( ) ;
>
Добавляем метод onStart() с кодом:
@Override
protected void onStart ( ) <
super . onStart ( ) ;
// If BT is not on, request that it be enabled.
// setupChat() will then be called during onActivityResult
if ( ! mBluetoothAdapter. isEnabled ( ) ) <
Intent enableIntent = new Intent ( BluetoothAdapter. ACTION_REQUEST_ENABLE ) ;
startActivityForResult ( enableIntent, REQUEST_ENABLE_BT ) ;
// Otherwise, setup the chat session
> else if ( mChatService == null ) <
setupChat ( ) ;
>
>
if ( mChatService != null ) <
mChatService. stop ( ) ;
>
>
В активность или фрагмент добавляем setupChat(), sendMessage(), connectDevice(), класс Handler, метод onActivityResult().
Пятое — добавляем нужные для сообщений и названий строки в values/strings.xml
Шестое, добавляем активность DeviceListActivity и xml-файл разметки для нее и в манифест приложения нужно добавить схему и описание активности:
android:configChanges = «orientation|keyboardHidden»
android:label = «@string/select_device»
android:theme = «@android:style/Theme.Holo.Dialog»/>
Файл device_name.xml, который используется в DeviceListActivity для описания строк с именами устройств.
Вот в общем-то и все! Должно работать.