Hm 10 bluetooth распиновка

Обновлено: 05.07.2024

Trema-модуль Bluetooth BLE 4.0 — это модуль беспроводной связи, позволяющий передавать и принимать данные по радиоканалу на разрешённом ISM (Industry, Science and Medicine) диапазоне частот, от 2.4 ГГц до 2.5 ГГц, предназначенном для использования в индустриальных, научных и медицинских целях, используя метод AFH (Adaptive Frequency Hopping Feature) - адаптивной скачкообразной перестройки несущей частоты.

Дополнительным преимуществом данного модуля является то, что он совместим не только с оборудованием на базе ОС Android, но так же с оборудованием фирмы Apple (macOS).

Видео:

Спецификация:

  • Напряжение питания: 3,3 . 5 В
  • Потребляемый ток при подключении: до 40 мА (поиск, сопряжение, подключение к другим Bluetooth устройствам)
  • Потребляемый ток при передаче данных: от 0,2 до 8 мА
  • Частотный диапазон: ISM 2,4 . 2,48 ГГц
  • Мощность передатчика: до +6 дБм
  • Дальность связи: до 10 м
  • Интерфейс: UART (с программируемой скоростью передачи данных)
  • Максимальное напряжение на выводах TX и RX не должно превышать напряжение питания модуля.
  • PIN-код по умолчанию: 000000;
  • Настройки UART по умолчанию: Скорость 9600 бит/сек, 8 бит данных, 1 стоп бит, ведомое устройство;
  • Поддерживаемые скорости UART: 1200,2400,4800,9600,19200,38400,57600,115200,230400 бит/сек.

Все модули линейки "Trema" выполнены в одном формате

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

Trema-модуль Bluetooth BLE 4.0 подключается к Arduino по шине UART (можно использовать как аппаратную, так и программную шину).

  • Вывод модуля TX подключается к аппаратному (фиксированному) или программному (назначенному) выводу RX Arduino. Это линия шины UART для передачи данных от модуля к Arduino.
  • Вывод модуля RX подключается к аппаратному (фиксированному) или программному (назначенному) выводу TX Arduino. Это линия шины UART для передачи данных в модуль от Arduino.
  • Вывод модуля K подключается к любому выводу Arduino, номер которого указывается в скетче. Это линия перевода модуля в режим AT-команд. Модуль в обычном режиме будет воспринимать AT-команды, только после того как на этот вывод кратковременно подать высокий уровень. Модуль перейдёт в режим AT-команд (на скорости 38400 бит/с и не будет соединяться с другими модулями) если на нём будет установлен высокий логический уровень при подаче питания или перезагрузке.

Модуль удобно подключать 3 способами, в зависимости от ситуации:

Способ - 1 : Используя проводной шлейф и Piranha UNO

Используя провода «Папа — Мама», подключаем напрямую к контроллеру Piranha UNO.

Выводы модуля BluetoothВыводы Piranha UnoЦвет
RXD3Зелёный
TXD2Жёлтый
GGNDСиний
V5VКрасный
KD4Серый

Способ - 2 : Используя Trema Set Shield

Модуль можно подключить к UART входу Trema Set Shield.


Способ - 3 : Используя проводной шлейф и Shield

Используя 2-х и 3-х проводные шлейфы, к Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO и тд.

Выводы модуля BluetoothВыводы Trema ShieldЦвет
RXD3Зелёный
TXD2Жёлтый
GGNDСиний
VVCCКрасный
KD4Серый

Способ - 4 : Используя проводной шлейф и адаптер USB-UART

Используя 5 1-х проводных шлейфов и адаптер USB-UART, подключаем модуль напрямую к ПК.

Выводы модуля BluetoothВыводы адаптераЦвет
RXTXЗелёный
TXRXЖёлтый
GGNDСиний
VVCCКрасный
KDTRСерый

Питание:

Управление светодиодной индикацией

Модуль имеет 4 светодиода на корпусе:

Данными светодиодами возможно управлять с помощью АТ-команд.

Пример ниже демонстрирует, каким образом можно управлять работой светодиодов, расположенных на модуле.

