Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Bluetooth-модули HC-05/HC-06 с Arduino: подключение, код, AT-команды и проекты

Arduino Uno/Nano не имеют Bluetooth. Модули HC-05 (Master/Slave) и HC-06 (только Slave) добавляют беспроводной UART за $2–3. Подключаем через делитель напряжения (5В→3,3В), пишем скетч для терминала, управляем с телефона.

HC-05 vs HC-06: что выбрать

Вывод: берите HC-05 — гибче, позволяет соединить два Arduino друг с другом (один Master, другой Slave).

Распиновка модуля (зелёная плата на синей breakout-плате)

VCC  — 3.3–6 В (на breakout часто есть стабилизатор 3.3В, можно питание 5В)
GND  — земля
TXD  — выход UART модуля (3.3В логика) → RX Arduino
RXD  — вход UART модуля (3.3В логика) ← TX Arduino (НУЖЕН ДЕЛИТЕЛЬ!)
EN/KEY — вход режима AT (HC-05): HIGH = AT-режим (38400 бод), LOW = данные
STATE — выход статуса (HIGH = подключено)

Подключение к Arduino Uno (5В логика)

Arduino        HC-05 Breakout
5V      →      VCC (если на breakout есть стабилизатор 3.3В)
GND     →      GND
D9 (RX) →      TXD (прямо, 3.3В допустимо для входа Arduino)
D8 (TX) →      [R1 2.2к] → RXD модуля
                [R2 3.3к] → GND
            (делитель 5В → 3.3В, центр на RXD)

Используем SoftwareSerial на D8/D9, чтобы не занимать аппаратный UART (D0/D1) — он нужен для загрузки скетчей и Serial Monitor.

Скетч: Bluetooth-терминал (приём/передача текста)


#include 
SoftwareSerial BTSerial(9, 8); // RX, TX Arduino

void setup() {
  Serial.begin(9600);
  BTSerial.begin(9600); // HC-05/06 дефолт 9600 бод
  Serial.println("BT Terminal ready. Send ';' to end line.");
}

String buffer = "";
void loop() {
  // BT → USB Serial
  while (BTSerial.available()) {
    char c = BTSerial.read();
    if (c == ';') {
      Serial.println("Received: " + buffer);
      buffer = "";
    } else buffer += c;
  }
  // USB Serial → BT
  while (Serial.available()) {
    char c = Serial.read();
    BTSerial.write(c);
  }
}

Сопряжение с телефоном

  1. Питание на Arduino → HC-05 мигает быстро (режим пары).
  2. Телефон: Настройки → Bluetooth → Поиск → "HC-05" → Пароль "1234" или "0000".
  3. Приложение: Serial Bluetooth Terminal (Android) / Bluetooth Terminal (iOS). Подключитесь к HC-05.
  4. В приложении: настройте "Line ending" = "Semicolon (;)" или отправляйте `;` вручную.
  5. Пишите сообщение → отправляйте → в Serial Monitor Arduino появится "Received: ...".

AT-команды HC-05 (конфигурация)

Вход в AT-режим: зажмите кнопку KEY/EN на модуле ПЕРЕД подачей питания, держите 2 сек после включения. Мигание медленное (2 сек) = AT-режим. Скорость 38400 бод, NL+CR.

ФункцияHC-05HC-06
РежимыMaster / SlaveТолько Slave
AT-командыДа (в режиме конфигурации)Ограниченный набор
Кнопка KEY/ENЕсть (вход в AT-режим)Нет
STATE пинЕсть (статус соединения)Нет
Цена~$3~$2

После смены скорости UART — измените `BTSerial.begin()` в скетче.

Расширение проектов

Типичные проблемы

КомандаОписаниеПример
ATПроверка связиOK
AT+NAME=MyBTИмя устройстваOK
AT+PSWD=4321Пин-код парыOK
AT+UART=115200,0,0Скорость, стоп-биты, паритетOK
AT+ROLE=00=Slave, 1=MasterOK
AT+CMODE=1Подключение к любому адресуOK
AT+INITИнициализация SPP профиляOK
AT+INQПоиск устройств (в Master режиме)+INQ:addr,type,rssi
AT+LINK=addrПодключение к адресу (Master)OK

Заключение

HC-05 — дешёвый, проверенный способ добавить Bluetooth к Arduino. Главное: делитель напряжения на TX Arduino, правильный бодрейт, приложение с Classic BT поддержкой. Для новых проектов рассмотрите ESP32 — встроенный BT/BLE/Wi-Fi, выше производительность, тот же размер. Нужен пример кода для управления реле или передачи данных датчиков? Присылайте задачу — напишем вместе.

Промышленные технологии

  1. Модули в Python: создание, импорт и продвинутое использование
  2. Избегание частых подводных камней в проектах аналитики данных — практическое руководство
  3. Bluetooth Mesh: выбор между модулем и дискретным чипом
  4. Интерфейсы в Java: Как определять и реализовывать их с практическими примерами
  5. Быстрое создание электрических схем в E3.series: пошаговое руководство
  6. Мастерская маршрутизации панели в E3.series: пошаговое руководство
  7. Повышаем эффективность выполнения заказов, сокращая излишки запасов
  8. Модули в Python: организация кода для ясности и повторного использования
  9. Подключение Arduino Mega к GPS-модулю NEO‑6M: пошаговое руководство
  10. Мастерство nRF24L01: беспроводная связь, интеграция с Arduino, схемы и код
СимптомПричинаРешение
Модуль не мигаетНет питания, переполюсовка, сгорел стабилизатор на breakoutПроверьте 3.3В на VCC чипа, пайку
Не сопрягаетсяНе тот пин-код, модуль в AT-режиме, телефон не видит Classic BTПин 1234/0000, KEY=LOW, приложение поддерживает Classic (не BLE)
Мусор в SerialНет делителя на TX Arduino → 5В на RXD модуляОбязателен делитель 2.2к/3.3к
AT-команды не работаютНе тот бодрейт (38400 в AT), нет NL+CR, не зажат KEY при включенииПроверяйте по списку
Разрывы связиПитание от USB Arduino проседает, антенна за экранированиемОтдельное питание 3.3В, модуль на краю платы