- Необхідні матеріали
- Модуль Bluetooth (HC-05)
- Порти USM STM32
- Схема та з'єднання
- Програмування STM32F103C8
- Кроки для підключення модуля Bluetooth з телефоном Android
У сучасному світі Bluetooth став дуже популярним, і майже всі пристрої, такі як мобільний телефон, ноутбук та інформаційно-розважальна система автомобілів, використовують Bluetooth для бездротового зв'язку. Bluetooth використовується не лише для передачі даних, а й для бездротового керування іншими пристроями Bluetooth, наприклад, за допомогою гарнітури Bluetooth ви можете бездротово слухати пісню з мобільного телефону або використовувати аудіосистему автомобіля для відтворення пісень із мобільного.
Bluetooth - це бездротова технологія, яка працює на частоті 2,4 ГГц. Звичайний сигнал Bluetooth знаходиться в радіусі 10 метрів. Bluetooth є найбільш часто використовуваною бездротовою технологією у вбудованих проектах за умови, що діапазон зв'язку обмежений. Bluetooth додав перевагу завдяки низькому енергоспоживанню та низькій вартості роботи. Зазвичай він використовується для взаємодії мікроконтролерів зі смарт-телефонами за допомогою програм Bluetooth.
Ми бачили взаємодію модуля Bluetooth з іншими мікроконтролерами, такими як Arduino, 8051, PIC тощо. Тепер у цьому посібнику ми будемо взаємодіяти модуль Bluetooth HC-05 зі STM32F103C8 та вмикати / вимикати світлодіод за допомогою Android для мобільних пристроїв.
Необхідні матеріали
- STM32F103C8
- Модуль Bluetooth (HC-05)
- СВІТЛОДІОДНИЙ
- Android Mobile
- Макет
- Підключення проводів
Програмне забезпечення:
- Термінал Bluetooth (додаток Android)
Модуль Bluetooth (HC-05)
Він в основному використовується модуль Bluetooth у вбудованих проектах. Це послідовний модуль Bluetooth, який використовує послідовний зв’язок із радіусом дії менше 100 м і працює на напрузі 5 В (мінімум 3,3 В). Він може використовуватися для бездротового підключення двох мікроконтролерів, а також з мобільним телефоном та ноутбуками. Оскільки існує безліч програм для Android, це дуже корисно для створення бездротових проектів, керованих Bluetooth.
Він використовує зв'язок USART і може взаємодіяти з мікроконтролерами, що мають протокол зв'язку USART.
Він має вбудовану антену. Він має конфігурації Master / Slave, які можна змінити в командному режимі AT, що корисно, коли лише один пристрій повинен надсилати дані (master to slave), як, наприклад, з ПК (MASTER) на slave (будь-який MCU). Майстер може підключатися до інших пристроїв, а ведений не підключається до іншого підключення, крім головного.
Режими роботи
Він має два режими AT Command Mode і Data Mode.
Коли Bluetooth увімкнено, він переходить у режим даних за замовчуванням. Цей режим можна використовувати для передачі даних. Щоб увійти в режим AT Command під час живлення, нам потрібно натиснути кнопку, присутню в модулі, щоб змінити налаштування за замовчуванням модуля, такі як конфігурації ведучого / веденого.
Шпильки модуля Bluetooth
- EN pin (ENABLE) - Цей штифт використовується для встановлення режиму даних або командного режиму AT. За замовчуванням він знаходиться в РЕЖИМІ ДАНИХ. При натисканні кнопки під час увімкнення живлення переходить в режим команди AT.
- Контакт 5 В - використовується для живлення модуля
- Штифт GND - використовується для заземлення модуля
- TX-штифт - цей штифт для підключення до RX-виводу MCU
- RX-штифт - цей штифт, підключений до TX-виводу MCU
- STATE - Цей штифт вказує на стан модуля, див. Нижче про вказівки
Світлодіодна індикація
- Він має світлодіодний (ЧЕРВОНИЙ) індикатор, який відображає стан модуля Bluetooth.
- Коли модуль Bluetooth НЕ ПІДКЛЮЧЕНО до будь-якого пристрою, сигнал падає, і червоний світлодіод постійно блимає, що вказує на те, що модуль НЕ ПАРУЄ.
- Коли модуль Bluetooth підключається до будь-якого пристрою, сигнал переходить на високий рівень і моргає червоний світлодіод з деякою затримкою, яка вказує на модуль спарений.
Перегляньте наші інші проекти, щоб дізнатись більше про модуль Bluetooth HC-05 з іншими мікроконтролерами:
- Іграшковий автомобіль, керований Bluetooth, за допомогою Arduino
- Система домашньої автоматизації, керована Bluetooth, за допомогою 8051
- Голосове управління підсвічуванням за допомогою Raspberry Pi
- FM-радіо, кероване смарт-телефоном за допомогою Arduino та обробки
- Автомобіль-робот, керований мобільним телефоном за допомогою G-Sensor та Arduino
- Взаємозв’язок модуля Bluetooth HC-06 з мікроконтролером PIC
Порти USM STM32
Порти послідовного зв'язку STM32F103C8 (BLUE PILL) USART показані на зображенні, що виводиться нижче. Це сині кольори, що мають (PA9-TX1, PA10- RX1, PA2-TX2, PA3- RX2, PB10-TX3, PB11- RX3). Він має три таких канали зв'язку.
Схема та з'єднання
Схемотехнічні з'єднання для взаємодії модуля Bluetooth із STM32 виконані, як показано нижче
З'єднання між STM32F103C8 та модулем Bluetooth (HC-05)
- Штекер TX (PA9) STM32F103C8 підключений до RX штифта модуля Bluetooth.
- RX-штифт (PA10) STM32F103C8 підключений до TX-штифта модуля Bluetooth.
- Висновок VCC (+ 5 В) модуля Bluetooth підключений до виводу 5 В STM32F103C8.
- Контакт GND модуля Bluetooth підключений до контакту GND STM32F103C8.
Інші зв’язки
- Штифт (PA0) STM32 (Blue Pill) підключений до позитивного виводу світлодіода через послідовний резистор. Тут використовується світлодіод змішаного кольору.
- Інший штир світлодіода підключений до GND STM32.
Програмування STM32F103C8
Взаємодія Bluetooth зі STM32 - це те саме, що і arduino, а програмування в STM32 - як Arduino IDE. Дивіться цей посібник із програмування STM32 з USB за допомогою Arduino IDE.
Як вже було сказано, у цьому проекті ми підключимо (HC-05) модуль Bluetooth до STM32F103C8 та використаємо Android-смартфон із додатком Android для терміналу Bluetooth, щоб увімкнути та вимкнути світлодіод.
Примітка: Під час завантаження коду на STM32F103C8 потрібно вилучити штифт RX & TX.
Повний код цього проекту подано в кінці цього посібника з демонстраційним відео.
Кодування цього проекту настільки просте. Можна використовувати ті самі коди Arduino, але слід міняти лише пін. Оскільки у нас є три набори штифтів USART у STM32F103C8, тому ми повинні вказати правильний штифт, який ми використовували для підключення модуля Bluetooth.
1. Спочатку нам потрібно назвати штифти з відповідними номерами контактів із типом даних int наступним чином
const int pinout = PA0;
2. Далі нам потрібна змінна для зберігання послідовних даних з мобільного телефону Android. Дані можуть бути символом або цілим числом наступним чином
char inputdata = 0;
3. Далі при встановленні void (), ми повинні розпочати послідовний зв’язок між STM32 Blue Pill і модулем Bluetooth, надавши швидкість передачі даних 9600
Serial1.begin (9600);
Тут ми використовували Serial1, оскільки підключили HC-05 до TX1 і RX1 STM32.
Ми також можемо використовувати Serial2 або Serial3, але відповідно штифт повинен бути підключений.
4. Вступне повідомлення надсилається у вигляді послідовних даних на serial1, тобто на модуль Bluetooth HC05. Цей модуль надалі надсилає дані в додаток Bluetooth Terminal на мобільному телефоні Android. Тому ми використовуємо подані нижче твердження
Serial1.print ("СХЕМ ДАЙДЖЕСТА \ n"); Serial1.print ("BLUETOOTH З STM32 \ n");
5. Далі нам потрібно встановити pinmode (PA0) як вихід, оскільки ми підключили провід до цього pin. Тому ми використовуємо
pinMode (pinout, OUTPUT);
6. Далі у циклі void () ми запускаємо наступні дані, щоб прочитати послідовні дані та відповідно увімкнути / вимкнути світлодіод
void loop () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (pinout, HIGH); Serial1.print ("Світлодіод увімкнено \ n"); } інакше if (inputdata == '0') { digitalWrite (pinout, LOW); Serial1.print ("LED OFF \ n"); } } }
Тут ми використовуємо оператор if, оскільки цей код виконується лише тоді, коли порт Serial1 має будь-які дані, отримані від модуля Bluetooth, тому цей оператор використовується Serial1.available ()> 0 . В іншому випадку, якщо він не потрапляє, він чекає, поки не почне послідовний зв'язок. Тепер він зберігає отримані дані у змінній inputdata = Serial1.read (). Потім перевіряє значення, надіслане з програми терміналу Bluetooth. Отже, якщо значення 1, він друкує світлодіод увімкнено і робить штифт (PA0) HIGH за допомогою оператора digitalWrite (pinout, HIGH), а якщо значення 0, він друкує світлодіод OFF і робить (PA0) штифт низьким.
Кроки для підключення модуля Bluetooth з телефоном Android
Крок 1: - Відкрийте Bluetooth з мобільного після завантаження коду в STM32 з Arduino IDE та подачі живлення на схему. ПАМ’ЯТАЙТЕ, щоб вилучити штифт RX та TX під час ЗАСТАВКИ коду
Крок 2: - На доступних пристроях виберіть HC-05 та введіть пароль як 1234
Крок 3: - Після створення пари відкрийте програму Bluetooth Terminal, виберіть підключення пристрою та виберіть HC-05, як показано нижче
Крок 4: - Після підключення до модуля Bluetooth HC-05 вкажіть значення в терміналі 1 або 0, щоб увімкнути та вимкнути світлодіод. Ви також отримаєте повідомлення про те, що світлодіод горить або вимикається.