Как видно из примера выше, после загрузки скетча в плату, на Trema-модуле Bluetooth BLE 4.0 будет гореть синий светодиод с надписью состояние, что означает, что модуль находится в ожидании подключения. Сразу после того, как модуль будет сопряжён с любым другим устройством, в зависимости от того, в каком режиме он настроен на работу (master/slave), на модуле загорятся синий светодиод с надписью "Соединён" и зелёный светодиод с надписью режима работы модуля (master или slave).

Работа светодиодной индикации в зависимости от роли модуля

В зависимости от указанной роли модуля (master или slave), светодиодная индикация будет работать по разному!

Если Вы используете для сопряжения друг с другом 2 Trema-модуля Bluetooth BLE 4.0, то важно помнить, что модуль, настроенный на работу в режиме master, после установления соединения с устройством, работающим в режиме slave, отключает свою светодиодную индикацию на всё время соединения.

Подробнее о модуле:

В ISM диапазоне частот работают и радио модули nRF24L01+, но в отличии от этих модулей, которые работают на определённой частоте диапазона, Trema-модуль Bluetooth BLE 4.0 используют метод AFH (Adaptive Frequency Hopping Feature) адаптивной скачкообразной перестройки несущей частоты (он меняет свою частоту 1600 раз в секунду). Несущая частота меняется псевдослучайным образом и заранее известна только паре «ведущий - ведомый», что обеспечивает не только устойчивость к помехам (занят канал? не беда, перейдём на другой) но и сохранение конфиденциальности передаваемых данных.

Преимуществом Bluetooth модулей перед другими модулями беспроводной передачи данных заключается в простоте работы (Вам не нужно знать протоколы, работать с регистрами, отслеживать сигналы и т.д.) и широкой распространённости данного типа передачи данных (Вы можете управлять Вашими устройствами, или получать их показания, практически с любого телефона, планшета, ноутбука).

Модуль не требует подключения антенны, т.к. она встроена (присутствует на ПП модуля).

Принцип работы BLE

Помимо модуля, в ISM диапазоне частот работают многие другие устройства, такие как Wi-Fi -роутеры или микроволновые печи. Совместная работа сразу нескольких подобных устройств может мешать работе модуля. Для того, чтобы минимизировать влияние сторонних устройств, используются широковещательные каналы объявления (Advertising channels, "рекламные каналы"). Данные каналы имеют следующие индексы: 37, 38 и 39.

Их использование не случайно:

— частоты данных каналов попадают между каналами Wi-Fi (1, 6, 11 каналы), что позволяет свести к минимуму влияние Wi-Fi сигнала на модуль;

— после того, как каналы расположены максимально далеко друг от друга, а передача широковещательных объявлений идёт последовательно по 3 каналам на разной частоте, можно быть уверенным в том, что объявления дойдут до получателя.

Рис. 7. Полоса частот и каналы Bluetooth Low Energy

После того, как соединение между устройствами установлено, передача данных осуществляется уже по стандартным, рабочим каналам (с 0 по 36).

При этом принцип работы BLE сводится к тому, что устройства работают в следующем режиме: Проснулся — Передал данные — Уснул, за счёт чего и достигается минимальное значение энергопотребления.

Пример:

Для того, чтобы Вы могли опробовать модуль в работе, для начала Вам необходимо скачать и установить терминал, благодаря которому возможно отправлять АТ-команды модулю для настройки его работы и получения необходимой информации.

Следующий пример представлен для телефонов с установленной ОС Android, но все эти действия аналогичны при работе на устройствах с ОС Apple (macOS).

Настройка Bluetooth-модуля телефона:


Зайдите в настройки телефона и выберите настройки модуля Bluetooth;

Переведите модуль Bluetooth из состояния выключен в состояние включен.

Установка приложения на телефон

Войдите в меню магазина приложений Google Play Market ;

Нажмите на строку поиска и наберите Serial Bluetooth Terminal и выберите первую появившуюся стоку с именем приложения;

В окне установки приложения нажмите кнопку Установить ;

После успешной установки иконка программы появится у вас на рабочем столе телефона;

Для запуска приложения достаточно один раз нажать кнопку Открыть или выбрать иконку приложения на рабочем столе;

Скетч для Arduino

Загрузите следующий скетч в вашу плату.

Настройка приложения Serial Bluetooth Terminal на телефоне:

При запуске приложения вы попадёте на главный экран.

Для поиска устройств нажмите на изображение трёх горизонтальных линий в левом верхнем углу.

В появившемся окне будет представлен список всех Bluetooth-устройств в радиусе действия Bluetooth-адаптера смартфона. Для начала работы нажмите на строку с название SCAN в верхнем правом углу и дождитесь окончания поиска.

После того, как сканирование будет завершено, найдите в списке устройство с именем Test и нажмите на него. Произойдёт сопряжение устройств и Вас вернёт на главный экран приложения.

АТ-команды

В настоящее время Bluetooth является одной из самых популярных беспроводных технологий. На протяжении последних лет регулярно выходили обновления этой технологии чтобы она “успевала” за все возрастающими требованиями пользователей. В этой статье мы рассмотрим подключение Bluetooth модуля HM10 к плате Arduino и управление с его помощью светодиодом из Android приложения.

Внешний вид подключения Bluetooth модуля HM-10 к плате Arduino

Принципы работы Bluetooth модуля HM-10 (at-09)

Работа Bluetooth модуля HM-10 (он также известен под названием at-09) основана на технологии Bluetooth 4.0. Также он поддерживает технологию BLE – Bluetooth-Low-Energy (Bluetooth с низким энергопотреблением), которая специально была разработана для обеспечения низкого потребления энергии, что дает возможность устройствам достаточно долго работать от обычной батарейки. В основе Bluetooth модуля HM-10 лежит чип CC2540 (или CC2541) BLE System SoC (System on Chip – система на кристалле (чипе)) от компании Texas Instruments. Программное обеспечение (прошивка) и дизайн модуля HM-10 разработаны компанией Jinan Huamao Technology. В составе модуля есть UART (Universal asynchronous receiver/transmitter – универсальный асинхронный приемопередатчик), что позволяет достаточно просто его подключать к различным микроконтроллерам.

Внешний вид Bluetooth модуля HM-10

HM-10 в настоящее время является одним из самых популярных модулей, поддерживающих технологию Bluetooth 4.0 BLE. Поскольку модуль поддерживает технологию Bluetooth 4.0, то он не сможет соединяться с устройствами, использующими технологию Bluetooth 2/2.1, например, Bluetooth модулями HC-05, HC-06. Модуль HM-10 управляется с помощью AT команд по последовательному порту связи (UART).

Различия между HM-10 и другими Bluetooth модулями

Основное отличие HM-10 от других Bluetooth модулей заключается в версии Bluetooth. HM-10 поддерживает Bluetooth версии 4.0, поэтому от модулей предыдущих поколений он будет отличаться (в выгодную сторону) скоростью работы, пропускной способностью и дальностью действия. HM10 поддерживает скорость передачи данных до 24 Мбит/с с низким потреблением энергии. А, к примеру, модуль HC-05, поддерживающий версию Bluetooth 2.0, может обеспечить скорость передачи данных только 3 Мбит/с. Вместе с этим модуль HM-10 обеспечивают дистанцию связи до 100 метров на открытой местности.

Однако более старые и менее производительные Bluetooth модули HC-05 и HC-06 до сих пор широко применяются радиолюбителями вследствие их низкой цены. На основе этих модулей на нашем сайте вы можете найти достаточно много проектов. Все проекты на нашем сайте, в которых используется технология Bluetooth, вы можете посмотреть по этой ссылке.

Необходимые компоненты

Аппаратное обеспечение

  1. Плата Arduino Uno (купить на AliExpress).
  2. Bluetooth модуль HM-10 (купить на AliExpress).
  3. Резисторы 1 кОм, 470 Ом (купить на AliExpress).
  4. Соединительные провода.
  5. Смартфон на операционной системе Android.

