Spajanje bluetooth hc 05 na arduino. Arduino lekcije: upravljanje uređajima sa pametnog telefona za lutke. Povežite se s pametnog telefona pomoću Bluetooth terminala

Bluetooth zviždaljka za računalo: http://ali.pub/2jfj3y

Prvo, shvatimo što je bluetooth.

Bluetooth(od engleskih riječi blue - plavo i tooth - zub; izgovara se /bluːtuːθ/), bluetooth- specifikacija proizvodnje bežične osobne mreže ( Bežična osobna mreža, WPAN). Bluetooth omogućuje razmjenu informacija između uređaja kao što su osobnih računala(stolno, džepno, prijenosno računalo), Mobiteli, pisači, digitalni fotoaparati, miševi, tipkovnice, joystickovi, slušalice, headsetovi na pouzdanoj, besplatnoj, univerzalno dostupnoj radiofrekvenciji za komunikaciju kratkog dometa. Bluetooth omogućuje ovim uređajima da komuniciraju kada su u radijusu do 10 m jedan od drugog (domet uvelike varira ovisno o preprekama i smetnjama), čak iu različitim sobama.

Sada kada znamo da se bluetooth koristi za izgradnju mreža i razmjenu podataka između uređaja, koristit ćemo ga za povezivanje CNC (CNC) stroja i računala ili telefona ili tableta i prijenosnog računala.

Budući da koristim grbl firmware na arduino platformi za upravljanje CNC-om, spojit ćemo bluetooth modul prikladan za arduino na stroj, naime HC-06 bluetooth modul.

Prije spajanja Bluetooth modula na Arduino, morate se uvjeriti da Bluetooth modul i Arduino rade istom brzinom kao COM port.

Ako koristite grbl 0.8 firmware, tada ne morate ništa mijenjati, ali ako grbl 0.9 i noviji, tada će brzina Arduino COM porta postati 115200, a zadana brzina na modulu je 9600.

Dakle, moramo promijeniti brzinu priključka na samom Bluetooth modulu.

Za konfiguriranje Bluetooth modula postoje posebni AT naredbe, s kojim možemo postaviti potrebne parametre modula.

Pomoću AT naredbi možemo promijeniti brzinu COM porta ili promijeniti ime Bluetooth uređaji ili saznajte ili promijenite PIN kod za uparivanje.

Za povezivanje Bluetooth modula s računalom za unos AT naredbi trebat će nam FTDI programator (link na njega na početku članka). Mislim da je dijagram povezivanja ovdje nepotreban. Morate spojiti gnd na gnd, 5v na 5v, rx na tx i tx na rx.

Nakon spajanja trebat će nam program HMComAssistant za unos AT naredbi i programiranje našeg modula. Preuzmite: https://yadi.sk/d/eVzPmnh63Wab5R

Pa, ovdje ću dati neke AT naredbe za promjenu postavki Bluetooth modula:

AT naredba Odgovor modula Komentar
NA u redu Koristi se za testiranje komunikacije, u pravilu, prije izvođenja bilo kakvih operacija, ova naredba se prvo koristi za testiranje komunikacije.
AT+BAUD1 OK ili OK1200 Postavlja brzinu prijenosa podataka na 1200 bauda
AT+BAUD2 OK ili OK2400 Postavlja brzinu prijenosa na 2400 bauda
AT+BAUD3 OK ili OK4800 Postavlja brzinu prijenosa na 4800 bauda
AT+BAUD4 OK ili OK9600 Postavlja brzinu prijenosa na 9600 bauda
AT+BAUD5 OK ili OK19200 Postavlja brzinu prijenosa na 19200 bauda
AT+BAUD6 OK ili OK38400 Postavlja brzinu prijenosa na 38400 bauda
AT+BAUD7 OK ili OK57600 Postavlja brzinu prijenosa na 57600 bauda
AT+BAUD8 OK ili OK115200 Postavlja brzinu prijenosa na 115200 bauda
AT+BAUD9 OK ili OK230400 Postavlja brzinu prijenosa na 230400 bauda
AT+BAUDA OK ili OK460800 Postavlja brzinu prijenosa na 460800 bauda
AT+BAUDB OK ili OK921600 Postavlja brzinu prijenosa na 921600 bauda
AT+BAUDC OK ili OK1382400 Postavlja brzinu prijenosa na 1382400 bauda
AT+IME +NAME=test Vraća trenutni naziv modula
AT+NAMEiarduino_BLU +NAME=test OK Postavlja novi naziv modula "test"
AT+PIN +PIN=000000 Vraća trenutnu lozinku, u ovom slučaju lozinka je “000000”
AT+PIN123456 +PIN=123456 OK Postavite novu lozinku, u ovom slučaju lozinka je “123456”
AT+VERZIJA +VERZIJA=Firmware V3.0.6,Bluetooth V4.0 LE Vraća verziju firmvera, u ovom slučaju lozinka je “Firmware V3.0.6,Bluetooth V4.0 LE”
NA+RESET +RESET OK
NA+POMOĆ ——– Vraća popis svih dostupnih AT naredbi

Nakon promjene brzine com porta i postavljanja PIN koda za uparivanje. (zadani pin kod za uparivanje je "1234", spojimo modul na Arduino.

A budući da koristim CNC shield v 3.0. Također ću dati dijagram povezivanja za to.

Neću izraditi vlastiti dijagram, već ću ga preuzeti iz jednog članka. Neka mi njegov tvorac oprosti.

Dijagram sigurno nije baš gladak, ali po mom mišljenju sasvim je razumljiv.

Dakle, zašto se otpornici koriste u krugu? Arduino ima 5-voltnu logiku, što znači da Arduino šalje napon od 5V na sve svoje izlaze. Ali modul kaže LEVEL 3.3v, što znači da Bluetooth zahtijeva 3.3V, ali ne i 5V. Stoga su spojeni otpornici kako bi se smanjio napon i spriječio kvar Bluetooth modula.

Ali odlučio sam ga koristiti izravno bez otpornika, da vidimo koliko će modul trajati, napravit ćemo nekakav crash test.

Za upravljanje CNC (CNC) strojem s telefona ili tableta koristio sam program "Grbl kontroler", besplatan je i prilično višenamjenski. U videu ispod ukratko sam pokazao kako se strojem upravlja iz ovog programa.

Ali ako se povezujete s računala, onda postoji nijansa; prilikom uparivanja veze s modulom, dva novi COM luka. Za mene su to COM6 i COM7. Dakle, jedan od njih služi za slanje podataka, a drugi za primanje. Stoga se ne treba bojati i samo se pokušajte spojiti na jedan; ako se ništa ne dogodi, spojite se na drugi.

Ali ako nešto nije jasno, jasno sam pokazao u videu:

Vrlo često u vašim projektima postoji potreba za daljinskim upravljanjem ili prijenosom podataka s vaših telefonskih naprava.

Jedan od najpopularnijih i najraširenijih načina razmjene podataka putem Bluetootha .

Danas ćemo pogledati jednostavni primjeri kako spojiti bluetooth modul na Arduino i konfigurirajte daljinski upravljač s telefona.

Mi ćemo trebati:

  • Set žica MALE-MAMA
  • HC-06 Bluetooth

Spojite Bluetooth Modul za Arduino mikrokontroler je najprikladniji korištenjem MALE-MALE ožičenja.

Arduino Bluetooth
Pin 1 (TX) RXD
Pin 0 (RX) TXD
GND GND
5V VCC

Budite oprezni, morate se povezati TX -> RXD ,RX -> TXD .

Sada trebate zapisati testni kod programa:

Prilikom učitavanja skice potrebno je da Bluetooth modul bude odspojen od arduino mikrokontrolera. U suprotnom, skica neće biti snimljena zbog veze s Bluetoothom Modul komunicira putem istih RX i TX priključaka kao USB.

Int val; int LED = 13; void setup() ( Serial.begin(9600); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); ) void loop() ( if (Serial.available()) ( val = Serial.read(); / / Kada je znak "1", uključi LED if (val == "1") ( digitalWrite(LED, HIGH); ) // Kada je znak "0", isključi LED if (val == "0") ( digitalWrite(LED, LOW ); ) ) )

Nakon što je skica snimljena i Bluetooth Modul je spojen na Arduino, možete prijeći na sljedeći korak.

Povezivanje Bluetootha s vašim telefonom

Preporučljivo je koristiti ne USB kao izvor napajanja za arduino, već vanjsko napajanje od 9 V.

  1. Uključite Bluetooth na telefonu i potražite nove uređaje
  2. Nalazimo na popisu poremećaja " HC-06" i povezati se s njim.
  3. Telefon će tražiti PIN kod. morate unijeti " 1234 " ili " 0000 "
  4. hura Uređaj je povezan.

Sada trebate preuzeti bluetooth terminal na svoj telefon. Pogledat ćemo primjer platforme Android.



Možete instalirati različite bluetooth terminale, u pravilu se razlikuju samo u različitim dizajnom, funkcionalnost se ne mijenja. Također možete pronaći terminal za iOS proizvode.

Nakon što smo instalirali terminal, pokrećemo ga, odabiremo naš bluetooth modul HC-06 i spajamo se na njega.

Vrijeme je da isprobamo projekt na djelu. Upisujemo broj "0" u terminal i šaljemo. LED L koji se nalazi na arduino ploči pored pina 13 trebao bi se ugasiti. Sada šaljemo broj “1” kroz terminal i L LED treba svijetliti.

Demonstracija rada:


Domaća zadaća:

  • Promijenite skicu tako da LED svijetli i gasi se pomoću iste naredbe, na primjer "G".
  • Dovršite skicu i naučite ga pretvoriti tekstualne podatke koji dolaze putem bluetootha u digitalne podatke i implementirati dimer, upaliti LED pomoću PWM-a, pri zadanoj svjetlini od 0 do 254 koji dolaze putem bluetootha.

Danas ćemo se upoznati s jeftinim modulom za bežični prijenos podataka putem Bluetooth.

Bluetooth je industrijska specifikacija za bežične osobne mreže koja omogućuje bežični prijenos podataka između mnogih uređaja.

Naš modul se zove HC-05. Ovo je jedan od predstavnika linije sličnih modula HC-03 - HC-09.

Ovi moduli omogućuju vam bežični prijenos podataka, bez razmišljanja o tome kako Bluetooth protokol općenito funkcionira, o njegovim poljima i drugim suptilnostima. Ovi moduli su ispravne postavke omogućiti prijenos podataka na takav način da programer koji piše kod zapisuje algoritam kao da radi sa žičanim UART sučeljem. Stoga pisanje koda postaje što praktičnije i zato je ova linija modula stekla tako ogromnu popularnost među programerima početnicima i ne samo.

Dakle, ti i ja, također nemojmo zaostajati za njima i uzmimo mali predah od njih mrežni protokoli i proučavati takav modul. Bilo je i dosta osobnih zahtjeva, kao i na javnim chatovima, da ne zaobilazim takve module i pišem lekcije pomoću njih.

Moduli imaju sljedeće glavne karakteristike:

  • Bluetooth čip – BC417143 proizvodnja CSR tvrtka,
  • protokol prijenosa podataka - Bluetooth 2.0+EDR,
  • klasa 2, što odgovara prijenosu podataka u radijusu do 10 m,
  • Podrška za profil serijskog priključka ( SPP), što osigurava kompatibilnost sa svim uređajima koji podržavaju ovaj profil,
  • trajna flash memorija kapaciteta 8 MB,
  • radio kanal s frekvencijom od 2,4 - 2,4835 MHz,
  • USB Host 1.1/2.0 sučelje,
  • UART sučelje s podesivom brzinom prijenosa podataka.

Također, uz ove karakteristike, vrijedi napomenuti da modul ima puno nogu na ploči, što mu omogućuje korištenje u širem rasponu. Pogledajmo dijagram pinout modula

Ovdje vidimo GPIO, SPI, USB, PCM pinove.

Istina, za sada ćemo raditi samo s USART sučeljem, uz pomoć kojeg ćemo ne samo prenijeti neke korisne podatke, već i konfigurirati naš modul.

To ćemo učiniti, prvo, jer će naši moduli biti istog tipa (imam ih čak 4!), U kojima je modul HC-05 zalemljen na drugu ploču, na kojoj je samo 6 kontakata usmjereno prema van. Ovako ih sve imam (pogled odozgo i pogled odozdo)

Svrha nogu je naznačena na dnu ploče, to ćemo shvatiti kada spojimo modul.

Drugo, nećemo raditi s ostatkom brojnih kontakata jer to ne dopušta svaki firmware.

Općenito, izbor je pao na HC-05 i zato ovaj modul Savršeno konfigurabilan i za master i za slave rad.

Modul je konfiguriran za daljnji rad s podacima pomoću AT naredbi. Mislim da smo više-manje svi upoznati s tim što su te naredbe, malo smo ih upoznali kada smo radili s Wi-Fi modulom. Naravno, ove naredbe su različite za sve uređaje i stoga ću priložiti dokument s potpunim popisom naredbi na dnu stranice. Također je lako pronaći resurse na Internetu gdje je opis ovih naredbi preveden na ruski, a postoje čak i neki primjeri njihove upotrebe. Ovdje se nećemo baviti potpunim prijevodom naredbi, proučavat ćemo samo one naredbe koje ćemo morati koristiti. Za sada njihov popis neće biti toliko širok, ali kasnije ćemo se vratiti na ove module, nadam se, više puta, a zatim ćemo proširiti svoje horizonte u poznavanju ovog modula. U međuvremenu, samo ćemo napraviti kratki obilazak modula. Naravno, probat ćemo i na poslu, ne bez toga.

Za sada spojimo naš modul na TTL-USB adapter, koji ćemo zauzvrat spojiti na računalo.

Spojit ćemo se prema sljedećem dijagramu

TTL-USB adapterski modul HC-05

VCC VCC

GND GND

TXD RXD

RXD TXD

U praksi će izgledati otprilike ovako

Spojimo adapter na računalo; neću vam reći kako raditi s adapterima ove vrste, već radimo s njima cijelo vrijeme. Pokrenimo terminalski program, ja ću koristiti program CoolTerm, jer ima fleksibilnije postavke za prijenos podataka s tipkovnice, a za unos naredbi potrebno je da svaki redak tijekom prijenosa završava s kodom za novi redak i povratak na novi red.

Idemo na postavke programa i prvo konfiguriramo priključak

Brzina od 38400 odabrana je jer modul radi upravo tom brzinom kada prima AT naredbe.

Sada odaberite stavku s lijeve strane primiti i tamo prebacite jedno dugme i uključite drugo

Prvi gumb služi za završetak poslanih naredbi znakovima za prelazak na novi redak i povratak na novi red, a drugi je da možemo vidjeti i naše unesene naredbe nakon što ih unesemo u prozor prijemnog terminala.

Spremimo postavke i pokušajmo se povezati. Ako je sve uspješno, prekidamo vezu, budući da je sada naš modul u načinu rada za prijenos podataka, a ako još nije konfiguriran, najvjerojatnije ne znamo ni njegovu adresu ni postavke. O pronalaženju modula u ovaj način rada To se očituje brzim treptanjem plave LED diode, dakle potrebno je nekako dovesti modul u stanje odašiljanja AT naredbi.

Da bismo to učinili, sada ćemo isključiti adapter iz USB priključka i spojiti žicu na nogu HC-05 modula KLJUČ. Za neke možda ima drugačije ime, ali mislim da ga ne možete pobrkati. Spojimo žicu ovako i ovako

Spojimo ovu žicu na plus (s VCC krakom)

I, bez otpuštanja kontakta, spojite adapter na USB priključak računalo i nakon nekog vremena (za sekundu-dvije) odspojimo naš KEY kontakt od VCC kontakta skidanjem žice. Modul će se morati prebaciti na način primanja AT naredbi, što će biti naznačeno vrlo sporim treptanjem LED diode.

Idemo na terminalski program, spojimo se na port i pokušamo poslati naredbu NA, na što nam modul mora odgovoriti "U REDU"

Modul je odgovorio, što znači da je sve ispravno.

Kako se ne bi zabunili s postavkama koje je nekoć napravio, prikupimo sve postavke unosom naredbe " AT+ORGL". Postavke će se morati vratiti na sljedeće parametre:

  • Vrsta uređaja: 0
  • Kôd upita: 0x009e8b33
  • Način rada modula: Slave Mode
  • Način povezivanja: Povežite se s navedenim Bluetooth uređajem
  • Serijski parametar: Brzina prijenosa: 38400 bita/s; Stop bit: 1 bit; Paritetni bit: Nema.
  • Zaporka: "1234"
  • Naziv uređaja: "H-C-2010-06-01"

Jedino se postavke neće odmah primijeniti. Morate ponovno učitati modul. Prikladno je to učiniti unosom naredbe " NA+RESET“, na što će se modul ponovno pokrenuti i vratiti u mod prijenosa podataka te za sada neće moći primati naredbe. Da bi ih prihvatio, izvršit ćemo iste radnje kao gore kako bi se modul ponovno prebacio na način primanja AT naredbi. Postoji još jedan način, ali ga za sada nećemo koristiti.

Provjerimo sada neke parametre našeg modula.

Da biste saznali verziju firmvera, unesite naredbu " AT+VERZIJA?“, na što će modul morati odgovoriti otprilike ovako

Ako firmware nije niži od ove verzije, tada možemo biti sigurni da ovaj modul s takvim firmwareom može raditi u glavnom načinu rada.

Saznajte adresu uređaja pomoću naredbe “ AT+ADDR?«

Koristit ćemo ovu adresu za identifikaciju našeg uređaja na glavnom uređaju. Kao master uređaj uzet ćemo najobičniji pametni telefon, ali to će doći malo kasnije. Moramo još dobro igrati s momčadima.

Zatražimo i naziv uređaja pomoću naredbe " AT+IME?“, na koji mnogi moduli, uključujući i moj, reagiraju samo ako je visoka razina na KEY nozi, odnosno kada je spojena žica. Učinimo to

Pokušajmo promijeniti i ovo ime, jer nije baš zgodno; da biste to učinili, unesite naredbu "AT+NAME: Željeno_ime". Ova se naredba može unijeti bez visoke razine na pinu KEY

Provjerimo je li se ime promijenilo, samo ne zaboravite na visoku razinu na KEY nozi

Ime je dobro primijenjeno.

Provjerimo lozinku naredbom " AT+ PSWD?«

Na isti način kao i ime, možete promijeniti lozinku.

Sada saznajemo vrstu uređaja (slave ili master) pomoću naredbe " AT+ ULOGA?«

0 znači rob. Tip se također može promijeniti u bilo kojem trenutku. Ali ovo nam za sada nije potrebno jer ćemo s uređajem raditi kao podređeni uređaj.

Resetirajte uparene uređaje naredbom “ AT+RMAAD«

Sada saznajmo postavke USART sučelja naredbom " AT+ UART?«

Ove postavke znače: 38400 kbps, 1 stop bit i bez pariteta.

Ova tablica sadrži moguće opcije USART postavke

Promijenimo, na primjer, brzinu prijenosa naredbom " AT+UART=115200,0,0«

Samo će ove postavke stupiti na snagu nakon ponovnog pokretanja modula i bit će relevantne samo za način prijenosa podataka; za način prijenosa AT naredbi modulu, iste će postavke ostati pri brzini od 38400.

Ponovno učitajmo modul naredbom " NA+RESET“, nakon čega će se modul prebaciti u način rada za prijenos podataka.

Konfigurirajmo priključak u terminalskom programu na dana brzina i povezati se s njim

Pokušajmo unijeti naredbu na koju naš modul neće odgovoriti jer način nije isti

Ali nemojmo očajavati. Ispada da za slanje naredbi modulu nije potrebno staviti ga u ovaj način rada. Možete omogućiti podršku za prijenos AT naredbi u podatkovnom načinu. Kratko vrijeme (dovoljno je manje od sekunde) dotaknemo žicu koja je spojena na KEY kontakt pozitivne sabirnice modula i modul će se prebaciti u mod podrške AT-naredbama. Istina, to ne možemo odrediti prema prirodi treptanja LED-a; treptat će jednako brzo. Također, u načinu rada za narednu podršku, glavni uređaj se neće moći povezati s nama. Ali ipak, ne moramo stalno uklanjati žicu iz USB priključak i ponovno konfigurirajte port u terminalskom programu. Ovo je već dobro. Učinimo to i uvjerimo se da će modul također prihvaćati naredbe, kao u načinu primanja naredbi

Da biste uklonili ovu podršku i da bi se modul mogao povezati, samo ga ponovno pokrenite naredbom “ NA+RESET". Učinimo to

Sjajno! Nešto već znamo. Uglavnom, konfigurirali smo modul za prijenos podataka u glavnom načinu rada.

Sada će pametni telefon koji danas imamo djelovati kao glavni uređaj. Svatko s Androidom će poslužiti, sve dok ima neku vrstu terminalskog programa za Bluetooth. Instalirao sam ovaj. Bilo mi je ugodno

Prvo, besplatan je, ne zahtijeva prethodno stvaranje veze, a ima i nekoliko gumba s nizovima koje smo unaprijed spremili.

Preuzmite i instalirajte program i pokrenite ga. Pritisnite tipku SCAN i naš bi se modul trebao pojaviti na popisu pronađenih uređaja

Izaberimo ovaj uređaj i bit ćemo prebačeni u dijaloški okvir za stvaranje para, u kojem ćete morati unijeti lozinku (mi imamo "1234") i složiti se klikom na gumb "OK"

Jeste li ikada razmišljali o upravljanju nekim elektronički uređaji pomoću pametnog telefona? Slažem se, bilo bi vrlo cool upravljati robotom ili bilo kojim drugim uređajem sa svog pametnog telefona. Nudimo jednostavnu lekciju za početnike i glupane o tome kako upravljati pametnim telefonom pomoću Arduina putem Bluetootha. Ako nakon ove lekcije želite bolje upoznati Arduino, možete pronaći knjige o njemu.

Korak 1. Što nam je potrebno

Uređaji

Modul - Bluetooth modul HC 05/06
Ploča - Arduino
Svjetleća dioda (LED)
Otpornik - 220Ω
Android uređaj

Softver

Arduino IDE
Android Studio (zapravo nije neophodan, jer ćete ispod pronaći Android aplikaciju)

Korak 2. Kako to radi

Obično ovaj korak radimo na kraju, ali kako biste razumjeli što moramo postići, pogledajte rezultat na ovom međukoraku. U nastavku smo također objavili video vodič korak po korak.

Korak 3. Počinjemo sastavljati krug

Krug u našem vodiču je toliko jednostavan i malen da trebamo napraviti samo nekoliko veza:

Arduino pinovi___________ Pinovi za Bluetooth modul
RX (Pin 0)__________________________TX
TX (Pin 1)___________________________RX
5V__________________________VCC
GND_______________________GND

Spojite negativni dio LED-a na GND na Arduinu, a pozitivni pol na pin 13 kroz otpor od 220 Ohm - 1 kOhm. Općenito, na našoj slici ispod sve je sasvim jasno.

Nemojte spajati RX na RX i TX na TX Bluetooth izlaze na Arduino izlaze, nećete primiti nikakve podatke, ovdje TX znači slanje, RX znači primanje.

Korak 4: Prijenos programa na Arduino

Sada moramo napisati program i učitati ga na naš Arduino. Ako još ne znate kako to učiniti, preuzmite knjige. Kod ispod je upravo ono što trebamo učitati u Arduino.

/* Bluetooh Basic: LED UKLJUČENO ISKLJUČENO * Koder - Mayoogh Girish * Web stranica - http://bit.do/Avishkar * Preuzmite aplikaciju: https://github.com/Mayoogh/Arduino-Bluetooth-Basic * Ovaj vam program omogućuje za kontrolu LED-a na pinu 13 arduina pomoću bluetooth modula */ char data = 0; //Varijabla za pohranu primljenih podataka void setup() ( Serial.begin(9600); //Postavlja baud za serijski prijenos podataka pinMode(13, OUTPUT); //Postavlja digitalni pin 13 kao izlazni pin ) void loop() ( if(Serial.available() > 0) // Šalji podatke samo kada primite podatke: ( data = Serial.read(); //Pročitajte dolazne podatke i pohranite ih u varijabilne podatke Serial.print(data); // Ispis vrijednosti unutar podataka u serijskom monitoru Serial.print("\n"); //Novi red if(data == "1") // Provjerava je li vrijednost podataka jednaka 1 digitalWrite(13, HIGH); // Ako je vrijednost 1 tada se LED uključuje else if(data == "0") // Provjerava je li vrijednost podataka jednaka 0 digitalWrite(13, LOW); //Ako je vrijednost 0 tada se LED isključuje ) )

Korak 5. Kako proces funkcionira

Modul HC 05/06 radi preko serijskog komunikacijskog kanala. Android aplikacija šalje podatke sekvencijalno u Bluetooth modul kada pritisnete određenu tipku. Bluetooth na drugom kraju prima podatke i šalje ih Arduinu preko TX veze Bluetooth modula (Arduino RX veza).

Kod učitan u Arduino provjerava primljene podatke i uspoređuje ih. Ako se primi "1", LED se uključuje i isključuje kada se primi "0". Otvorite monitor serijskog porta i promatrajte primljene podatke.

Korak 6. Aplikacija za Android uređaje

U ovom vodiču nećemo se doticati izrade aplikacija za Android uređaje. Aplikaciju možete preuzeti na GitHubu.

Kako koristiti aplikaciju?

Nakon što smo se povezali Bluetooth-om, potrebno je skinuti i instalirati aplikaciju koja će putem pametnog telefona :) upravljati našom LED diodom iz daljine. Aplikaciju možete besplatno preuzeti na Amazon.com. Pametni telefon povezujemo s Bluetooth modulom HC 05/06:

  1. Uključite modul HC 05/0
  2. Tražim uređaj
  3. Spajamo se na HC 05/06 unosom zadane lozinke “1234” ili “0000” (četiri nule).

Nakon toga instaliramo aplikaciju na svoj pametni telefon. Otvorimo ga. Odaberite uređaj - odaberite Bluetooth modul s popisa (HC 05/06). Nakon uspješnog povezivanja pritisnite tipku ON za uključivanje LED-a i tipku OFF za isključivanje LED-a. Zatim možete kliknuti gumb "Prekini vezu" za prekid veze s Bluetooth modulom.

Ovo je bio vodič za glupane i početnike o tome kako spojiti Bluetooth modul s Arduinom. Ovaj se projekt može poboljšati i podići na višu razinu za, primjerice, kućnu automatizaciju putem upravljanja pametnim telefonom, kontroliranog robota i još mnogo toga.

Pregled Bluetooth modula HC-05

Arduino kontroler ne podržava bežičnu komunikaciju, a često je to jednostavno potrebno. Na primjer, daljinski upravljač robot na Arduinu, šalje podatke s meteorološke stanice u Arudino na Internet ili na kućni poslužitelj, komunikacija nekoliko uređaja međusobno. Ovdje, kao pomoć programerima uređaja, postoji mnogo vanjskih modula za organiziranje različitih tehnologija. bežična komunikacija: WiFi moduli, GSM/GPRS, IR, Bluetooth, radio moduli za rad u različitim frekvencijskim područjima.

Bluetooth tehnologija koristi se za prijenos podataka između dva uređaja koji su u neposrednoj blizini jedan drugome, bez potrebe za izravnom vidljivošću. Bluetooth tehnologija pruža dobru otpornost na širokopojasne smetnje, dopuštajući više uređaja na istoj lokaciji da komuniciraju istovremeno bez ometanja jedni drugih. Vrlo širok ovu tehnologiju koristi se u telefonima, tabletima, prijenosnim računalima.

Jedan od najbolja rješenja za organiziranje dvosmjerne Bluetooth komunikacije između vašeg Arduino uređaja i tableta, prijenosnog računala ili drugog Bluetooth uređaja - Bluetooth modul HC-05, koji može raditi i kao master (traži Bluetooth uređaje i pokreće komunikaciju) i kao slave (podređeni uređaj) ).

Tehničke karakteristike modula HC05

  • Bluetooth čip: HC-05 (BC417143)
  • Radiofrekvencijski raspon: 2,4 - 2,48 GHz
  • Snaga prijenosa: 0,25–2,5 mW
  • Osjetljivost: –80 dBm
  • Napon napajanja: 3,3–5 V
  • Potrošnja struje: 50 mA
  • Domet: do 10 metara
  • Sučelje: serijski port
  • Načini rada: master, slave
  • Temperatura skladištenja: –40…85 °C
  • Raspon radne temperature: –25…75 °C
  • Dimenzije: 27 x 13 x 2,2 mm

Veza

Senzor ima 6 standardnih pinova od 2,54 mm:

  • VCC - (napajanje 3,6 – 6 V);
  • GND - (zemlja).
  • TXD, RXD - UART sučelje;
  • STANJE - indikator stanja;
  • KEY - kontakt za ulazak u način programiranja.

Modul se konfigurira u načinu programiranja slanjem AT naredbi putem serijski priključak. Za ulazak u način programiranja, morate primijeniti signal visoke razine na kontakt KEY. Na nekim modulima nema pina KEY, već umjesto njega postoji pin EN:

  • EN - uključite/isključite modul;


U ovom slučaju, da biste ušli u način programiranja, morate primijeniti signal visoke razine na pin 34:


