- Захтеви:
- Програмирање ПИЦ микроконтролера за Блуетоотх комуникацију:
- Шема круга и постављање хардвера:
- Контрола ЛЕД-а помоћу Блуетоотх мобилне апликације:
У овом упутству научићемо како бежично растављати ПИЦ пројекте повезивањем Блуетоотх модула (ХЦ-06). У нашем претходном упутству већ смо научили како се користи УСАРТ модул у нашем ПИЦ микроконтролеру и успоставили смо комуникацију између ПИЦ-а и рачунара. Ако сте апсолутни почетник, потражите овде све ПИЦ туторијале, где смо кренули од нуле, попут учења МПЛАБ-а и КСЦ8, повезивања ЛЕД-а, ЛЦД-а, коришћење тајмера, АДЦ-а, ПВМ-а итд.
Овде смо користили популарни Блуетоотх модул ХЦ-06. Коришћењем овог модула можемо бежично да примамо и шаљемо информације са нашег ПИЦ МЦУ-а на мобилну апликацију или рачунар. Комуникација између ПИЦ-а и ХЦ-06 успоставља се помоћу УСАРТ модула присутног у ПИЦ микроконтролеру. Такође можете користити ХЦ-05. Опет радимо у истом асинхроном 8-битном режиму, али овог пута ћемо мало модификовати свој код тако да ради са Блуетоотх модулом. Отуда је претходно учење УАРТ туторијала додатна предност за овај пројекат.
У овом упутству ћемо укључити ЛЕД лампицу слањем команде за укључивање или искључивање са нашег паметног телефона. Користићемо Андроид апликацију под називом Блуетоотх Терминал која може слати и примати податке преко Блуетоотх везе. Ако из апликације пошаљемо знак '1', светло ће се УКЉУЧИТИ на ПИЦ плочи и на телефон ћемо добити потврду да је светло укључено. Слично томе, са телефона можемо послати „0“ да бисмо га искључили. На овај начин можемо контролисати ЛЕД светло на нашој ПИЦ плочи, слично упутству за УАРТ, али сада бежично. Комплетан програм и детаљан видео запис дат је на крају овог водича.
Основни блок дијаграм за подешавање је приказан у наставку.
Захтеви:
Хардвер:
- ПИЦ16Ф877А Перф Боард
- ХЦ-05 или ХЦ-06 Блуетоотх модул
- Рачунар (за програмирање)
- Мобилни телефон
- Програмер ПИЦкит 3
Софтвер:
- МПЛАБКС
- Блуетоотх терминал (мобилна апликација)
Блуетоотх модул ХЦ-06:
Блуетоотх може да ради у следећа два режима:
- Цомманд Моде
- Начин рада
У командном режиму моћи ћемо да конфигуришемо Блуетоотх својства као што су назив Блуетоотх сигнала, његова лозинка, брзина брзине пријеноса итд. Режим рада је онај у којем ћемо моћи да шаљемо и примамо податке између ПИЦ микроконтролера и Блуетоотх модул. Стога ћемо се у овом упутству играти само са режимом рада. Командни режим биће препуштен подразумеваним подешавањима. Име уређаја биће ХЦ-05 (користим ХЦ-06), а лозинка ће бити 0000 или 1234, а што је најважније подразумевана брзина преноса података за све Блуетоотх модуле биће 9600.
Модул ради на напајању од 5В, а сигнални пинови раде на 3.3В, па је у самом модулу присутан регулатор од 3.3В. Отуда не треба да бринемо због тога. Од шест пинова, само четири ће се користити у режиму рада. Табела прикључака пинова приказана је испод
С.Но |
Приквачите на ХЦ-05 / ХЦ-06 |
Прикачите име на МЦУ |
Пин број у ПИЦ-у |
1 |
Вцц |
Вдд |
31 ул пински |
2 |
Вцц |
Гнд |
32 тх пински |
3 |
Тк |
РЦ6 / Тк / ЦК |
25 тх пин |
4 |
Рк |
РЦ7 / Рк / ДТ |
26 -ог пински |
5 |
Држава |
НЦ |
НЦ |
6 |
СР (Омогући) |
НЦ |
НЦ |
Погледајте наше друге пројекте да бисте сазнали више о Блуетоотх модулу ХЦ-05 са другим микроконтролерима:
- Аутомобил под контролом Блуетоотх-а који користи Ардуино
- Систем за кућну аутоматизацију контролисан Блуетоотх-ом помоћу 8051
- Гласовно контролисана светла помоћу Распберри Пи
- ФМ радио контролиран паметним телефоном помоћу Ардуина и обраде
- Роботски аутомобил којим управља мобилни телефон помоћу Г-сензора и Ардуина
Програмирање ПИЦ микроконтролера за Блуетоотх комуникацију:
Као и сви модули (АДЦ, тајмер, ПВМ), и ми бисмо требали иницијализовати наш Блуетоотх модул. Иницијализација ће бити слична иницијализацији УАРТ-а, али морамо да унесемо неке промене како би Блуетоотх беспрекорно радио са нашим ПИЦ16Ф877А МЦУ. Дефинишемо конфигурационе битове и започнимо са функцијом Блуетоотх иницијализације.
Иницијализација Блуетоотх-а:
Готово сви Блуетоотх модули на тржишту раде са брзином преноса од 9600, веома је важно да подесите брзину преноса као ону за Блуетоотх модуле који раде брзином преноса, овде постављамо СПБРГ = 129, јер радимо на тактној фреквенцији од 20 МХз са 9600 као брзина преноса. Стога ће горња иницијализација радити само за Блуетоотх модуле који раде са брзином преноса од 9600 бауд. Такође је обавезно омогућити брзину брзине преноса брзина БРГХ. Ово ће помоћи у подешавању тачне брзине преноса.
// ****** Иницијализујте Блуетоотх помоћу УСАРТ ******** // воид Инитиализе_Блуетоотх () {// Подесите пинове РКС и ТКС // ТРИСЦ6 = 1; ТРИСЦ7 = 1; // Подесите брзину преноса података користећи табелу за претраживање у техничком листу (пг114) // БРГХ = 1; // Увек користите брзу брзину преноса података са Блуетоотх-ом, иначе неће радити СПБРГ = 129; // Укључи Асиц. Серијски порт // СИНЦ = 0; СПЕН = 1; // Подесимо 8-битни пријем и пренос РКС9 = 0; ТКС9 = 0; // Омогући пренос и пријем // ТКСЕН = 1; ЦРЕН = 1; // Омогући глобални и пх. прекида // ГИЕ = 1; ПЕИЕ = 1; // Омогући прекиде за Тк. и Рк.// РЦИЕ = 1; ТКСИЕ = 1; } // ___________ БТ иницијализован _____________ //
Ако имате БТ модул који ради са различитом брзином преноса, можете погледати доњу табелу да бисте сазнали своју вредност за СПБРГ.
Учитавање података у Блуетоотх:
Једном када је функција иницијализована, у нашем програму имамо три функције за слање и примање података са Блуетоотх-а. За разлику од УАРТ-а, овде морамо размотрити неколико ствари пре него што можемо послати или примити податке. Блуетоотх модул има ме успремник за примање и примање, подаци послати њему чуваће се у Тк баферу. Ови подаци се неће емитовати (послати у етер), осим ако се модулу не пошаље повратак кочије. Стога, да бисмо могли да преносимо податке, морамо учитати Рк бафер БТ-а, а затим га емитовати користећи ретурн царриаге.
Горе наведени рад може се лако постићи коришћењем следећих функција. Следећа функција се може користити када морамо да учитамо само један знак у Рк бафер. Учитавамо податке у ТКСРЕГ регистар и чекамо док се не обраде провером на заставицама ТКСИФ и ТРМТ користећи вхиле петље.
// Функција за учитавање Блуетоотх Рк-а. бафер са једним знаком.// воид БТ_лоад_цхар (цхар бите) {ТКСРЕГ = бите; вхиле (! ТКСИФ); вхиле (! ТРМТ); } // Крај функције //
Испод се користи функција за учитавање низа у Рк бафер Блуетоотх модула. Низ се дели на знакове и сваки знак се шаље функцији БТ_лоад_цхар () .
// Функција учитавања Блуетоотх Рк. бафер са низом // воид БТ_лоад_стринг (цхар * стринг) {вхиле (* стринг) БТ_лоад_цхар (* стринг ++); } // Крај функције /
Емитовање података преко Блуетоотх-а:
До сада смо управо преносили информације у Рк бафер ХЦ-05 модула. Сада га морамо упутити да емитује податке у етеру помоћу ове функције.
// Функција за емитовање података са РКС-а. бафер // неважеће емитовање_БТ () {ТКСРЕГ = 13; __делаи_мс (500); } // Крај функције //
У овој функцији шаљемо вредност 13 у ТКСРЕГ регистар. Ова вредност 13 није ништа друго до децимални еквивалент за вагон (погледајте АСЦИИ графикон). Тада се ствара мала одгода за емитер да започне.
Читање података са Блуетоотх-а:
Слично УАРТ-у, доња функција се користи за читање података са Блуетоотх-а
// Функција за добијање знака из Рк.буффер-а БТ-а // цхар БТ_гет_цхар (воид) {иф (ОЕРР) // провера грешке прекомерног покретања {ЦРЕН = 0; ЦРЕН = 1; // Ресетуј ЦРЕН} иф (РЦИФ == 1) // ако је корисник послао цхар врати цхар (АСЦИИ вредност) {вхиле (! РЦИФ); ретурн РЦРЕГ; } елсе // ако корисник није послао поруку ретурн 0 ретурн 0; } // Крај функције /
Ако је корисник послао податке, ова функција ће вратити те одређене податке који се могу сачувати у променљивој и обрадити. Ако корисник ништа није послао, функција ће вратити нулу.
Основна функција:
Користили смо све горе објашњене функције унутар или главне функције. Пошаљемо уводну поруку, а затим сачекамо да корисник пошаље неке вредности на основу којих пребацујемо ЦРВЕНО лед светло повезано на РБ3 пин на нашој Перф плочи.
воид маин (воид) {// Сцопе декларације променљивих // инт гет_валуе; // Крај декларације променљиве // // И / О декларације // ТРИСБ3 = 0; // Крај И / О декларације // Инитиализе_Блуетоотх (); // дозвољавамо да наш Блуетоотх буде спреман за акцију // При укључивању прикаже неку уводну поруку // БТ_лоад_стринг („Блуетоотх иницијализован и спреман“); броадцаст_БТ (); БТ_лоад_стринг ("Притисните 1 да бисте укључили ЛЕД"); броадцаст_БТ (); БТ_лоад_стринг ("Притисните 0 да искључите ЛЕД диоду"); броадцаст_БТ (); // Крај поруке // вхиле (1) // Бесконачни лоп {гет_валуе = БТ_гет_цхар (); // Прочитај знак. примљено путем БТ // Ако примимо '0' // иф (гет_валуе == '0') {РБ3 = 0; БТ_лоад_стринг („ЛЕД искључен“); броадцаст_БТ (); } // Ако примимо '1' // иф (гет_валуе == '1') {РБ3 = 1; БТ_лоад_стринг („ЛЕД укључен“); броадцаст_БТ ();}}}
Проверите цео програм у одељку са кодовима испод.
Шема круга и постављање хардвера:
Цирцуит прикључци за овај пројекат је веома једноставан, једноставно морамо да снаге до Блуетоотх модул и повезати ТКС са 26 -ог пин ПИЦ и Рк са 25 -ог пин ПИЦ као што је приказано у кола дијаграму:
Сада пређимо на хардвер. Једном када је веза завршена, требало би да изгледа овако некако.
Контрола ЛЕД-а помоћу Блуетоотх мобилне апликације:
Сада припремимо нашу Андроид апликацију. Преузмите апликацију под називом Блуетоотх Терминал из Апп Сторе-а или користите ову везу. Једном када се апликација преузме и инсталира, укључите ПИЦ перф боард који користимо од почетка. Мала ЛЕД лампица на вашем Блуетоотх модулу требало би да трепће да укаже да је укључен и да активно тражи телефон за успостављање везе.
Сада уђите у Блуетоотх поставке свог телефона и потражите нови Блуетоотх уређај да бисте могли да видите назив ХЦ-05 или ХЦ-06 на основу вашег модула. Користим ХЦ-06, па мој телефон приказује следећи екран. Затим покушајте да се раставите и тражиће лозинку. Унесите лозинку као 1234 (за неке може бити 0000) и кликните на ОК као што је приказано испод.
Након што је паринг успео, отворите апликацију Блуетоотх Терминал коју смо управо инсталирали. Уђите у опцију подешавања и одаберите „Повежи уређај - безбедно“ као што је приказано доле. Отвориће се искачући оквир у којем ће бити наведени сви упарени уређаји као што је приказано у наставку. Изаберите модул ХЦ-05 или ХЦ-06.
Једном када се веза успостави, лампица на Блуетоотх модулу који је до сада трептао мора да постане стална да указује на то да се успешно повезао са вашим мобилним телефоном. И требали бисмо добити уводну поруку из нашег програма као што је приказано доле.
Сада притисните „1“ да бисте укључили ЛЕД светло и притисните „0“ да бисте искључили светло. Комплетан рад биће приказан у видеу. Екран вашег мобилног уређаја изгледаће отприлике овако приказано доле.
Дакле, то је то, момци, научили смо како повезати Блуетоотх модул са нашим ПИЦ микроконтролером, сада уз помоћ овога можемо испробати бежичне пројекте. Постоји много пројеката који користе Блуетоотх, можете их испробати или смислити своју идеју и делити их у одељку за коментаре. Такође проверите наш претходни пројекат са апликацијом за Блуетоотх терминал и ХЦ-05 као што је паметна телефонска аутоматизована кућна аутоматизација помоћу Ардуина и паметна телефонска контрола закључаних дигиталних кодова помоћу Ардуина.
Надам се, овај водич вам је помогао! Ако сте негде запели, користите одељак за коментаре.