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