- Potrebni materijali
- Kružni dijagram
- Početna konfiguracija modula HC05
- Testiranje Bluetooth komunikacije od Arduino do Arduino
HC-05 Bluetooth moduli su prelazni Bluetooth moduli za bilo koji Arduino projekt! Jednostavno je spojiti i kodirati u Arduino IDE. U većini projekata obično se povežemo s HC05 na Arduino i koristimo ga za bežičnu komunikaciju s drugim pametnim uređajem poput mobilnog telefona. Ovo je prilično jednostavno i s njim smo izgradili mnogo zanimljivih projekata poput Bluetooth kontroliranog robota, Bluetooth glasovne kontrole, Bluetooth kućne automatizacije itd. No, jeste li ikad trebali povezati dva HC-05? Nije tako jednostavno povezivanje HC05 sa pametnim telefonom, postoje neki dodatni koraci. Ovaj će vas vodič voditi kroz ovaj postupak. Uskočimo odmah!

Potrebni materijali
- 2x Arduino (Bilo koji model će učiniti; koristim Arduino Uno R3 i Arduino Nano)
- 2x Bluetooth modula HC05
- Breadboard
- Jumper žice
- 2x otpor 1kΩ
- 2x otpor 2.2kΩ
Kružni dijagram
Ovo je osnovni dijagram sklopa. Spojite 2 od ovih krugova, jedan za glavnog i jedan za podređeni. Što se tiče veza, sve što ovdje radimo je spajanje HC05 na Arduino. Prijemnik (Rx) pin HC05 radi u rasponu od 0 V do 3,3 V, a Arduino radi u rasponu od 0 V do 5 V. Dakle, upotrijebit ćemo otpore (R1 i R2) za stvaranje razdjelnika napona kako bismo smanjili 5V izlaz Arduina na 3,3V, kako ne bismo oštetili HC05 modul.


Koristim 1kΩ za R1 i 2,2KΩ za R2, ali možete koristiti bilo koju vrijednost otpora sve dok je R2 približno dvostruka vrijednost R1 (R2 ≈ 2R1). Slično tome, ponovite sklop i za glavnog i za podređenog, dolje su prikazani Arduino Master Bluetooth krug i Arduino Slave Bluetooth krug.


