Povezivanje bluetooth hc 05 na arduino. Arduino lekcije: upravljanje uređajima sa pametnog telefona za lutke. Povežite se sa pametnog telefona koristeći Bluetooth terminal

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

Prvo, hajde da shvatimo šta je bluetooth.

bluetooth(od engleskih riječi blue - plavo i zub - zub; izgovara se /bluːtuːθ/), bluetooth- specifikacija proizvodnje bežične lične mreže ( Bežična lična mreža, WPAN). Bluetooth omogućava razmjenu informacija između uređaja kao što su personalni računari(stoni, džepni, laptopovi), Mobiteli, štampači, digitalni fotoaparati, miševi, tastature, džojstici, slušalice, slušalice na pouzdanoj, besplatnoj, univerzalno dostupnoj radio frekvenciji za komunikaciju kratkog dometa. Bluetooth omogućava ovim uređajima da komuniciraju kada su u radijusu do 10 m jedan od drugog (domet uvelike varira u zavisnosti od prepreka i smetnji), čak i u različitim prostorijama.

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) mašine i računara ili telefona ili tableta i laptopa.

Pošto koristim grbl firmware na arduino platformi za kontrolu CNC-a, na mašinu ćemo povezati bluetooth modul pogodan za arduino, odnosno HC-06 bluetooth modul.

Prije povezivanja Bluetooth modula na Arduino, morate biti sigurni da Bluetooth modul i Arduino rade istom brzinom kao i COM port.

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

Dakle, moramo promijeniti brzinu porta na samom Bluetooth modulu.

Za konfiguraciju Bluetooth modula postoje posebni AT komande, sa kojim možemo postaviti potrebne parametre modula.

Koristeći AT komande možemo promijeniti brzinu COM porta ili promijeniti ime Bluetooth uređaji ili saznajte ili promijenite PIN kod za uparivanje.

