Настройка блютуз модуля ардуино

Arduino

Bluetooth модули могут использоваться для беспроводного подключения и управления такими устройствами, как радиоуправляемые машинки и роботы, модули умного дома и другие устройства. Самый распространенный вариант — установка bluetooth модуля в устройство на Arduino и написание софта под Android или iOS для управления им.

Но можно пойти другим путем: пульт управления также изготовить самому на базе Arduino, экрана, кнопок и корпуса, напечатанного на 3D-принтере. Во-первых, это интереснее с точки зрения того, что вы создаете все полностью сами — и устройство, и пульт. И во-вторых, вам не нужно изучать Java или Objective C / Swift, а достаточно уметь программировать на C++. В общем как по мне, так это более DIY-ый путь 🙂

Итак, для второго вариант нам понадобится 2 bluetooth модуля. Из всей линейки наиболее универсальным является модуль HC-05. Он может работать как в режиме slave, так и в режиме master, и режим можно менять, в отличии от модулей HC-04, HC-06, HC-07 и HC-09, которые могут работать только в одном режиме, и чаще всего это slave. Есть еще модуль HC-08, который поддерживает версию протокола Bluetooth v4.0 BLE (с низком энергопотреблением).

Итак, кроме двух модулей HC-05 нам также понадобится переходник ttl-usb для подключения модулей к компьютеру для их первоначальной настройки (это нужно сделать лишь раз). Ссылки на модули и переходник есть в конце статьи. Обратите внимание, что модули bluetooth продаются как распаянные, так и нет. Я оставлю ссылки на распаянные для удобства.

Итак, первое, что мы делаем, это конфигурируем модули. Для этого подключаем сначала первый модуль (пусть это будет будущий slave) к переходнику по схеме:

  • +5V (переходник) – VCC (модуль bluetooth)
  • GND (переходник) – GND (модуль bluetooth)
  • TXD (переходник) – RXD (модуль bluetooth)
  • RXD (переходник) – TXD (модуль bluetooth)
  • +3.3V (переходник) – KEY (модуль bluetooth)

Обратите внимание на то, что мы питаем bluetooth модуль от 5 вольт. Это нормально, не пугайтесь того, что на нем написано 3.3v, он имеет встроенный стабилизатор напряжения и отлично работает от 5 вольт.

А смогли вы найти контакт KEY на модуле, на который нужно подать 3.3 вольта? Это нижний левый контакт (см. картинку).

Bluetooth HC-05 key

Большинство модулей продается в прозрачном полиэтилене, и не составит труда подпихнуть под него проводок, он отлично держится.

Далее — вставляем переходник в usb. Сам модуль bluetooth должен замигать светодиодом: 2 сек включен, 2 сек выключен и тд. Если этого не произошло, проверьте, что все подключено по схеме верно.

Запускаем монитор порта. Можно использовать тот, что входит в Arduino IDE. В списке последовательных портов появится новый, нужно указать его. И выбираем следующие настройки:

Настройка модуля slave

Пробуем отправить команду AT, если в ответ мы получили OK — то все подключено верно.

Теперь нужно узнать адрес адаптера:

Читайте также:  Bluetooth defender rage 65109

У вас адрес будет естественно свой. Очищаем список сопряженных устройств:

Устанавливаем скорость (по умолчанию стоит 9600) и пароль (заводской — 1234, придумываем свой вместо того, что в примере — 5555) — они должны совпадать у мастера и слейва:

AT+UART=115200,0,0 AT+PSWD="5555" 

И устанавливаем режим slave:

Настройка модуля master

Отключаем bluetooth адаптер от переходника и подключаем второй, который будет работать в режиме master. Точно по той же схеме, не забыв подать 3.3V на KEY.

Очищаем список сопряженных устройств:

Устанавливаем скорость и пароль (такой же, какой установили для slave модуля):

AT+UART=115200,0,0 AT+PSWD="5555" 

Устанавливаем режим master:

И последнее: настраиваем его на подключение только к нашему slave модулю:

AT+CMODE=0 AT+BIND=0013,EF,009C77 

