Интернет журныл о промышленности в Украине

Arduino і Bluetooth

  1. Передача даних з Arduino по Bluetooth
  2. Двохнаправлений обмін даними по Bluetooth
  3. Підключаємо до Android

В даний час в зарубіжних і вітчизняних магазинах можна знайти велику кількість різних Bluetooth Serial модулів для DIY-пристроїв. Ціна на них не сильно висока: 5-10 $ за модуль (з урахуванням безкоштовної доставки в будь-яку країну). Їх легко можна знайти на широко відомої майданчику AliExpress ввівши в пошуковий рядок одне із словосполучень: Bluetooth RS232, Bluetooth Serial, HC-03, HC-04, HC-05, HC-06 або натиснути на це посилання .

це посилання

У більшості модулів використовується чіп BC417, плюс Flash-пам'ять. Чіп підтримує специфікацію Bluetooth v2.0 + EDR, AT-команди, може працювати в режимі Master або Slave (модулі HC-03 / HC-5, може встановлюватися AT-командою), підтримує швидкість обміну від 2400 до 1382400.
Напруга харчування модуля становить +3.3, струм споживання ~ 50мА.
Модулі HC-03 / HC-05 більш функціональні, ніж HC-04 / HC-06.

Модулі HC-03 / HC-05 більш функціональні, ніж HC-04 / HC-06

Основні висновки модулів HC-04 / HC-06:
UART_TX (pin 1), UART_RX (pin 2), UART_CTS (pin 3), UART_RTS (pin 4) - Піни UART.
3,3V (pin 12) - харчування 3.3В.
GND (pin 13) - загальний.
PIO1 (pin 24) - індикатор робочого режиму. Якщо з'єднання не встановлено - то світлодіод блимає, якщо встановлено, то постійно горить.

Для модулів HC-03 / HC-05 є деякі відмінності. Лінії UART і харчування ті ж самі, але:
PIO8 (pin 31) - індикатор робочого режиму.
PIO9 (pin 32) - статус з'єднання, якщо з'єднання встановлено, то на виході буде високий рівень.
PIO11 (pin 34) - вхід включення режиму AT-команд (необхідно подати лог. 1).

За більш докладною документацією звертайтеся до PDF .

За більш докладною документацією звертайтеся до   PDF

Отже, зберемо просту схему для підключення Bluetooth модуля HC-06 до плати Arduino Nano V3.

Отже, зберемо просту схему для підключення Bluetooth модуля HC-06 до плати Arduino Nano V3

Зверніть увагу, що висновки TX і RX в платі Arduino Nano поміняні місцями на відміну від Ardunio UNO та ін. Тому уважно дивіться терморегулятори своєї Arduino плати.

Крок між висновками в модулі становить всього 1.5 мм, тому доведеться взятися за паяльник і припаяти дроти до модуля. Всього необхідно припаяти 5 проводів, проте світлодіод підключати необов'язково, він служить для індикації стану.

Отже припаюємо дроти і підключаємо Bluetooth модуль наступним чином:
висновок Arduino 3.3В - до 12 піну модуля
висновок Arduino GND - до 13 піну модуля
висновок Arduino TX - до 2 піну модуля RX
висновок Arduino RX - до 1 піну модуля TX

Передача даних з Arduino по Bluetooth

Далі напишемо простенький скетч для відправки повідомлень з Bluetooth модуля в комп'ютер.

int cnt = 0; // лічильник void setup () {Serial.begin (9600); // ініціалізація порту} void loop () {cnt ++; Serial.print ( "Hello BB from Arduino! Counter:"); // виводимо напис Serial.println (cnt); // виводимо значення лічильника і переводимо на новий рядок delay (1000); // чекаємо 1 секунду}

Як бачите скетч досить простий і добре прокоментований. У циклі, раз в секунду відбувається збільшення змінної cnt, яка потім з текстовим написом виводиться в послідовний порт на Bluetooth модуль. Зверніть увагу, що швидкість порту встановлена ​​в значення 9600. При покупці модуля, питайте на яке значення встановлена ​​швидкість обміну по послідовному інтерфейсу. Але в більшості випадків це 9600. При необхідності, швидкість обміну можна змінити АТ-командами.