Početna konfiguracija modula HC05
Ovo je dodatni korak potreban za povezivanje dva HC05 modula. Moramo promijeniti neke postavke unutar modula HC05 Bluetooth, da bismo to učinili, moramo ući u AT naredbeni način modula HC05 i poslati mu naredbe putem serijskog monitora Arduino IDE. Da bismo to učinili, trebamo napisati Arduino kôd za slanje naredbi putem serijskog monitora na HC05.
Kod konfigurirati HC05 modul može se naći na dnu ove stranice, objašnjenje koda je kako slijedi
Ovom kodu dodajte knjižnicu SoftwareSerial.
#include < SoftwareSerial.h>
Definirajte brojeve pinova za prijenos (Tx) i Primanje (Rx). Koristim pin 2 za Tx i pin 3 za Rx.
#define tx 2 #define rx 3
Dajte Bluetooth vezi neko ime (ovdje koristim configBt), a zatim recite knjižnici SoftwareSerial koji je pin Tx, a koji Rx. Sintaksa je ime Bluetooth (Rx, Tx);
SoftwareSerial configBt (rx, tx); // RX, TX
Da bi konfigurirao Bluetooth modul, Arduino mu mora slati naredbe brzinom prijenosa od 38400 baud. Slično tome, postavili smo i brzinu prijenosa Bluetooth veze na 38400 baud. Postavite Transmit (Tx) na izlazni pin, a Receive (Rx) na ulazni pin
void setup () { Serial.begin (38400); configBt.begin (38400); pinMode (tx, IZLAZ); pinMode (rx, INPUT); }
Unutar zauvijek petlje imamo glavni dio koda. Ideja je ovdje poslati sve što je upisano u tekstni okvir na serijskom monitoru na HC05 putem Arduino Tx pina. Zatim na serijskom monitoru prikažite sve što izlazi HC05.
void loop () {if (configBt.available ()) // ako HC05 nešto šalje… { Serial.print (configBt.readString ()); // ispis u serijskom monitoru} if (Serial.available ()) // ako serijski monitor daje nešto… {configBt.write (Serial.read ()); // piši na Arduinoov Tx pin}}
Prvo prenesite ovaj kod u Arduino spojen na glavni HC05 modul. Nakon prijenosa koda, izvucite Arduino kabel za napajanje. Pritisnite i držite tipku na HC05. Sada priključite kabel za napajanje Arduino, dok još uvijek držite tipku na HC05. U redu, sada možete otpustiti gumb na HC05. Ovako se prelazi u AT način rada HC05. Da biste provjerili jeste li to ispravno učinili, provjerite da li crveno svjetlo na HC05 trepće otprilike svake sekunde (polako trepće!). Uobičajeno prije nego što je HC05 spojen na bilo koji Bluetooth uređaj, crveno svjetlo trepće na vrlo visokoj frekvenciji (brzo trepće!).
Zatim otvorite serijski monitor (gumb serijskog monitora nalazi se u gornjem desnom dijelu Arduino IDE-a). Ako to već niste učinili, u donjem desnom kutu prozora serijskog monitora postavite postavku završetka linije na "I NL i CL" i brzinu prijenosa na 38400. Sada upišite AT u serijski monitor, ako sve bude u redu, dobit ćete "OK" od HC05 prikazanog u prozoru serijskog monitora. Čestitamo! Uspješno ste se prijavili u AT naredbeni način modula HC05.
Sada unesite sljedeće naredbe u donju tablicu za konfiguriranje glavnog HC05 modula:
|
ZAPOVIJED (unesite ovo u serijski monitor i pritisnite enter) |
ODGOVOR (odgovor HC05, prikazan na serijskom monitoru) |
Funkcija (Što ova naredba radi?) |
|
NA |
u redu |
Test |
|
NA + CMODE? |
u redu |
Provjerite CMODE ili način povezivanja ----------------------------- CMODE: 0 je slave 1 je gospodar |
|
AT + CMODE = 1 |
u redu |
Postavite CMODE na 1 dok konfiguriramo glavni HC05 |
|
AT + ADDR? |
+ ADDR: FCA8: 9A: 58D5 u redu * Ovo je adresa mog gospodara HC05. Vaša adresa bit će drugačija! |
Vraća adresu HC05, zabilježite ovo jer će nam trebati kasnije! |
Sljedeće računalo spojite na drugi HC05, slave:
|
ZAPOVIJED (unesite ovo u serijski monitor i pritisnite enter) |
ODGOVOR (odgovor HC05, prikazan na serijskom monitoru) |
Funkcija (Što ova naredba radi?) |
|
NA |
u redu |
Test |
|
NA + CMODE? |
u redu |
Provjerite CMODE ili način povezivanja ----------------------------- CMODE: 0 je rob 1 je gospodar |
|
AT + CMODE = 0 |
u redu |
Postavite CMODE na 0 dok konfiguriramo slave HC05 |
|
AT + VEZA = FCA8,9A, 58D5 * Zamijenite ":" u glavnoj adresi HC05 s "," * Ovdje koristim adresu glavnog HC05 kojeg sam zabilježio iz prethodne tablice. Trebali biste upotrijebiti adresu svog glavnog HC05! |
u redu |
Postavljanje adrese glavnog HC05 na koji će se ovaj slave HC05 automatski povezati prilikom pokretanja |
|
AT + VEZA? |
+ VEZA: FCA8: 9A: 58D5 u redu * Ovo je adresa mog gospodara HC05. Vaša adresa bit će drugačija! |
Provjerite adresu vezanja vašeg roba. Ako se podudara s adresom vašeg glavnog HC05, spremni ste! |
Testiranje Bluetooth komunikacije od Arduino do Arduino
Prvo, napajajte glavni i pomoćni modul HC05. Nakon uključivanja i nakon nekoliko sekundi pogledajte crveno svjetlo na HC05 modulima.
|
Trepćuća brzina crvenog svjetla |
Što to znači |
|
Trepće na vrlo visokoj frekvenciji (brzo trepće!) |
Nije dobro! To znači da se vaši HC05 moduli ne povezuju jedni s drugima! Vrijeme je za rješavanje problema! |
|
Trepće na niskoj frekvenciji (polako trepće!) |
Lijepo! Uspjeli ste! Ali još uvijek moramo obaviti još jednu provjeru samo kako bismo bili super sigurni da ovo postavljanje funkcionira! Krenuti dalje! |
Jednom kad vaša crvena svjetla trepere na niskoj frekvenciji (polako trepćući!), Možete biti sigurni da su oba vaša HC05 međusobno povezana, ali nismo testirali mogu li se podaci slati naprijed-natrag između glavnog i pomoćnog uređaja. Napokon, to je ovdje glavna svrha.
Učitajte donji kôd na jedan od Arduinosa, ovo je kôd za testiranje odašiljača (Tx), a opet se cjeloviti kôd i za odašiljač i za prijemnik nalazi na dnu ove stranice.
Slijedom prethodnog koda, ovom kodu dodajemo knjižnicu SoftwareSerial i definiramo brojeve pinova za prijenos (Tx) i Primanje (Rx). Zatim imenujemo Bluetooth vezu i prosljeđujemo Tx i Rx pin brojeve u knjižnicu.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
U funkciji postavljanja ponovno postavljamo brzinu prijenosa podataka za serijski monitor Arduino i Bluetooth. Vidite li ovdje razliku u odnosu na prethodni kod? Koristimo brzinu prijenosa od 9600 bauda. Ovo je zadana unaprijed postavljena brzina prijenosa komunikacije Bluetooth modula HC05 prilikom komunikacije s drugim Bluetooth uređajima. Dakle, imajte na umu da je 38400 baud podataka za konfiguriranje HC05 s AT naredbama, a 9600 baud je zadana brzina prijenosa modula HC05. Na kraju, baš kao i prije, konfiguriramo Tx pin kao izlazni i Rx pin kao ulaz.
void setup () { Serial.begin (9600); bt.begin (9600); pinMode (tx, IZLAZ); pinMode (rx, INPUT); }
Unutar zauvijek petlje, sve što radimo je odašiljanje slučajne vrijednosti "123" kroz HC05.
petlja void () {bt.write (123); }
Prenesite ovaj kôd na drugi Arduino, ovo je kôd za primanje na test (Rx):
Potpuno isti kao i prethodni kodovi, konfiguriramo knjižnicu SoftwareSerial.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Kôd u funkciji postavljanja potpuno je isti kao kod za testiranje prijenosa (Tx).
void setup () { Serial.begin (9600); bt.begin (9600); pinMode (tx, IZLAZ); pinMode (rx, INPUT); }
U petlji zauvijek, samo trebamo primiti ono što šaljemo od Arduina koji odašilje. Ako je me uspremnik primio neke podatke od HC05, tada prikažite sve što je primljeno na serijskom monitoru.
void loop () {if (bt.available ()> 0) { Serial.println (bt.read ()); }}
Nakon što prenesete odgovarajuće kodove u svaki Arduino, otvorite serijski monitor primajućem Arduinu. Svakako odaberite brzinu prijenosa kao 9600 i liniju koja završava kao Nova linija na serijskom monitoru. Ako sve funkcionira u redu, trebali biste vidjeti 123.

Napomena: Ako ste i prijenosni i prijemni Arduinos spojili na isto prijenosno računalo, svakako odaberite odgovarajući COM priključak u odjeljku ALATI> PORT. Trebali biste biti povezani na COM priključak Arduino-a koji prima.

Ako sve bude u redu, zamijenite HC05 module kako biste bili sigurni da se komunikacija može odvijati u oba smjera i da smo gotovi!
