- Необходими материали
- Bluetooth модул (HC-05)
- STM32 USART портове
- Електрическа схема и връзки
- Програмиране на STM32F103C8
- Стъпки за свързване на Bluetooth модул с Android телефон
В днешния свят Bluetooth стана много популярен и почти всяко устройство като мобилен телефон, лаптоп и автомобилна информационно-развлекателна система използва Bluetooth за безжична комуникация. Bluetooth не се използва само за прехвърляне на данни, но и за безжично управление на други Bluetooth устройства, като например с помощта на Bluetooth слушалки можете да чувате песента безжично от мобилния си телефон или да използвате аудиосистема за кола, за да възпроизвеждате песните от мобилния си телефон.
Bluetooth е безжична технология, която работи на честота от 2,4 GHz. Нормалният Bluetooth сигнал е в диапазона от 10 метра радиус. Bluetooth е най-често използваната безжична технология във вградени проекти, при условие че обхватът на комуникация е ограничен. Bluetooth добави предимството от ниската си консумация на енергия и ниската цена на работа. Обикновено се използва за свързване на микроконтролери със смарт телефони чрез използване на Bluetooth приложения.
Виждали сме взаимодействие на Bluetooth модул с други микроконтролери като Arduino, 8051, PIC и др. Сега в този урок ще свържем Bluetooth-модул HC-05 със STM32F103C8 и ще включим / изключим светодиод, използвайки Android мобилен телефон.
Необходими материали
- STM32F103C8
- Bluetooth модул (HC-05)
- LED
- Android Mobile
- Макет
- Свързващи проводници
Софтуер:
- Bluetooth терминал (приложение за Android)
Bluetooth модул (HC-05)
Той се използва най-вече Bluetooth модул във вградени проекти. Това е сериен Bluetooth модул, който използва серийна комуникация с обхват по-малък от 100 m и работи при 5V (3.3V минимум). Може да се използва за безжично свързване на два микроконтролера, а също и с мобилен телефон и лаптопи. Тъй като има много приложения за Android, които са налични, е много полезно за създаване на безжични Bluetooth контролирани проекти.
Той използва USART комуникация и може да бъде свързан с микроконтролери с USART комуникационен протокол.
Притежава вградена антена. Той има Master / Slave конфигурации, които могат да се променят в AT команден режим, което е полезно, когато само едно устройство трябва да изпраща данните (master to slave), като например от PC (MASTER) към slave (всеки MCU). Master може да се свърже с други устройства, а slave не се свързва с друга връзка, различна от master.
Режими на работа
Той има два режима AT Command Mode и Data Mode.
Когато Bluetooth е включен, той влиза в режим на данни по подразбиране. Този режим може да се използва за прехвърляне на данни. За да влезем в режим AT Command по време на включване, трябва да натиснем бутона, присъстващ в модула, за да променим настройките по подразбиране на модула като конфигурации master / slave.
Щипки на Bluetooth модул
- EN щифт (ENABLE) -Този щифт се използва за задаване на режим данни или AT команден режим. По подразбиране е в РЕЖИМ НА ДАННИ. Когато бутонът бъде натиснат по време на включване, той преминава в команден режим AT.
- + 5V щифт - Това се използва за захранване на модула
- GND щифт - Това се използва за земя за модул
- TX щифт - Този щифт към свързан към RX щифт на MCU
- RX щифт - Този щифт е свързан към TX щифт на MCU
- СЪСТОЯНИЕ - Този щифт показва състоянието на модула, вижте по-долу за индикациите
LED индикация
- Той има LED (ЧЕРВЕН) индикатор, който предоставя състоянието на Bluetooth модула.
- Когато Bluetooth модулът НЕ Е СВЪРЗАН към някое устройство, сигналът намалява и червеният светодиод мига непрекъснато, което показва, че модулът НЕ Сдвоен.
- Когато Bluetooth модулът е СВЪРЗАН към някое устройство, сигналът отива ВИСОКО и червеният светодиод мига с известно закъснение, което показва, че модулът е Сдвоен.
Проверете другите ни проекти, за да научите повече за Bluetooth модула HC-05 с други микроконтролери:
- Кола с играчки, контролирана от Bluetooth, използваща Arduino
- Контролирана от Bluetooth система за домашна автоматизация, използваща 8051
- Гласово контролирани светлини с помощта на Raspberry Pi
- FM радио, контролирано от смарт телефон, използващо Arduino и обработка
- Контролиран от мобилен телефон автомобил-робот, използващ G-Sensor и Arduino
- Взаимодействие на Bluetooth модул HC-06 с PIC микроконтролер
STM32 USART портове
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 (+ 5V) щифт на Bluetooth модула е свързан към 5V щифт на STM32F103C8.
- GND щифт на Bluetooth модула е свързан с GND щифт на STM32F103C8.
Други връзки
- Пинът (PA0) на STM32 (Blue Pill) е свързан към положителен щифт на LED чрез сериен резистор. Използваният тук светодиод е смесен цвят.
- Водещият друг щифт е свързан към GND на STM32.
Програмиране на STM32F103C8
Взаимодействието на Bluetooth със STM32 е същото като arduino, а програмирането в STM32 е същото като Arduino IDE. Вижте този урок за програмиране на STM32 с USB с помощта на Arduino IDE.
Както вече казахме, в този проект ще свържем (HC-05) Bluetooth модул със STM32F103C8 и ще използваме Android смартфон с Android терминал Android приложение, за да включим и изключим LED.
Забележка: RX & TX щифтът трябва да бъде премахнат, докато качвате кода в STM32F103C8.
Пълен код за този проект е даден в края на този урок с демонстрационно видео.
Кодирането за този проект е толкова просто. Могат да се използват същите кодове на Arduino, но трябва да се променя само пинът. Тъй като имаме три комплекта USART щифт в STM32F103C8, така че трябва да посочим правилния щифт, който използвахме за свързване на Bluetooth модула.
1. Първо трябва да назовем щифтовете със съответния им номер на пин с тип данни int, както следва
const int pinout = PA0;
2. След това трябва да имаме променлива за съхраняване на серийни данни от android mobile. Данните могат да бъдат знак или цяло число, както следва
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 mobile. Така че ние използваме по-долу твърдения
Serial1.print ("CIRCUIT DIGEST \ n"); Serial1.print ("BLUETOOTH С STM32 \ n");
5. След това трябва да зададем pinmode (PA0) като изход, тъй като свързвахме led към този pin.so we use
pinMode (pinout, OUTPUT);
6. След това в цикъла void () пускаме следните данни, за да прочетем серийните данни и съответно включим / изключим светодиода
цикъл void () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (pinout, HIGH); Serial1.print ("LED ON \ n"); } else if (inputdata == '0') { digitalWrite (pinout, LOW); Serial1.print ("LED OFF \ n"); } } }
Тук използваме оператор if , тъй като този код се изпълнява само когато портът Serial1 има данни, получени от Bluetooth модула, поради което този оператор се използва Serial1.available ()> 0 . В противен случай, ако не влезе, изчаква, докато започне серийна комуникация. Сега съхранява получените данни в променлива inputdata = Serial1.read (). След това проверява стойността, изпратена от приложението за терминал Bluetooth. Така че, ако стойността е 1, той отпечатва LED ON и кара щифта (PA0) да върви HIGH чрез изявление digitalWrite (pinout, HIGH) и ако стойността е 0, той отпечатва светодиода OFF и кара (PA0) щифта да става LOW.
Стъпки за свързване на Bluetooth модул с Android телефон
Стъпка 1: - Отворете Bluetooth от мобилно устройство след качване на код в STM32 от Arduino IDE и подаване на енергия към веригата. ПОМНЕТЕ, за да премахнете RX и TX щифт, докато КАЧЕТЕ КОД
Стъпка 2: - В наличните устройства изберете HC-05 и въведете парола като 1234
Стъпка 3: - След сдвояване отворете приложението Bluetooth Terminal и изберете свързване на устройство и изберете HC-05, както е показано по-долу
Стъпка 4: - След свързване с HC-05 Bluetooth модул, предоставете стойности в терминал 1 или 0, за да включите и изключите светодиода. Също така ще получите съобщение, че светодиодът е включен или изключен.