- Необхідні матеріали
- Кругова діаграма
- Початкова конфігурація модулів HC05
- Тестування зв'язку від Arduino до Arduino
Модулі Bluetooth HC-05 - це модулі Bluetooth для будь-якого проекту Arduino! Легко підключити та кодувати в IDE Arduino. У більшості проектів ми зазвичай підключаємось до HC05 до Arduino і використовуємо його для бездротового зв'язку з іншим розумним пристроєм, таким як мобільний телефон. Це досить просто, і ми створили з ним багато цікавих проектів, таких як Робот, керований Bluetooth, Голосове управління Bluetooth, Автоматизація дому Bluetooth і т. Д. Однак чи потрібно було вам коли-небудь з'єднувати два HC-05? Не так просто підключити HC05 до смартфона, є кілька додаткових кроків. Цей підручник проведе вас через цей процес. Давайте стрибаємо прямо!
Необхідні матеріали
- 2x Arduino (підійде будь-яка модель; я використовую Arduino Uno R3 та Arduino Nano)
- 2x модулі Bluetooth HC05
- Макет
- Провід перемички
- 2x 1кОм резистор
- 2x резистор 2,2 кОм
Кругова діаграма
Це основна електрична схема. Підключіть 2 з цих ланцюгів, один для ведучого, а другий для веденого. Що стосується з'єднань, все, що ми тут робимо, - це підключення HC05 до Arduino. Приймач (Rx) контакт HC05 працює в діапазоні від 0 до 3,3 В, а Arduino - від 0 до 5 В. Отже, ми будемо використовувати резистори (R1 і R2) для створення дільника напруги для зменшення вихідної напруги 5V Arduino до 3,3В, щоб не пошкодити модуль HC05.
Я використовую 1kΩ для R1 і 2.2KΩ для R2, але ви можете використовувати будь-яке значення резистора, якщо R2 приблизно вдвічі більше значення R1 (R2 ≈ 2R1). Аналогічним чином, повторити схему як для ведучого і веденого, то Ардуіно Майстер Bluetooth - ланцюг і Ардуіно ведений Bluetooth - ланцюги показані нижче.
Початкова конфігурація модулів HC05
Це додатковий крок, необхідний для з'єднання двох модулів HC05 разом. Нам потрібно змінити деякі налаштування всередині модуля Bluetooth HC05, для цього нам потрібно перейти в режим команди AT модуля HC05 і надсилати йому команди через послідовний монітор Arduino IDE. Для цього нам потрібно написати код Arduino для надсилання команд через послідовний монітор на HC05.
Код для конфігурації модуля HC05 можна знайти в нижній частині цієї сторінки, пояснення коди виглядає наступним чином
Додайте до цього коду бібліотеку SoftwareSerial.
#include < SoftwareSerial.h>
Визначте номери передавачів (Tx) та Прийом (Rx). Я використовую штифт 2 для Tx та штифт 3 для Rx.
#define tx 2 #define rx 3
Дайте з'єднанню Bluetooth якесь ім'я (тут я використовую configBt), а потім скажіть бібліотеці SoftwareSerial, який штифт - Tx, а який - Rx. Синтаксис - bluetoothName (Rx, Tx);
SoftwareSerial configBt (rx, tx); // RX, TX
Для налаштування модуля Bluetooth Arduino повинен надсилати йому команди зі швидкістю передачі в 38400 бод. Подібним чином ми встановили швидкість передачі даних для з'єднання Bluetooth, а також 38400 бодів. Встановіть Transmit (Tx) на вихідний штифт, а Receive (Rx) - на вхідний штифт
void setup () { Serial.begin (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Усередині циклу forever ми маємо основну частину коду. Ідея тут полягає в тому, щоб надіслати все, що введено в текстовому полі на послідовному моніторі, до HC05 через штифт Tx Arduino. Потім виведіть на послідовний монітор все, що виводить HC05.
void loop () {if (configBt.available ()) // якщо HC05 щось надсилає… { Serial.print (configBt.readString ()); // друк у послідовному моніторі} if (Serial.available ()) // якщо послідовний монітор щось видає… {configBt.write (Serial.read ()); // запис на Tx pin Arduino}}
Спершу завантажте цей код в Arduino, підключений до головного модуля HC05. Завантаживши код, підключіть кабель живлення Arduino. Натисніть і утримуйте кнопку на HC05. Тепер підключіть кабель живлення Arduino, утримуючи кнопку на HC05. Добре, тепер ви можете відпустити кнопку на HC05. Ось як ви переходите в режим AT HC05. Щоб перевірити, чи правильно ви це зробили, переконайтесь, що червоний індикатор HC05 блимає приблизно кожну секунду (повільний блимає!). Зазвичай перед підключенням HC05 до будь-якого пристрою Bluetooth червоне світло блимає на дуже високій частоті (швидко блимає!).
Далі відкрийте послідовний монітор (кнопка послідовного монітора знаходиться у верхньому правому куті IDE Arduino). Якщо ви ще цього не зробили, у правому нижньому куті вікна послідовного монітора переконайтеся, що встановили для параметра закінчення рядка значення “І NL, і CL”, а швидкість передачі - 38400. Тепер введіть AT на послідовному моніторі, якщо все піде добре, ви отримаєте "ОК" від HC05, що відображається у вікні послідовного монітора. Вітаємо! Ви успішно ввійшли в режим команди AT модуля HC05.
Тепер введіть наступні команди в таблиці нижче, щоб налаштувати головний модуль HC05:
КОМАНДА (введіть це в послідовний монітор і натисніть клавішу Enter) |
ВІДПОВІДЬ (відповідь HC05, відображається на послідовному моніторі) |
Функція (Що робить ця команда?) |
AT |
гаразд |
Тест |
AT + CMODE? |
гаразд |
Перевірте CMODE або режим підключення ----------------------------- CMODE: 0 - підлеглий 1 - господар |
AT + CMODE = 1 |
гаразд |
Встановіть CMODE на 1, коли ми налаштовуємо головний HC05 |
AT + ADDR? |
+ ADDR: FCA8: 9A: 58D5 гаразд * Це адреса мого майстра HC05. Ваша адреса буде іншою! |
Повертає адресу HC05, занотуйте це, оскільки вона нам знадобиться пізніше! |
Потім підключіть свій комп'ютер до іншого підлеглого HC05 :
КОМАНДА (введіть це в послідовний монітор і натисніть клавішу Enter) |
ВІДПОВІДЬ (відповідь HC05, відображається на послідовному моніторі) |
Функція (Що робить ця команда?) |
AT |
гаразд |
Тест |
AT + CMODE? |
гаразд |
Перевірте CMODE або режим підключення ----------------------------- CMODE: 0 - підлеглий 1 - господар |
AT + CMODE = 0 |
гаразд |
Встановіть CMODE на 0, коли ми налаштовуємо підлеглий HC05 |
AT + BIND = FCA8,9A, 58D5 * Замініть “:” у головній адресі HC05 на “,” * Тут я використовую адресу головного HC05, який я зазначив із попередньої таблиці. Ви повинні використовувати адресу свого майстра HC05! |
гаразд |
Встановлення адреси головного HC05, до якого цей підлеглий HC05 автоматично підключатиметься під час завантаження |
AT + BIND? |
+ ЗВ'ЯЗОК: FCA8: 9А: 58D5 гаразд * Це адреса мого майстра HC05. Ваша адреса буде іншою! |
Перевірте адресу прив'язки вашого раба. Якщо він відповідає адресі вашого майстра HC05, ви готові! |
Тестування зв'язку від Arduino до Arduino
По-перше, живлення як головного, так і підлеглого модулів HC05. Після включення живлення та проходження декількох секунд подивіться на червоне світло на модулях HC05.
Блимає швидкість червоного світла |
Що це значить |
Блимає на дуже високій частоті (швидко блимає!) |
Не добре! Це означає, що ваші модулі HC05 не з'єднуються між собою! Час для усунення несправностей! |
Блимає на низькій частоті (повільний блимає!) |
Приємно! Ви зробили це! Але ми все-таки повинні зробити ще одну перевірку, щоб бути впевненими, що це налаштування працює! Рухайся! |
Після того, як ваші червоні індикатори блимають на низькій частоті (повільне блимання!), Ви можете бути впевнені, що обидва ваші HC05 з'єднані між собою, але ми не перевірили, чи можна передавати дані туди-сюди між ведучим і веденим. Зрештою, це головна мета тут.
Завантажте наведений нижче код в один із Arduinos, це код для тестування передавача (Tx), знову ж повний код передавача і приймача можна знайти внизу цієї сторінки.
Слідуючи попередньому коду, ми додаємо до цього коду бібліотеку SoftwareSerial і визначаємо номери контактів передачі (Tx) та Отримання (Rx). Потім ми називаємо з’єднання Bluetooth і передаємо в бібліотеку номери Tx та Rx.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
У функції налаштування ми знову встановлюємо швидкість передачі даних для послідовного монітора Arduino та Bluetooth. Ви бачите тут різницю порівняно з попереднім кодом? Ми використовуємо швидкість передачі даних 9600 бод. Це по замовчуванням заздалегідь встановлений швидкість передачі даних в бодах модуля Bluetooth HC05 при обміні даними з іншими пристроями Bluetooth. Отже, зауважте, що 38400 бод призначені для налаштування HC05 за допомогою команд AT, а 9600 бод - це швидкість передачі даних за замовчуванням для модуля HC05. Нарешті, як і раніше, ми налаштовуємо Tx-штифт як вихідний та Rx-штифт як вхідний.
void setup () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Всередині циклу назавжди все, що ми робимо, це передача випадкового значення "123" через HC05.
цикл void () {bt.write (123); }
Завантажте цей код в інший Arduino, це код для отримання тесту (Rx):
Точно так само, як і попередні коди, ми налаштовуємо бібліотеку SoftwareSerial.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Код у функції налаштування точно такий же, як і код для перевірки передачі (Tx).
void setup () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
У циклі назавжди нам просто потрібно отримати те, що ми надсилаємо від передаючого Arduino. Якщо буфер прийому отримав деякі дані від HC05, відобразіть усе, що було отримано, на послідовному моніторі.
void loop () {if (bt.available ()> 0) { Serial.println (bt.read ()); }}
Після того, як ви завантажили відповідні коди на кожен Arduino, відкрийте послідовний монітор для приймаючого Arduino. Переконайтеся, що ви вибрали швидкість передачі даних 9600 і рядок, що закінчується як Newline на послідовному моніторі. Якщо все працює нормально, ви повинні побачити 123.
Примітка. Якщо ви підключили передавальний та приймаючий Arduinos до одного і того ж ноутбука, переконайтеся, що вибрали правильний COM-порт у розділі TOOLS> PORT. Ви повинні бути підключені до COM-порту приймаючого Arduino.
UЯкщо все піде добре, поміняйте місцями модулі HC05, щоб переконатися, що спілкування може відбуватися в обох напрямках, і МИ ЗРОБОТИ!