Da bismo povezali Bluetooth modul sa računarom za unos AT komandi, trebat će nam FTDI programator (link do 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 povezivanja, 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 komanda Odziv modula Komentar
AT uredu Koristi se za testiranje komunikacija, po pravilu, prije izvođenja bilo koje operacije, ova naredba se prvo koristi za testiranje komunikacija.
AT+BAUD1 OK ili OK1200 Postavlja brzinu prijenosa podataka na 1200 baudova
AT+BAUD2 OK ili OK2400 Postavlja brzinu prijenosa na 2400 baudova
AT+BAUD3 OK ili OK4800 Postavlja brzinu prijenosa na 4800 baudova
AT+BAUD4 OK ili OK9600 Postavlja brzinu prijenosa na 9600 baudova
AT+BAUD5 OK ili OK19200 Postavlja brzinu prijenosa na 19200 baudova
AT+BAUD6 OK ili OK38400 Postavlja brzinu prijenosa na 38400 baudova
AT+BAUD7 OK ili OK57600 Postavlja brzinu prijenosa na 57600 baudova
AT+BAUD8 OK ili OK115200 Postavlja brzinu prijenosa na 115200 baudova
AT+BAUD9 OK ili OK230400 Postavlja brzinu prijenosa na 230400 baudova
AT+BAUDA OK ili OK460800 Postavlja brzinu prijenosa na 460800 baudova
AT+BAUDB OK ili OK921600 Postavlja brzinu prijenosa na 921600 baudova
AT+BAUDC OK ili OK1382400 Postavlja brzinu prijenosa na 1382400 baudova
AT+NAME +NAME=test Vraća trenutno ime 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+VERSION +VERSION=Firmver 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”
AT+RESET +RESET OK
AT+HELP ——– Vraća listu svih dostupnih AT komandi

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

I pošto koristim CNC shield v 3.0. Također ću dati dijagram povezivanja za to.

Neću kreirati svoj dijagram, već ću ga uzeti iz jednog članka. Neka mi oprosti njegov tvorac.

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

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

Ali odlučio sam da ga koristim direktno bez otpornika, da vidimo koliko će modul izdržati, napravit ćemo nekakav crash test.

Za upravljanje CNC (CNC) mašinom sa telefona ili tableta koristio sam program “Grbl controller”, besplatan je i prilično multifunkcionalan. U videu ispod ukratko sam pokazao kako se mašina kontroliše iz ovog programa.

Ali ako se povežete sa računara, onda postoji nijansa; prilikom uparivanja veze sa modulom, dva novi COM luka. Za mene su to COM6 i COM7. Dakle, jedan od njih se koristi za slanje podataka, a drugi za prijem. Stoga, nema potrebe da se plašite i samo pokušajte da se povežete sa jednim; ako se ništa ne dogodi, povežite se sa drugim.

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

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

Jedan od najpopularnijih i najrasprostranjenijih metoda razmjene podataka putem Bluetooth-a .

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

trebat će nam:

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

Povežite Bluetooth Modul za Arduino mikrokontroler je najpogodniji pomoću ožičenja MALE-MAMALE.

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

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

Sada morate zapisati testni kod programa:

Prilikom učitavanja skice potrebno je da Bluetooth modul bude isključen sa arduino mikrokontrolera. U suprotnom, skica neće biti snimljena jer je veza preko Bluetooth-a Modul komunicira preko istih RX i TX portova kao i 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čite LED ako (val == "1") ( digitalWrite(LED, HIGH); ) // Kada je znak "0", isključite LED ako (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 Bluetooth-a na vaš telefon

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

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

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



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, biramo naš bluetooth modul HC-06 i spajamo se na njega.

Vrijeme je da isprobate projekat na djelu. Upisujemo broj "0" u terminal i šaljemo. LED L koja se nalazi na arduino ploči pored pina 13 bi se trebala ugasiti. Sada šaljemo broj "1" kroz terminal i L LED bi trebao zasvijetliti.

Demonstracija rada:


Zadaća:

  • Promijenite skicu tako da LED svijetli i ugasi se koristeći istu komandu, na primjer “G”.
  • Dovršite skicu i naučite je da pretvara tekstualne podatke koji dolaze preko bluetooth-a u digitalne podatke i implementirajte dimer, upalite LED pomoću PWM-a, pri datoj svjetlini od 0 do 254 koja dolazi preko bluetooth-a.

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

bluetooth je industrijska specifikacija za bežične osobne mreže koja omogućava 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 vam omogućavaju 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 ispravna podešavanja obezbediti prenos podataka na takav način da programer koji piše kod piše algoritam kao da radi sa žičanim UART interfejsom. Stoga pisanje koda postaje što je moguće praktičnije i zato je ova linija modula stekla ogromnu popularnost među programerima početnicima, a ne samo.

Dakle, ti i ja, nemojmo zaostajati za njima i da se malo odmorimo mrežni protokoli i proučavati takav modul. Bilo je i dosta ličnih zahtjeva, kao i u javnim razgovorima, da ne bih zaobilazio takve module i pisao lekcije koristeći ih.

Moduli imaju sljedeće glavne karakteristike:

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

Također, uz ove karakteristike, vrijedi napomenuti da modul ima puno nogu na brodu, što mu omogućava da se koristi u širem rasponu. Pogledajmo pinout dijagram modula

Ovdje vidimo GPIO, SPI, USB, PCM pinove.

Istina, za sada ćemo raditi samo s USART sučeljem, uz pomoć kojeg nećemo samo prenijeti neke korisne podatke, već ćemo 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 imam sve (pogled odozgo i pogled odozdo)

Namjena nogu je naznačena na dnu ploče, shvatit ćemo ih kada spojimo modul.

Drugo, nećemo raditi s ostatkom brojnih kontakata jer vam svaki firmver to ne dozvoljava.

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

Modul je konfigurisan za dalji rad sa podacima korišćenjem AT komandi. Mislim da smo svi manje-više upoznati sa tim komandama, malo smo ih upoznali kada smo radili sa Wi-Fi modulom. Naravno, ove komande su različite za sve uređaje i zato ću priložiti dokument sa kompletnom listom komandi 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 prevođenjem naredbi, već ćemo proučavati samo one naredbe koje ćemo morati koristiti. Za sada njihova lista neće biti tako široka, ali kasnije ćemo se na ove module vraćati, nadam se, više puta, a onda ćemo proširiti vidike u poznavanju ovog modula. U međuvremenu ćemo dati samo kratak obilazak modula. Naravno, probaćemo i na poslu, ne bez toga.

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

Povezat ćemo se prema sljedećem dijagramu

TTL-USB adapter Modul HC-05

VCC VCC

GND GND

TXD RXD

RXD TXD

U praksi će to izgledati otprilike ovako

Hajde da povežemo adapter sa računarom; neću vam govoriti kako da radite sa adapterima ovog tipa, već radimo sa njima stalno. Pokrenimo terminalski program, koristit ću program CoolTerm, pošto ima fleksibilnije postavke za prijenos podataka sa tastature, a za unos komandi treba nam da svaki red tokom prijenosa završava sa povlačenjem linije i kodom za povratak.

Idemo na postavke programa i prvo konfigurirajte port

Ova brzina od 38400 je odabrana jer modul radi upravo tom brzinom kada prima AT komande.

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

Prvo dugme služi za završetak poslanih komandi sa znakovima za pomak u red i za povratak, a drugo da možemo videti i naše unete komande nakon što ih unesemo u prozoru prijemnog terminala.

Sačuvajmo podešavanja i pokušamo da se povežemo. Ako je sve uspješno, prekidamo vezu, jer je sada naš modul u načinu prijenosa podataka, a ako još nije konfiguriran, onda najvjerovatnije ne znamo ni njegovu adresu ili njegove postavke. O pronalaženju modula u ovaj način rada Na to ukazuje brzo treptanje plave LED diode, tako da je potrebno modul nekako staviti u stanje odašiljanja AT komandi.

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že imati drugačije ime, ali mislim da ga ne možete zbuniti. Spojimo žicu ovako i ovako

Povežimo ovu žicu na pozitivnu snagu (sa VCC nogom)

I, bez otpuštanja kontakta, spojite adapter na USB port kompjutera i nakon nekog vremena (za sekundu-dvije) odspojimo naš KEY kontakt sa VCC kontakta uklanjanjem žice. Modul će morati da se prebaci u režim primanja AT komandi, što će biti naznačeno veoma sporom brzinom treptanja LED-a.

Idemo na terminalski program, spojimo se na port i pokušamo poslati naredbu AT, na koje nam modul mora odgovoriti "UREDU"

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

Da se ne bismo zabunili sa postavkama koje je neko nekada napravio, skupimo sva podešavanja unosom naredbe " AT+ORGL". Postavke će se morati resetirati na sljedeće parametre:

  • Tip uređaja: 0
  • Šifra upita: 0x009e8b33
  • Modulski način rada: Slave Mod
  • Način povezivanja: Povežite se na navedeni Bluetooth uređaj
  • Serijski parametar: Brzina prijenosa: 38400 bita/s; Stop bit: 1 bit; Bit parnosti: nema.
  • Lozinka: “1234”
  • Naziv uređaja: “H-C-2010-06-01”

Samo postavke se neće odmah primijeniti. Morate ponovo učitati modul. Zgodno je to učiniti unosom naredbe " AT+RESET“, kao odgovor na što će se modul ponovo pokrenuti i vratiti u način prijenosa podataka i za sada neće moći primati komande. Da bi ih prihvatio, izvršit ćemo iste radnje kao gore kako bi se modul ponovo prebacio u način primanja AT komandi. 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+VERSION?“, na koje će modul morati odgovoriti ovako nešto

Ako firmver nije niži od ove verzije, onda možemo biti sigurni da ovaj modul sa takvim firmverom može raditi u master modu.

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

Koristit ćemo ovu adresu za identifikaciju našeg uređaja na glavnom uređaju. Uzećemo najobičniji pametni telefon kao glavni uređaj, ali to će doći nešto kasnije. I dalje moramo da igramo dobro sa timovima.

Zatražimo i naziv uređaja pomoću naredbe " AT+NAME?“, na koji mnogi moduli, uključujući i moj, reaguju samo ako postoji visok nivo na KEY nozi, odnosno kada je žica spojena. Uradimo to

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

Provjerimo da li se ime promijenilo, samo ne zaboravite na visoki nivo na KEY nozi

Ime je dobro primijenjeno.

Provjerimo lozinku komandom " AT+ PSWD?«

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

Sada saznajemo tip uređaja (slave ili master) pomoću naredbe “ AT+ ROLE?«

0 znači rob. Tip se također može promijeniti u bilo kojem trenutku. Ali ovo nam za sada ne treba, jer ćemo sa uređajem raditi kao rob.

Resetirajte uparene uređaje naredbom “ AT+RMAAD«

Sada ćemo saznati postavke USART sučelja naredbom " AT+ UART?«

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

Ova tabela sadrži moguće opcije USART postavke

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

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

Ponovo učitajmo modul naredbom " AT+RESET“, nakon čega će se modul prebaciti u način prijenosa podataka.

Konfigurirajmo port u terminalskom programu na zadata brzina i povežite se s njim

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

Ali nemojmo očajavati. Ispostavilo se da za slanje komandi modulu nije potrebno da ga stavljate u ovaj način rada. Možete omogućiti podršku za prijenos AT komandi u načinu rada podataka. Kratko vrijeme (dovoljno je manje od sekunde) dodirnemo žicu koja je spojena na KEY kontakt pozitivne magistrale modula i modul će se prebaciti u režim podrške AT-komandi. Istina, to ne možemo odrediti po prirodi treptanja LED diode, ona će jednako brzo treptati. Takođe, u režimu podrške mi komanduje, glavni uređaj neće moći da se poveže sa nama. Ali ipak, ne moramo stalno uklanjati žicu USB konektor i ponovo konfigurišite port u terminalskom programu. Ovo je već dobro. Uradimo to i uvjerimo se da će modul također prihvatiti komande, kao u načinu primanja naredbi

Da biste uklonili ovu podršku i da bi se modul mogao povezati, samo ga ponovo pokrenite naredbom “ AT+RESET". Uradimo to

Odlično! Mi već znamo nešto. U osnovi, konfigurirali smo modul za prijenos podataka u master modu.

Sada će pametni telefon koji imamo danas djelovati kao glavni uređaj. Svi koji imaju Android će to učiniti, sve dok imaju neku vrstu terminalskog programa za Bluetooth. Instalirao sam ovaj. Bilo mi je udobno

Prvo, besplatan je, ne zahtijeva kreiranje veze unaprijed, a ima i nekoliko dugmadi sa nizovima koje smo unaprijed spremili.

Hajde da preuzmemo i instaliramo program i pokrenemo ga. Pritisnite dugme SCAN i naš modul bi se trebao pojaviti na listi pronađenih uređaja

Hajde da izaberemo ovaj uređaj i bićemo odvedeni u dijalog za kreiranje para, u koji ćete morati da unesete lozinku (imamo “1234”) i da se složite klikom na dugme “OK”

Ikad razmišljao o upravljanju bilo kojim elektronskih uređaja koristeći pametni telefon? Slažem se, bilo bi super upravljati robotom ili bilo kojim drugim uređajem sa svog pametnog telefona. Nudimo jednostavnu lekciju za početnike i lutke o tome kako upravljati pametnim telefonom koristeći Arduino putem Bluetooth-a. Ako nakon ove lekcije želite bolje upoznati Arduino, možete pronaći knjige o tome.

Korak 1. Šta nam treba

Uređaji

Modul - Bluetooth modul HC 05/06
Ploča - Arduino
Dioda koja emituje svjetlost (LED)
Otpornik - 220Ω
Android uređaj

Softver

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

Korak 2. Kako funkcionira

Obično ovaj korak radimo na kraju, ali da biste razumjeli šta moramo postići, pogledajte rezultat u ovom međukorak. U nastavku smo također objavili video tutorijal korak po korak.

Korak 3. Počinjemo sa sklapanjem kruga

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

Arduino igle___________Pinovi za bluetooth modul
RX (Pin 0)__________________________TX
TX (Pin 1)__________________________RX
5V__________________________VCC
GND__________________GND

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

Nemojte povezivati ​​RX na RX i TX na TX Bluetooth izlaze na Arduino izlaze, nećete primati nikakve podatke, ovdje TX znači prijenos, RX znači prijem.

Korak 4: Učitavanje programa na Arduino

Sada treba da napišemo program i prenesemo 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 ON OFF * Coder - Mayoogh Girish * Web stranica - http://bit.do/Avishkar * Preuzmite aplikaciju: https://github.com/Mayoogh/Arduino-Bluetooth-Basic * Ovaj program vam omogućava za kontrolu LED-a na pinu 13 arduina koristeći bluetooth modul */ char data = 0; //Varijabla za pohranjivanje 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) // Šalje 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 da li je vrijednost podataka jednaka 1 digitalWrite(13, HIGH); // Ako je vrijednost 1 onda se LED pali else if(data == "0") // Provjerava da li je vrijednost podataka jednaka 0 digitalWrite(13, LOW); //Ako je vrijednost 0 onda se LED lampica isključuje ) )

Korak 5. Kako proces funkcionira

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

Kod učitan u Arduino provjerava primljene podatke i upoređuje ih. Ako se primi "1", LED se pali i gasi kada se primi "0". Otvorite monitor serijskog porta i pogledajte primljene podatke.

Korak 6. Aplikacija za Android uređaje

U ovom tutorijalu nećemo se doticati kreiranja aplikacija za Android uređaje. Aplikaciju možete preuzeti na GitHub-u.

Kako koristiti aplikaciju?

Nakon što smo se povezali preko Bluetooth-a, moramo preuzeti i instalirati aplikaciju koja će pomoću pametnog telefona :) kontrolirati našu LED diodu iz daljine. Aplikaciju možete besplatno preuzeti na Amazon.com. Povezujemo pametni telefon na Bluetooth modul HC 05/06:

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