Программное обеспечение

  1. Arduino IDE.
  2. Arduino Bluetooth Controller (HM-10 Module) - Android приложение.

Работа схемы

Схема подключения Bluetooth модуля HM-10 к плате Arduino представлена на следующем рисунке. Как видите, схема крайне проста.

Схема подключения Bluetooth модуля HM-10 к плате Arduino

Но прежде чем использовать модуль HM-10 в нашем проекте убедитесь в том, что это настоящий (genuine) модуль HM-10, а не его клон. Сейчас на рынке в большом количестве присутствуют китайские клоны модуля HM-10. Чтобы отличить настоящий модуль HM-10 от его клона убедитесь в наличии кварцевого генератора (Crystal Oscillator) на 32 кГц на его плате. Если кварцевого генератора на плате модуля нет, то перед вами клон модуля HM-10 и прежде чем его использовать вам необходимо сменить его прошивку (программное обеспечение). Как это сделать можно прочитать, к примеру, в этой англоязычной статье.

Без смены прошивки вы не сможете использовать для управления клоном модуля HM-10 AT команды, также вы не сможете подключить его к смартфону. В нашем проекте мы использовали клон модуля HM-10 (он более дешевый чем настоящий), но перед этим сменили его прошивку по указанной методике.

Внешний вид получившейся у нас конструкции

Arduino Bluetooth Controller (HM-10 Module) – приложение на Android

Arduino Bluetooth Controller (HM-10 Module) представляет собой приложение для операционной системы Android, которое можно бесплатно скачать из Google Play Store. Это приложение обеспечивает простой и интуитивно понятный интерфейс для взаимодействия с Bluetooth модулем HM-10. В этом приложении можно создавать собственные кнопки и кастомизировать вид этого приложения под свои нужды. Мы создали в нем две кнопки для управления светодиодом, подключенным к плате Arduino.

Вначале скачайте это приложение из Google Play Store по этой ссылке (или можете сразу скачать его с помощью своего смартфона).

Внешний вид приложения в Google Play Store

На главной странице этого приложения доступны такие функции как connect Device (подсоединить устройство), Search Icon (найти иконку), Delete Icon (удалить иконку), Device Status (состояние устройства), Send Text (передать текст), Add Template (добавить шаблон) и другие. Начните работу в этом приложении с поиска устройства – это можно сделать либо с помощью функции Search Icon, либо кликнув по трем точкам в верхнем правом углу приложения и выбрав connect Device.

Функции, доступные в приложении

После этого на экране приложения вы увидите все доступные для подключения устройства. Выберите среди них модуль HM-10.

Доступные для подключения устройства

После этого модуль HM-10 будет успешно подключен к вашему приложению и вы сможете видеть его состояние вверху экрана.

Вид подключения модуля HM-10 в приложении

После этого вы сможете передать текст (строку) в модуль либо непосредственно из поля передачи текста, либо при помощи создания собственного (пользовательского) шаблона.

Поле для передачи текста в приложении

Для создания нового пользовательского шаблона (custom template) нажмите на иконку “+” в правом верхнем углу и после этого заполните необходимые параметры шаблона. “Name” – это будет название кнопки, поле “Text” будет использоваться для передачи текста (строки) на модуль HM-10, а “Description” – это будет описание кнопки.

Создание нового шаблона в приложении

Мы в нашем проекте создадим кнопку зеленого цвета для включения светодиода (LED ON). При нажатии этой кнопки на модуль HM-10 будет передаваться символ “N”, что будет приводить к включению светодиода, подключенного к плате Arduino. Аналогичным образом создадим кнопку красного цвета для выключения светодиода (LED OFF) – при ее нажатии на модуль HM-10 будет передаваться символ “F”.

После этого вы сможете увидеть в приложении две созданные вами кнопки – с их помощью вы сможете управлять светодиодом, подключенным к плате Arduino.

Внешний вид созданных кнопок в приложении

Объяснение программы Arduino для управления светодиодом с помощью Bluetooth модуля HM-10

