Povezovanje bluetooth hc 05 z arduinom. Lekcije Arduino: upravljanje naprav s pametnega telefona za lutke. Povežite se iz pametnega telefona s terminalom Bluetooth

Bluetooth piščalka za računalnik: http://ali.pub/2jfj3y

Najprej ugotovimo, kaj je bluetooth.

Bluetooth(iz angleških besed blue - moder in tooth - zob; izgovorjeno /bluːtuːθ/), bluetooth- proizvodna specifikacija brezžičnega osebnega omrežja ( Brezžično osebno omrežje, WPAN). Bluetooth omogoča izmenjavo informacij med napravami kot npr osebni računalniki(namizni, žepni, prenosni računalniki), Mobilni telefon, tiskalniki, digitalni fotoaparati, miške, tipkovnice, igralne palice, slušalke, slušalke z mikrofonom na zanesljivi, brezplačni, univerzalno dostopni radijski frekvenci za komunikacijo kratkega dosega. Bluetooth omogoča tem napravam, da komunicirajo, ko so v radiju do 10 m druga od druge (doseg se zelo razlikuje glede na ovire in motnje), tudi v različnih prostorih.

Zdaj ko vemo, da se bluetooth uporablja za gradnjo omrežij in izmenjavo podatkov med napravami, bomo z njim povezali CNC (CNC) stroj in računalnik ali telefon ali tablico in prenosnik.

Ker uporabljam vdelano programsko opremo grbl na platformi arduino za krmiljenje CNC-ja, bomo na stroj povezali bluetooth modul, primeren za arduino, in sicer bluetooth modul HC-06.

Preden priključite modul Bluetooth na Arduino, se morate prepričati, da modul Bluetooth in Arduino delujeta z enako hitrostjo kot vrata COM.

Če uporabljate vdelano programsko opremo grbl 0.8, vam ni treba ničesar spreminjati, če pa grbl 0.9 in višje, bo hitrost vrat Arduino COM postala 115200, privzeta hitrost na modulu pa je 9600.

Zato moramo spremeniti hitrost vrat na samem modulu Bluetooth.

Za konfiguracijo modulov Bluetooth obstajajo posebni AT ukazi, s katerim lahko nastavimo potrebne parametre modula.

Z ukazi AT lahko spremenimo hitrost COM vrat ali spremenimo ime naprave Bluetooth ali poiščite ali spremenite kodo PIN za seznanjanje.

Za povezavo Bluetooth modula z računalnikom za vnos AT ukazov potrebujemo programator FTDI (povezava do njega na začetku članka). Mislim, da je shema povezave tukaj nepotrebna. Priključiti morate gnd na gnd, 5v na 5v, rx na tx in tx na rx.

Po povezavi bomo potrebovali program HMComAssistant za vnos AT ukazov in programiranje našega modula. Prenos: https://yadi.sk/d/eVzPmnh63Wab5R

No, tukaj bom dal nekaj ukazov AT za spreminjanje nastavitev modula Bluetooth:

ukaz AT Odziv modula Komentar
AT v redu Praviloma se uporablja za testiranje komunikacij, preden izvedete katero koli operacijo, ta ukaz pa se najprej uporabi za testiranje komunikacij.
PRI+BAUD1 OK ali OK1200 Nastavi hitrost prenosa podatkov na 1200 baudov
PRI+BAUD2 OK ali OK2400 Nastavi hitrost prenosa na 2400 baud
PRI+BAUD3 OK ali OK4800 Nastavi hitrost prenosa na 4800 baud
PRI+BAUD4 OK ali OK9600 Nastavi hitrost prenosa na 9600 baud
PRI+BAUD5 OK ali OK19200 Nastavi hitrost prenosa na 19200 baud
PRI+BAUD6 OK ali OK38400 Nastavi hitrost prenosa na 38400 baud
PRI+BAUD7 OK ali OK57600 Nastavi hitrost prenosa na 57600 baud
PRI+BAUD8 OK ali OK115200 Nastavi hitrost prenosa na 115200 baud
PRI+BAUD9 OK ali OK230400 Nastavi hitrost prenosa na 230400 baud
AT+BAUDA OK ali OK460800 Nastavi hitrost prenosa na 460800 baud
PRI+BAUDB OK ali OK921600 Nastavi hitrost prenosa na 921600 baud
AT+BAUDC OK ali OK1382400 Nastavi hitrost prenosa na 1382400 baud
AT+IME +NAME=test Vrne trenutno ime modula
AT+NAMEiarduino_BLU +NAME=test OK Nastavi novo ime modula »test«
AT+PIN +PIN=000000 Vrne trenutno geslo, v tem primeru je geslo “000000”
AT+PIN123456 +PIN=123456 OK Nastavite novo geslo, v tem primeru je geslo “123456”
AT+RAZLIČICA +VERSION=Firmware V3.0.6,Bluetooth V4.0 LE Vrne različico vdelane programske opreme, v tem primeru je geslo »Firmware V3.0.6,Bluetooth V4.0 LE«
NA+PONAST +PONASTAVI OK
NA+POMOČ ——– Vrne seznam vseh razpoložljivih ukazov AT

Po spremembi hitrosti com vrat in nastavitvi kode PIN za seznanjanje. (privzeta koda PIN za seznanjanje je "1234", povežimo modul z Arduino.

In ker uporabljam CNC shield v 3.0. Priskrbel bom tudi diagram povezave zanj.

Ne bom ustvaril svojega diagrama, ampak ga bom vzel iz enega članka. Naj mi njen stvarnik odpusti.

Diagram zagotovo ni zelo gladek, vendar je po mojem mnenju povsem razumljiv.

Zakaj se torej upori uporabljajo v vezju? Arduino ima 5-voltno logiko, kar pomeni, da Arduino pošilja napetost 5 V na vse svoje izhode. Toda na modulu piše LEVEL 3.3v, kar pomeni, da Bluetooth zahteva 3.3V, ne pa 5V. Zato so povezani upori, ki znižajo napetost in preprečijo okvaro modula Bluetooth.

Sem se pa odločil za direktno uporabo brez uporov, da vidimo koliko časa bo modul zdržal, bomo naredili kakšen crash test.

Za krmiljenje CNC (CNC) stroja iz telefona ali tablice sem uporabil program "Grbl controller", je brezplačen in precej večnamenski. V spodnjem videu sem na kratko pokazal, kako se stroj upravlja iz tega programa.

Če pa se povežete iz računalnika, potem obstaja odtenek; pri seznanjanju povezave z modulom sta dva nov COM pristanišče. Zame sta to COM6 in COM7. Tako se eden od njih uporablja za pošiljanje podatkov, drugi pa za prejemanje. Zato se ni treba bati in se samo poskusite povezati z enim, če se nič ne zgodi, se povežite z drugim.

Če pa kaj ni jasno, sem to jasno pokazal v videu:

Zelo pogosto se v vaših projektih pojavi potreba po daljinskem upravljanju ali prenosu podatkov iz vaših telefonskih pripomočkov.

Eden najbolj priljubljenih in razširjenih načinov izmenjave podatkov preko Bluetootha .

Danes bomo pogledali preprosti primeri kako povezati bluetooth modul na Arduino in konfigurirajte daljinec iz telefona.

Potrebovali bomo:

  • Komplet žic MALE-MAMA
  • HC-06 Bluetooth

Povežite Bluetooth Modul za mikrokontroler Arduino je najprimernejši z uporabo MALE-MALE ožičenja.

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

Bodite previdni, morate se povezati TX -> RXD ,RX -> TXD .

Zdaj morate zapisati testno kodo programa:

Pri nalaganju skice mora biti Bluetooth modul odklopljen od mikrokrmilnika arduino. V nasprotnem primeru se skica ne bo posnela zaradi povezave Bluetooth Modul komunicira prek istih vrat RX in TX kot 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(); / / Ko je znak "1", vklopite LED if (val == "1") ( digitalWrite(LED, HIGH); ) // Ko je znak "0", izklopite LED if (val == "0") ( digitalWrite(LED, LOW ); ) ) )

Po skici je posnet in Bluetooth Modul je povezan z Arduino, lahko nadaljujete na naslednji korak.

Povezovanje Bluetooth s telefonom

Priporočljivo je, da kot vir napajanja za arduino ne uporabljate USB, temveč zunanji napajalnik 9 V.

  1. V telefonu vklopite Bluetooth in poiščite nove naprave
  2. Najdemo na seznamu motenj " HC-06" in se povežite z njim.
  3. Telefon bo zahteval kodo PIN. morate vnesti " 1234 " ali " 0000 "
  4. Hura. Naprava je povezana.

Zdaj morate terminal bluetooth prenesti v svoj telefon. Ogledali si bomo primer platforme Android.



Namestite lahko različne bluetooth terminale, praviloma se razlikujejo le v različnih izvedbah, funkcionalnost se ne spremeni. Najdete lahko tudi terminal za izdelke iOS.

Ko smo terminal namestili, ga zaženemo, izberemo naš bluetooth modul HC-06 in se z njim povežemo.

Čas je, da projekt preizkusimo v akciji. V terminal zapišemo številko "0" in pošljemo. LED L, ki se nahaja na plošči arduino poleg nožice 13, bi morala ugasniti. Zdaj pošljemo številko "1" skozi terminal in L LED mora zasvetiti.

Demonstracija dela:


Domača naloga:

  • Spremenite skico tako, da LED zasveti in ugasne z istim ukazom, na primer "G".
  • Dokončajte skico in ga naučite pretvoriti besedilne podatke, ki prihajajo prek bluetootha, v digitalne podatke in implementirati dimer, prižge LED s pomočjo PWM, pri določeni svetlosti od 0 do 254, ki prihajajo prek bluetootha.

Danes se bomo seznanili s poceni modulom za brezžični prenos podatkov prek Bluetooth.

Bluetooth je industrijska specifikacija za brezžična osebna omrežja, ki omogoča brezžični prenos podatkov med številnimi napravami.

Naš modul se imenuje HC-05. To je eden od predstavnikov linije podobnih modulov HC-03 - HC-09.

Ti moduli vam omogočajo brezžičen prenos podatkov, ne da bi razmišljali o tem, kako na splošno deluje protokol Bluetooth, o njegovih poljih in drugih podrobnostih. Ti moduli so pravilne nastavitve zagotoviti prenos podatkov na način, da programer, ki piše kodo, zapiše algoritem, kot da bi delal z žičnim vmesnikom UART. Zato je pisanje kode čim bolj priročno in zato je ta linija modulov pridobila tako izjemno priljubljenost med programerji začetniki in ne samo.

Torej ti in jaz tudi ne zaostajajmo za njimi in si vzemimo malo oddiha omrežni protokoli in študij takega modula. Bilo je tudi veliko osebnih prošenj, pa tudi v javnih klepetalnicah, da ne bi zaobšel takšnih modulov in pisal lekcije z njihovo uporabo.

Moduli imajo naslednje glavne značilnosti:

  • Bluetooth čip – BC417143 proizvodnja družbeno odgovorno podjetje,
  • protokol za prenos podatkov - Bluetooth 2.0+EDR,
  • razred 2, ki ustreza prenosu podatkov v radiju do 10 m,
  • Podpora za profil serijskih vrat ( SPP), ki zagotavlja združljivost z vsemi napravami, ki podpirajo ta profil,
  • obstojni flash pomnilnik s kapaciteto 8 MB,
  • radijski kanal s frekvenco 2,4 - 2,4835 MHz,
  • USB Host 1.1/2.0 vmesnik,
  • Vmesnik UART z nastavljivo hitrostjo prenosa.

Prav tako je poleg teh lastnosti vredno omeniti, da ima modul veliko nog na krovu, kar omogoča njegovo uporabo v širšem obsegu. Poglejmo shemo razporeditve priključkov modula

Tukaj vidimo zatiče GPIO, SPI, USB, PCM.

Res je, za zdaj bomo delali samo z vmesnikom USART, s pomočjo katerega ne bomo samo prenesli nekaj uporabnih podatkov, ampak tudi konfigurirali naš modul.

To bomo storili najprej zato, ker bodo naši moduli istega tipa (imam jih kar 4!), V katerih je modul HC-05 spajkan na drugo ploščo, na kateri je samo 6 kontaktov usmerjenih navzven. Tako jih imam vse (pogled od zgoraj in od spodaj)

Namen nogic je naveden na dnu plošče, ugotovili ga bomo, ko priklopimo modul.

Drugič, ne bomo delali s preostalimi številnimi stiki, ker tega ne omogoča vsaka vdelana programska oprema.

Na splošno je izbira padla na HC-05 tudi zato, ker ta modul Popolnoma nastavljiv za glavno in podrejeno delovanje.

Modul je konfiguriran za nadaljnje delo s podatki z uporabo ukazov AT. Mislim, da vsi bolj ali manj poznamo, kaj so ti ukazi, malo smo jih spoznali, ko smo delali z modulom Wi-Fi. Seveda so ti ukazi različni za vse naprave, zato bom na dnu strani priložil dokument s popolnim seznamom ukazov. Prav tako je enostavno najti vire na internetu, kjer je opis teh ukazov preveden v ruščino in obstaja celo nekaj primerov njihove uporabe. Tu se ne bomo ukvarjali s popolnim prevodom ukazov, preučili bomo samo tiste ukaze, ki jih bomo morali uporabiti. Za zdaj njihov seznam ne bo tako širok, kasneje pa se bomo k tem modulom vrnili, upam, večkrat, nato pa bomo razširili svoja obzorja v poznavanju tega modula. V tem času bomo le na kratko predstavili modul. Seveda bomo poskusili v službi, ne brez tega.

Za zdaj povežimo naš modul z adapterjem TTL-USB, ki ga nato povežemo z osebnim računalnikom.

Povezali se bomo po naslednjem diagramu

TTL-USB adapterski modul HC-05

VCC VCC

GND GND

TXD RXD

RXD TXD

V praksi bo to izgledalo nekako takole

Povežimo adapter z računalnikom, ne bom vam povedal, kako delati s tovrstnimi adapterji, z njimi že delamo ves čas. Zaženemo terminalski program, jaz bom uporabil program CoolTerm, saj ima bolj prilagodljive nastavitve za prenos podatkov s tipkovnice, za vnos ukazov pa potrebujemo, da se vsaka vrstica med prenosom konča s kodo za pomik vrstice in vrnitev v prvi vrstico.

Pojdimo v nastavitve programa in najprej konfiguriramo vrata

Ta hitrost 38400 je bila izbrana zato, ker modul deluje natanko s to hitrostjo, ko sprejema ukaze AT.

Zdaj izberite element na levi Prejeti in tam preklopite en gumb in vklopite drugega

Prvi gumb je namenjen zaključku poslanih ukazov s pomikom v vrstico in znakom za vračanje na začetek, drugi pa zato, da lahko svoje vnesene ukaze po vnosu v okno sprejemnega terminala tudi vidimo.

Shranimo nastavitve in se poskusimo povezati. Če je vse uspešno, potem prekinemo povezavo, saj je zdaj naš modul v načinu prenosa podatkov in če še ni konfiguriran, potem najverjetneje ne poznamo niti njegovega naslova ali njegovih nastavitev. O iskanju modula v ta način Na to opozarja hitro utripanje modre LED diode, zato moramo modul nekako spraviti v stanje oddajanja AT ukazov.

Da bi to naredili, bomo zdaj odklopili adapter iz vrat USB in priključili žico na nogo modula HC-05 KLJUČ. Za nekatere ima morda drugačno ime, vendar mislim, da ga ne morete zamenjati. Povežimo žico tako in tako

Priključimo to žico na pozitivno moč (z nogo VCC)

In, ne da bi sprostili kontakt, priključite adapter na vrata USB računalnik in čez nekaj časa (v sekundi ali dveh) odklopimo naš kontakt KEY od kontakta VCC tako, da odstranimo žico. Modul bo moral preklopiti v način sprejemanja AT ukazov, kar bo prikazano z zelo počasnim utripanjem LED.

Pojdimo v terminalski program, povežimo se z vrati in poskusimo poslati ukaz AT, na kar nam mora odgovoriti modul "V REDU"

Modul se je odzval, kar pomeni, da je vse pravilno.

Da se ne bi zamenjali z nastavitvami, ki jih je nekoč naredil nekdo, zberimo vse nastavitve z vnosom ukaza " AT+ORGL". Nastavitve bo treba ponastaviti na naslednje parametre:

  • Vrsta naprave: 0
  • Koda povpraševanja: 0x009e8b33
  • Način dela modula: Slave Mode
  • Način povezave: Povežite se z navedeno napravo Bluetooth
  • Serijski parameter: Hitrost prenosa: 38400 bitov/s; Stop bit: 1 bit; Paritetni bit: Brez.
  • Geslo: “1234”
  • Ime naprave: »H-C-2010-06-01«

Samo nastavitve ne bodo uporabljene takoj. Ponovno morate naložiti modul. To je priročno storiti z vnosom ukaza " NA+PONAST“, v odgovor na kar se bo modul znova zagnal in prešel nazaj v način prenosa podatkov ter za zdaj ne bo mogel prejemati ukazov. Da bi jih sprejel, bomo izvedli enaka dejanja kot zgoraj, tako da bo modul ponovno preklopil v način prejemanja ukazov AT. Obstaja še en način, vendar ga zaenkrat ne bomo uporabili.

Zdaj pa preverimo nekaj parametrov našega modula.

Če želite izvedeti različico vdelane programske opreme, vnesite ukaz " V+RAZLIČICA?«, na kar bo moral modul odgovoriti nekako takole

Če vdelana programska oprema ni nižja od te različice, smo lahko prepričani, da ta modul s takšno vdelano programsko opremo lahko deluje v glavnem načinu.

Poiščite naslov naprave z ukazom " AT+ADDR?«

Ta naslov bomo uporabili za identifikacijo naše naprave na glavni napravi. Za glavno napravo bomo vzeli najbolj navaden pametni telefon, vendar bo to prišlo malo kasneje. Moramo še dobro igrati z ekipami.

Zahtevajmo tudi ime naprave z ukazom " AT+IME?“, na katerega se številni moduli, vključno z mojim, odzovejo le, če je na nogi KEY visok nivo, torej ko je žica priključena. Naredimo to

Poskusimo spremeniti tudi to ime, saj ni zelo priročno; za to vnesite ukaz »AT+NAME: Želeno_ime«. Ta ukaz lahko vnesete brez visoke ravni na zatiču KEY

Preverimo, ali se je ime spremenilo, samo ne pozabite na visoko raven na nogi KEY

Ime se dobro uporablja.

Preverimo geslo z ukazom " AT+ PSWD?«

Na enak način kot ime lahko spremenite geslo.

Zdaj ugotovimo vrsto naprave (slave ali master) z ukazom " PRI+ VLOGA?«

0 pomeni suženj. Vrsto lahko tudi kadarkoli spremenite. A tega za zdaj ne potrebujemo, saj bomo z napravo delali kot suženj.

Ponastavite seznanjene naprave z ukazom “ AT+RMAAD«

Zdaj pa ugotovimo nastavitve vmesnika USART z ukazom " AT+ UART?«

Te nastavitve pomenijo: 38400 kbps, 1 stop bit in brez paritete.

Ta tabela vsebuje možne možnosti nastavitve USART

Spremenimo na primer hitrost prenosa z ukazom " AT+UART=115200,0,0«

Samo te nastavitve bodo začele veljati po ponovnem zagonu modula in bodo pomembne le za način prenosa podatkov; za način prenosa ukazov AT modulu bodo enake nastavitve ostale pri hitrosti 38400.

Ponovno naložimo modul z ukazom " NA+PONAST“, po katerem bo modul preklopil v način prenosa podatkov.

Konfigurirajmo vrata v terminalskem programu za dano hitrostjo in se poveži z njim

Poskusimo vnesti ukaz, na katerega se naš modul ne bo odzval, ker način ni enak

A ne obupajmo. Izkazalo se je, da ga za pošiljanje ukazov modulu ni treba postaviti v ta način. Omogočite lahko podporo za prenos ukazov AT v podatkovnem načinu. Za kratek čas (zadostuje manj kot sekunda) se dotaknemo žice, ki je povezana s kontaktom KEY pozitivnega vodila modula in modul preklopi v način podpore AT-ukazov. Res je, tega ne moremo določiti po naravi utripanja LED, utripala bo prav tako hitro. Tudi v načinu ukazne podpore se glavna naprava ne bo mogla povezati z nami. A kljub temu nam ni treba nenehno odstranjevati žice iz USB priključek in znova konfigurirajte vrata v terminalskem programu. To je že dobro. Naredimo to in poskrbimo, da bo modul tudi sprejemal ukaze, kot v načinu prejemanja ukazov

Če želite odstraniti to podporo in se modul lahko poveže, ga preprosto znova zaženite z ukazom “ NA+PONAST". Naredimo to

Super! Nekaj ​​že vemo. V bistvu smo modul konfigurirali za prenos podatkov v glavnem načinu.

Zdaj bo pametni telefon, ki ga imamo danes, deloval kot glavna naprava. Vsakdo z Androidom bo ustrezal, če ima nekakšen terminalski program za Bluetooth. Inštaliral sem tega. Zdelo se mi je udobno

Prvič, brezplačen je, ne zahteva vnaprejšnjega ustvarjanja povezave in ima tudi več gumbov z nizi, ki smo jih vnaprej shranili.

Prenesimo in namestimo program ter ga zaženimo. Pritisnite gumb SCAN in naš modul bi se moral pojaviti na seznamu najdenih naprav

Izberimo to napravo in preusmerjeni bomo v pogovorno okno za ustvarjanje para, v katerem boste morali vnesti geslo (imamo »1234«) in se strinjati s klikom na gumb »V redu«

Ste kdaj razmišljali o upravljanju katere koli elektronske naprave z uporabo pametnega telefona? Strinjam se, da bi bilo zelo kul upravljati robota ali katero koli drugo napravo s svojega pametnega telefona. Ponujamo preprosto lekcijo za začetnike in telebane o tem, kako upravljati pametni telefon z uporabo Arduina prek Bluetootha. Če želite po tej lekciji bolje spoznati Arduino, lahko najdete knjige o njem.

Korak 1. Kaj potrebujemo

Naprave

Modul - Bluetooth modul HC 05/06
Plošča - Arduino
Svetleča dioda (LED)
Upor - 220Ω
naprava Android

Programska oprema

Arduino IDE
Android Studio (pravzaprav ni potreben, ker boste spodaj našli aplikacijo za Android)

2. korak. Kako deluje

Običajno ta korak naredimo na koncu, a da boste razumeli, kaj moramo doseči, si oglejte rezultat na tem vmesnem koraku. Spodaj smo objavili tudi video vadnico po korakih.

Korak 3. Začnemo sestavljati vezje

Vezje v naši vadnici je tako preprosto in majhno, da moramo narediti le nekaj povezav:

Zatiči Arduino ___________ Zatiči modula Bluetooth
RX (Pin 0)__________________________TX
TX (nožica 1)___________________________RX
5V__________________________VCC
GND_______________________GND

Priključite negativni pol LED na GND na Arduinu in pozitivni pol na pin 13 prek upora 220 Ohm - 1 kOhm. Na splošno je na naši spodnji sliki vse povsem jasno.

Bluetooth izhodov RX na RX in TX na TX ne povezujte z izhodi Arduino, ne boste prejeli nobenih podatkov, tukaj TX pomeni oddajanje, RX pomeni sprejemanje.

4. korak: Nalaganje programa v Arduino

Zdaj moramo napisati program in ga naložiti v naš Arduino. Če še ne veste, kako to narediti, prenesite knjige. Spodnja koda je točno tisto, kar moramo naložiti v Arduino.

/* Bluetooh Basic: LED VKLOP IZKLOP * Koder - Mayoogh Girish * Spletna stran - http://bit.do/Avishkar * Prenesite aplikacijo: https://github.com/Mayoogh/Arduino-Bluetooth-Basic * Ta program vam omogoča za nadzor LED na pinu 13 arduina z uporabo modula bluetooth */ char data = 0; //Spremenljivka za shranjevanje prejetih podatkov void setup() ( Serial.begin(9600); //Nastavi baud za serijski prenos podatkov pinMode(13, OUTPUT); //Nastavi digitalni pin 13 kot izhodni pin ) void loop() ( if(Serial.available() > 0) // Pošlji podatke le, ko jih prejmeš: ( data = Serial.read(); //Preberi dohodne podatke in jih shrani v spremenljive podatke Serial.print(data); // Natisni vrednost znotraj podatkov v serijskem monitorju Serial.print("\n"); //Nova vrstica if(data == "1") // Preveri, ali je vrednost podatkov enaka 1 digitalWrite(13, HIGH); // Če je vrednost 1, se LED prižge else if(data == "0") // Preveri, ali je vrednost podatkov enaka 0 digitalWrite(13, LOW); //Če je vrednost 0, se LED ugasne ) )

Korak 5. Kako poteka postopek

Modul HC 05/06 deluje preko serijskega komunikacijskega kanala. Aplikacija Android zaporedno pošilja podatke v modul Bluetooth, ko pritisnete določeno tipko. Bluetooth na drugi strani prejme podatke in jih pošlje Arduinu prek povezave TX modula Bluetooth (povezava Arduino RX).

Koda, naložena v Arduino, preveri prejete podatke in jih primerja. Če je prejet "1", se LED dioda vklopi in ugasne, ko je prejet "0". Odprite monitor serijskih vrat in opazujte prejete podatke.

Korak 6. Aplikacija za naprave Android

V tej vadnici se ne bomo dotikali ustvarjanja aplikacij za naprave Android. Aplikacijo lahko prenesete na GitHub.

Kako uporabljati aplikacijo?

Ko se povežemo preko bluetootha, moramo prenesti in namestiti aplikacijo, ki bo preko pametnega telefona :) upravljala našo LED na daljavo. Aplikacijo lahko brezplačno prenesete na Amazon.com. Pametni telefon povežemo z modulom Bluetooth HC 05/06:

  1. Vklopite modul HC 05/0
  2. Iščem napravo
  3. Na HC 05/06 se povežemo z vnosom privzetega gesla “1234” ali “0000” (štiri ničle).

