Bluetooth hc 05 ni arduinoga ulash. Arduino darslari: qo'g'irchoqlar uchun smartfondan qurilmalarni boshqarish. Bluetooth terminali yordamida smartfondan ulaning

Kompyuter uchun Bluetooth hushtak: http://ali.pub/2jfj3y

Birinchidan, bluetooth nima ekanligini aniqlaylik.

Bluetooth(inglizcha ko'k - ko'k va tish - tish so'zlaridan; talaffuzi /bluːtuːth/), Bluetooth- simsiz shaxsiy tarmoq ishlab chiqarish spetsifikatsiyasi ( Simsiz shaxsiy tarmoq, WPAN). Bluetooth kabi qurilmalar o'rtasida ma'lumot almashish imkonini beradi shaxsiy kompyuterlar(ish stoli, cho'ntak, noutbuklar), Mobil telefonlar, printerlar, raqamli kameralar, sichqonchalar, klaviaturalar, joystiklar, minigarnituralar, qisqa masofali aloqa uchun ishonchli, bepul, universal radiochastotadagi minigarnituralar. Bluetooth ushbu qurilmalar bir-biridan 10 m gacha radiusda (diapazon to'siqlar va shovqinlarga qarab juda katta farq qiladi), hatto turli xonalarda bo'lganda ham muloqot qilish imkonini beradi.

Endi bluetooth tarmoqlarni qurish va qurilmalar o'rtasida ma'lumot almashish uchun ishlatilishini bilib, biz undan CNC (CNC) mashinasi va kompyuter yoki telefon yoki planshet va noutbukni ulash uchun foydalanamiz.

Men CNCni boshqarish uchun arduino platformasida grbl mikrodasturidan foydalanganim sababli, biz arduino uchun mos bluetooth modulini, ya'ni HC-06 bluetooth modulini mashinaga ulaymiz.

Bluetooth modulini Arduino-ga ulashdan oldin siz Bluetooth moduli va Arduino COM portining bir xil tezlikda ishlashiga ishonch hosil qilishingiz kerak.

Agar siz grbl 0.8 proshivkasidan foydalansangiz, hech narsani o'zgartirishingiz shart emas, lekin grbl 0.9 va undan yuqori bo'lsa, Arduino COM portining tezligi 115200 ga, moduldagi standart tezlik esa 9600 ga teng bo'ladi.

Shunday qilib, biz Bluetooth modulining o'zida port tezligini o'zgartirishimiz kerak.

Bluetooth modullarini sozlash uchun maxsus mavjud AT buyruqlari, uning yordamida biz kerakli modul parametrlarini o'rnatishimiz mumkin.

AT buyruqlari yordamida biz MAQOMOTI portining tezligini yoki nomini o'zgartirishimiz mumkin Bluetooth qurilmalari yoki ulanish uchun PIN kodni toping yoki o'zgartiring.

AT buyruqlarini kiritish uchun Bluetooth modulini kompyuterga ulash uchun bizga FTDI dasturchisi kerak bo'ladi (maqolaning boshida unga havola). Menimcha, bu erda ulanish sxemasi kerak emas. Gnd ni gnd, 5v dan 5v, rx ni tx va tx ni rx ga ulashingiz kerak.

Ulangandan so'ng, AT buyruqlarini kiritish va modulimizni dasturlash uchun bizga HMComAssistant dasturi kerak bo'ladi. Yuklab oling: https://yadi.sk/d/eVzPmnh63Wab5R

Xo'sh, bu erda men Bluetooth modulining sozlamalarini o'zgartirish uchun ba'zi AT buyruqlarini beraman:

AT buyrug'i Modul javobi Izoh
DA KELISHDIKMI Aloqalarni sinash uchun ishlatiladi, qoida tariqasida, har qanday operatsiyani bajarishdan oldin, bu buyruq birinchi navbatda aloqalarni sinash uchun ishlatiladi.
AT+BAUD1 OK yoki OK1200 Ma'lumot uzatish tezligini 1200 bodga o'rnatadi
AT+BAUD2 OK yoki OK2400 Bod tezligini 2400 bodga o'rnatadi
AT+BAUD3 OK yoki OK4800 Bod tezligini 4800 bodga o'rnatadi
AT+BAUD4 OK yoki OK9600 Bod tezligini 9600 bodga o'rnatadi
AT+BAUD5 OK yoki OK19200 Bod tezligini 19200 bodga o'rnatadi
AT+BAUD6 OK yoki OK38400 Bod tezligini 38400 bodga o'rnatadi
AT+BAUD7 OK yoki OK57600 Bod tezligini 57600 bodga o'rnatadi
AT+BAUD8 OK yoki OK115200 Bod tezligini 115200 bodga o'rnatadi
AT+BAUD9 OK yoki OK230400 Bod tezligini 230400 bodga o'rnatadi
AT + BAUDA OK yoki OK460800 Bod tezligini 460800 bodga o'rnatadi
AT+BAUDB OK yoki OK921600 Bod tezligini 921600 bodga o'rnatadi
AT+BAUDC OK yoki OK1382400 Bod tezligini 1382400 bodga o'rnatadi
AT+NAME +NAME=test Joriy modul nomini qaytaradi
AT+NAMEiarduino_BLU +NAME=test OK Yangi modul nomini "test" o'rnatadi
AT+PIN +PIN=000000 Joriy parolni qaytaradi, bu holda parol “000000”
AT+PIN123456 +PIN=123456 OK Yangi parol o'rnating, bu holda parol "123456"
AT+VERSION +VERSION=Proshivka V3.0.6,Bluetooth V4.0 LE Mikrodastur versiyasini qaytaradi, bu holda parol “Firmware V3.0.6,Bluetooth V4.0 LE” boʻladi.
AT+RESET + OK
AT+HELP ——– Barcha mavjud AT buyruqlar ro'yxatini qaytaradi

Com port tezligini o'zgartirgandan va ulanish uchun PIN kodni o'rnatgandan so'ng. (juftlash uchun standart pin-kod "1234", keling, modulni Arduino-ga ulaymiz.

Va men CNC qalqoni v 3.0 dan foydalanayotganimdan beri. Men u uchun ulanish sxemasini ham taqdim etaman.

Men o'z sxemamni yaratmayman, lekin uni bitta maqoladan olaman. Uning yaratuvchisi meni kechirsin.

Diagramma, albatta, juda silliq emas, lekin mening fikrimcha, bu juda tushunarli.

Xo'sh, nima uchun rezistorlar zanjirda ishlatiladi? Arduino 5 voltli mantiqqa ega, ya'ni Arduino barcha chiqishlariga 5V kuchlanish yuboradi. Ammo modulda LEVEL 3.3v deyiladi, ya'ni Bluetooth 3.3V talab qiladi, lekin 5V emas. Shuning uchun rezistorlar kuchlanishni pasaytirish va Bluetooth modulining ishdan chiqishini oldini olish uchun ulanadi.

Lekin men uni to'g'ridan-to'g'ri rezistorlarsiz ishlatishga qaror qildim, keling, modul qancha davom etishini ko'raylik, biz qandaydir halokat testini o'tkazamiz.

CNC (CNC) mashinasini telefon yoki planshetdan boshqarish uchun men "Grbl controller" dasturidan foydalandim, u bepul va juda ko'p funksiyali. Quyidagi videoda men ushbu dasturdan mashina qanday boshqarilishini qisqacha ko'rsatdim.

Ammo agar siz kompyuterdan ulansangiz, unda nuance bor; modul bilan ulanishni ulashda ikkita yangi COM port. Men uchun bu COM6 va COM7. Shunday qilib, ulardan biri ma'lumotlarni yuborish uchun, ikkinchisi esa qabul qilish uchun ishlatiladi. Shuning uchun, qo'rqishning hojati yo'q va shunchaki biriga ulanishga harakat qiling, agar hech narsa bo'lmasa, boshqasiga ulaning.

Agar biror narsa aniq bo'lmasa, men buni videoda aniq ko'rsatdim:

Ko'pincha loyihalaringizda masofadan boshqarish yoki telefon gadjetlaridan ma'lumotlarni uzatish zarurati paydo bo'ladi.

Bluetooth orqali ma'lumot almashishning eng mashhur va keng tarqalgan usullaridan biri .

Bugun biz ko'rib chiqamiz oddiy misollar bluetooth-ni qanday ulash mumkin modulni Arduino-ga o'rnating va sozlang masofaviy boshqarish telefondan.

Bizga kerak bo'ladi:

  • MALE-MAMA simlari to‘plami
  • HC-06 Bluetooth

Bluetooth ni ulang Arduino mikrokontroller moduli MALE-MAMALE simlaridan foydalangan holda eng qulaydir.

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

Ehtiyot bo'ling, ulanishingiz kerak TX -> RXD ,RX -> TXD .

Endi siz dasturning test kodini yozishingiz kerak:

Eskizni yuklashda Bluetooth moduli arduino mikrokontrolleridan uzilgan bo'lishi kerak. Aks holda, eskiz yozilmaydi, chunki Bluetooth bilan ulanish Modul USB bilan bir xil RX va TX portlari orqali muloqot qiladi.

Int val; int LED = 13; void setup() ( Serial.begin(9600); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); ) void loop() (if (Serial.available()) (val = Serial.read(); / / Belgi "1" bo'lsa, LEDni yoqing, agar (val == "1") ( digitalWrite(LED, HIGH); ) // Belgi "0" bo'lsa, LEDni o'chiring, agar (val ==) "0") ( digitalWrite(LED, LOW ); ) ) )

Eskiz yozib olingandan so'ng va Bluetooth Modul Arduino-ga ulangan, siz keyingi bosqichga o'tishingiz mumkin.

Bluetooth telefoningizga ulanmoqda

Arduino uchun quvvat manbai sifatida USB emas, balki tashqi 9 V quvvat manbaidan foydalanish tavsiya etiladi.

  1. Telefoningizda Bluetooth-ni yoqing va yangi qurilmalarni qidiring
  2. Biz buzilishlar ro'yxatida topamiz " HC-06" va unga ulaning.
  3. Telefon PIN kodni so'raydi. kiritishingiz kerak" 1234 "yoki" 0000 "
  4. Xayr. Qurilma ulangan.

Endi siz bluetooth terminalini telefoningizga yuklab olishingiz kerak. Biz Android platformasining misolini ko'rib chiqamiz.



Turli xil bluetooth terminallarini o'rnatishingiz mumkin, qoida tariqasida ular faqat turli dizaynlarda farqlanadi, funksionallik o'zgarmaydi. Siz iOS mahsulotlari uchun terminalni ham topishingiz mumkin.

Terminalni o'rnatganimizdan so'ng, biz uni ishga tushiramiz, HC-06 bluetooth modulimizni tanlaymiz va unga ulanamiz.

Loyihani amalda sinab ko'rish vaqti keldi. Biz terminalda "0" raqamini yozamiz va jo'natamiz. Arduino platasida 13-pin yonida joylashgan LED L o'chib ketishi kerak. Endi biz terminal orqali "1" raqamini yuboramiz va L LED yonishi kerak.

Ishning namoyishi:


Uy vazifasi:

  • Eskizni o'zgartiring, shunda LED yonadi va xuddi shu buyruq yordamida o'chadi, masalan, "G".
  • Eskizni to'ldiring va bluetooth orqali keladigan matn ma'lumotlarini raqamli ma'lumotlarga aylantirishni o'rgating va bluetooth orqali keladigan 0 dan 254 gacha bo'lgan yorqinlikda dimerni, PWM yordamida LEDni yoqing.

Bugun biz orqali simsiz ma'lumotlarni uzatish uchun arzon modul bilan tanishamiz Bluetooth.

Bluetooth ko'plab qurilmalar o'rtasida ma'lumotlarni simsiz uzatish imkonini beruvchi simsiz shaxsiy tarmoq tarmoqlari uchun sanoat spetsifikatsiyasi.

Bizning modulimiz chaqiriladi HC-05. Bu HC-03 - HC-09 shunga o'xshash modullar liniyasining vakillaridan biridir.

Ushbu modullar Bluetooth protokoli qanday ishlashi, uning maydonlari va boshqa nozikliklari haqida o'ylamasdan, ma'lumotlarni simsiz uzatish imkonini beradi. Bu modullar to'g'ri sozlamalar kodni yozuvchi dasturchi simli UART interfeysi bilan ishlayotgandek algoritmni yozadigan tarzda ma'lumotlarni uzatishni ta'minlang. Shu sababli, kod yozish imkon qadar qulay bo'ladi va shuning uchun modullarning ushbu liniyasi nafaqat yangi boshlanuvchi dasturchilar orasida juda mashhur bo'ldi.

Shunday ekan, siz ham, men ham ulardan ortda qolmay, biroz tanaffus qilaylik tarmoq protokollari va bunday modulni o'rganing. Bunday modullarni chetlab o'tmasligim va ulardan foydalanib biron bir dars yozishim uchun ochiq chatlarda bo'lgani kabi shaxsiy so'rovlar ham ko'p edi.

Modullar quyidagi asosiy xususiyatlarga ega:

  • Bluetooth chipi - BC417143 ishlab chiqarish CSR kompaniyasi,
  • ma'lumotlarni uzatish protokoli - Bluetooth 2.0+EDR,
  • 2-sinf, bu 10 m gacha bo'lgan radiusda ma'lumotlarni uzatishga mos keladi;
  • Seriya port profilini qo'llab-quvvatlash ( SPP), bu profilni qo'llab-quvvatlaydigan barcha qurilmalar bilan mosligini ta'minlaydi,
  • 8 MB sig'imli o'zgarmas flesh xotira,
  • 2,4 - 2,4835 MGts chastotali radiokanal,
  • USB Host 1.1/2.0 interfeysi,
  • Sozlanishi uzatish tezligiga ega UART interfeysi.

Bundan tashqari, ushbu xususiyatlar bilan bir qatorda, modulning bortida juda ko'p oyoqlari borligini ta'kidlash kerak, bu esa uni kengroq diapazonda ishlatishga imkon beradi. Keling, modulning pinout diagrammasini ko'rib chiqaylik

Biz bu erda GPIO, SPI, USB, PCM pinlarini ko'ramiz.

To'g'ri, hozircha biz faqat USART interfeysi bilan ishlaymiz, uning yordamida biz nafaqat foydali ma'lumotlarni uzatamiz, balki modulimizni ham sozlaymiz.

Biz buni birinchi navbatda qilamiz, chunki bizning modullarimiz bir xil turdagi bo'ladi (menda ulardan 4 tasi bor!), Bunda HC-05 moduli boshqa taxtaga lehimlanadi, unda faqat 6 ta kontakt tashqariga yo'naltiriladi. Menda hammasi shunday (yuqori va pastki ko'rinish)

Oyoqlarning maqsadi taxtaning pastki qismida ko'rsatilgan, biz modulni ulaganimizda ularni aniqlaymiz.

Ikkinchidan, biz ko'plab kontaktlarning qolgan qismi bilan ishlamaymiz, chunki har bir proshivka buni amalga oshirishga imkon bermaydi.

Umuman olganda, tanlov HC-05 ga tushdi, chunki ushbu modul Ham master, ham tobe ish uchun mukammal tarzda sozlanishi.

Modul AT buyruqlari yordamida ma'lumotlar bilan keyingi ishlash uchun sozlangan. O'ylaymanki, biz hammamiz bu buyruqlar nima ekanligini ko'proq yoki kamroq bilamiz; biz Wi-Fi moduli bilan ishlaganimizda ular bilan bir oz tanishdik. Albatta, bu buyruqlar barcha qurilmalar uchun farq qiladi va shuning uchun men sahifaning pastki qismida buyruqlarning to'liq ro'yxati bilan hujjatni biriktiraman. Bundan tashqari, Internetda ushbu buyruqlarning tavsifi rus tiliga tarjima qilingan resurslarni topish oson va hatto ulardan foydalanishning ba'zi misollari ham mavjud. Biz bu erda buyruqlarni to'liq tarjima qilish bilan shug'ullanmaymiz, biz faqat foydalanishimiz kerak bo'lgan buyruqlarni o'rganamiz. Hozircha ularning ro'yxati unchalik keng bo'lmaydi, lekin keyinroq biz ushbu modullarga qaytamiz, umid qilamanki, bir necha marta va keyin biz ushbu modul bo'yicha bilimlarimizni kengaytiramiz. Ayni paytda biz modul bo'yicha qisqacha ekskursiya beramiz. Albatta, biz u holda emas, balki ishda sinab ko'ramiz.

Hozircha modulimizni TTL-USB adapteriga ulaymiz, bu esa o'z navbatida shaxsiy kompyuterga ulanamiz.

Quyidagi diagramma bo'yicha ulanamiz

TTL-USB adapter moduli HC-05

VCC VCC

GND GND

TXD RXD

RXD TXD

Amalda u shunday ko'rinadi

Keling, adapterni kompyuterga ulaymiz, men sizga ushbu turdagi adapterlar bilan qanday ishlashni aytmayman, biz allaqachon ular bilan doimo ishlaymiz. Keling, terminal dasturini ishga tushiramiz, men CoolTerm dasturidan foydalanaman, chunki u klaviaturadan ma'lumotlarni uzatish uchun yanada moslashuvchan sozlamalarga ega va buyruqlarni kiritish uchun biz uzatish paytida har bir satrni chiziqli uzatish va vagonni qaytarish kodi bilan yakunlashimiz kerak.

Keling, dastur sozlamalariga o'tamiz va avval portni sozlaymiz

Ushbu tezlik 38400 tanlangan, chunki modul AT buyruqlarini qabul qilishda aynan shu tezlikda ishlaydi.

Endi chapdagi elementni tanlang Qabul qilish va u erda bir tugmani almashtiring va ikkinchisini yoqing

Birinchi tugma uzatilgan buyruqlarni qatorni uzatish va karetkani qaytarish belgilari bilan tugatish uchun, ikkinchisi esa kiritilgan buyruqlarni qabul qiluvchi terminal oynasiga kiritganimizdan keyin ham ko'rishimiz uchun.

Keling, sozlamalarni saqlab, ulanishga harakat qilaylik. Agar hamma narsa muvaffaqiyatli bo'lsa, biz uzamiz, chunki hozir bizning modulimiz ma'lumotlarni uzatish rejimida va agar u hali sozlanmagan bo'lsa, biz uning manzilini yoki sozlamalarini ham bilmaymiz. Modulni topish haqida bu rejim Bu ko'k LEDning tez miltillashi bilan ko'rsatiladi.Shuning uchun biz modulni qandaydir tarzda AT buyruqlarini uzatish holatiga keltirishimiz kerak.

Buni amalga oshirish uchun biz adapterni USB portidan uzamiz va simni HC-05 modulining oyog'iga ulaymiz. KEY. Ba'zilar uchun u boshqa nomga ega bo'lishi mumkin, lekin siz uni chalkashtirib yuborishingiz mumkin deb o'ylamayman. Keling, simni shunday va shunga o'xshash tarzda ulaymiz

Keling, ushbu simni musbat quvvatga ulaymiz (VCC oyog'i bilan)

Va kontaktni bo'shatmasdan, adapterni ulang USB port kompyuter va bir muncha vaqt o'tgach (bir yoki ikki soniya ichida) biz simni olib tashlash orqali KEY kontaktimizni VCC kontaktidan uzamiz. Modul AT buyruqlarini qabul qilish rejimiga o'tishi kerak, bu LEDning juda sekin miltillash tezligi bilan ko'rsatiladi.

Keling, terminal dasturiga o'tamiz, portga ulanamiz va buyruq yuborishga harakat qilamiz DA, modul bizga javob berishi kerak "KELISHDIKMI"

Modul javob berdi, ya'ni hamma narsa to'g'ri.

Bir vaqtlar kimdir tomonidan o'rnatilgan sozlamalar bilan adashmaslik uchun keling, buyruqni kiritish orqali barcha sozlamalarni yig'amiz. AT+ORGL". Sozlamalar quyidagi parametrlarga qaytarilishi kerak:

  • Qurilma turi: 0
  • So'rov kodi: 0x009e8b33
  • Modulning ishlash rejimi: Slave Mode
  • Ulanish rejimi: Belgilangan Bluetooth qurilmasiga ulaning
  • Seriya parametri: uzatish tezligi: 38400 bit/s; To'xtatish biti: 1 bit; Parite biti: Yo'q.
  • Parol: “1234”
  • Qurilma nomi: “H-C-2010-06-01”

Faqat sozlamalar darhol qo'llanilmaydi. Siz modulni qayta yuklashingiz kerak. Buni buyruqni kiritish orqali qilish qulay. AT+RESET", bunga javoban modul qayta ishga tushadi va ma'lumotlarni uzatish rejimiga qaytadi va hozircha buyruqlarni qabul qila olmaydi. Ularni qabul qilish uchun biz yuqoridagi kabi harakatlarni bajaramiz, shunda modul yana AT buyruqlarini qabul qilish rejimiga o'tadi. Boshqa yo'l bor, lekin biz hozircha foydalanmaymiz.

Endi modulimizning ba'zi parametrlarini tekshiramiz.

Mikrodastur versiyasini bilish uchun buyruqni kiriting " AT+VERSION?", modul shunga o'xshash narsaga javob berishi kerak

Agar proshivka ushbu versiyadan past bo'lmasa, unda bunday proshivkaga ega ushbu modul master rejimida ishlashga qodir ekanligiga ishonch hosil qilishimiz mumkin.

Buyruq yordamida qurilma manzilini toping. AT+ADDR?«

Biz ushbu manzildan asosiy qurilmadagi qurilmamizni aniqlash uchun foydalanamiz. Asosiy qurilma sifatida biz eng oddiy smartfonni olamiz, ammo bu biroz keyinroq bo'ladi. Biz hali jamoalar bilan yaxshi o'ynashimiz kerak.

"Buyruq yordamida qurilma nomini ham so'raymiz. AT+NAME?", bunga ko'plab modullar, shu jumladan meniki, KEY oyog'ida yuqori daraja bo'lsa, ya'ni sim ulanganda javob beradi. Keling, shunday qilaylik

Keling, bu nomni ham o'zgartirishga harakat qilaylik, chunki bu unchalik qulay emas, buning uchun "AT+NAME: Desired_name" buyrug'ini kiriting. Ushbu buyruqni KEY pinida yuqori darajasiz kiritish mumkin

Keling, ism o'zgarganligini tekshirib ko'raylik, faqat KEY oyog'idagi yuqori darajani unutmang

Ism yaxshi qo'llaniladi.

Parolni buyrug'i bilan tekshiramiz " AT+ PSWD?«

Ism bilan bir xil tarzda siz parolni o'zgartirishingiz mumkin.

Endi biz qurilmaning turini (qul yoki master) buyrug'i yordamida aniqlaymiz. AT+ ROLE?«

0 qul degan ma'noni anglatadi. Turni istalgan vaqtda o'zgartirish ham mumkin. Ammo hozircha bizga bu kerak emas, chunki biz qurilma bilan qul sifatida ishlaymiz.

“Buyruq bilan ulangan qurilmalarni qayta o'rnating. AT+RMAAD«

Endi USART interfeysi sozlamalarini buyrug'i bilan bilib olaylik. AT+ UART?«

Ushbu sozlamalar: 38400 kbps, 1 stop bit va paritet yo'q degan ma'noni anglatadi.

Ushbu jadval mavjud mumkin bo'lgan variantlar USART sozlamalari

Masalan, uzatish tezligini buyrug'i bilan o'zgartiramiz " AT+UART=115200,0,0«

Faqatgina ushbu sozlamalar modul qayta ishga tushirilgandan so'ng kuchga kiradi va faqat ma'lumotlarni uzatish rejimiga tegishli bo'ladi; AT buyruqlarini modulga uzatish rejimi uchun bir xil sozlamalar 38400 tezligida qoladi.

"Buyruq bilan modulni qayta yuklaymiz" AT+RESET", shundan so'ng modul ma'lumotlarni uzatish rejimiga o'tadi.

Terminal dasturidagi portni shunday qilib sozlaymiz berilgan tezlik va u bilan bog'laning

Modulimiz javob bermaydigan buyruqni kiritishga harakat qilaylik, chunki rejim bir xil emas

Ammo tushkunlikka tushmaylik. Ma'lum bo'lishicha, modulga buyruqlar yuborish uchun uni ushbu rejimga qo'yish shart emas. Ma'lumotlar rejimida AT buyruqlarini uzatish uchun qo'llab-quvvatlashni yoqishingiz mumkin. Qisqa vaqt ichida (bir soniyadan kamroq vaqt etarli), biz modulning musbat avtobusining KEY kontaktiga ulangan simga tegamiz va modul AT-buyruqni qo'llab-quvvatlash rejimiga o'tadi. To'g'ri, biz buni LED miltillashining tabiati bilan aniqlay olmaymiz, u xuddi tez miltillaydi. Bundan tashqari, biz buyruq beradigan qo'llab-quvvatlash rejimida asosiy qurilma biz bilan bog'lana olmaydi. Ammo shunga qaramay, biz simni doimiy ravishda olib tashlashimiz shart emas USB ulagichi va terminal dasturidagi portni qayta sozlang. Bu allaqachon yaxshi. Keling, ushbu amalni bajaramiz va modul buyruqlarni qabul qilish rejimida bo'lgani kabi buyruqlarni ham qabul qilishiga ishonch hosil qilamiz.

Ushbu qo'llab-quvvatlashni olib tashlash va modul ulanishi uchun uni " buyrug'i bilan qayta ishga tushiring. AT+RESET". Keling, shunday qilaylik

Ajoyib! Biz allaqachon nimanidir bilamiz. Asosan, biz modulni asosiy rejimda ma'lumotlarni uzatish uchun sozladik.

Endi bizda mavjud bo'lgan smartfon asosiy qurilma sifatida ishlaydi. Android-ga ega bo'lgan har bir kishi, agar Bluetooth uchun qandaydir terminal dasturiga ega bo'lsa, buni qiladi. Men buni o'rnatdim. Men buni qulay deb topdim

Birinchidan, bu bepul, oldindan ulanishni talab qilmaydi, shuningdek, biz oldindan saqlagan qatorli bir nechta tugmachalarga ega.

Keling, dasturni yuklab olib o'rnatamiz va uni ishga tushiramiz. SCAN tugmasini bosing va bizning modulimiz topilgan qurilmalar ro'yxatida paydo bo'lishi kerak

Keling, tanlaymiz bu qurilma va biz juftlikni yaratish dialog oynasiga o'tamiz, unda siz parolni kiritishingiz kerak (bizda "1234" mavjud) va "OK" tugmasini bosish orqali rozilik bildirasiz.

Har qanday narsani boshqarish haqida o'ylab ko'rgan elektron qurilmalar smartfondan foydalanasizmi? Qabul qiling, robot yoki boshqa qurilmalarni smartfoningizdan boshqarish juda zo'r bo'lardi. Biz yangi boshlanuvchilar va dummilar uchun Bluetooth orqali Arduino yordamida smartfonni qanday boshqarish bo'yicha oddiy darsni taklif qilamiz. Agar ushbu darsdan so'ng siz Arduino bilan yaqinroq tanishmoqchi bo'lsangiz, bu haqda kitoblarni topishingiz mumkin.

1-qadam. Bizga nima kerak

Qurilmalar

Modul - Bluetooth moduli HC 05/06
Kengash - Arduino
Yorug'lik chiqaradigan diod (LED)
Rezistor - 220 Ō
Android qurilmasi

Dasturiy ta'minot

Arduino IDE
Android Studio (aslida kerak emas, chunki siz quyida Android ilovasini topasiz)

2-qadam. U qanday ishlaydi

Odatda biz bu qadamni oxirida qilamiz, ammo nimaga erishishimiz kerakligini tushunishingiz uchun ushbu oraliq bosqichdagi natijaga qarang. Shuningdek, biz quyida bosqichma-bosqich video darslikni nashr qildik.

Qadam 3. Biz sxemani yig'ishni boshlaymiz

Bizning o'quv qo'llanmamizdagi sxema shunchalik sodda va kichikki, biz faqat bir nechta ulanishlarni amalga oshirishimiz kerak:

Arduino pinlari___________Bluetooth moduli pinlari
RX (Pin 0)_____________________________________TX
TX (1-pin)_____________________________________RX
5V__________________________VCC
GND________________________GND

LEDning salbiy qismini Arduino-dagi GND ga, musbatini esa 220 Ohm - 1 kOm qarshilik orqali 13-pinga ulang. Umuman olganda, bizning quyidagi rasmimizda hamma narsa aniq.

RX ni RX ga va TX dan TX Bluetooth chiqishlarini Arduino chiqishlariga ulamang, siz hech qanday ma'lumot olmaysiz, bu erda TX uzatish, RX qabul qilish degan ma'noni anglatadi.

4-qadam: Dasturni Arduino-ga yuklash

Endi biz dastur yozishimiz va uni Arduino-ga yuklashimiz kerak. Agar buni qanday qilishni hali bilmasangiz, kitoblarni yuklab oling. Quyidagi kod Arduino-ga yuklashimiz kerak bo'lgan narsadir.

/* Bluetooh Basic: LED ON OFF * Koder - Mayoogh Girish * Veb-sayt - http://bit.do/Avishkar * Ilovani yuklab oling: https://github.com/Mayoogh/Arduino-Bluetooth-Basic * Ushbu dastur sizga bluetooth moduli yordamida arduinoning 13-pinidagi LEDni boshqarish uchun */ char data = 0; //Qabul qilingan ma'lumotlarni saqlash uchun o'zgaruvchi void setup() ( Serial.begin(9600); //Ma'lumotlarni ketma-ket uzatish uchun uzatishni o'rnatadi pinMode(13, OUTPUT); //Raqamli pin 13ni chiqish pin sifatida o'rnatadi ) void loop() () if(Serial.available() > 0) // Maʼlumotlarni faqat maʼlumot olganingizda yuboring: ( data = Serial.read(); //Kirish maʼlumotlarini oʻqing va uni oʻzgaruvchan maʼlumotlarga saqlang Serial.print(data); // Serial monitordagi ma'lumotlar ichidagi Chop etish qiymati Serial.print("\n"); //Yangi qator if(data == "1") // Ma'lumotlar qiymatining 1 digitalWrite(13, HIGH) ga teng yoki yo'qligini tekshiradi; // Agar qiymat 1 bo'lsa, LED yonadi, aks holda (ma'lumotlar == "0") // Ma'lumotlar qiymati 0 ga tengligini tekshiradi digitalWrite(13, LOW); //Agar qiymat 0 bo'lsa, LED o'chadi) )

Qadam 5. Jarayon qanday ishlaydi

HC 05/06 moduli ketma-ket aloqa kanali orqali ishlaydi. Android ilovasi ma'lum bir tugmani bosganingizda ma'lumotlarni Bluetooth moduliga ketma-ket yuboradi. Boshqa tarafdagi Bluetooth ma'lumotlarni qabul qiladi va Bluetooth modulining TX ulanishi (Arduino RX ulanishi) orqali Arduino-ga yuboradi.

Arduino-ga yuklangan kod olingan ma'lumotlarni tekshiradi va ularni taqqoslaydi. Agar "1" olinsa, LED "0" olinganda yonadi va o'chadi. Seriya port monitorini oching va olingan ma'lumotlarni kuzating.

Qadam 6. Android qurilmalari uchun ariza

Ushbu qo'llanmada biz Android qurilmalari uchun ilovalar yaratish haqida gapirmaymiz. Ilovani GitHub-da yuklab olishingiz mumkin.

Ilovadan qanday foydalanish kerak?

Bluetooth orqali ulanganimizdan so'ng biz smartfon yordamida :) masofadan turib LEDni boshqaradigan dasturni yuklab olishimiz va o'rnatishimiz kerak. Ilovani Amazon.com saytida bepul yuklab olishingiz mumkin. Biz smartfonni HC 05/06 Bluetooth moduliga ulaymiz:

  1. HC 05/0 modulini yoqing
  2. Qurilma qidirilmoqda
  3. Biz standart parolni "1234" yoki "0000" (to'rtta nol) kiritish orqali HC 05/06 ga ulanamiz.

Shundan so'ng biz ilovani smartfonimizga o'rnatamiz. Keling, ochaylik. Qurilmani tanlang - ro'yxatdan Bluetooth modulini tanlang (HC 05/06). Muvaffaqiyatli ulanishdan so'ng, LEDni yoqish uchun ON tugmasini va LEDni o'chirish uchun OFF tugmasini bosing. Keyin Bluetooth modulidan uzilish uchun "Ajratish" tugmasini bosishingiz mumkin.

Bu qo'g'irchoqlar va yangi boshlanuvchilar uchun Bluetooth modulini Arduino bilan qanday ulash bo'yicha qo'llanma edi. Ushbu loyiha, masalan, smartfonni boshqarish, boshqariladigan robot va boshqa ko'p narsalar orqali uyni avtomatlashtirish uchun takomillashtirilishi va yuqori darajaga ko'tarilishi mumkin.

HC-05 Bluetooth modulini ko'rib chiqish

Arduino boshqaruvchisi simsiz aloqani qo'llab-quvvatlamaydi va ko'pincha bu shunchaki zarur. Masalan, masofaviy boshqarish Arduino-dagi robot, ob-havo stantsiyasidan Arudinoga Internetga yoki ma'lumotlarni yuboradi uy serveri, bir nechta qurilmalarning bir-biri bilan aloqasi. Bu erda qurilma ishlab chiqaruvchilariga yordam berish uchun turli texnologiyalarni tashkil qilish uchun ko'plab tashqi modullar mavjud. simsiz aloqa: WiFi modullari, GSM/GPRS, IR, Bluetooth, turli chastota diapazonlarida ishlash uchun radio modullar.

Bluetooth texnologiyasi to'g'ridan-to'g'ri ko'rishni talab qilmasdan, bir-biriga yaqin joylashgan ikkita qurilma o'rtasida ma'lumotlarni uzatish uchun ishlatiladi. Bluetooth texnologiyasi keng polosali shovqinlarga yaxshi qarshilik ko'rsatadi, bu bir joyda joylashgan bir nechta qurilmalarni bir vaqtning o'zida bir-biriga aralashmasdan muloqot qilish imkonini beradi. Juda keng bu texnologiya telefonlar, planshetlar, noutbuklarda ishlatiladi.

Bittasi eng yaxshi yechimlar Arduino qurilmangiz va planshetingiz, noutbukingiz yoki boshqa Bluetooth qurilmangiz o'rtasida ikki tomonlama Bluetooth aloqasini tashkil qilish uchun - HC-05 Bluetooth moduli, u ham master (Bluetooth qurilmalarini qidirish va aloqani boshlash) va qul (qul qurilma) sifatida ishlashi mumkin. ).

HC05 modulining texnik tavsiflari

  • Bluetooth chipi: HC-05 (BC417143)
  • Radiochastota diapazoni: 2,4 - 2,48 GHz
  • Etkazish quvvati: 0,25–2,5 mVt
  • Sezuvchanlik: -80 dBm
  • Ta'minot kuchlanishi: 3,3–5 V
  • Joriy iste'mol: 50 mA
  • Diapazon: 10 metrgacha
  • Interfeys: ketma-ket port
  • Tartiblar: usta, qul
  • Saqlash harorati: –40…85 °C
  • Ishlash harorati diapazoni: –25…75 °C
  • Olchamlari: 27 x 13 x 2,2 mm

Ulanish

Sensorda 6 2,54 mm standart pin mavjud:

  • VCC - (quvvat manbai 3,6 – 6 V);
  • GND - (tuproq).
  • TXD, RXD - UART interfeysi;
  • STATE - holat ko'rsatkichi;
  • KEY - dasturlash rejimiga kirish uchun kontakt.

Modul AT buyruqlarini yuborish orqali dasturlash rejimida sozlangan ketma-ket port. Dasturlash rejimiga kirish uchun siz KEY kontaktiga yuqori darajadagi signalni qo'llashingiz kerak. Ba'zi modullarda KEY pin yo'q, uning o'rniga EN pin mavjud:

  • UZ - modulni yoqish / o'chirish;


Bunday holda, dasturlash rejimiga kirish uchun siz 34-pinga yuqori darajadagi signalni qo'llashingiz kerak:


K moduli uchun Arduino taxtasi ketma-ket portni yon tomondan ishlatamiz Arduino dasturiy ta'minot UART. Rasmdagi ulanish diagrammasi:


Siz quyidagi kabi narsalarni olishingiz kerak:


Bluetooth HC05 modulini dasturlash

Modul dasturlash rejimida AT buyruqlarini ketma-ket port orqali yuborish orqali sozlangan. Keling, HC05 modulini Arduino platasiga 5-rasmdagi ulanish sxemasiga muvofiq ulaymiz. Modulning KEY piniga (yoki plataning 34-piniga) 3,3V quvvat qo'ying. Biz Arduino IDE seriyali port monitoridan AT buyruqlarini yuboramiz. 1-listingdan eskizni Arduino-ga yuklaymiz.Bizga Arduino SoftwareSerial kutubxonasi kerak bo‘ladi. Dasturlash rejimida UART modulining tezligi 38400 bodni tashkil qiladi, ammo u farq qilishi mumkin, bu holda uni tanlash kerak.

O'z ichiga oladi SoftwareSerial mySerial(2, 3); // mos ravishda rx va tx pinlarini belgilang, o'rnatishni bekor qiling() ( 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(); // Serial.print(c) dasturiy ta’minot portidan o‘qish); // apparat portiga yozish ) agar ( Serial .available()) ( char c = Serial.read(); // mySerial.write(c) apparat portidan o'qish; // dasturiy ta'minot portiga yozish ) )

Eskizni yuklab olgandan so'ng, Arduino IDE seriyali port monitorini oching va AT buyruqlarini yuborishni boshlang:


Asosiy AT buyruqlar ro'yxati:

  • AT - sinov buyrug'i.

Parametrlar yo'q.

Modul javobi: OK

  • AT+VERSION? - modul proshivka versiyasini oling.

Parametrlar yo'q.

Modul javobi: +VERSION:

Qayerda Bluetooth moduli proshivka versiyasi.

  • AT+RESET - sozlamalarni tiklash.

Parametrlar yo'q.

Modul javobi: OK

  • AT+ORGL - moslashtirilgan modul sozlamalarini o'rnatish.

Parametrlar yo'q.

Modul javobi: OK

  • AT+ADDR? - modul manzilini oling.

Parametrlar yo'q.

Modul javobi: +ADDR:

Qayerda Bluetooth moduli manzili NAP: UAP: LAP.

  • AT+NAME? - modul nomini oling.

Parametrlar yo'q.

Modul javobi: +NAME:

Qayerda Bluetooth moduli nomi.

  • AT+NAME= Yangi modul nomini o'rnating.

Parametr: Bluetooth moduli nomi.

Modul javobi: +NAME:

OK (yoki muvaffaqiyatsiz)

  • AT+PSWD? - Bluetooth moduliga kirish uchun PIN kodni oling.

Parametrlar yo'q.

Modul javobi: + PSWD:

Qayerda Pin. Standart 1234.

  • AT+PSWD= Bluetooth moduli uchun kirish kodini o'rnating.

Parametr: Modulga kirish kodi.

Modul javobi: OK (yoki muvaffaqiyatsiz)

  • AT+CLASS= Bluetooth modulining ishlash rejimini o'rnating.

Parametr: Sinf. Modul hujjatlari mumkin bo'lgan qiymatlarni taqdim etmaydi bu parametr. Odatiy bo'lib u 0 ga o'rnatiladi. Agar modulni asosiy rejimda ishlatmoqchi bo'lsangiz, qiymatni o'zgartirish shart emas. Agar siz moduldan qul rejimida foydalansangiz, parametr qiymati 0 ga teng bo'lsa, u ishlaydigan qurilmalarga ko'rinmaydi. Android tizimi. Ko'rinish uchun parametr qiymatini 7936 ga o'rnatishingiz kerak.

Modul javobi: OK

  • AT+CLASS? - modul sinfini oling.

Parametrlar yo'q.

Modul javobi: +CLASS:

Qayerda Modul sinfi.

  • AT+IAC - GIAC (General Inquire Access Code) so'roviga kirish kodini oling.

Ulanishni o'rnatish jarayonida foydalaniladigan turli jismoniy aloqa kanallari turli kanallarga kirish kodlariga ega. Saylov kanallarida, ajratilganlardan tashqari, barcha qurilmalar uchun bir xil umumiy so'rovga kirish kodi qo'llaniladi.

Parametrlar yo'q.

Modul javobi: + IAC:

Qayerda Kirish kodini so'rang.

  • AT+IAC= So'rovga kirish kodini o'rnating.

Parametr: Kirish kodini so'rang. Standart qiymat 9e8b33.

Modul javobi: OK (yoki muvaffaqiyatsiz)

  • AT+ROLE? - modulning ishlash rejimini olish.

Parametrlar yo'q.

Modul javobi: +ROLE:

Qayerda Bluetooth modulining ishlash rejimi:

  • 0 - qul. Ushbu rejimda modulga boshqa usta ulanishi mumkin;
  • 1 - usta. Ushbu rejimda modul har qanday Bluetooth qurilmasiga ulanishi mumkin;
  • 2 - qul-loop. Modul unga yuborilgan barcha baytlarni qaytarib yuboradi.
  • AT+ROLE= Bluetooth modulining ishlash rejimini o'rnating.

Parametr: Bluetooth modulining ishlash rejimi:

  • 0 - qul;
  • 1 - usta;
  • 2 - qul -

Modul javobi: OK

  • AT+UART= ,,Seriyali port uchun modulni o'rnating.

Variantlar:

  • Bitta to'xtash:
  • 0 - yo'q;
  • 1 - ha;
  • Parite biti:
  • 0 - yo'q;
  • 1 - ha.

Modul javobi: OK (yoki FAIL).

  • AT+UART? - modul almashinuvi parametrlarini olish.

Parametrlar yo'q.

Modul javobi: +UART: ,,

  • Bod tezligi (9600,19200,38400,57600,115200);
  • Bitta to'xtash;
  • Parite biti.
  • AT+CMODE= Bluetooth moduliga ulanish rejimini o'rnating.

Parametr:

  • 2 - tobe-loop rejimi.

Modul javobi: OK

  • AT+CMODE? - modulga ulanish rejimini oling.

Parametrlar yo'q.

Modul javobi: +CMODE:

Qayerda Bluetooth moduliga ulanish rejimi:

  • 0 - modul faqat AT+BIND buyrug'i bilan belgilangan Bluetooth qurilmasiga ulanishi mumkin;
  • 1 - modul har qanday Bluetooth qurilmasiga ulanishi mumkin;
  • 2 - tobe-loop rejimi.
  • AT+INQM= ,,Bluetooth qurilmalarini qidirishni so'rash uchun parametrlarni o'rnating.

Variantlar:

  • :
  • 0 - standart so'rov rejimi;
  • 1 - RSSI rejimida so'rov;
  • So'rovga javob beradigan qurilmalarning maksimal soni;
  • Kutish vaqti (1–48: 1,28 soniyadan 61,44 sekundgacha).

Modul javobi: OK (yoki FAIL).

  • AT+INQM? - Bluetooth qurilmalarini qidirishni so'rash uchun parametrlarni oling.

Parametrlar yo'q.

Modul javobi: +UART: ,,

  • AT+INQ - Bluetooth qurilmalarini qidirishni boshlang.

Parametrlar yo'q.

Modulning javobi topilgan qurilmalar ro'yxatidir.

  • AT+BIND= Bluetooth modulini boshqa modulga ulang.

Modul javobi: OK (yoki FAIL).

  • AT+BIND? - Bluetooth moduli bilan bog'langan qurilma manzilini oling.

Parametrlar yo'q.

Modul javobi: Bluetooth moduli bilan bog'langan qurilma manzili.

  • AT+FSAD=

    Modul javobi: OK (yoki FAIL).

    • AT+RMSAD=

      Modul javobi: OK (yoki FAIL).

      • AT+RMAAD - Bluetooth modulimiz uchun ruxsat berilgan qurilmalar ro'yxatini tozalang.

      Modul javobi: OK (yoki FAIL).

      • AT+LINK= Bluetooth qurilmasiga ulaning.

      Parametr: Bluetooth qurilmasi manzili.

      Modul javobi: OK (yoki FAIL).

      AT buyruqlarining to'liq ro'yxatini topish mumkin.

      Foydalanish misoli

      Android qurilmasida (telefon, smartfon, planshet) Arduino-ga ulangan DHT11 sensoridan havo namligi va harorat ma'lumotlarini olish misolini ko'rib chiqaylik. Arduino har 10 soniyada DHT11 sensoridan ma'lumotlarni oladi va uni HC05 moduli orqali Android qurilmasiga yuboradi.

      Bizga quyidagi qismlar kerak bo'ladi:

      • Arduino taxtasi
      • prototiplash taxtasi
      • DHT11 sensori
      • Bluetooth moduli HC05
      • ulash simlari
      • Android telefon yoki planshet

      Keling, rasmda ko'rsatilgan sxemani yig'amiz:


      Biz olamiz:


      Arduino platasiga eskizni yuklaymiz (pastga qarang) - DHT11 sensoridan namlik va harorat ma'lumotlarini olish va Android qurilmasidagi HC05 moduli orqali ma'lumotlarni ketma-ket portga (apparat) chiqarish.

      H" // konstantalar #define DHTPIN 8 // DATA kontaktini ulash uchun pin #define DHTTYPE DHT11 // sensor DHT 11 #define INTERVAL_GET_DATA 2000 // o'lchov oralig'i, ms // DHT ob'ektining namunasini yaratish DHT dht(DHTPIN, DHTTYPE); // o'lchov oralig'i uchun o'zgaruvchi unsigned long millis_int1=0; int pos=0; // shu jumladan SoftwareSerial.h kutubxonasi #include SoftwareSerial mySerial(2, 3); // mos ravishda rx va tx pinlarini belgilang void setup() ( Serial.begin(9600); // mySerial.begin(9600) seriyali portni ishga tushiring; dht.begin(); // DHT Serial.println("start prg" ni ishga tushiring " ); ) void loop() ( if(millis()-millis_int1 >= INTERVAL_GET_DATA) ( pos=1-pos; if(pos==0) ​​( // DHT11 dan namlik ma'lumotlarini olish int namlik = dht.readHumidity (); // seriyali port monitoriga chiqish Serial.print("namlik=");Serial.println(namlik); mySerial.print("H=");mySerial.println(namlik); ) boshqa ( // DHT11 dan namlik ma'lumotlarini olish int temp = dht.readTemperature(); // seriyali port monitoriga chiqish Serial.print("temperature=");Serial.println(temp); mySerial.print("T=");mySerial .println(temp) ; ) // hisoblash intervalining boshlanishi millis_int1=millis(); ) )

      Android qurilmasida Arduino tomonidan HC05 bluetooth moduli orqali yuborilgan ma'lumotlarning qabul qilinishini tekshiramiz. Keling, Android qurilmasiga Bluetooth Terminal dasturini o'rnatamiz. Dasturda biz HC05 moduli bilan aloqa o'rnatamiz:


      Va biz Arduino-dan HC05 moduli orqali ma'lumotlarni qabul qilishni kuzatamiz:


      Va ma'lumotlarni Arduino IDE seriyali port monitoriga chiqarish:


      Tez-tez so'raladigan savollar FAQ

      1. Moduldan AT buyruqlariga javob yo'q
      • Modul to'g'ri ulanganligini tekshiring;
      • Modulning KEY pinining (yoki pin 34) 3,3V ga ulanishlarini tekshiring;
      • Seriyali port sozlamalarini tekshiring (tezlik 38400 bod, ehtimol modullar uchun turli ishlab chiqaruvchilar o'chirib qo'yish).
      2. Android qurilmasi bluetooth moduliga ulana olmaydiHC05
      • Modulning quvvat manbaiga ulanishini tekshiring, moduldagi LED tez miltillashi kerak (tarmoq qidirish);
      • Modulning KEY pin (yoki pin 34) 3,3V dan uzilganligini tekshiring;
      • AT buyruqlari yordamida qul rolini o'rnating (AT+ROLE=0).
      3. Ma'lumotlar o'tkazilmaydiAndroid qurilmasi
      • HC05 bluetooth moduli Arduino platasiga to'g'ri ulanganligini tekshiring;
      • Bod tezligi Arduino ma'lumotlari va HC05 AT+UART AT buyrug'i yordamida bitta to'plamga mos kelishi kerak.