Za modul k Arduino ploča koristit ćemo serijski port sa strane Arduino softver UART. Dijagram spajanja na slici:


Trebali biste dobiti nešto poput sljedećeg:


Programiranje Bluetooth HC05 modula

Modul se konfigurira u načinu programiranja slanjem AT naredbi preko serijskog porta. Spojimo HC05 modul na Arduino ploču prema dijagramu povezivanja na slici 5. Priključimo 3,3 V na KEY pin modula (ili pin 34 na pločici). Poslat ćemo AT naredbe s monitora serijskog porta Arduino IDE. Učitajmo na Arduino skicu iz Ispisa 1. Trebat će nam biblioteka Arduino SoftwareSerial. Brzina UART modula u načinu programiranja je 38400 bauda, ​​ali može se razlikovati, u ovom slučaju treba je odabrati.

Uključiti SoftwareSerial mySerial(2, 3); // odredite redom rx i tx pinove void setup() ( pinMode(2,INPUT); pinMode(3,OUTPUT); Serial.begin(9600); mySerial.begin(38400); Serial.println("start prg" ) ; ) void loop() ( if (mySerial.available()) ( char c = mySerial.read(); // čitanje sa softverskog porta Serial.print(c); // pisanje na hardverski port ) if ( Serial .available()) ( char c = Serial.read(); // čitanje s hardverskog porta mySerial.write(c); // pisanje na softverski port ) )

Nakon preuzimanja skice otvorite Arduino IDE monitor serijskog porta i počnite slati AT naredbe:


Popis osnovnih AT naredbi:

  • AT - ispitna naredba.

Nema parametara.

Odgovor modula: OK

  • AT+VERZIJA? - dobiti verziju firmvera modula.

Nema parametara.

Odgovor modula: +VERZIJA:

Gdje Verzija firmvera Bluetooth modula.

  • AT+RESET - resetiranje postavki.

Nema parametara.

Odgovor modula: OK

  • AT+ORGL - postavljanje prilagođenih postavki modula.

Nema parametara.

Odgovor modula: OK

  • AT+ADDR? - dobiti adresu modula.

Nema parametara.

Odgovor modula: +ADDR:

Gdje Adresa Bluetooth modula NAP: UAP: LAP.

  • AT+IME? - dobiti naziv modula.

Nema parametara.

Odgovor modula: +NAME:

Gdje Naziv Bluetooth modula.

  • AT+IME= Postavite novi naziv modula.

Parametar: Naziv Bluetooth modula.

Odgovor modula: +NAME:

U redu (ili NEUSPJEŠNO)

  • AT+PSWD? - dobiti PIN kod za pristup Bluetooth modulu.

Nema parametara.

Odgovor modula: + PSWD:

Gdje Pin. Zadano je 1234.

  • AT+PSWD= Postavite pristupni kod za Bluetooth modul.

Parametar: Kod za pristup modulu.

Odgovor modula: U redu (ili NEUSPJEŠNO)

  • NA+KLASA= Postavite način rada Bluetooth modula.

Parametar: Klasa. Dokumentacija modula ne daje moguće vrijednosti ovaj parametar. Prema zadanim postavkama postavljena je na 0. Ako namjeravate koristiti modul u glavnom načinu rada, vrijednost ne treba mijenjati. Ako koristite modul u podređenom načinu rada, s vrijednošću parametra jednakom 0, on je nevidljiv uređajima s operativnim Android sustav. Za vidljivost morate postaviti vrijednost parametra na 7936.

Odgovor modula: OK

  • U+KLASI? - dobiti razred modula.

Nema parametara.

Odgovor modula: +KLASA:

Gdje Modul klase.

  • AT+IAC - dohvatite pristupni kod za zahtjev GIAC (General Inquire Access Code).

Različiti fizički komunikacijski kanali koji se koriste u procesu uspostavljanja veze imaju različite pristupne kodove kanala. U polling kanalima, s iznimkom namjenskih, koristi se isti opći pristupni kod za sve uređaje.

Nema parametara.