Обратите внимание на последнюю команду, точнее на ее аргумент. Мы передаем адрес первого адаптера, который узнали ранее, но три блока цифр разделены уже запятыми вместо двоеточий, а также первый блок цифр дополнен впереди нулями до четырех, а третий блок дополнен нулями до шести символов. Это важно, и без этого команда не отработает.

Проверка работы

Отключаем оба модуля. Для проверки нам понадобятся две платы Arduino и две кнопки (либо просто проводки). Сначала зальем на обе платы следующий код:

#include void setup() < pinMode(13, OUTPUT); pinMode(7, INPUT_PULLUP); Serial.begin(115200); >void loop() < static bool light = true; if (Serial.available()) < if (Serial.read() == int('@')) < light = true; >> if (light) < digitalWrite(13, HIGH); if (!digitalRead(7)) < Serial.print("@"); digitalWrite(13, LOW); light = false; >> > 

После прошивки подключим кнопки к 7 пину и к земле. Можно вместо кнопок просто подключить по 2 проводка к соответствующим пинам каждой платы.

Bluetooth модули подключим так:

  • +5V (arduino) – VCC (модуль bluetooth)
  • GND (arduino) – GND (модуль bluetooth)
  • TX (arduino) – RXD (модуль bluetooth)
  • RX (arduino) – TXD (модуль bluetooth)

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

Купить модуль bluetooth hc-05: 1, 2, 3

Источник

Урок 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, можно перейти к следующему шагу.

Читайте также:  Подключить наушники беспроводные samsung через bluetooth
Подключение Bluetooth к телефону

Желательно в качестве источника питания для arduino использовать не USB, а внешний Блок питания на 9 В.

  1. Включаем Bluetooth на телефоне и ищем новые устройства
  2. Находим в списке расстройств «HC-06″ и подключаемся к нему.
  3. Телефон спросит пин-код. необходимо ввести «1234» или «0000«
  4. Ура. Устройство подключено.

Теперь нужно скачать bluetooth terminal на ваш телефон. Мы рассмотрим на примере платформы Android.

Вы можете установить разные bluetooth терминалы, как правило они отличаются только разными дизайнами, функционал от этого не меняется. Так же можно найти и терминал и для продуктов ios.

После того как мы установили терминал, запускаем его выбираем наш bluetooth модуль HC-06 и подключаемся к нему.

Пришло время попробовать проект в деле. Пишем в терминале цифру «0» и отправляем. Светодиод L который находится на плате arduino рядом с pin 13, должен погаснуть. Теперь отправим через терминал цифру «1» и светодиод L должен зажечься.

Демонстрация работы:


Домашняя работа:

  • Изменить скетч так, что бы светодиод зажигался и потухал с помощью одной и той же команды например «G».
  • Дописать скетч и научить его преобразовывать текстовые данные приходящие через блютус в цифровые и реализовать димер, зажигать светодиод с помощью ШИМ, на заданную яркость от 0 до 254 приходящую через bluetooth.

Источник

Arduino и Bluetooth JDY-31

В наборе GyverKIT обеих комплектаций есть Bluetooth модуль JDY-31 (аналог популярного HC-06). Данный модуль обеспечивает беспроводную связь UART – COM порт, что позволяет использовать его для удобного обмена данными между Arduino и приложением на смартфоне или программой на компьютере. Основные характеристики:

  • Рабочая частота: 2.4 GHz
  • Интерфейс: UART
  • Напряжение питания: 3.6.. 6V
  • Ток потребления: 5 мА в режиме поиска, ~8 мА в режиме передачи
  • Логический уровень: 3.3V, но вроде как не боится 5V
  • Дальность связи: 30м
  • Версия Bluetooth: 3.0 SPP
  • Чувствительность антенны: -97dbm
  • Скорость UART: 9600.. 128000

Официальную документацию на JDY-31 можно открыть по ссылке .