Nakon toga instaliramo aplikaciju na naš pametni telefon. Hajde da ga otvorimo. Odaberite uređaj - odaberite Bluetooth modul sa liste (HC 05/06). Nakon uspješnog povezivanja, pritisnite tipku ON da uključite LED i tipku OFF da isključite LED. Zatim možete kliknuti na dugme “Disconnect” da biste prekinuli vezu sa Bluetooth modulom.

Ovo je bio vodič za lutke i početnike o tome kako povezati Bluetooth modul sa Arduinom. Ovaj projekat se može poboljšati i podići na viši nivo za, na primjer, kućnu automatizaciju putem kontrole pametnog telefona, 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 neophodno. Na primjer, daljinski upravljač robot na Arduinu, koji šalje podatke sa meteorološke stanice u Arudino na Internet ili na kućni server, komunikacija više uređaja međusobno. Ovdje, kao pomoć programerima uređaja, postoji mnogo vanjskih modula za organiziranje različitih tehnologija. bežičnu komunikaciju: WiFi moduli, GSM/GPRS, IR, Bluetooth, radio moduli za rad u različitim frekventnim opsezima.

Bluetooth tehnologija se koristi za prijenos podataka između dva uređaja koji su u neposrednoj blizini jedan drugom, bez potrebe za direktnom vidljivošću. Bluetooth tehnologija pruža dobru otpornost na širokopojasne smetnje, omogućavajući da više uređaja na istoj lokaciji istovremeno komuniciraju bez ometanja jedni s drugima. Vrlo široka ovu tehnologiju koristi se u telefonima, tabletima, laptopima.

