- Reikalingos medžiagos
- „Bluetooth“ modulis (HC-05)
- STM32 „USART“ prievadai
- Grandinės schema ir jungtys
- Programavimas STM32F103C8
- „Bluetooth“ modulio prijungimo prie „Android“ telefono veiksmai
Šiuolaikiniame pasaulyje „Bluetooth“ tapo labai populiarus ir beveik kiekvienas įrenginys, pvz., Mobilusis telefonas, nešiojamas kompiuteris ir automobilių informacijos ir pramogų sistema, naudoja „Bluetooth“ belaidžiui ryšiui. „Bluetooth“ yra naudojamas ne tik duomenims perduoti, bet ir valdyti kitus „Bluetooth“ įrenginius belaidžiu būdu, pvz., Naudodamiesi „Bluetooth“ laisvų rankų įranga, galite dainą girdėti belaidžiu ryšiu iš savo mobiliojo telefono arba galite naudoti automobilio garso sistemą dainoms groti iš savo mobiliojo telefono.
„Bluetooth“ yra belaidė technologija, veikianti 2,4 GHz dažniu. Įprastas „Bluetooth“ signalas yra 10 metrų spinduliu. „Bluetooth“ yra dažniausiai naudojama belaidė technologija įterptiniuose projektuose, su sąlyga, kad ryšio diapazonas yra ribotas. „Bluetooth“ pridėjo mažo energijos suvartojimo ir mažų sąnaudų veikimo pranašumą. Paprastai jis naudojamas sąveikaujant mikrovaldikliams su išmaniaisiais telefonais naudojant „Bluetooth“ programas.
Mes matėme sąsaja Bluetooth modulis su kitais mikrokontrolerių kaip Arduino, 8051, PIC ir tt Dabar šiame samouczku mes sąsaja su HC-05 "Bluetooth" modulį su STM32F103C8 ir įjungti / išjungti LED naudojant Android mobiliųjų.
Reikalingos medžiagos
- STM32F103C8
- „Bluetooth“ modulis (HC-05)
- LED
- „Android Mobile“
- Bandomoji Lenta
- Jungiamieji laidai
Programinė įranga:
- „Bluetooth“ terminalas („Android“ programa)
„Bluetooth“ modulis (HC-05)
Tai dažniausiai naudojamas „Bluetooth“ modulis įterptiniuose projektuose. Tai yra nuoseklusis „Bluetooth“ modulis, kuris naudoja serijinį ryšį, kurio nuotolis yra mažesnis nei 100 m, ir veikia 5 V įtampa (mažiausiai 3,3 V). Jį galima naudoti norint prijungti du mikrovaldiklius belaidžiu būdu, taip pat su mobiliuoju telefonu ir nešiojamaisiais kompiuteriais. Kadangi yra daug „Android“ programų, tai yra labai naudinga kuriant belaidžius „Bluetooth“ valdomus projektus.
Jis naudoja „USART“ ryšį ir gali būti suderinamas su mikrovaldikliais, turinčiais „USART“ ryšio protokolą.
Jame yra integruota antena. Jame yra pagrindinio / vergo konfigūracijos, kurias galima pakeisti AT komandų režimu, o tai yra naudinga, kai tik vienas įrenginys turėtų siųsti duomenis (pagrindinį - vergui), pvz., Iš kompiuterio (MASTER) vergui (bet kuriam MCU). Šeimininkas gali prisijungti prie kitų įrenginių, o vergas neprisijungia prie kito ryšio, išskyrus pagrindinį.
Veikimo režimai
Jis turi du režimus AT komandinis režimas ir duomenų režimas.
Įjungus „Bluetooth“, jis įjungia numatytąjį duomenų režimą. Šis režimas gali būti naudojamas duomenų perdavimui. Norėdami įeiti į AT komandos režimą įjungimo metu, turime paspausti modulyje esantį mygtuką, kad pakeistumėte numatytuosius modulio nustatymus, pvz., Pagrindinio / vergo konfigūracijas.
„Bluetooth“ modulio kaiščiai
- EN kaištis (ĮJUNGTI) - šis kaištis naudojamas duomenų režimui arba AT komandos režimui nustatyti. Pagal numatytuosius nustatymus jis yra DUOMENŲ REŽIME. Įjungimo metu paspaudus mygtuką, jis pereina į AT komandinį režimą.
- + 5 V kaištis - jis naudojamas modulio maitinimui
- GND kaištis - jis naudojamas modulio įžeminimui
- TX kaištis - šis kaištis prijungtas prie MCU RX kaiščio
- RX kaištis - šis kaištis sujungtas su MCU TX kaiščiu
- VALSTYBĖ - šis kaištis rodo modulio būseną, apie indikacijas žiūrėkite žemiau
LED indikacija
- Jame yra LED (RED) indikatorius, kuris pateikia „Bluetooth“ modulio būseną.
- Kai „Bluetooth“ modulis NĖRA PRISIJUNGTAS su jokiu įrenginiu, signalas silpnas, o raudona lemputė nuolat mirksi, o tai rodo, kad modulis nesuporuotas.
- Prijungus „Bluetooth“ modulį prie bet kurio įrenginio, signalas eina į AUKŠTĄ ir raudona lemputė mirksi su tam tikra vėlavimu, o tai rodo, kad modulis suporuotas.
Peržiūrėkite kitus mūsų projektus ir sužinokite daugiau apie „Bluetooth“ modulį HC-05 su kitais mikrovaldikliais:
- „Bluetooth“ valdomas žaislinis automobilis, naudojant „Arduino“
- „Bluetooth“ valdoma namų automatikos sistema naudojant 8051
- Balso valdomos šviesos naudojant „Raspberry Pi“
- Išmanusis telefonas valdomas FM radijas, naudojant „Arduino“ ir apdorojimą
- Mobiliuoju telefonu valdomas robotas, naudojant „G-Sensor“ ir „Arduino“
- „Bluetooth“ modulio HC-06 sąsaja su PIC mikrovaldikliu
STM32 „USART“ prievadai
STM32F103C8 (BLUE PILL) „USART“ nuosekliojo ryšio prievadai rodomi žemiau esančiame „pin out“ paveikslėlyje. Tai yra mėlynos spalvos (PA9-TX1, PA10-RX1, PA2-TX2, PA3-RX2, PB10-TX3, PB11-RX3). Ji turi tris tokius ryšio kanalus.
Grandinės schema ir jungtys
Grandinės jungtys, skirtos „ Bluetooth“ moduliui susieti su STM32, atliekamos taip, kaip žemiau
Ryšys tarp STM32F103C8 ir „Bluetooth“ modulio (HC-05)
- STM32F103C8 TX kaištis (PA9) yra prijungtas prie „Bluetooth“ modulio RX kaiščio.
- STM32F103C8 RX kaištis (PA10) yra prijungtas prie „Bluetooth“ modulio TX kaiščio.
- „Bluetooth“ modulio VCC (+ 5V) kaištis yra prijungtas prie STM32F103C8 5V kaiščio.
- „Bluetooth“ modulio GND kaištis yra prijungtas prie STM32F103C8 GND kaiščio.
Kitos jungtys
- STM32 („Blue Pill“) kaištis (PA0) yra prijungtas prie teigiamo LED kaiščio per nuoseklų rezistorių. Čia naudojamas šviesos diodas yra mišrios spalvos.
- Kitas vedamas kaištis yra prijungtas prie STM32 GND.
Programavimas STM32F103C8
„Bluetooth“ sąsaja su STM32 yra tas pats, kas „arduino“, o programavimas „STM32“ yra tas pats, kas „Arduino IDE“. Peržiūrėkite šią pamoką, kaip programuoti STM32 su USB naudojant „Arduino IDE“.
Kaip jau sakėme, šiame projekte mes sujungsime (HC-05) „Bluetooth“ modulį su STM32F103C8 ir naudosime „Android“ išmanųjį telefoną su „Bluetooth“ terminalo „Android“ programa, kad įjungtumėte ir išjungtumėte šviesos diodą.
Pastaba: siunčiant kodą į STM32F103C8 turi būti pašalintas siuntimo ir siuntimo kaištis.
Pilnas šio projekto kodas pateikiamas šios pamokos pabaigoje su demonstraciniu vaizdo įrašu.
Koduoti šį projektą yra taip paprasta. Galima naudoti tuos pačius „Arduino“ kodus, tačiau reikia pakeisti tik kaištį. STM32F103C8 turime tris USART kaiščių rinkinius, todėl turime nurodyti teisingą kaištį, kurį naudojome prijungdami „Bluetooth“ modulį.
1. Pirmiausia turime įvesti kaiščius su atitinkamu PIN numeriu su int duomenų tipu taip
const int pinout = PA0;
2. Toliau turime turėti kintamąjį, kad galėtume saugoti nuoseklius duomenis iš „Android“ mobiliojo telefono. Duomenys gali būti simboliai arba sveikasis skaičius taip
char įvesties duomenys = 0;
3. Toliau nustatydami negaliojančią sąranką () turime pradėti nuoseklų ryšį tarp „STM32 Blue Pill“ ir „Bluetooth“ modulio, suteikdami 9600 perdavimo spartą.
Serial1.begin (9600);
Čia naudojome „ Serial1“, nes HC-05 prijungėme prie STM32 TX1 ir RX1.
Mes taip pat galime naudoti „Serial2“ arba „Serial3“, tačiau atitinkamai kaištis turi būti prijungtas.
4. Įvadinis pranešimas siunčiamas kaip nuoseklūs duomenys į „ serial1“, ty į „Bluetooth“ modulį HC05. Šis modulis toliau siunčia duomenis į „Android“ mobiliojo telefono „Bluetooth“ terminalo programą. Taigi mes naudojame žemiau pateiktus teiginius
„Serial1.print“ („CIRCUIT DIGEST \ n“); Serial1.print ("BLUETOOTH WITH STM32 \ n");
5. Tada mes turime nustatyti išvesties režimą (PA0) , kai mes prisijungėme prie šio kaiščio. Taigi mes naudojame
pinMode (pinout, OUTPUT);
6. Toliau „ void loop“ () paleidžiame šiuos duomenis, norėdami perskaityti serijos duomenis ir atitinkamai įjungti / išjungti šviesos diodą
void loop () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (pinout, HIGH); „Serial1.print“ („LED ĮJUNGTA \ n“); } else if (inputdata == '0') { digitalWrite (pinout, LOW); „Serial1.print“ („LED IŠJUNGTA \ n“); } } }
Čia mes naudojame , jei pareiškimas, nes tai kodas vykdo tik tada, kai Serial1 uostas turi visas gautas iš "Bluetooth" modulis, kuris, kodėl šis teiginys yra naudojamas duomenų Serial1.available ()> 0 . Priešingu atveju, jei jis nepateks, jis laukia, kol pradės nuoseklų ryšį. Dabar jis saugo gautus duomenis kintamajame inputdata = Serial1.read (). Tada jis patikrina iš „Bluetooth“ terminalo programos atsiųstą vertę. Taigi, jei reikšmė yra 1, ji išspausdina šviesos diodą ĮJUNGTA ir priverčia kaištį (PA0) HIGH eiti aukščiau pagal pareiškimą digitalWrite (pinout, HIGH), o jei reikšmė yra 0, ji išspausdina LED OFF ir priverčia (PA0) kaištį eiti LOW.
„Bluetooth“ modulio prijungimo prie „Android“ telefono veiksmai
1 žingsnis: - Atidarykite „Bluetooth“ iš mobiliojo telefono, įkėlę kodą į STM32 iš „Arduino IDE“ ir suteikę maitinimą grandinei. ATSIMINKITE, kad pašalintumėte siuntimo ir siuntimo kaiščius įkeliant kodą
2 žingsnis: - Turimuose įrenginiuose pasirinkite HC-05 ir įveskite slaptažodį kaip 1234
3 žingsnis: - Susieję atidarykite „Bluetooth“ terminalo programą, pasirinkite prijungti įrenginį ir pasirinkite HC-05, kaip parodyta žemiau
4 žingsnis: - Prisijungę prie „HC-05 Bluetooth“ modulio, 1 arba 0 gnybte pateikite reikšmes, kad įjungtumėte ir išjungtumėte šviesos diodą. Taip pat gausite pranešimą, kad šviesos diodas įjungtas arba išjungtas.