Bluetooth valdymas. „Arduino“ pamokos: įrenginių valdymas iš išmaniojo telefono manekenams „Arduino“ prijungimas prie kom prievado per „Bluetooth“

Norėdami belaidžiu būdu keistis informacija tarp skirtingų įrenginių nedideliais atstumais, galite naudoti „Bluetooth“ technologiją. Šiems tikslams Kinijos pramonė gamina įvairius Bluetooth modulius, tarp kurių HC-05 ir HC-06 modeliai tapo plačiai populiarūs. Vienu metu „Aliexpress“ įsigijau HC-06, su kuriuo atliksiu tolesnius eksperimentus, taip pat prijungsiu jį prie savo kiniško „Arduino“ analogo.

Tiesiogiai pats Bluetooth modulis. Tokia forma jis gali būti naudojamas įvairiuose įrenginiuose, kur jis yra lituojamas tiesiai į plokštę. Modulis turi 34 kontaktus, įskaitant: kaiščius prijungimui prie kompiuterio per UART, garso perdavimą PCM (impulsinio kodo moduliacijos) metodu, analoginį įvestį ir išvestį, kaiščius prijungimui prie USB jungties, SPI sąsają, taip pat bendruosius paskirties prievadai. Tiesą sakant, ne visi šie kaiščiai yra prieinami prieigai prie garso perdavimo kaiščių (5–8), analoginės įvesties ir išvesties (9, 10), taip pat prie USB prijungimo kontaktų grupės (15, 20) yra užblokuotas.

HC-06 sukurtas ant BC417 lusto (BlueCore4-External įrenginio), „Bluetooth V2.0“ specifikacijos. Taip pat yra 26 MHz kvarcinė ir 8 MB „flash“ atmintis. Maitinimas tiekiamas iš 3,3V.

Jūsų projektams patogiausia naudoti modulį su duonos lenta, ant kurios rodomi jungtims reikalingi kontaktai, taip pat yra įtampos stabilizatorius, leidžiantis maitinti nuo 5 voltų.
Pirkdami tokius modulius galite susidurti su skirtingais ženklais. Iš esmės tai yra tas pats įrenginys, kuris skiriasi programine įranga, kuri nustato modulio režimą (pagrindinis / pavaldus).

Skirtumas tarp HC-05 ir HC-06 yra tas, kad HC-05 galima naudoti kaip pagrindinį arba pavaldinį. Šie režimai nustatomi naudojant AT komandas. Mygtukas modulio plokštėje perjungia jį į AT komandos įvesties režimą. Pagrindinis režimas leidžia moduliui pačiam aptikti tokį įrenginį ir organizuoti ryšį su juo. HC-06 modulis gali veikti tik vienu fiksuotu pavaldiniu režimu.

Taip pat yra modelių HC-03 ir HC-04, tačiau jie gaminami pramoniniais tikslais.

HC-06 plokštės kontaktų žymėjimas.

VALSTYBĖ- patikrinti modulio būseną. Šis kaištis dubliuoja signalą, kurį rodo plokštėje įmontuotas šviesos diodas. Jei jis mirksi labai greitai, modulis yra aktyvios būsenos. Ryšio režimu srovė yra 30-40 mA. Kai modulis užmezga ryšį su kitu įrenginiu, šviesos diodas tiesiog užsidega. Duomenų perdavimo režimu srovė yra 8 mA.
RX- duomenų gavimas.
TX- duomenų perdavimas.
GND- jungiasi prie žemės.
+5V- Maitinimas +5 voltai
LT- įjungti/išjungti modulį. Jei prie šio kontakto pritaikysite loginį 1 (5 voltus), modulis išsijungs, jei pritaikysite loginį 0 arba neprisijungsite prie šio kontakto, modulis veiks.

Pagal numatytuosius nustatymus HC-06 turi pavadinimą, kurį gali aptikti kiti įrenginiai " HC-06", su PIN kodu" 1234 ».

Norint pakeisti šiuos duomenis, reikia prijungti modulį prie kompiuterio ir terminalo programa įvesti AT komandas. Tai galima padaryti naudojant USB į COM adapterį su TTL lygiais. Šiems tikslams tinka adapteris PL2303HX, CH340G ar kitam panašiam. Iki to laiko USB adapterio tvarkyklė jau turėtų būti įdiegta kompiuteryje.

Mes sujungiame kontaktus taip:

HC-06 USB į COM adapteris
+5V +5V
GND GND
RX TX
TX RX

Kai prijungiate šį mazgą prie kompiuterio, „Bluetooth“ modulio plokštės raudonas šviesos diodas pradės greitai mirksėti. Norėdami įvesti AT komandas, galite naudoti bet kurią terminalo programą, šiam tikslui naudoju Arduino IDE.

Nustatymuose pasirinkite virtualaus COM prievado, prie kurio prijungtas USB adapteris, numerį, mano atveju tai yra COM44. Atidarykime langą" Nuosekliojo prievado monitorius».

Įveskite komandą didžiosiomis raidėmis " AT", jei įrenginys sėkmingai prijungtas, atsakymas turėtų būti pateiktas Gerai“ Numatytasis duomenų mainų greitis yra 9600 bodų.

Norėdami patikrinti programinės aparatinės įrangos versiją, įveskite komandą " AT+VERSION", mano atveju atsakymas grįžo" OKlinvorV1.8».