Odziv modula: + IAC:

Gdje Zatraži pristupni kod.

  • AT+IAC= Postavite pristupni kod zahtjeva.

Parametar: Zatraži pristupni kod. Zadana vrijednost je 9e8b33.

Odgovor modula: U redu (ili NEUSPJEŠNO)

  • NA+ULOGA? - dobiti način rada modula.

Nema parametara.

Odgovor modula: +ULOGA:

Gdje Način rada Bluetooth modula:

  • 0 - rob. U ovom načinu, drugi master se može spojiti na modul;
  • 1 - majstor. U ovom načinu rada, modul se sam može povezati s bilo kojim Bluetooth uređajem;
  • 2 - rob-petlja. Modul šalje natrag sve bajtove koji su mu poslani.
  • NA+ULOGA= Postavite način rada Bluetooth modula.

Parametar: Način rada Bluetooth modula:

  • 0 - rob;
  • 1 - majstor;
  • 2 - rob-

Odgovor modula: OK

  • AT+UART= ,,Instalirajte modul za serijski port.

Mogućnosti:

  • Stop bit:
  • 0 - ne;
  • 1 - da;
  • Paritetni bit:
  • 0 - ne;
  • 1 - da.

Odgovor modula: OK (ili FAIL).

  • AT+UART? - dobiti parametre razmjene modula.

Nema parametara.

Odgovor modula: +UART: ,,

  • Brzina prijenosa (9600,19200,38400,57600,115200);
  • Stop bit;
  • Bit pariteta.
  • AT+CMODE= Postavite način povezivanja Bluetooth modula.

Parametar:

  • 2 - način rada podređene petlje.

Odgovor modula: OK

  • AT+CMODE? - dobiti način povezivanja modula.

Nema parametara.

Odgovor modula: +CMODE:

Gdje Način povezivanja Bluetooth modula:

  • 0 - modul se može povezati samo s Bluetooth uređajem određenim naredbom AT+BIND;
  • 1 - modul se može spojiti na bilo koji Bluetooth uređaj;
  • 2 - način rada podređene petlje.
  • AT+INQM= ,,Postavite opcije za traženje Bluetooth uređaja.