Jedan od najbolja rješenja za organizaciju dvosmjerne Bluetooth komunikacije između vašeg Arduino uređaja i tableta, laptopa ili drugog Bluetooth uređaja - Bluetooth modul HC-05, koji može raditi i kao master (traži Bluetooth uređaje i inicira komunikaciju) i kao slave (slave uređaj) ).

Tehničke karakteristike modula HC05

  • Bluetooth čip: HC-05(BC417143)
  • Raspon radio frekvencija: 2,4 - 2,48 GHz
  • Snaga prenosa: 0,25–2,5 mW
  • Osetljivost: –80 dBm
  • Napon napajanja: 3,3–5 V
  • Potrošnja struje: 50 mA
  • Domet: do 10 metara
  • Interfejs: 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 - (uzemljenje).
  • TXD, RXD - UART sučelje;
  • STATE - indikator statusa;
  • KEY - kontakt za ulazak u režim programiranja.

Modul se konfiguriše u režimu programiranja slanjem AT komandi preko serijski port. Da biste ušli u režim programiranja, morate primijeniti signal visokog nivoa na KEY kontakt. Na nekim modulima ne postoji KEY pin, a umjesto toga postoji EN pin:

  • EN - uključivanje/isključivanje modula;


U ovom slučaju, da biste ušli u režim programiranja, morate primijeniti signal visokog nivoa na pin 34:


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