Полный текст программы и видео, демонстрирующее работу проекта, приведены в конце данной статьи. Здесь же мы кратко рассмотрим работу основных фрагментов программы.

Написание программы Arduino для этого проекта не потребует использования каких либо дополнительных библиотек если вы подключите модуль HM-10 к стандартному аппаратному последовательному порту платы Arduino – то есть к ее контактам 0 и 1 как показано на выше приведенной схеме. Однако мы в данном проекте решили использовать библиотеку для последовательной связи (Software Serial Library), с помощью которой программным способом организуем последовательный порт на контактах 2 и 3 платы Arduino (соответственно, если вы тоже хотите использовать этот подход, то вам необходимо внести изменения в приведенную выше схему).

Сегодня обзавёлся простеньким Bluetooth модулем для работы с различными девайсами через BT, в частности, для беспроводного подключения к бортовому компьютеру квадрокоптера. Модуль был приобретён MLT-BT05, аналог HM-10. По различным причинам китайские модули часто бывают не совсем работоспособными «из коробки», а способы их проверки и прошивки требуют определённого навыка.

HM-10 (MLT-BT05)

Вот и я, купив данный модуль, не сразу понял, как же его по-быстрому проверить. После подключения к квадрокоптеру, было очевидно, что модуль рабочий и подключить к нему удаётся. Но для нормальной работы необходимо было проверить работу команд, ответы от модуля, а так же произвести некоторые настройки дефолтных параметров.

После изучения материала в интернете, стало понятно, что для детальной настройки и проверки модуля потребуется подключить модуль посредством UART к компьютеру или квадрокоптеру. Но т. к. модуль не настроен, то и работать с квадрокоптером он отказывался. Интернет же настойчиво советует работать со специальным переходником USB-UART, и все статьи, как под копирку вторят этому.

Идти покупать отдельный модуль USB-UART совершенно не хотелось, и я вспомнил, что у меня есть программатор CH341A, который не просто программатор, а мультифункциональный конвертер из USB 2.0 в UART, EPP, I2C и SPI. Вот тут есть немного полезной информации.

Для работы по протоколу UART, необходимо переставить перемычку в положение 2-3 (изначально она установлена в положении 1-2). В видеоролике ниже всё показано более детально, поэтому не вижу смысла делать длинный мануал по переключению.

Всё достаточно просто. Теперь наш программатор готов для работы по проверке и настройке Bluetooth модуля HM-10 (MLT-BT05). Подключить Bluetooth модуль достаточно просто. Контакты VCC и GND подключаем соответственно к аналогичным разъёмам на программаторе, а TXD и RXD накрест.


Для соединения устройств я использовал простые перемычки, которые продаётся в радиомагазинах или магазинах RC моделей.

У меня получилось вот так.
Далее, остаётся лишь подключить программатор к компьютеру и открыть терминал для работы с COM портом. В моём случае, это порт COM10.

Теперь, зная номер порта, проверим, доступен ли модуль Bluetooth. Для этого я лично решил воспользоваться Arduino IDE, если точнее, то встроенным средством «Монитор порта».

Для этого, после установки Arduino IDE, запускаем программу, открываем меню «Инструменты» -> «Порт» и выбираем COM порт. В моём случае это COM10.

Теперь пришло время проверить работу команд и ответ. Для старта можно ввести команду AT. По умолчанию данный модуль находится в режиме приёма команд, но если имеется хотя бы одно подключенное устройство, то команды пониматься модулем не будут. Ввод команды AT должен вернуть ответ, в моём случае «ОК».

Если набрать команду AT+HELP, то модуль выведет список всех доступных команд.

Больше всего меня интересовали следующие команды: AT+VERSION, для отображения версии прошивки модуля. У моего модуля версия прошивки MLT-BT05-V4.4.

Далее, мне необходимо было изменить имя Bluetooth, которое отображается при поиске модуля. Для это используется команда «AT+NAME», которая в чистом виде вернёт текущее имя модуля, я же набрал её в варианте «AT+NAMEAlex-BT», тем самым установив имя модуля в значение «Alex-BT».

