- Digitrode
- цифровая электроника вычислительная техника встраиваемые системы
- Создаем шилд на основе модуля Bluetooth для беспроводного программирования Arduino
- Bluetooth-шилд своими руками для программирования Arduino «по воздуху» (OTA)
- Как использовать Bluetooth на Arduino?
- История
- Bluetooth в Arduino
- Описание проекта
- Как работает nRF8001
- Распиновка nRF8001
- Схема соединения
- Библиотеки
- Скетч для Arduino
- Урок 15. Bluetooth модуль HC-06 подключение к Arduino. Управление устройствами с телефона.
Digitrode
цифровая электроника вычислительная техника встраиваемые системы
Создаем шилд на основе модуля Bluetooth для беспроводного программирования Arduino
Bluetooth-шилд своими руками для программирования Arduino «по воздуху» (OTA)
При выполнении проектов с использованием Arduino нам всегда нужно подключать Arduino к ПК, чтобы загрузить в него программу. Но иногда очень неудобно всегда подключать плату к ПК, например, если бы это был робототехнический проект, тогда вам всегда нужно ставить робота рядом с компьютером или ноутбуком, чтобы перепрограммировать его. Эта проблема может быть решена путем использования беспроводного программирования Arduino или программирования «по воздуху». Поэтому сегодня мы создадим схему для беспроводного программирования Arduino с использованием модуля Bluetooth HC-05.
HC05 – это модуль Bluetooth, который поддерживает протокол последовательного порта (SPP) и широко используется во многих беспроводных приложениях. HC-05 может использоваться для переключения между режимом ведущего и режимом ведомого, и его расстояние передачи составляет 20-30 метров в свободном пространстве.
Его распиновка следующая:
- +5V: контакт питания HC05, который может быть запитан +5В.
- GND: контакт заземления
- TX: используется как вывод передатчика в UART
- RX: Используется как приемный контакт в UART
- EN/KEY: включить вывод HC05. Его можно оставить в плавающем состоянии или подключить к источнику питания 3,3 В для включения HC05. Если он подключен к заземлению, модуль будет отключен. Он также используется для перевода HC05 в командный режим AT
- STATE: вывод состояния, низкий уровень в случае отсутствия подключения к любому устройству и высокий уровень при подключении к любому устройству
Сначала мы должны запрограммировать Arduino для ответа на AT-команды через последовательный монитор. Программа очень проста и приведена далее.
Прежде всего, подключите компоненты в соответствии со схемой ниже. Затем выполните приведенные ниже шаги, чтобы перевести модуль в режим AT-команд.
Чтобы войти в режим AT HC05, нам нужно использовать кнопку KEY. Сначала долго нажимайте кнопку, пока светодиод модуля не начнет мигать с интервалом в 2 секунды. Если светодиод начинает мигать через каждые 2 секунды, это означает, что модуль находится в командном режиме. Теперь мы можем передавать ему AT-команды, используя последовательный монитор Arduino IDE. Если в модуле нет кнопки, то мы можем подключить вывод KEY/EN модуля к выводу 3,3 В, чтобы переключить модуль в командный режим.
Как только скетч будет загружен в Arudino, откройте последовательный монитор со скоростью 9600 бод, выберите CR+NL, и вы сможете отправлять AT-команды на HC-05. После успешного завершения вышеуказанных шагов, теперь отправьте соответствующие AT-команды для настройки HC05. Посылайте следующие AT-команды одну за другой на последовательный монитор Arduino, а взамен он должен ответить ОК. В противном случае перепроверьте соединения и попробуйте снова.
AT: Это основная команда тестирования HC05. Каждый раз, когда мы передаем AT, он должен возвращать OK.
AT+ORGL: Эта команда восстановит настройку по умолчанию HC-05. Настройки по умолчанию для режима ведомого, пароль = 1234 и скорость передачи данных = 38400 бит/с.
AT+NAME=DIGITRODE: Эта команда установит имя модуля HC05. В нашем случае это «DIGITRODE»
AT+ROLE=0: Эта команда настроит HC05 в режим ведомого.
AT+POLAR=1,0: Эта команда устанавливает конфигурацию светодиодов PIO
AT+UART=115200,0,0: Это изменит скорость передачи данных до 115200 с 0 стоп-битом и 0 четностью
AT+INIT: Это инициализирует профиль SPP модуля
После успешной отправки AT-команд в Arduino, просто удалите все соединения и подключите все компоненты согласно следующей схеме.
Для быстроты и простоты можно все изготовить на перфорированной плате, чтобы макет можно было легко оснастить разъемами Arduino и использовать в качестве шилда Arduino. После пайки такой шилд будет выглядеть следующим образом.
Затем просто установите шилд на Arduino, как показано на изображении ниже, а затем подключите Arduino к источнику питания (можно батарейке) на 9 В.
После этого найдите настройки Bluetooth на вашем компьютере и нажмите «Добавить устройство Bluetooth» (add a Bluetooth Device). Программа будет сканировать новые устройства, и в результате мы получим наше устройство Bluetooth. Выберите устройство и нажмите «Далее». Нажмите на «Введите код подключения устройства» (Enter the device pairing code). Когда программа запросит код сопряжения, введите «1234» в качестве пароля. Затем вы получите подтверждение успешного сопряжения устройств.
После успешного сопряжения устройства, следующей задачей является выяснение COM-порта для модуля Bluetooth HC05. Для этого найдите «Изменить настройки Bluetooth» (Change Bluetooth Settings), затем перейдите на вкладку «COM-порты» (COM Ports). Это отобразит два COM-порта, один для входящих и другой для исходящих сообщений. Мы должны записать номер исходящего COM-порта, так как он нам понадобится при загрузке программы.
Последний шаг – загрузить скетч программы в Arduino по беспроводной связи, чтобы проверить, работает ли такое беспроводное программирование Arduino идеально или нет. Для этого выберите любую программу Arduino из примеров программ Arduino IDE, например, программу мигания светодиодом. Выберите Arduino UNO в списке плат, а затем выберите правильный COM-порт. После этого нажмите кнопку загрузки, и программа должна быть успешно загружена на вашу плату Arduino.
Источник
Как использовать Bluetooth на Arduino?
Рассмотрим как связать Bluetooth-модуль с Arduino, схему соединения, распиновку модуля, напишем скетч для работы с Bluetooth.
История
В 1996 году несколько стран участвовали в развитии беспроводной связи ближнего радиуса действия, и вместе они хотели некоторой унификации стандартов и названия, символизирующего единство.
В этом процессе принимали участие компании Intel, Ericsson и Nokia, а название Bluetooth было предложено как символ единства, т.к. в 10 веке король Гарольд Блютуз отвечал за объединение Скандинавии. Считается, что данное название не должно было остаться на постоянной основе, но оно так и осталось в дальнейшем.
Bluetooth был создан для обмена данными с близкого расстояния без необходимости использования проводов, таких как наушники, кардиомониторы и датчики. Работает в диапазоне ISM 2,4 ГГц. Данные разделены на один из 79 слотов между 2,4 и 2,4835 ГГц в полосах 1 МГц.
Bluetooth LE (Low Energy) был новой версией. В отличие от более раннего стандарта Bluetooth, LE не требует никаких контрактов или проблем с разработкой приложений, и вы можете распространять их через Play Store; он также требует очень мало энергии, поэтому он очень подходит для работы от батареи.
Bluetooth в Arduino
Некоторые платы Arduino имеют встроенную функцию Bluetooth, но в некоторых проектах может потребоваться использование внешних модулей Bluetooth.
Модуль приемопередатчика HC-05 Bluetooth является обычным вариантом, но в отличие от используемого здесь модуля Bluetooth nRF8001, он потребляет значительное количество энергии и не может быть подключен к смартфонам.
Описание проекта
Мы собираемся подключить Arduino Uno к модулю nRF8001 для отправки и получения данных с него, как если бы это был последовательный порт.
Другими словами, мы будем использовать встроенную способность действовать как UART. Мы добавим красный, зеленый и синий светодиоды, и, отправив «r», «b» или «g», мы будем импульсировать этот светодиод в течение нескольких мс.
Мы также будем вводить строки на последовательной консоли и отправлять их обратно на мобильный телефон.
Как работает nRF8001
Одной из интересных особенностей nRF8001 является то, что его интерфейс для пользователя является UART.
Другими словами, обычный старый серийный Tx и Rx, что делает его очень простым в использовании. Первые три контакта на плате — это интерфейс SPI, SCK — это просто часы, MISO — Master In Slave Out, а MOSI — Master Out Slave In.
Эти четыре контакта идут на Arduino, как показано на схеме, и это не подлежит обсуждению. REQ сигнализирует nRF, что Arduino хочет что-то сказать, а RDY сообщает Arduino, что nRF хочет что-то сказать и должен перейти к одному из выводов запроса прерывания Arduino, т. Е. 2 или 3.
RST является выводом сброса и сбрасывает nRF при запуске. REQ используется аналогично SS, с которым вы, возможно, сталкивались в других приложениях SPI. У Adafruit есть больше деталей относительно его nRF8001 по этой ссылке.
Распиновка nRF8001
Сам модуль nRF8001 выглядит вот так:
Схема соединения
Все детали мы соединяем согласно схемы ниже:
nRF8001 | Arduino Uno |
---|---|
Vin | 5V |
GND | GND |
SCK | 13 |
MISO | 12 |
MOSI | 11 |
REQ | 10 |
RST | 9 |
RDY | 2 |
ACT | Не используется |
В собранном виде проект выглядел так:
Библиотеки
Требуется только одна библиотека — SPI-библиотека, которая автоматически устанавливается вместе с Arduino IDE. Но если у вас ее нет, вы можете скачать ее отсюда.
Вам также нужно будет скачать и установить приложение Nordic Android nRF UART 2.0 из Play Store на вашем Android телефоне. У меня нет iPhone, чтобы протестировать его, но оно должно работать и на устройствах Apple.
Скетч для Arduino
Мы будем использовать для работы такой скетч:
Хотя nRF8001 является 3.3В устройством, Vcc и контакты данных устойчивы к 5В, так что вы можете использовать и то, и другое. Эскиз для демонстрации проекта основан на примере, представленном в библиотеке в разделе «examples» как «echodemo».
После того, как вы загрузили проект и открыли последовательное окно, вы должны увидеть что-то подобное тому, что показано ниже на картинке.
Попробуйте набрать какой-нибудь текст и нажмите «send», и он появится в серийном окне. Введите текст в серийное окно и отправьте его, и оно появится на вашем телефоне.
В измененном примере ниже, я добавил красный, зеленый и синий светодиод на плату, и вы можете мигать ими, введя r, или b, или g с телефона. При вводе слова со всеми тремя, например, «grab» будут мигать все три. У меня старый Samsung Galaxy и работало всё просто отлично.
На этом всё. Оставляйте вопросы или комментарии ниже, наше сообщество поможет в любой ситуации.
Источник
Урок 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.
Скачать скетч можно по ссылке.
После того как скетч записан и 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.
Источник