Trebali biste dobiti nešto poput sljedećeg:


Programiranje Bluetooth HC05 modula

Modul se konfiguriše u režimu programiranja slanjem AT komandi preko serijskog porta. Povežimo HC05 modul na Arduino ploču prema dijagramu povezivanja na slici 5. Primijenite 3.3V na KEY pin modula (ili pin 34 na ploči). Poslat ćemo AT komande sa Arduino IDE monitora serijskog porta. Učitajmo skicu sa Listinga 1 u Arduino. Trebat će nam Arduino SoftwareSerial biblioteka. Brzina UART modula u režimu programiranja je 38400 baudova, ali može se razlikovati, u ovom slučaju treba ga odabrati.

Uključi SoftwareSerial mySerial(2, 3); // specificiramo pinove rx i tx 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); // upisivanje na hardverski port ) if ( Serial .available()) ( char c = Serial.read(); // čitanje sa hardverskog porta mySerial.write(c); // pisanje na softverski port) )

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


Lista osnovnih AT komandi:

  • AT - test komanda.

Nema parametara.

Odgovor modula: OK

  • AT+VERSION? - nabavite verziju firmvera modula.

Nema parametara.

Odgovor modula: +VERSION:

Gdje Verzija firmvera Bluetooth modula.

  • AT+RESET - resetiranje postavki.