Відкрийте даний скетч в Arduino IDE, скомпілюйте і прошийте ваш Arduino. Якщо ви підключали світлодіод в Bluetooth модулю, то він повинен блимати, показуючи тим самим, що модуль очікує з'єднання.

Увага! Якщо при прошивці плати Arduino лається прошивальщик, то вимкніть живлення 3.3В з Bluetooth модуля.

На комп'ютері, як Bluetooth модуля використовувався найдешевший китайський Bluetooth USB адаптер, вартістю близько 200 руб. Після того, як адаптер підключається до комп'ютера, встановіть необхідні драйвера (в Windows 7 x64 у мене все драйвера поставити автоматом).
Потім клацаємо в треї по іконці Bluetooth модуля і вибираємо "Додати пристрій":

Ім'я мого модуля BOLUTEK, у вас воно швидше за все буде іншим. Натискаємо "Далі" і переходимо до вікна, де необхідно ввести пароль для пристрою:

Вибираємо другий пункт: "Введіть код освіти пари пристрою". Із заводу, код встановлений 1234. Його і вводимо. Програма налаштує і пропише в системі віртуальні COM-порти (у мене прописав 2 шт, але може бути і один):

Надалі, можна подивитися на який COM-порт призначити і його параметри. Для цього клацаємо правою кнопкою миші по влаштуванню і вибираємо "Властивості" і вкладку "Обладнання". Там можна подивитися і змінити параметри віртуального COM-порту:

Тепер, для прийому і передачі даних на віртуальний COM порт можна використовувати будь-яку термінал програму. Я використовував безкоштовну Tera Term. При кожному запуску програми пропонується вибір з'єднання, перемикаємо прапорець на Serial і вибираємо COM порт вашого Bluetooth модуля. У мене це COM4.

У терміналі ми бачимо дані лічильника з плати Arduino:

Як бачимо, дані успішно передаються по Bluetooth з'єднанню. Нижче в статті ви можете подивитися відео.

Двохнаправлений обмін даними по Bluetooth

Наступним кроком буде написання простенької програми двонаправленого обміну даними між Arduino і комп'ютером. У схему я додав світлодіод, підключивши його до 12 піну Arduino, через струмообмежувальні резистор. Але можна використовувати і вбудований LED (зазвичай 13 пін).

char incomingByte; // вхідні дані int LED = 12; // LED підключений до 12 піну void setup () {Serial.begin (9600); // ініціалізація порту pinMode (LED, OUTPUT); Serial.println ( "Press 1 to LED ON or 0 to LED OFF ..."); } Void loop () {if (Serial.available ()> 0) {// якщо прийшли дані incomingByte = Serial.read (); // зчитуємо байт if (incomingByte == '0') {digitalWrite (LED, LOW); // якщо 1, то вимикаємо LED Serial.println ( "LED OFF. Press 1 to LED ON!"); // і виводимо назад повідомлення} if (incomingByte == '1') {digitalWrite (LED, HIGH); // якщо 0, то включаємо LED Serial.println ( "LED ON. Press 0 to LED OFF!"); }}}

Програма працює дуже просто. Після запуску або скидання пристрою, в послідовний порт виводиться повідомлення з пропозицією натиснути 1 або 0. Залежно від натиснутої цифри світлодіод буде загорятися або гаснути. А також, від Arduino буде виводитися повідомлення загорівся світлодіод, або погас.

Відео роботи:

Підключаємо до Android

Для платформи Android також існують програми-термінали. Але слід мати спеціальну програму для роботи в термінальному режимі по Bluetooth. Я встановив ось цю: Bluetooth Terminal . Досить проста програма, нічого зайвого.

У моєму Android пристрої немає Bluetooth модуля, але він прекрасно працює і з зовнішнім USB-адаптером, який ми використовували для під'єднання до ПК. Підключаємо адаптер по USB, включаємо на андроїд bluetooth, знаходимо і вводимо пароль для нашого Bluetooth пристрою на Arduino і нарешті запускаємо програму термінал. Натискаємо "Connect a device - Secure" і вибираємо наш пристрій BOLUTEK. Тепер ви можете відправляти і приймати дані з Bluetooth пристрою за допомогою терміналу.

Відео з'єднання з Android пристроєм:

Прикріплені файли:

Теги: