- Урок 15. Bluetooth модуль HC-06 подключение к Arduino. Управление устройствами с телефона.
- Arduino и модули Bluetooth HC-05/06
- Небольшой обзор модулей HC-05 и HC-06
- Распиновка модулей
- Подключение HC-05 и HC-06 к Arduino
- Согласование логических уровней
- Скетч для подключения к Arduino
- Как подключить к Arduino модуль Bluetooth
- Инструкция по подключению bluetooth-модуля к Arduino
- 1 Описание модуля bluetooth HC-06
- 2 Схема подключенияbluetooth-модуля к Arduino
- 3 Скетч для Arduinoдля работы по bluetooth
- 4 Сопряжение с bluetooth-устройством
- 5 Подключаемся к bluetooth-модулю по bluetooth с компьютера
- 6 Подключение со смартфона с помощью Bluetooth Terminal
- Поблагодарить автора:
- Поделиться
- Похожие материалы (по тегу)
- Последнее от .aave.
- Другие материалы в этой категории:
- Оставить комментарий
- Полезные советы
Урок 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.
Arduino и модули Bluetooth HC-05/06
Bluetooth — один из самых распространённых протоколов беспроводной связи на малом расстоянии для персональных электронных устройств. С его помощью работают различные устройства ввода и управления, аудиоустройства.
На фоне остальных протоколов Bluetooth выделяется прежде всего помехоустойчивостью и простотой. От не менее распространённого Wi-Fi Bluetooth отличается в первую очередь низким энергопотреблением, что делает его доступным для автономных устройств. Благодаря этому BT получил повсеместное распространение.
Чаще всего для самоделок используются BT-модули HC-05 и HC-06. Их легко найти в продаже. HC-05 отличается от HC-06 тем, что ему доступны оба режима работы: ведомый (master) и ведущий (slave). А вот HC-06 работает только ведомым, то есть он не способен находить другие устройства и самостоятельно устанавливать с ними связь (но это можно исправить).
Оба модуля основаны на одинаковом чипе и поддерживают BT версии 2.0. Их максимальная скорость работы – 3 Мегабита в секунду.
Небольшой обзор модулей HC-05 и HC-06
Чаще всего HC-05 и HC-06 представляют собой две спаянные платы. Верхняя – заводская плата с микросхемой BC417. Нижняя – специальная плата для самодельных устройств, содержащая самые нужные ножки GPIO с шагом 2.54 мм, стабилизатор напряжения и кнопку сброса. На фотографии ниже плата с BC417:
А это — модули HC-05 и HC-06 вместе с подложкой:
HC-05 не намного дороже HC-06. Но при этом он может работать в обоих режимах прямо “из коробки”. С HC-06 же придётся повозиться, чтобы заставить его работать ведущим.
Также встречаются немного другие версии модулей. Вместо вывода EN на них выведен KEY.
Распиновка модулей
- EN — управление питанием;
- VCC — питание от 3,6 до 6 В;
- GND — земля;
- RX, TX — интерфейс UART;
- STATE — индикация работы;
- KEY — активация режима управления с помощью AT-команд.
Настройка модулей производится при помощи AT-команд. Но пин KEY есть не на всех модулях. И что с этим делать?
Пин KEY конечно же присутствует на малой плате с большим числом контактов, но не разведён на большой. Причины такого странного решения китайцев неизвестны.
Этот контакт находится здесь:
Подключение HC-05 и HC-06 к Arduino
Подключение к Arduino выполняется следующими контактами:
- GND – GND;
- VCC – +5V;
- TXD – 10;
- RXD – 11;
- KEY при обычной работе модуля не используется. Для перехода в режим AT-команд его надо соединить с +3.3V.
TXD и RXD соединены с пинами 10 и 11, потому, что аппаратный UART будет использоваться для связи с компьютером.
Согласование логических уровней
Bluetooth-модули работают с логическими уровнями 3.3 В, и использование пятивольтовой логики может вывести их из строя. Но чаще всего на плате имеется всё необходимое для согласования уровней.
Бывают ситуации, в которых между Arduino TXD — Bluetooth RXD необходимо согласование напряжения. Использование делителя – гарантия надёжной работы.
Справа приведена схема простейшего делителя:
Скетч для подключения к Arduino
Для настройки модулей можно использовать USB-UART конвертер, если вы воспользуетесь им – следующий пункт можно пропустить. Для начала нам потребуется прошить Arduino.
Скетч просто отправляет данные, полученные с компьютера, на настраиваемый модуль.
Как подключить к Arduino модуль Bluetooth
Подключим беспроводной Bluetooth модуль к Arduino и научимся получать с него данные и передавать на него данные с компьютера.
- плата Arduino Nano или аналогичная;
- модуль Bluetooth HC-06 или любой другой (например, такой);
- компьютер с установленной средой разработки Arduino IDE;
- набор соединительных проводов (вот такой);
- отладочная плата для монтажа без пайки.
Инструкция по подключению bluetooth-модуля к Arduino
1 Описание модуля bluetooth HC-06
Существует большое количество реализаций модулей Bluetooth. Каждая имеет свои особенности, но в общем и целом они все очень похожи. Рассмотрим представителя bluetooth модуля семейства HC-06, который можно приобрести по отличной цене на этом сайте.
Данный модуль работает на частоте от 2,40 ГГц до 2,48 ГГц и поддерживает спецификацию bluetooth версии 2.1+EDR: пониженное потребление энергии, повышенный уровень защиты данных и лёгкое соединение Bluetooth-устройств. Устойчивый приём с модулем гарантирован в пределах 10 метров.
Назначение выводов bluetooth-модуля такое:
Вывод | Назначение |
---|---|
VCC и GND | «плюс» и «минус» питания модуля, поддерживаются напряжения от 3,6 до 6 вольт; |
TX и RX | передатчик и приёмник модуля; |
MCU-INT (Status, State) | вывод статуса; |
Clear (Reset) | сброс и перезапуск модуля, в данном случае осуществляется низким логическим уровнем. |
Последние два вывода могут быть не задействованы; часто можно встретить модули вообще без этих выводов.
2 Схема подключенияbluetooth-модуля к Arduino
Подключим bluetooth модуль к Arduino по приведённой схеме. Обратите внимание, что передатчик (Tx) Ардуино подключается к приёмнику (Rx) модуля, и наоборот.
На выводе Status появляется высокий уровень, когда модуль сопряжён с другим bluetooth устройством, и низкий – когда не сопряжён. Можно считывать его значение, подключив к пину Arduino и назначив ему режим работы pinMode(pinStatus, INPUT) и таким образом узнавать состояние модуля. Но не на всех модулях индикатор статуса работает корректно, поэтому мы не будем его использовать в данном примере.
В результате должно получиться примерно как на фотографии.
3 Скетч для Arduinoдля работы по bluetooth
Напишем такой скетч и загрузим в память 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-модулем. Правильно подключённый модуль сразу входит в режим ожидания подключения, о чём будет свидетельствовать ритмично мигающий светодиод статуса.
4 Сопряжение с bluetooth-устройством
Теперь нужно добавить bluetooth-устройство в список доверенных устройств. Включаем Bluetooth на компьютере, идём в Параметры Устройства Bluetooth.
Если в области уведомлений при включении bluetooth на компьютере появилась иконка bluetooth, то можно кликнуть по ней правой кнопкой мыши и выбрать пункт Добавление устройства Bluetooth:
Убеждаемся, что наш bluetooth-модуль виден компьютеру. Выбираем его из списка и нажимаем кнопку Связать. В диалоговое окно вводим пароль по умолчанию 1234. При успешном добавлении устройство появится в списке с пометкой Сопряжено.
Пароль по умолчанию для конкретного модуля может отличаться от «1234». Эту информацию должен предоставить изготовитель (продавец) модуля.
Если вы хотите подключиться к вашему модулю bluetooth со смартфона, то порядок действий аналогичный: включить bluetooth на смартфоне, обнаружить модуль, подключённый к Arduino, выполнить сопряжение с ним.
5 Подключаемся к bluetooth-модулю по bluetooth с компьютера
Для подключения к bluetooth модулю можно использовать различные программы, которые могут подключаться к COM-порту. Например, такие как HyperTerminal, PuTTY, Tera Term, Termite и другие. Они все бесплатные и свободно распространяются в интернете.
Удобство программы TeraTerm в том, что она автоматически выводит список COM-портов, которые назначены модулю bluetooth вашего компьютера. Запускаем программу, выбираем подключение Serial, из списка выбираем соответствующий bluetooth COM-порт, нажимаем OK.
Программа PuTTY при запуске также спрашивает номер порта (COM4, у вас будет свой), скорость подключения (9600), тип соединения (Serial). Затем нажимаем кнопку Соединиться.
В случае ошибки при подключении программа выведет соответствующее оповещение. Если соединение вашего компьютера с bluetooth-модулем произошло успешно, то вы увидите перед собой поле терминала. Введите с клавиатуры в это поле число 1 – и светодиод на 13 выводе Arduino загорится, введите 0 – погаснет.
6 Подключение со смартфона с помощью Bluetooth Terminal
Аналогично можно подключиться к модулю bluetooth со смартфона. Скачайте приложение для работы с bluetooth по терминалу, например Bluetooth Terminal. Подключайтесь к модулю и вводите команды 0 или 1.
Таким образом, мы научились подключаться по bluetooth к Arduino и передавать ему данные.
Поблагодарить автора:
Поделиться
Похожие материалы (по тегу)
Последнее от .aave.
Другие материалы в этой категории:
Оставить комментарий
Замечательное средство для создания собственных электронных устройств, которые пригодятся в быту или для развлечения!
Полезные советы
Наблюдаемые коллекции ObservableCollection в WPF можно изменять толкько в потоке пользовательского интерфейса. Однако можно несколько изменить данную коллекцию таким образом, чтобы можно было это делать из фонового потока. Например, вот так:
Imports System Imports System.Collections.Generic Imports System.Collections.ObjectModel Imports System.Collections.Specialized Imports System.Diagnostics Imports System.Windows.Threading Public Class ObservableCollectionThreadSafe(Of T) Inherits ObservableCollection(Of T) 'наследуем от наблюдаемой коллекции 'Переопределяем событие изменения коллекции Public Shadows Event CollectionChanged As NotifyCollectionChangedEventHandler #Region "КОНСТРУКТОРЫ" Public Sub New() MyBase.New() End Sub Public Sub New(items As IEnumerable(Of T)) MyBase.New(items) End Sub #End Region '/КОНСТРУКТОРЫ Protected Overrides Sub OnCollectionChanged(e As NotifyCollectionChangedEventArgs) Using MyBase.BlockReentrancy() 'используем BlockReentrancy(), который запрещает выполнение повторных попыток изменения коллекции Dim eventHandler As NotifyCollectionChangedEventHandler = Me.CollectionChangedEvent If (eventHandler IsNot Nothing) Then Dim delegates As [Delegate]() = eventHandler.GetInvocationList() For Each handler As NotifyCollectionChangedEventHandler In delegates 'идём по списку вызовов Dim dispatcherObject As DispatcherObject = TryCast(handler.Target, DispatcherObject) If (dispatcherObject IsNot Nothing) AndAlso (Not dispatcherObject.CheckAccess()) Then 'Если подписчик - DispatcherObject И другой поток dispatcherObject.Dispatcher.Invoke(DispatcherPriority.DataBind, handler, Me, New Object() ) 'вызываем обработчик в целевом потоке диспетчера Else handler(Me, e) 'иначе запускаем обработчик как есть End If Next End If End Using End Sub End Class