Nema parametara.

Odgovor modula: OK

  • AT+ORGL - podešavanje 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+NAME? - dobiti naziv modula.

Nema parametara.

Odgovor modula: +NAME:

Gdje Naziv Bluetooth modula.

  • AT+NAME= Postavite novo ime modula.

Parametar: Naziv Bluetooth modula.

Odgovor modula: +NAME:

OK (ili NEUSPEH)

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

Nema parametara.

Odgovor modula: + PSWD:

Gdje Pin. Podrazumevano je 1234.

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

Parametar: Pristupni kod modula.

Odgovor modula: OK (ili FAIL)

  • AT+KLASA= Podesite način rada Bluetooth modula.

Parametar: Klasa. Dokumentacija modula ne daje moguće vrijednosti ovaj parametar. Podrazumevano je postavljeno na 0. Ako namjeravate koristiti modul u master modu, vrijednost ne treba mijenjati. Ako koristite modul u slave modu, sa vrijednošću parametra jednakom 0, on je nevidljiv za uređaje koji rade Android sistem. Za vidljivost morate postaviti vrijednost parametra na 7936.

Odgovor modula: OK

  • AT+CLASS? - nabavite klasu modula.

Nema parametara.

Odgovor modula: +CLASS:

Gdje Modul class.

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

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

Nema parametara.

Odgovor modula: + IAC:

Gdje Zatražite pristupni kod.

  • AT+IAC= Postavite pristupni kod zahtjeva.

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

Odgovor modula: OK (ili FAIL)

  • AT+ROLE? - dobiti način rada modula.

Nema parametara.

Odgovor modula: +ULOGA:

