- Materiale necesare
- Modul Bluetooth (HC-05)
- Porturi USM STM32
- Diagrama circuitului și conexiunile
- Programare STM32F103C8
- Pași pentru conectarea modulului Bluetooth cu telefonul Android
În lumea de astăzi, Bluetooth a devenit foarte popular și aproape fiecare dispozitiv, cum ar fi telefonul mobil, laptopul și sistemul de infotainment pentru mașini, utilizează Bluetooth pentru comunicații fără fir. Bluetooth nu este folosit doar pentru a transfera date, ci și pentru a controla fără fir alte dispozitive Bluetooth, cum ar fi utilizarea căștilor Bluetooth, puteți asculta melodia fără fir de pe telefonul mobil sau puteți utiliza sistemul audio auto pentru a reda melodiile de pe telefonul mobil.
Bluetooth este o tehnologie fără fir care funcționează pe frecvența de 2,4 GHz. Semnalul Bluetooth normal se află în raza de 10 metri. Bluetooth este cea mai frecvent utilizată tehnologie fără fir în proiectele încorporate, cu condiția ca gama de comunicații să fie limitată. Bluetooth are un avantaj suplimentar al consumului său redus de energie și al funcționării cu costuri reduse. Este utilizat în general pentru interfața microcontrolerelor cu telefoanele inteligente utilizând aplicații Bluetooth.
Am văzut interfațare de modul Bluetooth cu alte microcontrolere, cum ar fi Arduino, 8051, PIC etc Acum, în acest tutorial vom interfață un modul Bluetooth HC-05 cu STM32F103C8 și activa / dezactiva un LED folosind mobil Android.
Materiale necesare
- STM32F103C8
- Modul Bluetooth (HC-05)
- LED
- Android Mobile
- Breadboard
- Conectarea firelor
Software:
- Terminal Bluetooth (aplicație Android)
Modul Bluetooth (HC-05)
Este utilizat în principal modulul Bluetooth în proiecte încorporate. Este un modul Bluetooth serial care utilizează comunicații seriale cu o rază de acțiune mai mică de 100m și funcționează la 5V (minim 3,3V). Poate fi utilizat pentru a conecta două microcontrolere fără fir și, de asemenea, cu telefonul mobil și laptopurile. Deoarece sunt disponibile multe aplicații Android, este foarte util pentru realizarea de proiecte fără fir controlate prin Bluetooth.
Folosește comunicația USART și poate fi interfațată cu microcontrolere cu protocol de comunicare USART.
Are o antenă integrată. Are configurații Master / Slave care pot fi schimbate în modul de comandă AT, care este util atunci când un singur dispozitiv ar trebui să trimită datele (master to slave), de exemplu de la PC (MASTER) la slave (orice MCU). Un master se poate conecta la alte dispozitive, iar slave nu se conectează la altă conexiune decât master.
Moduri de funcționare
Are două moduri AT Command Mode și Data Mode.
Când Bluetooth este pornit, acesta intră implicit în modul de date. Acest mod poate fi utilizat pentru transferul de date. Pentru a intra în modul de comandă AT în timpul pornirii, trebuie să apăsăm butonul prezent în modul pentru a modifica setările implicite ale modulului, cum ar fi configurațiile master / slave.
Pinii modulului Bluetooth
- EN pin (ENABLE) - Acest pin este utilizat pentru a seta modul de date sau modul de comandă AT. În mod implicit, este în MOD DE DATE. Când butonul este apăsat în timpul pornirii, acesta trece în modul de comandă AT.
- + 5V pin - Acesta este utilizat pentru alimentarea cu energie a modulului
- Pin GND - Acesta este utilizat pentru masă pentru modul
- PIN pin - Acest pin este conectat la pinul RX al MCU
- Pin RX - Acest pin este conectat la pinul TX al MCU
- STATE - Acest pin indică starea modulului, vezi mai jos despre indicații
Indicator LED
- Are un indicator LED (RED) care oferă starea modulului Bluetooth.
- Când modulul Bluetooth NU ESTE CONECTAT la niciun dispozitiv, semnalul scade și ledul roșu clipește continuu, ceea ce indică faptul că modulul nu este asociat.
- Când modulul Bluetooth este CONECTAT la orice dispozitiv, semnalul se înalță și ledul roșu clipește cu o anumită întârziere, ceea ce indică modulul asociat.
Verificați celelalte proiecte pentru a afla mai multe despre modulul Bluetooth HC-05 cu alte microcontrolere:
- Mașină de jucărie controlată prin Bluetooth folosind Arduino
- Sistem de automatizare la domiciliu controlat prin Bluetooth care utilizează 8051
- Lumini controlate prin voce folosind Raspberry Pi
- Radio FM controlat prin telefon inteligent folosind Arduino și Procesare
- Mașină robot controlată de telefonul mobil folosind G-Sensor și Arduino
- Interfațarea modulului Bluetooth HC-06 cu microcontrolerul PIC
Porturi USM STM32
STM32F103C8 (BLUE PILL) Porturile de comunicații seriale USART sunt afișate în imaginea pin out de mai jos. Acestea sunt de culoare albastră având (PA9-TX1, PA10- RX1, PA2-TX2, PA3- RX2, PB10-TX3, PB11- RX3). Are trei astfel de canale de comunicare.
Diagrama circuitului și conexiunile
Conexiunile de circuit pentru interfața modulului Bluetooth cu STM32 sunt realizate ca mai jos
Conexiune între STM32F103C8 și modulul Bluetooth (HC-05)
- Pinul TX (PA9) al STM32F103C8 este conectat la pinul RX al modulului Bluetooth.
- Pinul RX (PA10) al STM32F103C8 este conectat la pinul TX al modulului Bluetooth.
- Pinul VCC (+ 5V) al modulului Bluetooth este conectat la pinul 5V al STM32F103C8.
- Pinul GND al modulului Bluetooth este conectat la pinul GND al STM32F103C8.
Alte conexiuni
- Pinul (PA0) al STM32 (Blue Pill) este conectat la pinul pozitiv al LED-ului printr-un rezistor de serie. LED-ul este utilizat aici, este de culoare mixtă.
- Ledul un alt pin este conectat la GND al STM32.
Programare STM32F103C8
Interfața Bluetooth cu STM32 este identică cu arduino, iar programarea în STM32 este identică cu Arduino IDE. Consultați acest tutorial pentru programarea STM32 cu USB utilizând Arduino IDE.
După cum am spus deja, în acest proiect, vom interfața un modul Bluetooth (HC-05) cu STM32F103C8 și vom folosi un telefon inteligent Android cu aplicația Android Terminal Bluetooth pentru a porni și a opri LED-ul.
Notă: PIN-ul RX & TX trebuie eliminat în timpul încărcării codului în STM32F103C8.
Codul complet pentru acest proiect este dat la sfârșitul acestui tutorial cu un videoclip demonstrativ.
Codificarea pentru acest proiect este atât de simplă. Se pot utiliza aceleași coduri Arduino, dar numai pinul ar trebui schimbat. Deoarece avem trei seturi de pin USART în STM32F103C8, trebuie să specificăm pinul corect pe care l-am folosit pentru a conecta modulul Bluetooth.
1. Mai întâi trebuie să numim pinii cu numărul lor de pin respectiv cu tipul de date int după cum urmează
const int pinout = PA0;
2. În continuare, trebuie să avem o variabilă pentru a stoca datele seriale de pe dispozitivul Android. Datele pot fi un caracter sau un număr întreg, după cum urmează
char inputdata = 0;
3. Apoi, în setarea nulă (), trebuie să începem comunicarea în serie între STM32 Blue Pill și modulul Bluetooth, oferind o viteză de transmisie de 9600
Serial1.begin (9600);
Am folosit Serial1 aici pentru că am conectat HC-05 la TX1 și RX1 ale STM32.
Putem folosi și Serial2 sau Serial3, dar în consecință pinul trebuie conectat.
4. Un mesaj introductiv este trimis ca date seriale către serial1, adică către modulul Bluetooth HC05. Acest modul trimite în continuare date către aplicația Bluetooth Terminal a telefonului Android. Deci, folosim declarațiile de mai jos
Serial1.print ("CIRCUIT DIGEST \ n"); Serial1.print ("BLUETOOTH WITH STM32 \ n");
5. Apoi trebuie să setăm modul pin (PA0) ca ieșire, pe măsură ce ne-am conectat la acest pin
pinMode (pinout, OUTPUT);
6. Apoi în bucla de gol (), rulăm următoarele date pentru a citi datele seriale și pentru a porni / opri LED-ul în consecință
bucla void () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (pinout, HIGH); Serial1.print ("LED aprins \ n"); } else if (inputdata == '0') { digitalWrite (pinout, LOW); Serial1.print ("LED OFF \ n"); } } }
Aici folosim instrucțiunea if , deoarece acest cod se execută numai atunci când portul Serial1 are date primite de la modulul Bluetooth, motiv pentru care se folosește această instrucțiune Serial1.available ()> 0 . În caz contrar, dacă nu va intra, așteaptă până când începe comunicarea în serie. Acum stochează datele primite într-o variabilă inputdata = Serial1.read (). Apoi, verifică valoarea trimisă din aplicația terminalului Bluetooth. Deci, dacă valoarea este 1, imprimă LED-ul aprins și face pinul (PA0) să meargă HIGH prin declarație digitalWrite (pinout, HIGH) și dacă valoarea este 0, imprimă LED-ul OFF și face pinul (PA0) să scadă.
Pași pentru conectarea modulului Bluetooth cu telefonul Android
Pasul 1: - Deschideți Bluetooth de pe mobil după ce ați încărcat codul în STM32 din Arduino IDE și ați alimentat circuitul. REȚINEȚI-VĂ pentru a elimina pinul RX și TX în timp ce încărcați codul
Pasul 2: - În dispozitivele disponibile selectați HC-05 și introduceți parola ca 1234
Pasul 3: - După asociere, deschideți aplicația Bluetooth Terminal și selectați conectarea unui dispozitiv și selectați HC-05 așa cum se arată mai jos
Pasul 4: - După conectarea cu modulul Bluetooth HC-05, furnizați valori în terminalul 1 sau 0 pentru a porni și opri LED-ul. De asemenea, veți primi un mesaj că LED-ul este aprins sau oprit.