Mogućnosti:

  • :
  • 0 - standardni način zahtjeva;
  • 1 - zahtjev u RSSI modu;
  • Maksimalan broj uređaja koji odgovaraju na zahtjev;
  • Istek čekanja (1–48: 1,28 s do 61,44 s).

Odgovor modula: OK (ili FAIL).

  • AT+INQM? - dobiti parametre za traženje traženja Bluetooth uređaja.

Nema parametara.

Odgovor modula: +UART: ,,

  • AT+INQ - započnite traženje Bluetooth uređaja.

Nema parametara.

Odgovor modula je popis pronađenih uređaja.

  • AT+BIND= Povežite Bluetooth modul s drugim modulom.

Odgovor modula: OK (ili FAIL).

  • AT+BIND? - dobiti adresu uređaja povezanog s Bluetooth modulom.

Nema parametara.

Odgovor modula: Adresa uređaja povezanog s Bluetooth modulom.

  • AT+FSAD=

    Odgovor modula: OK (ili FAIL).

    • AT+RMSAD=

      Odgovor modula: OK (ili FAIL).

      • AT+RMAAD - brisanje popisa ovlaštenih uređaja za naš Bluetooth modul.

      Odgovor modula: OK (ili FAIL).

      • AT+LINK= Povežite se s Bluetooth uređajem.

      Parametar: adresa Bluetooth uređaja.

      Odgovor modula: OK (ili FAIL).

      Potpuni popis AT naredbi može se pronaći.

      Primjer upotrebe

      Razmotrimo primjer primanja podataka o vlažnosti zraka i temperaturi od DHT11 senzora spojenog na Arduino na Android uređaju (telefon, pametni telefon, tablet). Arduino svakih 10 sekundi prima podatke od DHT11 senzora i šalje ih putem HC05 modula na Android uređaj.

      Trebat će nam sljedeći dijelovi:

      • Arduino ploča
      • ploča za izradu prototipova
      • DHT11 senzor
      • Bluetooth modul HC05
      • spojne žice
      • Android telefon ili tablet

      Sastavimo krug prikazan na slici:


      Dobivamo:


      Uploadajmo skicu na Arduino ploču (vidi dolje) - primamo podatke o vlažnosti i temperaturi od DHT11 senzora i šaljemo podatke na serijski priključak (hardver) putem HC05 modula na Android uređaju.

      H" // konstante #define DHTPIN 8 // pin za spajanje DATA kontakta #define DHTTYPE DHT11 // senzor DHT 11 #define INTERVAL_GET_DATA 2000 // interval mjerenja, ms // kreiranje instance DHT objekta DHT dht(DHTPIN, DHTTYPE); // varijabla za interval mjerenja unsigned long millis_int1=0; int pos=0; // uključujući biblioteku SoftwareSerial.h #include SoftwareSerial mySerial(2, 3); // odredite rx i tx pinove redom void setup() ( Serial.begin(9600); // pokretanje serijskog porta mySerial.begin(9600); dht.begin(); // pokretanje DHT Serial.println("start prg " ); ) void loop() ( if(millis()-millis_int1 >= INTERVAL_GET_DATA) ( pos=1-pos; if(pos==0) ​​​​( // dobivanje podataka o vlažnosti iz DHT11 int humidity = dht.readHumidity (); // izlaz na monitor serijskog porta Serial.print("humidity=");Serial.println(humidity); mySerial.print("H=");mySerial.println(humidity); ) else ( // dobivanje podataka o vlažnosti iz DHT11 int temp = dht.readTemperature(); // izlaz na monitor serijskog porta Serial.print("temperature=");Serial.println(temp); mySerial.print("T=");mySerial .println(temp) ; ) // početak intervala brojanja millis_int1=millis(); ) )

      Provjerimo na Android uređaju prijem podataka koje Arduino šalje preko HC05 bluetooth modula. Instalirajmo program Bluetooth terminal na Android uređaj. U programu ćemo uspostaviti vezu s HC05 modulom:


      I promatramo prijem podataka koji dolaze iz Arduina kroz HC05 modul:


      I izlaz podataka na monitor serijskog porta Arduino IDE:


      Često postavljana pitanja FAQ

      1. Nema odgovora modula na AT naredbe
      • Provjerite je li modul ispravno spojen;
      • Provjerite spojeve KEY pina (ili pina 34) modula na 3,3 V;
      • Provjerite postavke za serijski port (brzina 38400 bauda, ​​možda za module različitih proizvođača isključiti).
      2. Android uređaj ne može se spojiti na bluetooth modulHC05
      • Provjerite priključak modula na napajanje; LED na modulu bi trebao brzo treptati (traženje mreže);
      • Provjerite je li pin KEY modula (ili pin 34) isključen iz 3,3 V;
      • Postavite podređenu ulogu pomoću AT naredbi (AT+ROLE=0).
      3. Podaci se ne prenose naAndroid uređaj
      • Provjerite je li HC05 bluetooth modul ispravno spojen na Arduino ploču;
      • Brzina prijenosa podataka Arduino podaci i HC05 mora odgovarati jednom postavljenom pomoću AT+UART AT naredbe.