Модуль HM-10 (BLE 4.0): полное техническое руководство, AT-команды, подключение к Arduino
Беспроводная связь — основа современной электроники. Модуль HM-10 на базе чипа TI CC2540/CC2541 (Bluetooth Low Energy 4.0/4.2) — популярный, дешевый и хорошо документированный выбор для IoT, носимых устройств, телеметрии, управления через смартфон.
1. Распиновка HM-10 (34 вывода, stamp-корпус)
Распиновка модуля HM-10
Для базовой работы UART достаточно 4 выводов: VCC, GND, TX, RX. Полная таблица:
| № | Имя | Функция |
|---|---|---|
| 1 | UART_TX | UART TX (выход модуля → RX МК) |
| 2 | UART_RX | UART RX (вход модуля ← TX МК) |
| 3 | UART_CTS | UART CTS (готовность к приему) |
| 4 | UART_RTS | UART RTS (запрос на передачу) |
| 5-10 | NC | Не подключены |
| 11 | RESET | Сброс (активный низкий, >100 мс) |
| 12 | VCC | Питание 2,0–3,6 В (ном. 3,3 В) |
| 13-14 | GND | Земля |
| 15 | USB_D- | USB D- (внутренний PHY) |
| 16-19 | NC | Не подключены |
| 20 | USB_D+ | USB D+ |
| 21-22 | GND | Земля |
| 23 | PIO0 | Системная кнопка (Key) |
| 24 | PIO1 | Системный LED |
| 25-34 | PIO2-11 | Программируемые GPIO (10 линий) |
Две версии: HM-10C (компактная, без USB) и HM-10S (с USB-интерфейсом). Чип: CC2541 (256 КБ Flash, 8 КБ RAM) или CC2540 (128 КБ Flash).
2. Ключевые характеристики HM-10
- Bluetooth 4.0 / 4.2 LE (Low Energy), частота 2,4 ГГц ISM.
- Потребление: активное ~8–15 мА, сон 50–200 мкА, backup 235 мкА.
- Дальность: до 100 м в прямой видимости (0 дБм ВЧ мощность, антенна на плате).
- UART (до 921600 бод) + Full-speed USB 2.0.
- 12 GPIO, 32-кГц sleep timer, In-Circuit Programming.
- Рабочая температура: -40…+85 °C.
- Напряжение питания модуля: 2,0–3,6 В (на базовой плате часто стоит LDO 3,3 В).
- ESD защита 750 В (HBM).
Компактный HM-10 модуль на базовой плате
HC-08 — альтернативный BLE модуль
3. Где применяют HM-10
- Короткодистанционная беспроводная связь (≤100 м).
- Мобильные/носимые устройства (низкое потребление в режиме сна).
- Бюджетные проекты (стоимость $2–5 за модуль).
- UART-интерфейс — совместимость с Arduino, STM32, ESP32, Raspberry Pi, PIC.
- Робототехника, медицинские приборы (пульсоксиметры), спорт-гаджеты, USB-донглы, периферия ПК, серверы мониторинга.
Медицинский пульсоксиметр с BLE модулем
4. Практическое подключение к Arduino
4.1 Необходимые компоненты
- Arduino (Uno/Nano/Mega) + USB кабель
- HM-10 модуль на базе (breakout) с LDO 3,3 В
- Резисторы 1 кОм и 470 Ом (делитель уровня для RX HM-10)
- Перемычки, макетная плата
- Arduino IDE
- Android: приложение BLE Scanner (например, от MLT / Macdom)
4.2 Схема подключения
Схема подключения HM-10 к Arduino Uno
Важно: HM-10 работает от 3,3 В. Arduino Uno — 5 В логика. TX Arduino (5 В) → делитель 1к/470Ом → RX HM-10 (3,3 В). TX HM-10 (3,3 В) → RX Arduino (читает 3,3 В как HIGH — ок). VCC HM-10 к 3,3 В Arduino (не к 5 В!).
| HM-10 | Arduino Uno |
|---|---|
| TX | D2 (SoftwareSerial RX) |
| RX | D3 (SoftwareSerial TX) через делитель 1к/470Ом |
| GND | GND |
| VCC | 3.3V |
4.3 Настройка через AT-команды
- Подключите Arduino к ПК, откройте Serial Monitor (9600 бод, NL & CR).
- Отправьте
AT→ ответOK. - Проверьте имя:
AT+NAME?→OK+NAME:HMSoft. - Смените имя:
AT+NAMEMyDevice. - Смена бодрейта:
AT+BAUD4(9600),AT+BAUD8(115200). - Режим:
AT+ROLE0(Slave/Peripheral),AT+ROLE1(Master/Central). - Пароль:
AT+PASS123456(6 цифр). - Сохранение: настройки хранятся во Flash.
4.4 Связь двух HM-10 (Master ↔ Slave)
- Оба в Slave:
AT+ROLE0. - На Master:
AT+ROLE1. - Узнайте MAC Slave:
AT+ADDR?→ напр.OK+ADDR:20C38FF61DA1. - На Master:
AT+CON20C38FF61DA1— подключение. - После коннекта: прозрачный UART туннель (все, что пришло в UART Master — уходит в UART Slave и наоборот).
4.5 Пример кода Arduino (управление встроенным LED через BLE)
#include <SoftwareSerial.h>
SoftwareSerial HM10(2, 3); // RX=2, TX=3
char appData;
String inData = "";
void setup() {
Serial.begin(9600);
Serial.println("HM10 serial started at 9600");
HM10.begin(9600);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
}
void loop() {
HM10.listen();
while (HM10.available() > 0) {
appData = HM10.read();
inData = String(appData);
Serial.write(appData);
}
if (Serial.available()) {
delay(10);
HM10.write(Serial.read());
}
if (inData == "F") { // OFF
Serial.println("LED OFF");
digitalWrite(13, LOW);
delay(500);
}
if (inData == "N") { // ON
Serial.println("LED ON");
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
}
4.6 Работа с Android (BLE Scanner)
- Установите BLE Scanner (например,
com.macdom.ble.blescanner). - Разрешите Bluetooth и Геолокацию (Android 6+ требует Location для BLE скана).
- Скан → найдите устройство MLT-BT05 (или ваше кастомное имя).
- Пароль:
123456789(заводской) или вашAT+PASS. - Подключитесь → Custom Service → характеристика с свойством Write (W).
- Отправьте
1(вкл) /0(выкл) → управляет LED на Arduino.
Запрос разрешений BLE Scanner
Arduino Uno с подключенным HM-10
5. HM-10 vs HC-05 (Bluetooth 2.0/2.1) vs HC-06
| Параметр | HM-10 (BLE 4.0/4.2) | HC-05/06 (Classic BT 2.0/2.1) |
|---|---|---|
| Протокол | BLE (GATT, ATT) | SPP (Serial Port Profile) |
| Потребление (сон) | ~1–5 мкА | не поддерживает сон |
| Потребление (актив) | 8–15 мА | 30–50 мА |
| Скорость (воздух) | 1 Мбит/с (2 Мбит/с в 4.2) | 2–3 Мбит/с (EDR) |
| Дальность | до 100 м | до 10–20 м |
| Связь с iOS | Нативно (CoreBluetooth) | Требует MFi сертификацию |
| Android | Нативно (BLE API) | Нативно (SPP) |
| AT-команды | Расширенный набор | Базовый набор |
| Цена | $2–5 | $3–6 |
HC-05 — классический Bluetooth SPP модуль
Вывод: HM-10 выигрывает для IoT, носимых, батарейных устройств, работы с iOS без MFi. HC-05/06 — для простой прозрачной UART-связи с Android/PC, где не важна энергия.
6. Типичные проблемы и решения
- Клон без 32 кГц кварца: не работает AT-команды, не паркуется. Решение: прошить оригинальный прошивку (через CC-Debugger) или купить у проверенных поставщиков.
- Не видно в BLE Scanner: проверьте питание (3,3 В), делитель на RX, режим Slave (ROLE0), не спящий.
Сброс настроек: подать низкий уровень на RESET (PIO11) >100 мс илиAT+RENEW(заводские настройки).
Перепрошивка: нужен TI CC-Debugger + SmartRF Flash Programmer, прошивки от Jinan Huamao (HMSoft).
7. Заключение
HM-10 — де-факто стандарт для BLE 4.0 в хоббийных и малых коммерческих проектах. Простая UART-интеграция, AT-команды, низкая цена, нативная поддержка iOS/Android. Ключевые моменты: 3,3 В логика, проверка оригинальности (32 кГц кварц), правильный делитель уровней от 5 В МК. Для новых проектов рассмотрите также ESP32 (Wi-Fi + BLE 5.0, мощнее, то же цена) или nRF52840 (BLE 5.2, Thread, Zigbee, профессиональный SDK).
Нужна помощь с интеграцией HM-10, прошивкой или разработкой BLE-устройства? Обращайтесь — проектируем схемы, платы и ПО под ключ.
Промышленные технологии
- Язык программирования C: обзор, история и области применения
- C#: обзор современного объектно-ориентированного языка от Microsoft
- Раскрытие UID: трехчастная серия об истории, мандате и будущем
- Освойте Fishbowl Manufacturing: основные горячие клавиши модуля производственного наряда
- Модуль BOM Fishbowl: основные горячие клавиши для быстрого производства
- Группа модулей Производство: управление спецификациями и заказами
- Подробное руководство по станкам ЧПУ плазменной резки: особенности, преимущества и применение
- Высокоскоростные станки: ключевые особенности и влияние на промышленность
- Мастерство шлифования резиновых валков: профессиональное руководство к высокому качеству поверхности
- Прямоточные водяные насосы (DC): полное руководство для дома и промышленности