Po tem namestimo aplikacijo na svoj pametni telefon. Odprimo ga. Izberite napravo - s seznama izberite Bluetooth modul (HC 05/06). Po uspešni povezavi pritisnite gumb ON, da vklopite LED, in gumb OFF, da izklopite LED. Nato lahko kliknete gumb »Prekini povezavo«, da prekinete povezavo z modulom Bluetooth.

To je bil vodnik za telebane in začetnike o tem, kako povezati modul Bluetooth z Arduinom. Ta projekt je mogoče izboljšati in dvigniti na višjo raven, na primer za avtomatizacijo doma s pomočjo upravljanja s pametnim telefonom, nadzorovanega robota in še veliko več.

Pregled Bluetooth modula HC-05

Krmilnik Arduino ne podpira brezžične komunikacije in pogosto je to preprosto potrebno. na primer daljinec robot na Arduinu, ki pošilja podatke iz vremenske postaje v Arudino na internet ali v domači strežnik, komunikacija več naprav med seboj. Tukaj je v pomoč razvijalcem naprav veliko zunanjih modulov za organiziranje različnih tehnologij. brezžično komunikacijo: WiFi moduli, GSM/GPRS, IR, Bluetooth, radijski moduli za delovanje v različnih frekvenčnih območjih.

Tehnologija Bluetooth se uporablja za prenos podatkov med dvema napravama, ki sta v neposredni bližini druga drugi, ne da bi potrebovali neposredno vidno polje. Tehnologija Bluetooth zagotavlja dobro odpornost na širokopasovne motnje, kar omogoča hkratno komunikacijo več naprav na istem mestu brez motenj druga druge. Zelo široko to tehnologijo uporablja se v telefonih, tablicah, prenosnikih.

Eden od najboljše rešitve za organizacijo dvosmerne Bluetooth komunikacije med vašo napravo Arduino in tablico, prenosnikom ali drugo Bluetooth napravo - Bluetooth modul HC-05, ki lahko deluje tako kot glavni (išče Bluetooth naprave in sproži komunikacijo) kot podrejeni (podrejena naprava) ).

Tehnične lastnosti modula HC05

  • Bluetooth čip: HC-05 (BC417143)
  • Radiofrekvenčno območje: 2,4 - 2,48 GHz
  • Oddajna moč: 0,25–2,5 mW
  • Občutljivost: –80 dBm
  • Napajalna napetost: 3,3–5 V
  • Poraba toka: 50 mA
  • Domet: do 10 metrov
  • Vmesnik: serijska vrata
  • Načini: master, slave
  • Temperatura skladiščenja: –40…85 °C
  • Temperaturno območje delovanja: –25…75 °C
  • Dimenzije: 27 x 13 x 2,2 mm

Povezava

Senzor ima 6 standardnih zatičev 2,54 mm:

  • VCC - (napajanje 3,6 – 6 V);
  • GND - (ozemljitev).
  • TXD, RXD - vmesnik UART;
  • STANJE - indikator stanja;
  • KLJUČ - kontakt za vstop v način programiranja.

Modul se konfigurira v načinu programiranja s pošiljanjem ukazov AT prek serijska vrata. Za vstop v način programiranja morate na kontakt KLJUČ vključiti signal visoke ravni. Na nekaterih modulih ni zatiča KEY, namesto tega je zatič EN:

  • EN - vklop/izklop modula;


V tem primeru morate za vstop v način programiranja uporabiti signal visoke ravni na pin 34:


Za modul k Arduino plošča uporabljali bomo serijska vrata s strani Arduino programska oprema UART. Shema povezave na sliki:


Dobiti bi morali nekaj takega:


Programiranje modula Bluetooth HC05

Modul se konfigurira v načinu programiranja s pošiljanjem AT ukazov prek serijskih vrat. Priključimo modul HC05 na ploščo Arduino v skladu s povezovalnim diagramom na sliki 5. Priključimo 3,3 V na pin KEY modula (ali pin 34 na plošči). Ukaze AT bomo pošiljali iz monitorja serijskih vrat Arduino IDE. V Arduino naložimo skico iz seznama 1. Potrebovali bomo knjižnico Arduino SoftwareSerial. Hitrost modula UART v načinu programiranja je 38400 baud, vendar se lahko razlikuje, v tem primeru jo je treba izbrati.

Vključi SoftwareSerial mySerial(2, 3); // določite pine rx in 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(); // branje iz vrat programske opreme Serial.print(c); // pisanje v vrata strojne opreme ) if ( Serial .available()) ( char c = Serial.read(); // branje iz vrat strojne opreme mySerial.write(c); // pisanje v vrata programske opreme ) )

Po prenosu skice odprite monitor serijskih vrat Arduino IDE in začnite pošiljati ukaze AT:


Seznam osnovnih ukazov AT:

  • AT - testni ukaz.

Ni parametrov.

Odgovor modula: OK

  • V+RAZLIČICA? - pridobite različico vdelane programske opreme modula.

Ni parametrov.

Odgovor modula: +VERSION:

Kje Različica vdelane programske opreme modula Bluetooth.

  • AT+RESET - ponastavitev nastavitev.

Ni parametrov.

Odgovor modula: OK

  • AT+ORGL - nastavitev nastavitev modula po meri.

Ni parametrov.

Odgovor modula: OK

  • AT+ADDR? - dobite naslov modula.

Ni parametrov.

Odgovor modula: +ADDR:

Kje Naslov modula Bluetooth NAP: UAP: LAP.

  • AT+IME? - pridobite ime modula.

Ni parametrov.

Odgovor modula: +IME:

Kje Ime modula Bluetooth.

  • AT+IME= Nastavite novo ime modula.

Parameter: Ime modula Bluetooth.

Odgovor modula: +IME:

OK (ali NEUSPEŠNO)

  • AT+PSWD? - pridobite kodo PIN za dostop do modula Bluetooth.

Ni parametrov.

Odziv modula: + PSWD:

Kje Pin. Privzeto je 1234.

  • AT+PSWD= Nastavite kodo za dostop za modul Bluetooth.

Parameter: Koda za dostop do modula.

Odgovor modula: OK (ali FAIL)

  • PRI+RAZRED= Nastavite način delovanja modula Bluetooth.

Parameter: Razred. Dokumentacija modula ne zagotavlja možnih vrednosti ta parameter. Privzeto je nastavljen na 0. Če nameravate modul uporabljati v glavnem načinu, vrednosti ni treba spreminjati. Če modul uporabljate v podrejenem načinu, pri čemer je vrednost parametra enaka 0, je neviden napravam z delovanjem sistem Android. Za vidnost morate vrednost parametra nastaviti na 7936.

Odgovor modula: OK

  • NA+RAZRED? - pridobite razred modula.

Ni parametrov.

Odgovor modula: +RAZRED:

Kje Razred modula.

  • AT+IAC - pridobite kodo za dostop do zahteve GIAC (generalna koda za dostop do poizvedb).

Različni fizični komunikacijski kanali, ki se uporabljajo v procesu vzpostavljanja povezave, imajo različne kode za dostop do kanala. V polling kanalih, z izjemo namenskih, se za vse naprave uporablja ista splošna dostopna koda za poizvedbo.

Ni parametrov.

Odziv modula: + IAC:

Kje Zahtevaj kodo za dostop.

  • AT+IAC= Nastavite kodo za dostop do zahteve.

Parameter: Zahtevaj kodo za dostop. Privzeta vrednost je 9e8b33.

Odgovor modula: OK (ali FAIL)

  • NA+VLOGA? - dobite način delovanja modula.

Ni parametrov.

Odgovor modula: +VLOGA:

Kje Način delovanja Bluetooth modula:

  • 0 - suženj. V tem načinu se lahko drug master poveže z modulom;
  • 1 - mojster. V tem načinu se lahko modul sam poveže s katero koli napravo Bluetooth;
  • 2 - suženjska zanka. Modul pošlje nazaj vse bajte, ki so mu bili poslani.
  • NA+VLOGA= Nastavite način delovanja modula Bluetooth.

Parameter: Način delovanja Bluetooth modula:

  • 0 - suženj;
  • 1 - mojster;
  • 2 - suženj-

Odgovor modula: OK

  • AT+UART= ,,Namestite modul za serijska vrata.

Opcije:

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

Odgovor modula: OK (ali FAIL).

  • AT+UART? - pridobite parametre izmenjave modulov.

Ni parametrov.

Odziv modula: +UART: ,,

  • Hitrost prenosa (9600,19200,38400,57600,115200);
  • Stop bit;
  • Paritetni bit.
  • AT+CMODE= Nastavite način povezave modula Bluetooth.

Parameter:

  • 2 - način podrejene zanke.

Odgovor modula: OK

  • AT+CMODE? - dobite način povezave modula.

Ni parametrov.

Odgovor modula: +CMODE:

Kje Način povezave Bluetooth modula:

  • 0 - modul se lahko poveže le z napravo Bluetooth, določeno z ukazom AT+BIND;
  • 1 - modul se lahko poveže s katero koli napravo Bluetooth;
  • 2 - način podrejene zanke.
  • AT+INQM= ,,Nastavite možnosti, da zahtevate iskanje naprav Bluetooth.

Opcije:

  • :
  • 0 - standardni način zahteve;
  • 1 - zahteva v načinu RSSI;
  • Največje število naprav, ki se odzovejo na zahtevo;
  • Časovna omejitev čakanja (1–48: 1,28 s do 61,44 s).

Odgovor modula: OK (ali FAIL).

  • AT+INQM? - pridobite parametre za zahtevo po iskanju naprav Bluetooth.

Ni parametrov.

Odziv modula: +UART: ,,

  • AT+INQ - začnite iskati naprave Bluetooth.

Ni parametrov.

Odgovor modula je seznam najdenih naprav.

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

Odgovor modula: OK (ali FAIL).

  • AT+BIND? - dobite naslov naprave, povezane z modulom Bluetooth.

Ni parametrov.

Odgovor modula: Naslov naprave, povezane z modulom Bluetooth.

  • AT+FSAD=

    Odgovor modula: OK (ali FAIL).

    • AT+RMSAD=

      Odgovor modula: OK (ali FAIL).

      • AT+RMAAD - počistite seznam pooblaščenih naprav za naš Bluetooth modul.

      Odgovor modula: OK (ali FAIL).

      • AT+LINK= Povežite se z napravo Bluetooth.

      Parameter: naslov naprave Bluetooth.

      Odgovor modula: OK (ali FAIL).

      Najdete lahko celoten seznam ukazov AT.

      Primer uporabe

      Oglejmo si primer prejemanja podatkov o vlažnosti in temperaturi zraka iz senzorja DHT11, povezanega z Arduino na napravi Android (telefon, pametni telefon, tablica). Arduino vsakih 10 sekund prejme podatke iz senzorja DHT11 in jih prek modula HC05 pošlje v napravo Android.

      Potrebovali bomo naslednje dele:

      • Arduino plošča
      • prototipna plošča
      • DHT11 senzor
      • Bluetooth modul HC05
      • povezovalne žice
      • Android telefon ali tablica

      Sestavimo vezje, prikazano na sliki:


      Dobimo:


      Naložimo skico na ploščo Arduino (glej spodaj) - prejemanje podatkov o vlažnosti in temperaturi iz senzorja DHT11 in pošiljanje podatkov v serijska vrata (strojna oprema) prek modula HC05 v napravi Android.

      H" // konstante #define DHTPIN 8 // pin za povezavo kontakta DATA #define DHTTYPE DHT11 // senzor DHT 11 #define INTERVAL_GET_DATA 2000 // merilni interval, ms // ustvarjanje primerka objekta DHT DHT dht(DHTPIN, DHTTYPE); // spremenljivka za merilni interval unsigned long millis_int1=0; int pos=0; // vključno s knjižnico SoftwareSerial.h #include SoftwareSerial mySerial(2, 3); // določite zatiče rx in tx void setup() ( Serial.begin(9600); // zaženite serijska vrata mySerial.begin(9600); dht.begin(); // zaženite DHT Serial.println("start prg " ); ) void loop() ( if(millis()-millis_int1 >= INTERVAL_GET_DATA) ( pos=1-pos; if(pos==0) ​​​​( // pridobivanje podatkov o vlažnosti iz DHT11 int humidity = dht.readHumidity (); // izhod v monitor serijskih vrat Serial.print("humidity=");Serial.println(humidity); mySerial.print("H=");mySerial.println(humidity); ) else ( // pridobivanje podatkov o vlažnosti iz DHT11 int temp = dht.readTemperature(); // izhod v monitor serijskih vrat Serial.print("temperature=");Serial.println(temp); mySerial.print("T=");mySerial .println(temp) ; ) // začetek intervala štetja millis_int1=millis(); ) )

      Preverimo na napravi Android sprejem podatkov, ki jih pošilja Arduino prek bluetooth modula HC05. Namestimo program Bluetooth Terminal na napravo Android. V programu bomo vzpostavili povezavo z modulom HC05:


      In opazujemo sprejem podatkov, ki prihajajo iz Arduina prek modula HC05:


      In izhod podatkov v monitor serijskih vrat Arduino IDE:


      Pogosta vprašanja FAQ

      1. Modul se ne odzove na ukaze AT
      • Preverite, ali je modul pravilno priključen;
      • Preverite povezave zatiča KEY modula (ali zatiča 34) na 3,3 V;
      • Preverite nastavitve za serijska vrata (hitrost 38400 baud, morda za module različnih proizvajalcev ugasni).
      2. Naprava Android se ne more povezati z modulom bluetoothHC05
      • Preverite povezavo modula z napajanjem, LED na modulu mora hitro utripati (iskanje omrežja);
      • Preverite, ali je pin KEY modula (ali pin 34) odklopljen od 3,3 V;
      • Nastavite podrejeno vlogo z ukazi AT (AT+ROLE=0).
      3. Podatki se ne prenesejo nanaprava Android
      • Preverite, ali je bluetooth modul HC05 pravilno povezan s ploščo Arduino;
      • Hitrost prenosa Arduino podatki in HC05 se morata ujemati z enim, nastavljenim z ukazom AT+UART AT.