Индикация состояния подключения:

  • Ожидание
    • Светодиод мигает
    • Пин STATE: LOW
    • Светодиод горит постоянно
    • Пин STATE: HIGH

    Подключение

    Модуль подключается к питанию и цифровым пинам МК:

    • JDY-31 > Arduino
    • GND > GND
    • VCC > 5V
    • RX > Serial TX
    • TX > Serial RX
    • Опционально можно подключить EN на любой цифровой пин для отслеживания состояния подключения.

    На левой схеме я подключил JDY-31 к аппаратным выводам UART напрямую, на правой – через делитель напряжения, образованный тремя резисторами по 10 кОм (есть в наборе GyverKIT). Такой делитель 2:1 обеспечит около 3.1V на вход RX модуля. Правая схема предпочтительнее, но от прямого подключения модуль ещё ни у кого не выходил из строя, насколько я знаю.

    • Модуль будет мешать загрузке прошивки (она загружается по RX TX), на момент загрузки нужно отключить провода от пинов RX и TX Arduino
    • С модулем можно общаться при помощи штатного Serial, фактически он будет дублировать монитор COM порта

    На следующих двух схемах я подключил модуль к любым двум цифровым пинам Arduino:

    При таком подключении модуль ничему не мешает, но для работы с ним придётся использовать стандартную библиотеку программного Serial – SoftwareSerial.

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

    Windows

    Для работы на компьютере у вас должен быть Bluetooth адаптер. Заходим в панель управления, добавляем Bluetooth устройство, вводим пин 1234 для сопряжения:

    После этого в Arduino IDE появится ещё один COM порт. Загрузим следующий пример, который просто выводит в порт строчку со счётчиком. Модуль подключен к аппаратному UART.

    Откроем Bluetooth порт и увидим вывод:

    Точно таким же образом можно подключиться к Arduino из своей программы, написанной например на Processing или Python. У меня есть уроки по этой теме:


    Android

    Для теста на Android я использую приложение Serial Bluetooth Terminal. Сопрягаемся с паролем 1234, заходим в программу, открываем настройки слева, Devices, выбираем JDY-31 и подключаемся (кнопка со штекером в левом правом углу экрана. Модуль подключен к аппаратному Serial, на Arduino прошит код, отправляющий принятые данные обратно в Serial (эхо):

    Пишем в терминал – модуль нам отвечает. Своё приложение с Bluetooth можно сделать в MIT App Inventor, этим мы займёмся в будущих уроках.

    SoftwareSerial

    В качестве примера подключим модуль по второй схеме (на пины D2 и D3) и загрузим простую программу, которая будет пересылать данные с программного Serial (на пинах D2 и D3, Bluetooth) на аппаратный (который мы можем смотреть через монитор порта в Arduino IDE):

    #include SoftwareSerial mySerial(3, 2); // RX, TX void setup() < Serial.begin(9600); mySerial.begin(9600); >void loop() < if (mySerial.available()) < Serial.write(mySerial.read()); >if (Serial.available()) < mySerial.write(Serial.read()); >>

    Откроем терминал и монитор порта и можем общаться с компьютером, Arduino выступает в роли посредника и перекидывает данные с Bluetooth на USB и наоборот:

    Точно так же можно использовать SoftwareSerial для программ и приложений, если аппаратный UART на Arduino нужен для других целей.

    Настройка JDY-31, AT команды

    Рассмотрим также настройку самого JDY-31, делается это при помощи AT-команд:

    • Чтобы модуль отвечал на команды, он должен находиться в режиме ожидания подключения (светодиод мигает)
    • Загружаем в Arduino пустую программу (Файл/Новый). Либо любую другую, в которой не задействован Serial. Либо подключаем пин RST к GND, чтобы микроконтроллер не запустился и нам не мешал
    • Подключаем JDY-31 на RX TX Arduino (аппаратный Serial) наоборот: TX > TX, RX > RX
    • Открываем монитор порта, ставим текущую скорость модуля (по умолчанию 9600 бод), конец строки NL & CR

    Отправляем команду AT+VERSION . Если всё сделано правильно – модуль ответит +VERSION=JDY-31-V1.35,Bluetooth V3.0

    Какие ещё есть команды? Полный список есть в документации, давайте разберём:

    Домашнее задание

    Источник

Оцените статью
Adblock
detector