В мире DIY микроэлектроники Bluetooth модуль HC-05 – это один из важнейших компонентов, который позволяет устанавливать беспроводное соединение между двумя Arduino-платформами. В этой статье мы рассмотрим, как подключить Bluetooth модуль HC-05 к двум Arduino – одна будет передатчиком, а другая – приемником. Мы предоставим необходимые схемы подключения и примеры кода для обеих платформ.
Bluetooth модуль HC-05 – это недорогой и надежный беспроводной модуль, разработанный для установки связи между устройствами по стандарту Bluetooth. Он имеет следующие характеристики:
- Работает на частоте 2,4 ГГц.
- Поддерживает Bluetooth 2.0 и 2.1 + EDR (Enhanced Data Rate) стандарты.
- Имеет интерфейсы UART для простой интеграции с микроконтроллерами, такими как Arduino.
- Предоставляет мастер и ведомый режимы работы.
- Может работать в режиме парного соединения или в режиме нескольких соединений.
- Поддерживает шифрование данных для обеспечения безопасности.
- Имеет низкое энергопотребление.
Преимущества HC-05 включают его доступность, легкость в использовании и поддержку различных режимов работы, что делает его идеальным для проектов DIY, где требуется беспроводная связь.
Arduino Uno – это одна из самых популярных платформ для разработки DIY проектов. Ее основные характеристики включают:
- Микроконтроллер ATmega328P с 14 цифровыми входами/выходами и 6 аналоговыми входами.
- Частота процессора 16 МГц.
- Интерфейс USB для программирования и обмена данными.
- Легкое программирование с использованием Arduino IDE.
- Широкий спектр библиотек и расширений для различных проектов.
- Открытая аппаратная и программная части, что позволяет создавать собственные дополнения.
Arduino Uno идеально подходит для интеграции с Bluetooth модулем HC-05, так как оба устройства совместимы и позволяют создавать разнообразные проекты, использующие беспроводную связь.
Схема подключения
Сначала давайте рассмотрим таблицу распиновки Bluetooth модуля HC-05:
Пин Bluetooth модуля HC-05 | Назначение |
---|---|
VCC | Подача питания |
GND | Земля |
TXD | Передача данных |
RXD | Прием данных |
STATE | Статус модуля |
KEY | Режим программирования |
Обратите внимание, что уровень логической единицы на модуле HC-05 равен 3.3 В, поэтому для подключения пина RXD к Arduino, необходимо использовать делитель напряжения. Для этого вам понадобятся резисторы на 10 кОм и 20 кОм.
Теперь подключим модуль к Arduino Uno:
- Подключите VCC Bluetooth модуля к 5V на Arduino.
- Подключите GND Bluetooth модуля к GND на Arduino.
- Подключите TXD Bluetooth модуля к пину 10 (SoftwareSerial RX) на Arduino.
- Подключите RXD Bluetooth модуля к пину 11 (SoftwareSerial TX) на Arduino (через делитель напряжения).
- Подключите STATE Bluetooth модуля к пину 9.
- Пин KEY подключите к 3V3 для перевода модуля в режим AT-команд.
Настройка модуля HC-05
Для настройки Bluetooth модуля HC-05 на работу в режиме передатчика и приемника, мы будем использовать AT-команды. Вот как это делается:
-
- Подключите модуль к Arduino.
- Загрузите следующий скетч на Arduino:
12345678910111213141516171819202122#include <SoftwareSerial.h>SoftwareSerial bluetooth(10, 11); // RX, TXvoid setup() {Serial.begin(9600); // Инициализируем последовательное соединение для монитора порта.bluetooth.begin(38400); // Инициализируем программное последовательное соединение для Bluetooth модуля на скорости 38400.}void loop() {// Ожидаем, пока данные появятся на мониторе порта.if (Serial.available()) {char data = Serial.read(); // Читаем символ из монитора порта.bluetooth.print(data); // Отправляем символ на Bluetooth модуль.}// Ожидаем и выводим ответ от Bluetooth модуля.if (bluetooth.available()) {char data = bluetooth.read(); // Читаем символ из Bluetooth модуля.Serial.print(data); // Выводим символ в монитор порта.}} - Откройте монитор порта. Теперь вы можете отправлять AT-команды, которые будут передаваться на Bluetooth модуль, и ответы от модуля будут отображаться в мониторе порта. Попробуйте отправить на модуль команду
AT
, если все подключено правильно, модуль должен ответитьOK
.
Настройка ведомого устройства:
AT+RMAAD
(Для удаления всех сопряженных устройств).AT+ROLE=0
(Для установки в режим ведомого устройства).AT+ADDR
(Для получения адреса HC-05. Не забудьте записать адрес, так как он будет использован при настройке мастера).AT+UART=38400,0,0
(Для установки скорости передачи данных на 38400 бит/с).
Настройка ведущего устройства:
AT+RMAAD
(Удаление всех сопряженных устройств)AT+ROLE=1
(Установка в режим мастера)AT+CMODE=0
(Установка режима соединения с указанным Bluetooth-адресом)AT+BIND=xxxx,xx,xxxxxx
(xxxx,xx,xxxxxx
– адрес ведомого устройства, с которым вы хотите связать модуль)AT+UART=38400,0,0
(Установка скорости передачи данных на 38400 бит/с)
После успешной настройки модулей, необходимо отключить контакт KEY на обоих модулях и перезагрузить их. Это выведет модули из режима AT комманд.
Пример кода для Arduino
- Скетч для платы, которая будет выступать в роли передатчика:
12345678910111213141516#include <SoftwareSerial.h>SoftwareSerial bluetooth(10, 11); // RX, TXvoid setup() {Serial.begin(9600); // Инициализируем последовательное соединение для монитора порта.bluetooth.begin(38400); // Инициализируем программное последовательное соединение для Bluetooth модуля на скорости 38400.}void loop() {// Ожидаем, пока данные появятся на мониторе порта.if (Serial.available()) {char data = Serial.read(); // Читаем символ из монитора порта.bluetooth.print(data); // Отправляем символ на Bluetooth модуль.}} - Скетч для платы, которая будет выступать в роли приёмника:
12345678910111213141516#include <SoftwareSerial.h>SoftwareSerial bluetooth(10, 11); // RX, TXvoid setup() {Serial.begin(9600); // Инициализируем последовательное соединение для монитора порта.bluetooth.begin(38400); // Инициализируем программное последовательное соединение для Bluetooth модуля на скорости 38400.}void loop() {// Ожидаем и выводим ответ от Bluetooth модуля.if (bluetooth.available()) {char data = bluetooth.read(); // Читаем символ из Bluetooth модуля.Serial.print(data); // Выводим символ в монитор порта.}}
Bluetooth модуль HC-05 позволяет легко устанавливать беспроводное соединение между Arduino-платформами. Теперь у вас есть все необходимые инструменты для создания беспроводных DIY проектов с использованием Arduino и Bluetooth модуля HC-05.