Gdje Način rada Bluetooth modula:

  • 0 - rob. U ovom modu, drugi master se može povezati na modul;
  • 1 - majstor. U ovom načinu rada, modul se može sam povezati na bilo koji Bluetooth uređaj;
  • 2 - slave-petlja. Modul šalje nazad sve bajtove koji su mu poslani.
  • AT+ROLE= Podesite način rada Bluetooth modula.

Parametar: Način rada Bluetooth modula:

  • 0 - slave;
  • 1 - master;
  • 2 - rob-

Odgovor modula: OK

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

Opcije:

  • 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;
  • Paritetni bit.
  • AT+CMODE= Postavite način povezivanja Bluetooth modula.

Parametar:

  • 2 - režim slave 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 sa Bluetooth uređajem koji je naveden komandom AT+BIND;
  • 1 - modul se može povezati na bilo koji Bluetooth uređaj;
  • 2 - režim slave petlje.
  • AT+INQM= ,,Postavite opcije za traženje Bluetooth uređaja.

Opcije:

  • :
  • 0 - standardni režim zahteva;
  • 1 - zahtjev u RSSI modu;
  • Maksimalan broj uređaja koji odgovaraju na zahtjev;
  • Vreme čekanja (1–48: 1,28 sek do 61,44 sek).

Odgovor modula: OK (ili FAIL).

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

Nema parametara.

Odgovor modula: +UART: ,,

  • AT+INQ - počnite tražiti Bluetooth uređaje.

Nema parametara.

Odgovor modula je lista pronađenih uređaja.

  • AT+BIND= Povežite Bluetooth modul sa 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 sa Bluetooth modulom.

  • AT+FSAD=

    Odgovor modula: OK (ili FAIL).

    • AT+RMSAD=

      Odgovor modula: OK (ili FAIL).

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

      Odgovor modula: OK (ili FAIL).

      • AT+LINK= Povežite se na Bluetooth uređaj.

      Parametar: Adresa Bluetooth uređaja.

      Odgovor modula: OK (ili FAIL).

      Potpuna lista AT komandi se može pronaći.

      Primjer upotrebe

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

      Biće nam potrebni sledeći delovi:

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

      Sastavimo krug prikazan na slici:


      Dobijamo:


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

      H" // konstante #define DHTPIN 8 // pin za povezivanje 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 SoftwareSerial.h biblioteku #include SoftwareSerial mySerial(2, 3); // odredimo rx i tx pinove respektivno void setup() ( Serial.begin(9600); // pokreni serijski port mySerial.begin(9600); dht.begin(); // pokreni DHT Serial.println("start prg " ); ) void loop() ( if(millis()-millis_int1 >= INTERVAL_GET_DATA) ( pos=1-pos; if(pos==0) ​​( // dobijanje 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. Hajde da instaliramo program Bluetooth Terminal na Android uređaj. U programu ćemo uspostaviti vezu sa HC05 modulom:


      I posmatramo prijem podataka koji dolaze iz Arduina preko HC05 modula:


      I izlaz podataka na Arduino IDE monitor serijskog porta:


      Često postavljana pitanja FAQ

      1. Nema odgovora od modula na AT komande
      • Provjerite je li modul ispravno povezan;
      • Provjerite spojeve KEY pina modula (ili pina 34) na 3,3V;
      • Provjerite postavke za serijski port (brzina 38400 boda, možda za module različitih proizvođača ugasiti).
      2. Android uređaj se ne može povezati na bluetooth modulHC05
      • Proverite vezu modula sa napajanjem; LED na modulu treba brzo da treperi (pretraga mreže);
      • Proverite da li je pin KEY modula (ili pin 34) isključen sa 3.3V;
      • Postavite slave ulogu koristeći AT naredbe (AT+ROLE=0).
      3. Podaci se ne prenose naAndroid uređaj
      • Provjerite je li HC05 bluetooth modul ispravno povezan na Arduino ploču;
      • Baud rate Arduino podaci i HC05 mora odgovarati jednom skupu pomoću AT+UART AT naredbe.