ИоТ уређаји могу да раде сјајне ствари, али суштински део једначине је начин на који комуницирају. То можете да управљате помоћу ЕСП-01 модула.
То што сте на буџету не значи нужно да не можете да преузмете напредне „уради сам“ пројекте. Ако тражите мали, приступачан и практичан ВиФи модул за повећање ваших ИоТ пројеката, ЕСП-01 модул је одличан избор. Међутим, интеграција таквог модула са лаганим протоколом као што је МКТТ може бити незгодна, посебно ако сте нови у развоју ИоТ-а.
Само програмирање ЕСП-01 плоче може бити изазовно у поређењу са другим модулима серије ЕСП8266. Али хајде да пређемо на основе свих подешавања хардвера и софтвера који су вам потребни да бисте почели да користите модул, као и како да подесите МКТТ на једноставан и процедуралан начин.
Упознавање одбора
ЕСП8266 ЕСП-01 је мали и компактни ВиФи модул који долази са ЕСП8266ЕКС чипом, који је високо интегрисани СоЦ дизајниран за ИоТ апликације.
Модул укључује бежични микроконтролер са једним чипом са стеком ТЦП/ИП протокола и способан је да се повеже на бежичну мрежу или да делује као приступна тачка. ЕСП-01 модул такође има 2к4 пин хеадер који омогућава приступ његовим ГПИО пиновима, напајању и земљи, и УАРТ интерфејсу.
Подешавање хардвера
Модул уопште није прилагођен матичној плочи. Ради практичности, можете купити већ направљену плочу за проширење или једноставно ићи на старински начин - користећи жице за краткоспојнике и матичну плочу.
Постоји наменски програматор, ЕСП8266 плоча серијског модула, који може олакшати ваше искуство програмирања. Ако више волите да идете овим путем, ДИИХОБИ има згодан водич о томе како да флешујете програм у ЕСП-01 модул помоћу програматора (укључујући адаптер модула за претварач УСБ у ТТЛ ЦХ340Г).
Али и даље можете програмирати модул користећи Ардуино плочу. Погледајте дијаграм струјног кола испод за референцу.
Иако може изгледати примамљиво, генерално не препоручујемо повезивање модула директно на Ардуино 3.3в пин јер захтева више струје него што пин обезбеђује. Уместо тога, повежите Ардуино 5В на 3.3В регулатор напона као што је ЛМ1117/ЛД117, а затим напајајте ВиФи модул из регулатора.
Немојте повезивати ВЦЦ и ЦХ_ПД игле ЕСП-а на 5В пин Ардуина. Повезивање модула са 5В снага може да га оштети.
Сви кондензатори су 10уФ а отпорник је а 1К отпорник.
Софтверски захтеви
ЕСП-01 модул се обично користи са Ардуино платформом. Као такво, подешавање софтвера је прилично једноставно, посебно ако сте упознати са Ардуино Ц. Међутим, ако сте боље упознати са малином, има их доста Распберри Пи ИоТ пројекти можете пробати.
Ово су основни захтеви:
- МКТТ брокер или сервер (као што је Москуитто или ЦлоудМКТТ).
- Ардуино ИДЕ са библиотеком језгра ЕСП8266.
- ПубСубЦлиент библиотека за Ардуино.
Морате имати на уму да вам локални МКТТ сервер даје флексибилност у вашим пројектима.
Инсталирање потребних библиотека
Прво преузмите и инсталирајте Ардуино ИДЕ на свој рачунар. Када се инсталира, отворите Ардуино ИДЕ и идите на Филе > Преференцес.
У Додатне УРЛ адресе менаџера одбора поље, унесите следећу УРЛ адресу:
хттп://arduino.esp8266.com/stable/package_esp8266com_index.json
Кликните У реду да бисте затворили прозор Преференцес.
Затим идите на Алати > Одбор, табла > Управник одбора.
Затим потражите есп8266 и инсталирајте пакет плоче есп8266—ово укључује све потребне библиотеке за ЕСП-01 модул.
Да бисте инсталирали библиотеку ПубСубЦлиент, идите на Скица > Укључи библиотеку > Управљајте библиотекама.
Тражити ПубСубЦлиент и кликните на библиотеку да бисте је инсталирали.
Када инсталирате све потребне библиотеке, можете почети са програмирањем ЕСП-01 модула. Једна ствар коју треба напоменути је да можете користити Вифи.х који је укључен у библиотеку или преузмите ЕСПВифи.х библиотека и укључите га у своју скицу.
Успостављање везе између ЕСП-01 и МКТТ брокера
МКТТ брокер је сервер који делује као посредник између МКТТ клијената. Омогућава клијентима да шаљу и примају поруке једни од других путем модела објављивања и претплате.
Да бисте повезали свој ЕСП-01 модул са МКТТ брокером, мораћете да наведете ИП адресу брокера и број порта у свом коду. Такође ћете морати да обезбедите јединствени ИД клијента који идентификује ваш ЕСП-01 модул брокеру.
Прво укључите потребне библиотеке на врх ваше скице
#инцлуде <ЕСП8266ВиФи.х>
#инцлуде <ПубСубЦлиент.х>
Затим дефинишите детаље ВиФи и МКТТ везе.
констцхар* ссид = „ИОУР_ССИД“;
констцхар* лозинка = "ВАША ЛОЗИНКА";
констцхар* мктт_сервер = „ВАШ_МКТТ_СЕРВЕР“;
Не заборавите да замените чуваре места својим детаљима о ВиФи и МКТТ вези.
Након тога, креирајте ВиФи клијент и повежите се на своју локалну ВиФи мрежу:
ВиФиЦлиент еспЦлиент;
празнинасетуп_вифи(){
кашњење (10);
ВиФи.бегин (ссид, Лозинка);
док (ВиФи.статус() != ВЛ_ЦОННЕЦТЕД) {
кашњење (500);
}
}
Ову функцију треба позвати у подесити() функција ваше скице.
Затим ћете морати да креирате МКТТ клијента и да се повежете са својим МКТТ брокером:
ПубСубЦлиент клијент(еспЦлиент);
празнинапоново повезати(){
док (!цлиент.цоннецтед()) {
ако (цлиент.цоннецт("ЕСП01", мктт_усер, мктт_пассворд)) {
// Претплатите се на тему
цлиент.субсцрибе("тест/тема");
} друго {
кашњење (5000);
}
}
}
Када се повежете са својим МКТТ брокером, можете почети да објављујете и да се претплатите на теме.
Објављивање података са ЕСП-01 на МКТТ Брокер
Сада када сте успешно повезали свој ЕСП01 модул са МКТТ брокером, хајде да погледамо како можете да објавите податке са ЕСП-01 брокеру.
Да бисте објавили податке, користите цлиент.публисх() функцију за објављивање поруке за инТопиц тема.
цлиент.публисх("инТопиц", „Здраво из ЕСП-01“);
Ово ће објавити поруку „Здраво од ЕСП-01“ на инТопиц тема.
Такође можете објавити податке сензора са ЕСП-01 брокеру. На пример, ако имате сензор температуре повезан са вашим ЕСП-01, можете објавити податке о температури брокеру као што је приказано испод.
пловак температура = 25.5;
Низ температуреСтринг = Низ(температура);
цхар температураЦхар[5];
температуреСтринг.тоЦхарАрраи(температуреЦхар, 5);
цлиент.публисх("темп", температуреЦхар);
Ово ће објавити податке о температури на Темп тема.
Подаци се могу објављивати у петљи или у редовним интервалима, у зависности од захтева вашег пројекта. Уверите се да не преплављујете брокера са превише података и да објављујете у разумном интервалу.
Претплата на МКТТ теме и примање података о ЕСП-01
Да бисте се претплатили на тему, користите цлиент.субсцрибе() функција. За наш случај испод, клијент се претплаћује на оутТопиц тема.
цлиент.субсцрибе("оутТопиц");
Када се претплатите на тему, можете да примате поруке објављене на ту тему користећи цлиент.лооп() функција у петља() функција на скици испод:
празнинапетља(){
ако (!клијент.повезан()) {
рецоннецт();
}
клијент.лооп();
}
Ово ће континуирано проверавати нове поруке и извршавати функцију повратног позива када се прими нова порука.
Да бисте обрадили примљене поруке, дефинишите функцију повратног позива као што је приказана испод:
празнинапозове(цхар* тема, бајт* носивост, непотписано инт дужина){
// Штампање примљене поруке
Сериал.принт(„Примљена порука на тему: „);
Сериал.принт(тема);
Сериал.принт(". Порука: ");
за (инт и=0;иСериал.принт((цхар)носивост[и]);
}
Сериал.принтлн();
}
Ова функција ће бити позвана када се прими нова порука на претплаћену тему. Штампа примљену поруку на серијски монитор.
Коришћење нивоа квалитета услуге (КоС) и безбедносних функција
Једна од најважнијих техника која се користи у руковању захтевима је коришћење нивоа КоС (квалитет услуге) за ваше МКТТ поруке. КоС нивои дефинишу како брокер и претплатници треба да рукују вашим порукама. Постоје три нивоа КоС-а: 0, 1 и 2.
КоС ниво 0 је најмање поуздан, пошто се поруке шаљу само једном и није гарантовано да ће бити испоручене претплатнику. КоС ниво 1 је поузданији, пошто се поруке шаљу најмање једном и гарантовано ће бити испоручене претплатнику најмање једном. КоС ниво 2 је најпоузданији, пошто се поруке шаљу тачно једном и гарантовано ће бити испоручене претплатнику тачно једном. Начин на који ваши уређаји комуницирају је у складу са другим уобичајена безбедносна питања и исправке Интернета ствари (ИоТ). желите да останете на врху.
Да бисте користили нивое КоС-а, можете одредити жељени ниво када објављујете поруке користећи цлиент.публисх() функција:
цлиент.публисх("тема", "Здраво Свете!", 1);
Ово ће објавити поруку Здраво Свете! до тема тема са КоС нивоом 1.
Још једна напредна техника је употреба Последња воља и завет (ЛВТ) поруке. ЛВТ поруке су поруке које шаље брокер када клијент неочекивано прекине везу. Верујемо да је ово важно за откривање офлајн уређаја или за покретање радњи када се уређај прекине.
Да бисте користили ЛВТ поруке, можете одредити ЛВТ поруку када се повезујете са брокером помоћу цлиент.сетВилл() функција:
цлиент.сетВилл("статус", "одсутан", 1, истина);
Ово ће поставити ЛВТ поруку на одсутан на статус тема са КоС нивоом 1 и заставицом задржавања постављеном на истина.
Припремите се за следећи ИоТ пројекат
Модул ЕСП-01 је приступачно и компактно решење за ИоТ пројекте, а његово коришћење са МКТТ може подићи ваш пројекат на следећи ниво. Иако почетно подешавање може бити застрашујуће, предности МКТТ-а, као што су лагана комуникација и висока скалабилност, чине га вредном инвестицијом.