- Потребни материјали
- Кружни дијаграм
- Почетна конфигурација модула ХЦ05
- Тестирање Блуетоотх комуникације од Ардуино до Ардуино
ХЦ-05 Блуетоотх модули су прелазни Блуетоотх модули за било који Ардуино пројекат! Једноставно је повезати и кодирати у Ардуино ИДЕ. У већини пројеката обично се повежемо са ХЦ05 на Ардуино и користимо га за бежичну комуникацију са другим паметним уређајем попут мобилног телефона. Ово је прилично једноставно и са њим смо изградили много занимљивих пројеката као што су Блуетоотх контролисани робот, Блуетоотх контрола гласа, Блуетоотх кућна аутоматизација итд. Међутим, да ли вам је икада било потребно да повежете два ХЦ-05 заједно? Није тако једноставно повезати ХЦ05 са паметним телефоном, ту су и неки додатни кораци. Овај водич ће вас водити кроз овај процес. Ускочимо право!
Потребни материјали
- 2к Ардуино (Било који модел ће учинити; користим Ардуино Уно Р3 и Ардуино Нано)
- 2к ХЦ05 Блуетоотх модула
- Бреадбоард
- Јумпер Вирес
- 2к 1кΩ отпорник
- 2к отпорник 2.2кΩ
Кружни дијаграм
Ово је основни дијаграм кола. Повежите 2 од ових кругова, један за мастер и један за славе. Што се тиче веза, све што овде радимо је повезивање ХЦ05 са Ардуином. Пријемник (Рк) пин ХЦ05 ради у опсегу 0В до 3.3В, а Ардуино ради у опсегу 0В до 5В. Дакле, користићемо отпорнике (Р1 и Р2) да бисмо креирали делилац напона како бисмо смањили 5В излаз Ардуина на 3,3В, како не бисмо оштетили модул ХЦ05.
Користим 1кΩ за Р1 и 2.2КΩ за Р2, али можете користити било коју вриједност отпора све док је Р2 приближно двострука вриједност Р1 (Р2 ≈ 2Р1). Слично томе, поновите коло и за главног и за подређеног, испод су приказани Ардуино Мастер Блуетоотх круг и Ардуино Славе Блуетоотх круг.
Почетна конфигурација модула ХЦ05
Ово је додатни корак потребан за повезивање два ХЦ05 модула. Морамо да променимо нека подешавања унутар Блуетоотх модула ХЦ05, да бисмо то урадили, морамо да уђемо у АТ командни режим модула ХЦ05 и да му пошаљемо команде преко серијског монитора Ардуино ИДЕ. Да бисмо то урадили, треба да напишемо Ардуино код за слање наредби преко серијског монитора на ХЦ05.
Код да подесите ХЦ05 модула могу се наћи на дну ове странице, објашњење кода је следећи
Овом коду додајте библиотеку СофтвареСериал.
#инцлуде < СофтвареСериал.х>
Дефинишите бројеве пинова за пренос (Тк) и Примање (Рк). Користим пин 2 за Тк и пин 3 за Рк.
#дефине тк 2 #дефине рк 3
Дајте Блуетоотх вези неко име (овде користим цонфигБт), а затим реците библиотеци СофтвареСериал који је пин Тк, а који Рк. Синтакса је име Блуетоотх (Рк, Тк);
СофтвареСериал цонфигБт (рк, тк); // РКС, ТКС
Да би конфигурисао Блуетоотх модул, Ардуино мора да му шаље команде брзином преноса од 38400 бауд. Слично томе, поставили смо и брзину преноса података Блуетоотх везе на 38400 бауд-ова. Подесите Трансмит (Тк) на излазни пин и Рецеиве (Рк) на улазни пин
воид сетуп () { Сериал.бегин (38400); цонфигБт.бегин (38400); пинМоде (тк, ИЗЛАЗ); пинМоде (рк, ИНПУТ); }
Унутар вечне петље имамо главни део кода. Идеја овде је послати све што је откуцано у оквиру за текст на серијском монитору на ХЦ05 путем Ардуино Тк пина. Затим на серијском монитору прикажите све оно што ХЦ05 исписује.
воид лооп () {иф (цонфигБт.аваилабле ()) // ако ХЦ05 нешто шаље… { Сериал.принт (цонфигБт.реадСтринг ()); // испис у серијском монитору} иф (Сериал.аваилабле ()) // ако серијски монитор даје нешто… {цонфигБт.врите (Сериал.реад ()); // пиши на Ардуиноов Тк пин}}
Прво пренесите овај код у Ардуино повезан на главни ХЦ05 модул. Након отпремања кода, извуците кабл за напајање Ардуино. Притисните и држите дугме на ХЦ05. Сада прикључите кабл за напајање Ардуино, док још увек држите дугме на ХЦ05. У реду, сада можете да отпустите дугме на ХЦ05. Овако прелазите у АТ режим ХЦ05. Да бисте проверили да ли сте то добро урадили, уверите се да црвено светло на ХЦ05 трепће приближно сваке секунде (полако трепће!). Уобичајено пре него што је ХЦ05 повезан са било којим Блуетоотх уређајем, црвено светло трепће на врло високој фреквенцији (брзо трепће!).
Затим отворите серијски монитор (дугме серијског монитора је у горњем десном углу Ардуино ИДЕ-а). Ако то већ нисте учинили, у доњем десном углу прозора серијског монитора подесите поставку завршетка линије на „НЛ и ЦЛ“ и брзину преноса на 38400. Сада унесите АТ у серијски монитор, ако све буде у реду, добићете „У реду“ од ХЦ05 приказаног у прозору серијског монитора. Честитам! Успешно сте се пријавили у АТ командни режим модула ХЦ05.
Сада унесите следеће наредбе у доњу табелу да бисте конфигурисали главни ХЦ05 модул:
ЗАПОВЕДИ (унесите ово у серијски монитор и притисните ентер) |
ОДГОВОР (одговор ХЦ05, приказан на серијском монитору) |
Функција (Шта ова наредба ради?) |
АТ |
ок |
Тест |
АТ + ЦМОДЕ? |
ок |
Проверите ЦМОДЕ или режим везе ----------------------------- ЦМОДЕ: 0 је славе 1 је господар |
АТ + ЦМОДЕ = 1 |
ок |
Поставите ЦМОДЕ на 1 док конфигуришемо главни ХЦ05 |
АТ + АДДР? |
+ АДДР: ФЦА8: 9А: 58Д5 ок * Ово је адреса мог мастер ХЦ05. Ваша адреса ће бити другачија! |
Враћа адресу ХЦ05, забележите ово јер ће нам касније требати! |
Следеће повежите свој рачунар са другим ХЦ05, славе:
ЗАПОВЕДИ (унесите ово у серијски монитор и притисните ентер) |
ОДГОВОР (одговор ХЦ05, приказан на серијском монитору) |
Функција (Шта ова наредба ради?) |
АТ |
ок |
Тест |
АТ + ЦМОДЕ? |
ок |
Проверите ЦМОДЕ или режим везе ----------------------------- ЦМОДЕ: 0 је славе 1 је господар |
АТ + ЦМОДЕ = 0 |
ок |
Поставите ЦМОДЕ на 0 док конфигуришемо славе ХЦ05 |
АТ + ВЕЗА = ФЦА8,9А, 58Д5 * Замените „:“ у главној адреси ХЦ05 са „,“ * Овде користим адресу главног ХЦ05 који сам забележио из претходне табеле. Требали бисте користити адресу свог главног ХЦ05! |
ок |
Постављање адресе главног ХЦ05 на који ће се овај славе ХЦ05 аутоматски повезати приликом покретања |
АТ + ВЕЗА? |
+ ВЕЗА: ФЦА8: 9А: 58Д5 ок * Ово је адреса мог мастер ХЦ05. Ваша адреса ће бити другачија! |
Проверите везујућу адресу вашег роба. Ако се подудара са адресом вашег главног ХЦ05, спремни сте! |
Тестирање Блуетоотх комуникације од Ардуино до Ардуино
Прво, напајајте главни и помоћни ХЦ05 модули. Након што се укључи и прође неколико секунди, погледајте црвено светло на ХЦ05 модулима.
Трепћућа брзина црвеног светла |
Шта то значи |
Трепће на врло високој фреквенцији (брзо трепће!) |
Није добро! То значи да се ваши ХЦ05 модули не повезују једни с другима! Време је за решавање проблема! |
Трепће на ниској фреквенцији (полако трепће!) |
Леп! Успели сте! Али још увек морамо обавити још једну проверу само да бисмо били сигурни да ово подешавање делује! Ићи даље! |
Једном када ваша црвена светла трепере на ниској фреквенцији (полако трепћући!), Можете бити сигурни да су оба ваша ХЦ05 међусобно повезана, али нисмо тестирали да ли подаци могу да се шаљу напред-назад између главног и помоћног уређаја. Напокон, то је овде главна сврха.
Отпремите доњи код на један од Ардуиноса, ово је код за тестирање предајника (Тк), поново се комплетни код и предајника и пријемника може наћи на дну ове странице.
Следећи претходни код, овом коду додајемо библиотеку СофтвареСериал и дефинишемо бројеве пинова за пренос (Тк) и Примање (Рк). Затим именујемо Блуетоотх везу и прослеђујемо Тк и Рк пин бројеве библиотеци.
#инцлуде < СофтвареСериал.х> #дефине тк 2 #дефине рк 3 СофтвареСериал бт (рк, тк); // РКС, ТКС
У функцији подешавања поново подешавамо брзину преноса података за серијски монитор Ардуино и Блуетоотх. Да ли видите разлику овде у односу на претходни код? Користимо брзину преноса од 9600 бауда. Ово је подразумевани унапред скуп комуникација брзина преноса од ХЦ05 Блуетоотх модул за комуникацију са другим Блуетоотх уређајима. Дакле, имајте на уму да је 38400 бауд података за конфигурисање ХЦ05 са АТ наредбама, а 9600 бауд је задата брзина бауд модула ХЦ05. На крају, баш као и пре него што смо конфигурисали Тк пин као излазни и Рк пин као улазни.
воид сетуп () { Сериал.бегин (9600); бт.бегин (9600); пинМоде (тк, ИЗЛАЗ); пинМоде (рк, ИНПУТ); }
Унутар вечне петље, све што радимо је преношење случајне вредности „123“ кроз ХЦ05.
воид лооп () {бт.врите (123); }
Отпремите овај код у други Ардуино, ово је код за тестирање (Рк):
Потпуно исти као и претходни кодови, конфигуришемо библиотеку СофтвареСериал.
#инцлуде < СофтвареСериал.х> #дефине тк 2 #дефине рк 3 СофтвареСериал бт (рк, тк); // РКС, ТКС
Код у функцији подешавања је потпуно исти као код за тестирање преноса (Тк).
воид сетуп () { Сериал.бегин (9600); бт.бегин (9600); пинМоде (тк, ИЗЛАЗ); пинМоде (рк, ИНПУТ); }
У петљи заувек, само треба да примимо оно што шаљемо од Ардуина који преноси. Ако је ме успремник за примање примио неке податке од ХЦ05, тада прикажите све што је примљено на серијски монитор.
воид лооп () {иф (бт.аваилабле ()> 0) { Сериал.принтлн (бт.реад ()); }}
Након што пренесете одговарајуће кодове у сваки Ардуино, отворите серијски монитор примајућем Ардуину. Обавезно одаберите брзину преноса 9600 и линију која се завршава као Нова линија на серијском монитору. Ако све функционише у реду, требало би да видите 123.
Напомена: Ако сте и преносни и пријемни Ардуинос повезали са истим преносним рачунаром, обавезно одаберите одговарајући ЦОМ порт под ТООЛС> ПОРТ. Требали бисте бити повезани са ЦОМ портом Ардуино-а који прима.
Ако све буде у реду, замените ХЦ05 модуле како бисте били сигурни да се комуникација може одвијати у оба смера и МИ СМО ГОТОВИ!