At-команди bluetooth hc-05 - wiki iarduino

Bluetooth модуль HC-05 підключається по шині UART і здатний виконувати AT-команди. AT-команда це рядок починається з букв «AT» (від англійського at tention - «увага»). Модуль виконує надійшла команду і відправляє назад відповідь (результат виконання команди), який також є рядком. У Bluetooth модулях HC-05 кожна команда (як і відповідь) повинна закінчуватися символами переведення рядка «\ r \ n».

підключення:

Перед відправкою команд в Bluetooth модуль, його потрібно підключити до комп'ютера. Але у комп'ютера немає висновків TX і RX шини UART тому для підключення потрібно адаптер USB-UART. або адаптер RS232-UART. або програматор з висновками TX RX, або Arduino з USB портом (у деяких Arduino немає USB порту).

Якщо Ви скористаєтеся Arduino. то в неї попередньо потрібно завантажити скетч, який описаний в кінці статті. Якщо Ви скористаєтеся адаптером або програматором. то Вам буде потрібно встановити програму термінал. Одним з таких терміналів є вільно розповсюджується програма Termite з підтримкою української мови.

Налаштування:

Модуль Bluetooth зможе приймати команди тільки якщо правильно налаштовані наступні параметри послідовного порту:

  • Номерпорта: Його можна дізнатися експериментально, вимкніть адаптер або Arduino, подивіться які порти доступні. Підключіть адаптер або Arduino і знову подивіться які порти доступні. З'явився порт і є той самий.
  • Швидкість передачі даних: У звичайному режимі, Bluetooth модуль зберігає останню встановлену швидкість передачі даних, але за замовчуванням вона дорівнює 38400 біт / сек (рідко 9600 біт / сек). Якщо обидві швидкості не підійдуть, то дивіться примітка в кінці статті.
  • Параметри передачі даних: Модуль зберігає останні встановлені параметри передачі даних. Повернуться до стандартних значень: кількість біт в пакеті - 8, розмір стопового біта = 1, без перевірки парності.
  • Рухаючись текст: Потрібно встановити пункт «додавати символи CR LF (NL) »це символи перекладу рядка« \ r \ n »які Ви не зможете ставити самостійно в кінці AT-команд.

Для настройки цих параметрів в програмі Termite. натисніть на кнопку «Налаштування» (Settings). У тому ж вікні можна встановити українську мову.

При використанні Arduino. номер порту вказується у вкладці «Інструменти». Параметри передачі даних використовуються за замовчуванням. Для додавання символів NL CR скористайтеся меню в правому нижньому кутку монітора послідовного порту. Швидкість передачі даних модуля вказується в рядку: softSerial.begin (швидкість); скетчу.

Після кожного підключення харчування або перезавантаження модуля, до того як відправляти команди, потрібно короткочасно натиснути на кнопку модуля. Якщо у модуля немає кнопки, то короткочасно подати високий рівень на висновок K. Після чого модуль залишиться в звичайному режимі, але буде сприймати AT-команди. Крім звичайного режиму, модуль може працювати в режимі AT-команд. Про те як увійти в цей режим і чим він відрізняється від звичайного, розказано нижче, в розділі примітка.

Для перевірки зв'язку з Bluetooth модулем відправте тестову команду AT (введіть текст AT і натисніть Enter). Якщо зв'язок встановлено коректно, то модуль відповість OK. Після цього можна відправляти інші AT-команди.

AT-команди:

Якщо в програмі термінал вказано додавати символи CR LF або NL CR то символи «\ r \ n» в командах ставити не потрібно!
Команди можуть бути звичайними: AT + КОМАНДА \ r \ n. запитами: AT + КОМАНДА? \ R \ n. або установками: AT + КОМАНДА = ПАРАМЕТР (И) \ r \ n.

Видалення всіх пристроїв зі списку пар:
Очищення списку вище призведе до необхідності заново утворювати пари з Bluetooth пристроями для підключення до них.

Запит кількості пристроїв в списку пар:
При утворенні пари ведучий-ведений, дані про пару автоматично потрапляють в список пар і для наступних підключень (навіть після відключення живлення) не потрібно повторно встановлювати пару.
Приклад відповіді: + ADCN: 10 \ r \ n OK \ r \ n

Запит статусу модуля:
Модуль поверне свій поточний стан у вигляді рядка:
INITIALIZED - ініціалізація
READY - готовий
PAIRABLE - освіту пари
PAIRED - пара утворена
INQUIRING - запит
CONNECTING - підключення
CONNECTED - підключений
DISCONNECTED - від'єднаний
NUKNOW - невідоме стан
Приклад відповіді: + STATE: CONNECTED \ r \ n OK \ r \ n

Неприпустимий режим шифрування

Примітка:

Якщо натиснути на кнопку або подати високий рівень на вхід K безпосередньо в момент включення модуля (подачі живлення), то модуль перейде в режим AT-команд. В цьому режимі модуль не з'єднається з іншими модулями, але у цього режиму фіксована швидкість = 38400 біт / сек. Якщо під час налаштування, в звичайному режимі роботи модуля, Ви не змогли визначити швидкість модуля, то можна увійти в цей режим і встановити нову швидкість. Знову встановлена ​​швидкість вступить в силу тільки в звичайному режимі, для цього буде потрібно перезавантажити модулів не утримуючи кнопку і не подаючи високий рівень на вхід K в момент включення. Пам'ятайте, що в звичайному режимі, не раніше ніж через пів секунди після подачі живлення (або перезавантаження) потрібно короткочасно натиснути на кнопку або подати короткочасний високий рівень на вхід K модуля, інакше він не буде сприймати AT-команди.

Якщо Ви хочете мати можливість «натискати» на кнопку програмно, але у Вашого модуля немає висновку K, скористайтеся командою AT + PIO = 11, РІВЕНЬ \ r \ n. де рівень представляється цифрою 1 або 0 відповідний встановлюється логічному рівню. (AT + PIO = 11,0 \ r \ n - кнопка відпущена. AT + PIO = 11,1 \ r \ n - кнопку натиснуто).

У деяких модулів є висновок En який управляє харчуванням і підтягнутий до Vcc. Якщо на висновок En подати низький логічний рівень, то відключиться харчування чіпів. Даний висновок можна використовувати для програмного входу в режим AT-команд. Якщо відразу після зняття низького рівня з виведення En подати команду AT + PIO = 11,1 \ r \ n це буде еквівалентно включенню модуля з натиснутою кнопкою.

Створення веденого очікує підключення провідного:

Не раніше ніж через пів секунди після перезавантаження (командою AT + RESET \ r \ n) потрібно короткочасно натиснути на кнопку або подати короткочасний високий рівень на вхід K модуля, інакше він не буде сприймати нові AT-команди.

Створення провідного з підключенням до веденого:

Не раніше ніж через пів секунди після перезавантаження (командою AT + RESET \ r \ n) потрібно короткочасно натиснути на кнопку або подати короткочасний високий рівень на вхід K модуля, інакше він не буде сприймати нові AT-команди.

Скетч для відправки AT-команд через Arduino:

AT-команди вводяться через монітор послідовного порту Arduino IDE (не забудьте встановити пункт - додавати символи NL CR в нижньому правому куті монітора послідовного порту).

Обговорення