komanda" AT+NAMEyyy“, kur Oho- savavališkas simbolių rinkinys lotynų kalba, galime pakeisti pavadinimą, pagal kurį bus rastas mūsų "Bluetooth" įrenginio modulis (HC-06 pagal numatytuosius nustatymus). Savo pavyzdyje įvedžiau " AT+NAMEfox“, atsakymas grąžinamas OKsetname.

komanda" AT+PINxxxx“, kur xxxx– atsitiktinis skaičių rinkinys, galite pakeisti PIN kodą (numatytasis 1234). Atsakymas grįžta " OKsetPIN».

komanda" AT+BAUDx“, kur x– reikšmė nuo 1 iki 9, galite keisti perdavimo spartą (numatytasis 9600).

1 - 1200
2 - 2400
3 - 4800
4 - 9600
5 - 19200
6 - 38400
7 - 57600
8 - 115200
9 - 230400

Pavyzdžiui, jei vykdysime komandą „ AT+BAUD8", kur 8 yra 115 200 bodų greitis, atsakymas grįš" Gerai 115200».

HC-06 prijungimas prie Arduino.

1 pavyzdys.Įkelkime į Arduino eskizą, su kuriuo per Bluetooth modulį įjungsime ir išjungsime LED, lituotą ant Arduino 13 kaiščio.

int duomenys;
int LED = 13;
negaliojantis nustatymas ()
{
Serial.begin(9600);
pinMode(LED, IŠVESTIS);
skaitmeninis rašymas (LED, AUKŠTAS);
}
void loop ()
{
jei (Serial.available())
{
duomenys = Serial.read();
jei (duomenys == "1")
{
skaitmeninis rašymas (LED, AUKŠTAS);
}
jei (duomenys == "0")
{
skaitmeninis rašymas (LED, LOW);
}
}
}

Jei neturite šio šviesos diodo ant plokštės, prijunkite jį prie 13 kaiščio pagal schemą, rezistorių vertės gali būti nuo 220 omų iki 1 kOhm.

Išjunkite Arduino maitinimą ir prijunkite HC-06. kontaktas TX prijunkite modulį prie kontakto RX Arduino (0 kaištis UNO plokštėje) ir kaištis RX, susisiekti TX(1 kaištis). Kontaktai +5V Ir GND, prijunkite prie atitinkamų Arduino kaiščių.

Surinkta konstrukcija. Įjungus Arduino maitinimą, HC-06 šviesos diodas turėtų greitai mirksėti.

„Arduino“ valdymas per HC-06 naudojant kompiuterį.

Pateiksiu pavyzdį „Windows XP“. Bet koks USB Bluetooth adapteris turi būti prijungtas prie kompiuterio ir jame įdiegtos tvarkyklės.

Mano atveju aš naudojau šį adapterį.

Kai jis prijungtas prie kompiuterio, dėkle (šalia laikrodžio) atsiranda atitinkama piktograma.

Dešiniuoju pelės mygtuku spustelėkite šią piktogramą ir pasirinkite „ Pridėti Bluetooth įrenginį».

Nustatykite jungiklį " Įrenginys įdiegtas ir paruoštas aptikimui“ ir spustelėkite „ Toliau».

Mūsų „Bluetooth“ modulis bus rodomas aptiktų įrenginių sąraše su nauju pavadinimu, kurį pakeičiau anksčiau. Pasirinkite jį ir spustelėkite " Toliau».

Kitame lange įveskite PIN kodą, kad prisijungtumėte prie modulio, pasirinkdami „ Naudokite prieigos raktą iš dokumentacijos:». Numatytasis yra "1234" bet pakeičiau į „9999“. spustelėkite " Toliau».

„Bluetooth“ modulis sėkmingai susisiekė su kompiuteriu, kuris matomas atitinkamame lange. Atkreipkite dėmesį, kad užmezgus ryšį tarp dviejų „Bluetooth“ įrenginių, kompiuteryje bus sukurti du nauji virtualūs COM prievadai (bus rodomi įrenginių tvarkytuvėje), vienas siunčiamiems duomenims, kitas – gaunamiems duomenims. Mums reikės prievado siunčiamiems duomenims, mano atveju tai yra COM45.

Dar kartą atidarykime kokią nors terminalo programą, naudosiu Arduino IDE. Nustatymuose pasirinkite išeinantį prievadą (turiu COM45), atidarykite „ Nuosekliojo prievado monitorius", įveskite komandas" 1 "Ir" 0 “ Kai komanda „1“ užsidega, kai „0“ – užgęsta.

Valdykite Arduino per HC-06 naudodami išmanųjį telefoną.

Turbūt visuose šiuolaikiniuose išmaniuosiuose telefonuose jau yra įmontuotas „Bluetooth“. Lieka tik įdiegti terminalo programą. Mano atveju jis buvo naudojamas Lumia 640DS, su įdiegta Windows mobile 10. Aš naudoju "" kaip terminalo programą. „Android“ išmaniuosiuose telefonuose viskas yra panašiai; Bluetooth terminalas».

Apple išmaniųjų telefonų savininkams nebus galima dirbti su Bluetooth moduliais HC-05 ir HC-06 (Bluetooth V2.0 jiems teks naudoti adapterius su BLE (Bluetooth low energy) technologija, Bluetooth 4.0 specifikacija; . Žymus atstovas yra HM-10 modulis.

Suporuojame HC-06 su išmaniojo telefono Bluetooth.

1. „ Parametrai» išmanusis telefonas pasirinkite elementą « Prietaisai».
2. Kitas " Bluetooth ir kiti įrenginiai».
3. Įjunkite išmaniojo telefono „Bluetooth“ slankiklį ir spustelėkite „ plius kvadratu» ieškoti ir pridėti naują Bluetooth įrenginį, mūsų atveju HC-06.

4. Skiltyje " Pridėti įrenginį"pasirinkite "".
5. Išmanusis telefonas ieškos Bluetooth įrenginių šioje srityje ir parodys jų pavadinimus. Mano pavyzdyje buvo rastas HC-06 modulis, kurį pervadinau į " lapė».

6. Įveskite įrenginio, prie kurio jungiamės, PIN kodą, paspauskite mygtuką “ Prisijungti».

Įdiekite ir paleiskite terminalo programą "". Prie išmaniojo telefono prijungtas modulis HC-06 rodomas sąraše, pasirinkite jį.

Atsiras komandų įvedimo laukas ir siuntimo mygtukas. Įveskite pakaitomis " 1 "Ir" 0 “ ir stebėkite 13 kaiščio šviesos diodą, kuris užsidegs arba užges.

2 pavyzdys. Prie Arduino prijungkime tris šviesos diodus ir pabandykime juos valdyti per HC-06 Bluetooth modulį.

Šviesos diodus prijungiau prie 9, 11 ir 13 kaiščių, jei naudojate kitus kaiščius, juos reikia nurodyti eskize.

int duomenys;
int LED1 = 9;
int LED2 = 11;
int LED3 = 13;
negaliojantis nustatymas ()
{
Serial.begin(9600);
pinMode(LED1, IŠVESTIS);
pinMode(LED2, IŠVESTIS);
pinMode(LED3, IŠVESTIS);
skaitmeninis rašymas (LED1, AUKŠTAS);
skaitmeninis rašymas (LED2, AUKŠTAS);
skaitmeninis rašymas (LED3, AUKŠTAS);
}
void loop ()
{
jei (Serial.available())
{
duomenys = Serial.read();
jei (duomenys == "1")
{
skaitmeninis rašymas (LED1, AUKŠTAS);
}
jei (duomenys == "2")
{
digitalWrite (LED1, LOW);
}
jei (duomenys == "3")
{
skaitmeninis rašymas (LED2, AUKŠTAS);
}
jei (duomenys == "4")
{
digitalWrite (LED2, LOW);
}
jei (duomenys == "5")
{
skaitmeninis rašymas (LED3, AUKŠTAS);
}
jei (duomenys == "6")
{
digitalWrite (LED3, LOW);
}
}
}

Įkeliant eskizą reikia atjungti HC-06 modulį nuo Arduino, nes ir kompiuteris, ir Bluetooth veikia per UART. Arduino negali dirbti su keliais įrenginiais viename UART.

Paleidžiame terminalo programą ir išbandome eskizą. LED valdymo reikšmė yra tokia: yra trys šviesos diodai, kurių kiekvienas gali būti įjungtas arba išjungtas. Pasirodo, 6 komandos. Komandos yra suskirstytos į numerius nuo 1 iki 6 ( 1, 3, 5 - užsidega 1, 2 ir 3 šviesos diodai. 2, 4, 6 - grąžinti). Skaičius galima įvesti po vieną arba deriniais. Pavyzdžiui: 145 - uždegti pirmą, užgesinti 2-ą, uždegti 3-ą.

3 pavyzdys. Prijunkite relės modulį iš straipsnio "" prie Arduino ir pabandykite valdyti galingą apkrovą per "Bluetooth". Iš esmės mes turėsime „išmanųjį lizdą“. Prie relių modulių galite prijungti įvairias apkrovas (lemputes, siurblius, ventiliatorius) ir valdyti juos nuotoliniu būdu.

Netrukus pasirodys šio pavyzdžio eskizas.

Šiandien susipažinsime su nebrangiu moduliu belaidžiam duomenų perdavimui per Bluetooth.

Bluetooth yra pramoninė belaidžių asmeninių tinklų specifikacija, leidžianti belaidžiu būdu perduoti duomenis tarp daugelio įrenginių.

Mūsų modulis vadinamas HC-05. Tai vienas iš panašių modulių linijos HC-03 - HC-09 atstovų.

Šie moduliai leidžia perduoti duomenis belaidžiu būdu, negalvojant apie tai, kaip apskritai veikia Bluetooth protokolas, apie jo laukus ir kitas subtilybes. Šie moduliai, tinkamai sukonfigūruoti, užtikrina duomenų perdavimą taip, kad kodą rašantis programuotojas rašo algoritmą taip, lyg dirbtų su laidine UART sąsaja. Todėl kodo rašymas tampa kuo patogesnis, todėl ši modulių linija įgijo tokį didžiulį populiarumą tarp pradedančiųjų programuotojų ir ne tik.

Taigi jūs ir aš taip pat neatsilikime nuo jų ir šiek tiek atsitraukime nuo tinklo protokolų ir išstudijuokime tokį modulį. Taip pat buvo daug asmeninių prašymų, taip pat viešuose pokalbiuose, kad neaplenkčiau tokių modulių ir nerašyčiau kokių nors pamokų jais naudodamasis.

Moduliai turi šias pagrindines charakteristikas:

  • „Bluetooth“ lustas – BC417143 gamyba ĮSA įmonė,
  • duomenų perdavimo protokolas - Bluetooth 2.0+EDR,
  • 2 klasė, kuri atitinka duomenų perdavimą iki 10 m spinduliu,
  • Serijinio prievado profilio palaikymas ( SPP), kuris užtikrina suderinamumą su visais įrenginiais, kurie palaiko šį profilį,
  • 8 MB talpos nepastovi „flash“ atmintis,
  • radijo kanalas, kurio dažnis yra 2,4–2,4835 MHz,
  • USB Host 1.1/2.0 sąsaja,
  • UART sąsaja su reguliuojama sparta.

Be to, kartu su šiomis savybėmis verta paminėti, kad modulyje yra daug kojų, todėl jį galima naudoti platesniu asortimentu. Pažvelkime į modulio išjungimo schemą

Čia matome GPIO, SPI, USB, PCM kaiščius.

Tiesa, kol kas dirbsime tik su USART sąsaja, kurios pagalba ne tik perduosime keletą naudingų duomenų, bet ir sukonfigūruosime savo modulį.

Pirmiausia tai darysime todėl, kad mūsų moduliai bus to paties tipo (turiu jų net 4!), kuriuose HC-05 modulis yra lituojamas ant kitos plokštės, ant kurios tik 6 kontaktai nukreipti į išorę. Štai kaip aš turiu juos visus (vaizdas iš viršaus ir vaizdas iš apačios)

Kojelių paskirtis nurodyta lentos apačioje, jas išsiaiškinsime, kai prijungsime modulį.

Antra, mes nedirbsime su likusiais daugybe kontaktų, nes ne kiekviena programinė įranga leidžia tai padaryti.

Apskritai pasirinkimas krito HC-05 ir dėl to, kad šis modulis puikiai sukonfigūruotas veikti ir kaip pagrindinis, ir kaip pagalbinis įrenginys.

Modulis sukonfigūruotas tolesniam darbui su duomenimis naudojant AT komandas. Manau, kad mes visi daugiau ar mažiau žinome, kas yra šios komandos, kai dirbome su „Wi-Fi“ moduliu. Žinoma, šios komandos yra skirtingos visuose įrenginiuose, todėl puslapio apačioje pridėsiu dokumentą su visu komandų sąrašu. Taip pat nesunku rasti išteklius internete, kur šių komandų aprašymas išverstas į rusų kalbą, ir yra net keletas jų naudojimo pavyzdžių. Mes čia neužsiimsime visišku komandų vertimu, nagrinėsime tik tas komandas, kurias turėsime naudoti. Kol kas jų sąrašas nebus toks platus, bet vėliau prie šių modulių grįšime, tikiuosi, dar ne vieną kartą, o tada praplėsime savo akiratį šio modulio pažinimo srityje. Tuo tarpu pateiksime tik trumpą modulio apžvalgą. Žinoma, išbandysime darbe, ne be jo.

Kol kas savo modulį prijunkite prie TTL-USB adapterio, kurį savo ruožtu prijungsime prie kompiuterio.

Sujungsime pagal toliau pateiktą schemą

TTL-USB adapterio modulis HC-05

VCC VCC

GND GND

TXD RXD

RXD TXD

Praktiškai tai atrodys maždaug taip

Prijunkite adapterį prie kompiuterio, aš nepasakysiu, kaip dirbti su tokio tipo adapteriais, mes jau dirbame su jais visą laiką. Paleisime terminalo programą, aš naudosiu CoolTerm programą, nes ji turi lankstesnius nustatymus duomenų perdavimui iš klaviatūros, o komandoms įvesti, reikia, kad kiekviena eilutė perdavimo metu baigtųsi eilutės padavimo ir vežimo grąžinimo kodu.

Eikime į programos nustatymus ir pirmiausia sukonfigūruokite prievadą

Toks 38400 greitis pasirinktas todėl, kad modulis veikia būtent tokiu greičiu, kai gauna AT komandas.

Dabar pasirinkite elementą kairėje Gauti ir perjunkite vieną mygtuką ten ir įjunkite kitą

Pirmasis mygtukas skirtas siunčiamoms komandoms užbaigti eilutės padavimo ir karietos grąžinimo simboliais, o antrasis – kad įvedę jas priimančiojo terminalo lange matytume ir mūsų įvestas komandas.

Išsaugokime nustatymus ir pabandykime prisijungti. Jei viskas pavyksta, mes atsijungiame, nes dabar mūsų modulis yra duomenų perdavimo režimu, o jei jis dar nebuvo sukonfigūruotas, greičiausiai mes net nežinome jo adreso ar nustatymų. Modulio buvimą šiame režime rodo greitas mėlynos šviesos diodo mirksėjimas. Todėl turime kažkaip perkelti modulį į AT komandų perdavimo būseną.

Norėdami tai padaryti, dabar atjungsime adapterį nuo USB prievado ir prijungsime laidą prie HC-05 modulio kojelės. RAKTAS. Kai kuriems jis gali turėti kitokį pavadinimą, bet nemanau, kad galite jį supainioti. Sujungkime laidą taip ir taip

Prijunkite šį laidą prie teigiamo maitinimo laido (su VCC koja)

Ir, neatleidę kontakto, prijungiame adapterį prie kompiuterio USB prievado ir po kurio laiko (po sekundės ar dviejų) atjungiame savo KEY kontaktą nuo VCC kontakto, nuimdami laidą. Modulis turės persijungti į AT komandų priėmimo režimą, apie kurį parodys labai lėtas šviesos diodo mirksėjimo greitis.

Eikime į terminalo programą, prisijunkime prie prievado ir pabandykime išsiųsti komandą AT, į kurį modulis turi mums atsakyti "GERAI"

Modulis sureagavo, vadinasi, viskas teisinga.

Kad nesusipainiotume su kažkada kažkada atliktais nustatymais, surinkime visus nustatymus įvesdami komandą „ AT+ORGL“. Reikės iš naujo nustatyti šiuos parametrus:

  • Įrenginio tipas: 0
  • Užklausos kodas: 0x009e8b33
  • Modulio darbo režimas: Slave Mode
  • Ryšio režimas: prisijunkite prie nurodyto Bluetooth įrenginio
  • Serijos parametras: Prasidėjimo sparta: 38400 bitų/s; Stop bitas: 1 bitas; Lygybės bitas: nėra.
  • Slaptažodis: „1234“
  • Įrenginio pavadinimas: „H-C-2010-06-01“

Tik nustatymai nebus taikomi iš karto. Reikia iš naujo įkelti modulį. Tai patogu padaryti įvedus komandą " AT+ATSTATYTI“, atsakydamas į tai modulis persikraus ir grįš į duomenų perdavimo režimą ir kol kas negalės priimti komandų. Kad jis jas priimtų, atliksime tuos pačius veiksmus, kaip ir aukščiau, kad modulis vėl persijungtų į AT komandų priėmimo režimą. Yra ir kitas būdas, bet kol kas jo nenaudosime.

Dabar patikrinkime kai kuriuos mūsų modulio parametrus.

Norėdami sužinoti programinės įrangos versiją, įveskite komandą " AT+VERSION?“, į kurį modulis turės atsakyti maždaug taip

Jei programinė įranga nėra žemesnė nei ši versija, galime būti tikri, kad šis modulis su tokia programine įranga gali veikti pagrindiniu režimu.

Sužinokite įrenginio adresą naudodami komandą „ AT+ADDR?«

Šį adresą naudosime savo įrenginiui identifikuoti pagrindiniame įrenginyje. Pagrindiniu įrenginiu pasirinksime įprasčiausią išmanųjį telefoną, tačiau tai bus šiek tiek vėliau. Mums dar reikia gerai žaisti su komandomis.

Taip pat paprašykime įrenginio pavadinimo naudodami komandą " AT+NAME?“, į kurį daugelis modulių, įskaitant ir mano, reaguoja tik tuo atveju, jei ant KEY kojos yra aukštas lygis, tai yra, kai laidas yra prijungtas. Padarykime tai

Pabandykime pakeisti ir šį pavadinimą, nes tai padaryti nėra labai patogu, įveskite komandą „AT+NAME: Desired_name“. Šią komandą galima įvesti be aukšto KEY PIN lygio

Pažiūrėkime, ar pasikeitė pavadinimas, tik nepamirškite apie aukštą lygį ant KEY kojos

Pavadinimas puikiai pritaikytas.

Patikrinkime slaptažodį su komanda " AT+ PSWD?«

Taip pat, kaip ir vardą, galite pakeisti slaptažodį.

Dabar mes sužinome įrenginio tipą (vergas arba pagrindinis) naudodami komandą „ AT+ ROLE?«

0 reiškia vergą. Tipą taip pat galima bet kada pakeisti. Bet mums to kol kas nereikia, nes dirbsime su įrenginiu kaip vergas.

Iš naujo nustatykite suporuotus įrenginius naudodami komandą „ AT+RMAAD«

Dabar išsiaiškinkime USART sąsajos nustatymus su komanda " AT+ UART?«

Šie nustatymai reiškia: 38400 kbps, 1 stop bitas ir jokio pariteto.

Šioje lentelėje pateikiami galimi USART nustatymai

Pakeiskime, pavyzdžiui, perdavimo greitį komanda " AT+UART=115200,0,0«

Tik šie nustatymai įsigalios po modulio perkrovimo ir bus aktualūs tik AT komandų perdavimo moduliui režimui, tie patys nustatymai išliks 38400 greičiu.

Iš naujo įkelkime modulį su komanda " AT+ATSTATYTI“, po kurio modulis persijungs į duomenų perdavimo režimą.

Sukonfigūruokime terminalo programoje esantį prievadą tokiu greičiu ir prie jo prisijunkime

Pabandykime įvesti komandą, į kurią mūsų modulis nereaguos, nes režimas nėra tas pats

Bet nenusimink. Pasirodo, norint siųsti komandas moduliui, nebūtina jo įjungti į šį režimą. Galite įjungti AT komandų perdavimo duomenų režimu palaikymą. Trumpam (pakanka mažiau nei sekundės) paliečiame laidą, kuris yra prijungtas prie modulio teigiamos magistralės KEY kontakto ir modulis persijungs į AT komandų palaikymo režimą. Tiesa, negalime to nustatyti pagal LED mirksėjimo pobūdį, jis mirksės taip pat greitai. Be to, komandų palaikymo režimu pagrindinis įrenginys negalės prisijungti prie mūsų. Tačiau nepaisant to, kai kuriems nustatymams nereikia nuolat išimti laido iš USB jungties ir iš naujo konfigūruoti prievadą terminalo programoje. Tai jau gerai. Atlikime šį veiksmą ir įsitikinkime, kad modulis taip pat priims komandas, kaip ir komandų priėmimo režimu

Norėdami pašalinti šį palaikymą ir modulį prisijungti, tiesiog paleiskite jį iš naujo naudodami komandą " AT+ATSTATYTI“. Padarykime tai

Puiku! Mes jau kai ką žinome. Iš esmės, mes sukonfigūravome modulį perduoti duomenis pagrindiniu režimu.

Dabar išmanusis telefonas, kurį turime šiandien, veiks kaip pagrindinis įrenginys. Tai padarys visi, turintys „Android“, jei tik turės kokią nors „Bluetooth“ terminalo programą. Aš įdiegiau šį. Man pasirodė patogu

Pirma, ji yra nemokama, nereikalauja iš anksto sukurti ryšio, taip pat turi keletą mygtukų su iš anksto išsaugotomis eilutėmis.

Atsisiųskite ir įdiekite programą ir paleiskite ją. Paspauskite mygtuką SCAN ir mūsų modulis turėtų pasirodyti rastų įrenginių sąraše

Pasirinkime šį įrenginį ir pateksime į susiejimo dialogo langą, kuriame turėsite įvesti slaptažodį (turime „1234“) ir sutikite paspausdami mygtuką „Gerai“

Ar kada nors pagalvojote apie elektroninių įrenginių valdymą išmaniuoju telefonu? Sutikite, būtų labai šaunu valdyti robotą ar bet kokius kitus įrenginius iš savo išmaniojo telefono. Siūlome paprastą pamoką pradedantiesiems ir manekenams, kaip valdyti išmanųjį telefoną naudojant Arduino per Bluetooth. Jei po šios pamokos norite geriau pažinti Arduino, galite rasti knygų apie tai.

1 žingsnis. Ko mums reikia

Prietaisai

Modulis – Bluetooth modulis HC 05/06
Lenta - Arduino
Šviesos diodas (LED)
Rezistorius - 220Ω
Android įrenginys

Programinė įranga

Arduino IDE
Android Studio (iš tikrųjų nebūtina, nes Android programą rasite žemiau)

2 veiksmas. Kaip tai veikia

Paprastai šį veiksmą atliekame pabaigoje, bet kad suprastumėte, ką turime pasiekti, pažiūrėkite į šio tarpinio žingsnio rezultatą. Žemiau taip pat paskelbėme nuoseklią vaizdo įrašo mokymo programą.

Žingsnis 3. Mes pradedame surinkti grandinę

Mūsų mokymo programos grandinė yra tokia paprasta ir maža, kad mums tereikia atlikti keletą jungčių:

Arduino Pins___________Bluetooth modulio kaiščiai
RX (0 kaištis)___________________________________TX
TX (1 kaištis)________________________________RX
5V______________________________VCC
GND____________________________GND

Prijunkite šviesos diodo minusą prie GND ant Arduino, o teigiamą - prie 13 kaiščio, naudodami 220 omų – ​​1 kOhm varžą. Apskritai, mūsų paveikslėlyje žemiau viskas yra gana aišku.

Nejunkite RX prie RX ir TX to TX Bluetooth išėjimų prie Arduino išėjimų, duomenų negausite, čia TX reiškia perduoti, RX – gauti.

4 veiksmas: įkelkite programą į „Arduino“.

Dabar turime parašyti programą ir įkelti ją į mūsų Arduino. Jei dar nežinote, kaip tai padaryti, atsisiųskite knygų. Žemiau esantis kodas yra būtent tai, ką turime įkelti į „Arduino“.

/* „Bluetooh Basic“: LED IŠJUNGTA * Koderis – Mayoogh Girish * Svetainė – http://bit.do/Avishkar * Atsisiųskite programą: https://github.com/Mayoogh/Arduino-Bluetooth-Basic * Ši programa leidžia jums valdyti šviesos diodą ant arduino 13 kaiščio naudojant „Bluetooth“ modulį */ char data = 0; //Kintamasis gautam duomenims saugoti void setup() ( Serial.begin(9600); //Nurodo nuoseklaus duomenų perdavimo bodą pinMode(13, OUTPUT); //Nurodo skaitmeninį kaištį 13 kaip išvesties kaištį ) void loop() ( if(Serial.available() > 0) // Siųskite duomenis tik tada, kai gaunate duomenis: ( data = Serial.read(); //Perskaitykite gaunamus duomenis ir išsaugokite juos kintamuosiuose duomenyse Serial.print(data); // Spausdinti vertę Serial monitoryje Serial.print("\n") //Nauja eilutė if(data == "1") // Patikrina, ar duomenų reikšmė lygi 1 digitalWrite(13, HIGH); yra 1, tada šviesos diodas įsijungia kitaip if(data == "0") // Patikrina, ar duomenų reikšmė lygi 0 digitalWrite(13, LOW //Jei reikšmė yra 0, LED išsijungia ) )

5 žingsnis. Kaip vyksta procesas

HC 05/06 modulis veikia nuosekliuoju ryšio kanalu. „Android“ programa paeiliui siunčia duomenis į „Bluetooth“ modulį, kai paspaudžiate konkretų klavišą. Kitame gale esantis „Bluetooth“ gauna duomenis ir siunčia juos į „Arduino“ per „Bluetooth“ modulio TX ryšį (Arduino RX jungtis).

Į „Arduino“ įkeltas kodas patikrina gautus duomenis ir juos palygina. Jei gaunamas „1“, šviesos diodas įsijungia ir išsijungia, kai gaunamas „0“. Atidarykite nuosekliojo prievado monitorių ir stebėkite gautus duomenis.

6 veiksmas. Programa Android įrenginiams

Šiame vadove nekalbėsime apie programų kūrimą „Android“ įrenginiams. Programą galite atsisiųsti iš GitHub.

Kaip naudotis programa?

Prisijungę per Bluetooth, turime atsisiųsti ir įdiegti programą, kuri, naudojant išmanųjį telefoną :) valdys mūsų LED per atstumą. Programą galite nemokamai atsisiųsti iš Amazon.com. Prijungiame išmanųjį telefoną prie „Bluetooth“ modulio HC 05/06:

  1. Įjunkite HC 05/0 modulį
  2. Ieškau įrenginio
  3. Prisijungiame prie HC 05/06 įvesdami numatytąjį slaptažodį „1234“ arba „0000“ (keturi nuliai).

Po to mes įdiegiame programą savo išmaniajame telefone. Atidarykime. Pasirinkite įrenginį – iš sąrašo pasirinkite Bluetooth modulį (HC 05/06). Po sėkmingo prisijungimo paspauskite mygtuką ON, kad įjungtumėte šviesos diodą, ir OFF mygtuką, kad išjungtumėte šviesos diodą. Tada galite spustelėti mygtuką „Atjungti“, kad atsijungtumėte nuo „Bluetooth“ modulio.

Tai buvo vadovas manekenams ir pradedantiesiems, kaip prijungti „Bluetooth“ modulį su „Arduino“. Šis projektas gali būti patobulintas ir pakeltas į aukštesnį lygį, pavyzdžiui, namų automatizavimui per išmaniojo telefono valdymą, valdomą robotą ir dar daugiau.

Labai dažnai jūsų projektuose reikia nuotolinio valdymo ar duomenų perdavimo iš telefono įtaisų.

Vienas iš populiariausių ir plačiausiai paplitusių duomenų apsikeitimo per Bluetooth metodų .

Šiandien apžvelgsime paprastus Bluetooth prijungimo pavyzdžius modulį į Arduino ir sukonfigūruokite nuotolinį valdymą iš savo telefono.

Mums reikės:

  • MALE-MAMA laidų komplektas
  • HC-06 Bluetooth

Prijunkite Bluetooth Modulis prie Arduino mikrovaldiklio patogiausias naudojant MALE-MAMALE laidus.

Arduino Bluetooth
1 kaištis (TX) RXD
0 kaištis (RX) TXD
GND GND
5V VCC

Būkite atsargūs, turite prisijungti TX -> RXD ,RX -> TXD .

Dabar reikia užsirašyti programos bandomąjį kodą:

Įkeliant eskizą būtina, kad Bluetooth modulis būtų atjungtas nuo arduino mikrovaldiklio. Priešingu atveju eskizas nebus įrašytas, nes ryšys su Bluetooth Modulis bendrauja per tuos pačius RX ir TX prievadus kaip ir 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(); / / Kai simbolis yra "1", įjunkite šviesos diodą if (val == "1") ( digitalWrite(LED, HIGH); ) // Kai simbolis yra "0", išjunkite šviesos diodą if (val == "0") (digitalWrite (LED, LOW ); ) ) )

Įrašius eskizą ir „Bluetooth“. Modulis prijungtas prie Arduino, galite pereiti prie kito žingsnio.

Bluetooth prijungimas prie telefono

Kaip arduino maitinimo šaltinį patartina naudoti ne USB, o išorinį 9 V maitinimo šaltinį.

  1. Įjunkite „Bluetooth“ savo telefone ir ieškokite naujų įrenginių
  2. Mes randame sutrikimų sąraše " HC-06" ir prisijungti prie jo.
  3. Telefonas paprašys įvesti PIN kodą. tu turi įvesti " 1234 " arba " 0000 "
  4. Ura. Prietaisas prijungtas.

Dabar turite atsisiųsti „Bluetooth“ terminalą į savo telefoną. Pažiūrėsime į Android platformos pavyzdį.



Galite įdiegti skirtingus "Bluetooth" terminalus, paprastai jie skiriasi tik skirtingu dizainu, funkcionalumas nesikeičia. Taip pat galite rasti terminalą, skirtą iOS produktams.

Įdiegę terminalą, paleidžiame jį, pasirenkame savo bluetooth modulį HC-06 ir prie jo prisijungiame.

Atėjo laikas išbandyti projektą. Terminale įrašome skaičių „0“ ir siunčiame. LED L, esantis ant arduino plokštės šalia 13 kaiščio, turėtų užgesti. Dabar per terminalą siunčiame skaičių „1“ ir turėtų užsidegti L šviesos diodas.

Darbo demonstravimas:


Namų darbai:

  • Pakeiskite eskizą taip, kad šviesos diodas užsidegtų ir užgestų naudojant tą pačią komandą, pavyzdžiui, „G“.
  • Užpildykite eskizą ir išmokykite jį konvertuoti per "Bluetooth" gaunamus tekstinius duomenis į skaitmeninius duomenis ir įdiegti dimerį, įžiebti šviesos diodą naudodami PWM, esant tam tikram ryškumui nuo 0 iki 254 per "Bluetooth".

Ar jums reikia nuotoliniu būdu valdyti „Arduino“ plokštę ir keistis duomenimis su kitais „Bluetooth“ įrenginiais? Su šia užduotimi susidoroti padės Bluetooth moduliai HC-05, HC06.

Pirmoje straipsnio dalyje kalbėsime apie tai, kaip užmegzti belaidį ryšį tarp Arduino ir kompiuterio, o antroje – kaip užmegzti ryšį tarp Arduino ir Android telefono. .

Šis straipsnis bus neatsiejama tolimesnio nuotoliniu būdu valdomo automobilio surinkimo dalis.

Kartojimui skirti komponentai (pirkti Kinijoje):

HC-05/06 moduliai yra plikas bluetooth su papildomais laidais.

Būtent: jie montuojami ant pagrindo, ant kurio yra stabilizatorius nuo 5 iki 3,3 voltų, šviesos diodas, rodantis modulio būseną (ar jungtis yra, ar ne), ir kondensatoriai ant elektros linijų. Plokštėje taip pat yra sumontuotas MOSFET tranzistorius (Q1), kuris prireikus gali nutraukti "Bluetooth" maitinimo grandinę ir taip ją išjungti, tačiau tai nebus naudojama mūsų apžvalgoje.

Iš priekio modulis atrodo taip

Prisijungimas prie Arduino

Bluetooth HC-05/06 Arduino
VCC +5V
GND GND
TX RX
RX TX

Kai moduliui tiekiamas maitinimas, įmontuotas šviesos diodas pradeda mirksėti.

1) Su kompiuteriu (WIN7 operacinė sistema)

2) su telefonu (ANDROID OS)

Abiem atvejais turėsime atlikti 2 veiksmai: suporuokite modulį ir įrenginį, valdykite per tam tikrą terminalą.

1 dalis. Prisijungimas prie kompiuterio (WIN7)

Jei jūsų kompiuteryje nėra integruoto „Bluetooth“, galite jį naudoti. Jį nebus sunku rasti ryšių parduotuvėse ar radijo prekyvietėse.

Įdiegę „Bluetooth“ tvarkykles galite pradėti dirbti.

. 1 veiksmas

Eikite į valdymo skydelį, spustelėkite „Bluetooth“ piktogramą ir pasirinkite „Rodyti Bluetooth įrenginius“

Po kurio laiko kompiuteris pradės ieškoti ir pamatysite savo modulį (Jūsų modulis gali turėti kitokį pavadinimą).

Pasirinkite antrąją parinktį - „Įveskite įrenginio poravimo kodą“

HC-06 atveju šis kodas yra 1234

Viskas baigiasi šiuo paveikslu.

O po to yra dar vienas

Pirmasis sąrankos etapas baigtas

Jei pamiršite, kurį COM prievadą nustatėte kaip „Bluetooth“, visada galite sužinoti atlikdami šiuos veiksmus:

Veiksmai

P.S. Arba ieškokite įrenginių tvarkytuvėje

. 2 veiksmas

Duomenims perduoti galima naudoti bet kurį terminalą. Naudojau paprastą ir nemokamą „Termitą“.

Kaip pavyzdį pakeisime Arduino plokštėje įmontuoto LED „LED 13“ būseną. Jis įsijungs, kai gausite „W“ simbolį, ir išsijungs, kai bus gautas „S“. Toliau pateiktą eskizą reikia įkelti į „Arduino“ plokštę. Pildami į plokštę, turite atjungti maitinimą nuo „Bluetooth“ modulio, užpildę, vėl prijunkite.

programos kodo pavyzdys:

int val; int LED = 13; tuštuma sąranka () { Serijinis.begin(9600); pinMode(LED, IŠVESTIS); ) tuštuma kilpa() (jei ( Serijinis.available()) (val= Serijinis.skaityti(); // Kai simbolis „W“ įsijungia šviesos diodą if (val == "W") (digitalWrite (LED, AUKSTAS);) // Kai simbolis "S" išjungia šviesos diodą if (val == "S" ) ( digitalWrite (LED, LOW ); ) ) ) Atidarykite programą " Termitas"

Nustatymuose pasirinkite mūsų prievadą, greitį (9600).

Taip pat galite patikrinti modulį be „Arduino“, tiesiog trumpindami TX ir RX kaiščius. Termitų ženklai siuntė simbolius mėlynai, o gauti simboliai - žalia. Tie. jei siuntėme su trumpais kaiščiais ir gavome tą patį, vadinasi, modulis veikia tinkamai. Tai parodyta žemiau esančioje nuotraukoje.

2 dalis. Prisijungimas prie telefono („Android“)

Bandomasis objektas bus Samsung Galaxy Ace 2 telefonas su Android operacine sistema.

. 1 veiksmas

Prisijungimas prie telefono

. 2 veiksmas

Kaip terminalą vėl rinksimės paprastą ir nemokamą, bet šį kartą „Bluetooth terminalą“

P.S. Jei negalite prisijungti, atjunkite maitinimą nuo „Bluetooth“ ir vėl prijunkite.