Командой «AT+PIN» проверяем текущий пароль и ставим свой пароль при необходимости. Пароль по умолчанию «123456», учтите, минимальная длинна пароля 6 символов. Если попробовать установить пароль короче, будет выведена ошибка.

Ну, и осталось поднять скорость работы модуля. Текущая скорость по умолчанию 9600 бод, а хотелось бы немного побольше. Для проверки текущей скорости необходимо выполнить команду «AT+BAUD». Будет отображен текeщий параметр, в случае если скорость 9600 бод, то будет выведено «AT+BAUD4».

Для установки скорости 115200 бод необходимо выполнить команду «AT+BAUD8».

Ну вот и всё. Проверка и базовая настройка модуля на этом завершена. Для более детальной настройки вы можете изучить даташиты модуля и посмотреть команды, которые поддерживает модуль.

Bluetooth модуль HM-10 (ZS-040)

Привет! Как известно, все становится лучше, если добавить bluetooth. Поэтому пришло время добавить к нашим проектам bluetooth модуль HM-10. И попробовать управлять схемой на Ардуино через телефон.

В этом уроке мы будем модифицировать схему с rgb светодиодом. Поэтому, посмотрите урок с ней, если уже забыли или пропустили его.

Для того, чтобы выполнить этот урок нам понадобиться

  • Ардуино UNO
  • Макетная плата
  • Перемычки
  • 3 Резистора номиналом 220 Ом
  • 3 Резистора номиналом 1 кОм
  • RGB Светодиод
  • Bluetooth модуль HM-10
  • Кабель USB

В прошлом уроке мы настроили схему на Ардуино, которая управляется из последовательного порта. Мы записывали в последовательный порт данные через программу на Processing и плата Ардуино управляла цветом на rgb светодиоде.

Теперь заменим Processing программу на bluetooth модуль и программу в телефоне.

Программа и схема

Соберем схему для управления rgb светодиода и добавим в схему bluetooth модуль.

Принципиальная схема подключения bluetooth модуля

Контакт TXD подключаем напрямую к контакту 8 Ардуино. А RXD подключаем к 9 контакту через делитель напряжения. Используем сопротивление 1 кОм с одной стороны и 2 кОм с другой.

После подключения питания к Ардуино, лампочка на модуле начнет мигать. Значит питание к нему подключено, и, первоначально, все работает правильно.

После этого уже можно попробовать найти его среди других Bluetooth устройств. С помощью компьютера или телефона. В моем случае, он определяется как BT05

Поиск bluetooth устройств в windows 10

Но сначала напишем программу для Ардуино и загрузим на плату.

В программе используем библиотеку для bluetooth. И создадим все переменные, которые понадобятся в будущем.

В функции setup() настроим основные параметры программы. Включим последовательные порты на ардуино и на bluetooth.

Кроме того, мы собираем только цифры, поэтому всю строку можно представить как число. Ограничим это число функцией constrain(), чтобы можно было написать в программе что угодно, но Ардуино записал на пин корректное значение.

С помощью счетчика цикла i будем переключать контакты rgb светодиода и сбрасывать счетчик, когда он будет равен 3.

Не забудем сбросить переменную для формирования строки перед следующим вводом данных.

Полный текст программы

Serial Bluetooth Terminal

Теперь нам понадобиться клиент для Android, который сможет подключиться к последовательному порту через bluetooth. Найдем такое приложение в Play Market.

Найдем наш модуль в меню devices. И попробуем к нему подключиться.

Наше устройство на экране поиска в Serial Bluetooth Terminal

Подключились к нашему модулю

И наконец, отправим на наш модуль команды. На которые должна среагировать программа в Ардуино и изменить цвет rgb светодиода.

Задаем белый цвет rgb светодиода через приложение

Заключение

Мы научились использовать Bluetooth модуль HM-10. И подключили его к Ардуино. Это дает возможности управлять схемой на Ардуино с помощью программы в телефоне или компьютере без подключенных проводов. Естественно, возможности использовать bluetooth почти не ограничены. Постараемся использовать его чаще в наших проектах.

Читайте также: