- Шта је МКТТ протокол?
- Како МКТТ ради?
- Посредник Ецлипсе Москуитто
- Компоненте потребне
- Ецлипсе МКТТ тест-склоп - шема
- Програмирање ЕСП8266 за успостављање комуникације са брокером
- Тестирање МКТТ-а са ЕСП8266 користећи Ардуино
Током последњих неколико година ИоТ (Интернет оф Тхингс) уређаји постали су нераздвојни део нашег свакодневног живота. Од паметних домова, паметних сијалица до паметних уређаја; креатори и програмери укључују ову технологију како би створили мрежу повезаних уређаја која наш свакодневни живот чине мало узбудљивијим. Све ово је омогућено због лакоће комуникације. Постоји много могућих начина комуникације између уређаја, али у комерцијалним и хоби производима, један уобичајени протокол је Телеметријски транспорт у реду чекања порука (МКТТ). Претходно смо направили ФМ радио којим се управља гласом користећи Ардуино и Гоогле Ассистант који користе МКТТ за комуникацију са плочом НодеМЦУ. Проверите да ли вам то звучи занимљиво.
У овом пројекту користићемо бесплатни и популарни Ецлипсе МКТТ посредник и научићемо како да повежемо ИоТ уређај (у нашем случају то је НодеМЦУ модул) са МКТТ посредником и преносимо податке између МКТТ брокера и НодеМЦУ.
Шта је МКТТ протокол?
Пре него што наставимо даље, боље је имати јасну представу о МКТТ (поруке чекању Телеметрија транспорт) протокола. То је лагани протокол за размену порука који користи методу објављивања / претплате и преводи поруке између више уређаја. Користећи МКТТ протокол, такође можемо слати / примати податке и контролисати разне излазне уређаје, попут података за очитавање сензора итд. Развијен је на врху ТЦП-а, због чега је бржи од сличних протокола попут ХТТП-а. Осим тога, он има много других предности у односу на друге протоколе, попут његове врло лагане, па не троши вишак меморије, може радити са врло мањом мрежном пропусношћу, поврх свега, има уграђен робустан сигурносни протокол. Ове карактеристике чине га погодним за многе примене.
Како МКТТ ради?
Да бисмо разумели рад МКТТ протокола, само треба да разумемо три основне ствари; горњи дијаграм то показује. Такође, објаснили смо то у наставку у чланку.
МКТТ клијент:
МКТТ клијент је неки уређај (то може бити микроконтролер или сервер) који ради МКТТ функције и комуницира са централним сервером, који је познат као " брокера ". Посредник се бави комуникацијом података између повезаних клијената.
МКТТ Издавач:
Када клијент жели да пошаље било какве информације, он је познат као „издавач“. Издавач ће објавити информације о одређеној теми. „ Тема “ је пут на којем можемо објавити / претплатити поруке. Посредник затим шаље информације које је корисник објавио клијентима (познатим и као Претплатник) који су се претплатили на ту одређену тему.
МКТТ претплатник:
МКТТ Претплатник претплати на теме на МКТТ брокера да бисте прочитали поруке послате од стране брокера.
Посредник Ецлипсе Москуитто
Ецлипсе Москуитто је МКТТ посредник отвореног кода, лаган и погодан за употребу на ИоТ уређајима за комуникацију. МКТТ протокол обезбеђује лагани начин преношења информација помоћу објављују / субсцрибе модел. Ако желите да сазнате више о тој теми, можете посетити званичну веб страницу комараца.
Постављање Ецлипсе Москуитто брокера:
Да бисмо успоставили комуникацију са посредником, прво је морамо успоставити. У овом пројекту се користи Андроид апликација за објављивање и претплату на информације код брокера. Следећи кораци ће вам дати бољу идеју о процесу подешавања.
Корак 1:
Прво преузмите било коју апликацију „МКТТ клијент“ која је доступна у Гоогле Плаи продавници / Апп Сторе и инсталирајте је. У овом пројекту користи се апликација под називом „МКТТ клијент“, која изгледа као слика приказана доле.
Корак 2:
Кликните на знак „+“ да бисте навели додатне опције у апликацији, где ћемо додати новог брокера. Када се кликне на дугме, појављује се нови екран као што је приказано доле.
Корак 3:
Након тога, детаљи брокера морају се попунити у потребном пољу. Прво кликните на опцију „Омогућено“ која је приказана у апликацији. У овом пројекту се користи брокер Ецлипсе МКТТ, детаљи које треба попунити дати су у наставку:
Надимак: Дајте име по свом избору
Водитељ : мктт.ецлипсе.орг
Лука: 1883
ИД клијента: Дајте ИД својих жеља
Горе наведене детаље потребно је попунити у њиховим пољима. Сва остала поља нису потребна и могу се оставити празна. Након успешног завршетка, кликните на дугме Спреми да бисте сачували детаље о посреднику.
Када завршите, поступак подешавања андроид апликација је завршен и сада можемо прећи на хардверску страну ствари.
Компоненте потребне
Комплетна листа потребних делова је описана у наставку. Како је овај склоп једноставан, све потребне делове можете пронаћи у локалној хоби продавници.
- НодеМЦУ
- ЛЕД
- Бреадбоард
- Повезивање жица
- Кабл за програмирање
Ецлипсе МКТТ тест-склоп - шема
Шема кола за основни МКТТ пројекат дата је у наставку:
Програмирање ЕСП8266 за успостављање комуникације са брокером
Једноставни Ардуино код брине о свим потребним комуникацијама између МКТТ брокера и НодеМЦУ. У овом одељку ћемо научити како ова функција детаљно ради.
Подесите Ардуино ИДЕ и отпремите код:
Ако први пут учитавате код на НодеМЦУ, прво треба да подесите Ардуино ИДЕ. Да бисте то урадили, само следите једноставна упутства дата у наставку.
Прво отворите Ардуино ИДЕ, а затим идите на Филе -> Преференцес -> Сеттингс .
Затим копирајте доњу УРЛ адресу и залепите је у поље „Аддитионал Боард Манагер УРЛ “ и кликните на „Ок“. Можете погледати доњу слику да бисте знали како смо то урадили.
Линк: хттпс://ардуино.есп8266.цом/стабле/пацкаге_есп8266цом_индек.јсон
Затим идите на Тоолс> Боард> Боардс Манагер . У прозор управника одбора упишите ЕСП 8266 у поље за претрагу и притисните Ентер. Затим са падајућег менија одаберите најновију верзију и кликните на инсталл. Слика испод ће вам дати јасну представу.
Коначно, након што је инсталација завршена, идите на Алати -> Плоча -> и одаберите НодеМЦУ 1.0 (ЕСП-12Е модул). Сада можете програмирати НодеМЦУ помоћу Ардуино ИДЕ-а. Како смо завршили са подешавањем Ардуино ИДЕ-а, сада можемо да отпремимо комплетан код. Али прво прочитајте брзо објашњење целог кода.
Прво, укључили смо „ЕСП8266ВиФи.х“ за употребу ЕСП8266 и „ПубСубЦлиент.х“ за МКТТ.
Можете пронаћи унапред изграђену библиотеку ЕСП8266 унутар библиотеке Ардуино, али треба да преузмете библиотеку ПубСубЦлиент из њеног повезаног ГитХуб спремишта.
#инцлуде
Затим дефинишите мрежне акредитиве као што су корисничко име и лозинка за Ви-Фи. Замените своје акредитиве уместо „админ“ и „12345678“.
цонст цхар * ссид = "админ"; цонст цхар * лозинка = "12345678";
Даље, морамо да конфигуришемо МКТТ сервер. За овај пројекат смо користили Ецлипсе МКТТ сервер, због чега је адреса сервера дата као „мктт.ецлипсе.орг“. Али ако планирате да користите било који други сервер попут Москуитто, Адафруит, тада га можете заменити одређеном адресом сервера и бројем порта.
цонст цхар * мктт_сервер = "мктт.ецлипсе.орг"; цонст инт мктт_порт = 1883;
Даље, инстанце се креирају за класе ВиФиЦлиент и ПубСубЦлиент , које ће се користити у целом програму.
ВиФиЦлиент еспЦлиент; ПубСубЦлиент клијент (еспЦлиент);
У одељку сетуп () прво позивамо ВиФи.бегин () , позивањем ове методе повезаће се ЕСП са жељеним ХотСпот-ом.
ВиФи.бегин (ссид, лозинка);
Затим проверавамо да ли постоји успешна мрежна веза помоћу методе ВиФи.статус () . Након успешне везе, на Сериал Монитор се исписује порука са ССИД-ом повезане мреже.
вхиле (ВиФи.статус ()! = ВЛ_ЦОННЕЦТЕД) {кашњење (500); Сериал.принтлн ("Повезивање са ВиФи.."); } Сериал.принт („Повезано са ВиФи-ом:“); Сериал.принтлн (ВиФи.ССИД ());
Сада морамо створити брокера. За то смо користили методу сетСервер ; овај метод узима два аргумента која смо претходно дефинирали. Сада, ако желимо да примамо поруке од сервера, морамо да креирамо функцију повратног позива. За то користимо методу сетЦаллбацк (повратни позив) .
цлиент.сетСервер (мктт_сервер, мктт_порт); цлиент.сетЦаллбацк (МКТТцаллбацк);
Сада смо користили функцију повезивања (цлиентИД) за повезивање са клијентом ЕСП8266. Овде је цлиентИД име клијента и оно мора бити јединствено. Ако је повезан, порука се о успеху може приказати унутар серијског монитора.
иф (цлиент.цоннецт ("ЕСП8266")) {Сериал.принтлн ("цоннецтед"); } елсе {Сериал.принт ("неуспех са стањем") Сериал.принтлн (цлиент.стате ()); кашњење (2000); }
Даље, зовемо цлиент.субсцрибе () , уграђену МКТТ функцију која се користи за претплату на одређену тему. За овај пројекат користили смо „ есп / тест “ као име претплатника.
цлиент.субсцрибе ("есп / тест");
Сада се позива функција МКТТцаллбацк да би се проверило да ли су доступне неке ажуриране информације или не. Ако су доступни нови подаци, ова функција обрађује примљене податке и на серијском монитору исписује поруку са оригиналном поруком и именом теме где је порука примљена.
Даље, претварамо поруке у низ, тако да се може упоређивати и проверавати има ли покретачких радњи. У овом пројекту ЛЕД се укључује / искључује помоћу МКТТ наредби, као што је приказано у доњем коду.
фор (инт и = 0; и <ленгтх; и ++) {мессаге = мессаге + (цхар) паилоад; } Сериал.принт (порука); иф (порука == "укључено") {дигиталВрите (ЛЕД, ХИГХ); }
Коначно, објавити информације о теми. Цлиент.публисх () функција користи. У овом пројекту се проверава статус тастера, ако се дугме притисне, тада се објављује порука у теми „ есп / тест1 “ као што је приказано доле.
иф (дигиталРеад (Д1) == 0)) {цлиент.публисх ("есп / тест1", "Здраво са ЕСП8266"); } елсе; цлиент.лооп ();
Тестирање МКТТ-а са ЕСП8266 користећи Ардуино
За наше коначно тестирање користићемо Андроид апликацију коју смо раније поставили.
Отворите клијентску апликацију МКТТ и уверите се да ваш мобилни телефон има активну интернет везу. Такође, приступна тачка на коју је повезан НодеМЦУ треба да има активну интернет везу. Када се све повеже са Интернетом, послаћемо низ „Здраво са ЕСП8266“ из модула ЕСП, који ће се одразити у Андроид апликацији, а ми ћемо добити обавештење. Даље ћемо послати низ из Андроид апликације који ће УКЉУЧИТИ ЛЕД који је повезан са плочом ЕСП8266 Ноде МЦУ.
Корак 1: (Претплатите се на тему):
Кликните на опцију Сачувани МКТТ у апликацији, коју смо раније конфигурисали. Отвориће се екран, на којем се тражи „Претплатите се на тему“. Претходно смо конфигурисали тему као „ есп / тест1 “. Дакле, у Андроид апликацији ћемо написати „ есп / тест1 “. Кликните на Претплати се, чиме ћете добити екран као испод, где ће из одређене теме бити написано као „Није примљена ниједна порука“.
Сада кликните на дугме 'Повезано' које је повезано са нодеМЦУ. Сада ће, према нашем коду, у тему бити објављена порука „ Здраво са ЕСП8266 “, а на екрану ће бити обавештење са примљеном поруком као што је приказано доле.
Корак 2: Објави на тему:
Сада да бисте објавили тему, кликните на дугме СТРЕЛИЦА ГОРЕ у апликацији и отвориће се екран као што је приказано доле.
Сада, у поље Тема напишите „ есп / тест “, а у поље за поруке напишите „ он “ или „ офф “ да бисте укључили и искључили ЛЕД диоду. На пример, ако је „укључено“ објављено у теми, тада ће се укључити ЛЕД, а ако се у теми објави „искључено“, тада ће се ЛЕД искључити.
Надам се да вам се свидео чланак и научили сте нешто ново. Ако имате било каквих питања у вези са овим чланком, слободно коментаришите у наставку или уместо тога можете да користите наш форум.