- Потребни материјали:
- Програмирање ПИЦ микроконтролера:
- Функције у библиотеци ЕСП8266:
- Пример програма:
- Излаз симулације:
- Излазна верификација:
- Додавање функција у библиотеку ЕСП8266:
У овом чланку ћемо разговарати о томе како повезати ВИФИ модул ЕСП8266 са ПИЦ микроконтролером. До сада сте можда користили модул ЕСП8266 као самостални микроконтролер или сте га користили са Ардуино библиотеком. Али, када је реч о хардцоре уграђеним системским пројектима, требало би да знамо како да га користимо и са ПИЦ микроконтролерима. Ово ће вам помоћи да прилагодите своје пројекте у перспективи дизајна, а истовремено ће их и учинити јефтинима.
Модули ЕСП8266 испоручују се са уграђеним подразумеваним фирмвером, тако да модул можемо програмирати помоћу АТ наредби. Ове наредбе се морају послати путем серијског комуникацијског канала. Овај канал се успоставља између ПИЦ-а и ЕСП8266 модула коришћењем УСАРТ модула у ПИЦ микроконтролеру . Целокупан рад ће се надгледати и пријавити кориснику употребом ЛЦД екрана 16к2. Дакле, ово упутство подразумијева да имате основно знање о УСАРТ модулу у ПИЦ-у, повезивању ЛЦД-а са ПИЦ-ом и кориштењу АТ наредби у ЕСП8266. Ако то не учините, можете се вратити на повезане туторијале да бисте их претходно научили.
Потребни материјали:
За довршавање овог водича потребан вам је следећи хардвер
- ПИЦ16Ф877А
- Кристални осцилатор од 20 МХз
- 7805
- ЛМ317
- ЕСП8266
- ЛЦД екран од 16 * 2
- Програмер ПицКит3
- Отпорници (1К, 220охм, 360охм)
- Кондензатори (1уФ, 0,1уФ, 33пФ)
- Жице краткоспојника
- 12В адаптер за напајање ПИЦ и ЕСП модула
Хардвер:
Комплетна шема пројекта приказана је овде доле
Шеме се састоје од два круга регулатора напона, један је + 5В регулатор који се користи за напајање ПИЦ микроконтролера, а други је 3.3В регулатор који напаја модул ЕСП8266. + 5В се регулише помоћу 7805 (Линеар Волтаге Регулатор ИЦ). 3.3В се регулише помоћу ЛМ317 (регулатор променљивог напона). Модул ЕСП8266 троши пуно струје (~ 800мА), па ако дизајнирате сопствено напајање, уверите се да може да произведе тако високу струју. Такође се уверите да су пинови за уземљење ПИЦ-а и ЕСП8266 модула повезани заједно.
Дакле, сада знамо да ПИЦ ради на + 5В, а ЕСП8266 на 3.3В волти. Да бисмо успоставили УСАРТ комуникацију између ова два модула, треба да имамо склоп логичког претварача 5В - 3.3В, као што је приказано на горњој слици. Ово коло није ништа друго до потенцијални делилац који једноставно претвара долазних + 5В у 3,3В. Ово ће спречити 3.3В подношљиви РКС пин ЕСП8266 да добије + 5В.
Направио сам ПИЦ и ЕСП модуле на две одвојене перф плоче, као што је приказано у овим водичима. На овај начин их могу универзално користити за још сличних пројеката
- ЛЕД хардвер који користи ПИЦ
- Први кораци са ЕСП8266
Можете следити исто, или направити сопствену таблу у свом стилу или једноставно повезати горњи круг са плочом за плочу.
Програмирање ПИЦ микроконтролера:
Да бисмо програмирали ПИЦ микроконтролер да серијски шаље „АТ команде“ помоћу УСАРТ-а на модул ЕСП8266, морамо користити библиотеку. Ова библиотека ће вам уштедети много муке, попут коришћења модула са упутствима ЕСП8266 за проверу сваке АТ команде, а затим пронаћи начин да их пренесете на ЕСП модул. Ова библиотека је бесплатни софтвер који је првобитно развио Цамил Стапс, а касније га је побољшао и модификовао Цирцуит Дигест тако да се може користити са нашим микроконтролером ПИЦ16Ф877А. Можете га преузети овде
Библиотека је још увек у развоју, али можете да користите већину важних АТ команди у фирмверу ЕСП8266. Ако утврдите да вам недостаје било која наредба, обавестите ме у одељку за коментаре и покушаћу да је додам уместо вас. Овај водич ће вам објаснити све наредбе (до сада) које се могу користити путем ове библиотеке. Даље ће вас водити и да додате сопствене функције у библиотеку.
Функције у библиотеци ЕСП8266:
- Инитиализе_ЕСП8266 (): Ова функција ће иницијализовати УСАРТ модул ПИЦ-а за комуникацију са ЕСП8266 модулом. Поставља брзину преноса на 115200 и припрема Рк и Тк пин ПИЦ-а за УСАРТ комуникацију.
- _есп8266_путцх (): Ова функција се користи за серијско слање једног карактера на модул ЕСП8266. На пример, _есп8266_путцх ('а') ће серијски слати знак на ЕСПмодул.
- _есп8266_гетцх (): Ова функција се користи за добивање једног знака из ЕСП модула. На пример, ако ЕСП штампа „ОК“ и користимо цхар а = _есп8266_гетцх (). Тада ће знак 'о' бити сачуван у променљивој а.
- ЕСП8266_сенд_стринг (): Ова функција је верзија низа _есп8266_путцх (). Може послати један комплетни низ модулу ЕСП8266. На пример, ЕСП8266_сенд_стринг („АТ / р / н“) ће послати команду „АТ“ модулу ЕСП8266.
- есп8266_исСтартед (): Користи се за проверу да ли ПИЦ може да комуницира са ЕСП модулом. Шаље наредбу „АТ“ и чека „У реду“ ако је прими врати труе, иначе враћа фалсе.
- есп8266_рестарт (): Ресетује модул ЕСП8266 и враћа труе, ресетује се успешно и враћа фалсе ако није успешан.
- есп8266_моде (): Користи се за подешавање режима рада модула ЕСП8266. Као што знамо може радити у три различита режима.
Режим станице |
|
Меки АП режим |
|
И режим станице и АП |
- есп8266_цоннецт (): Омогућава вам повезивање на вифи сигнал. На пример, есп8266_цоннецт („дом“, „12345678“) , омогућиће вашем модулу да се повеже са вифи сигналом под називом хоме чија је лозинка 12345678.
- есп8266_дисцоннецт (): Ова функција искључује модул са било које ВиФи везе која је претходно била повезана
- есп8266_ип (): Добија ИП адресу и враћа је. Користите ову функцију ако желите да знате ИП адресу модула ЕСП8266.
- есп8266_старт (): Ова функција се користи за покретање ТЦП или УДП комуникације. На пример, есп8266_старт ( "ТЦП", "192.168.101.110", 80) . Покренуће ТЦП мрежу у тој ИП и порт 80.
- есп8266_сенд (): Ова функција се користи за слање информација у ТЦП / УДП мрежу. Помоћу ове наредбе послаће се ХТМЛ скрипта. Тада ће се ова скрипта појавити на ИП адреси у којој је комуникација претходно успостављена.
- есп8266_цонфиг_софтАП (): Ова функција се користи за конфигурисање софтАП-а. На пример есп8266_цонфиг_софтАП („канцеларија“, „12345678“); створиће Ви-Фи сигнал под називом оффице и за приступ му треба користити лозинку 12345678.
- есп8266_гет_статионИП (): Ова функција ће вам вратити ИП / МАЦ адресу клијената који су повезани на ваш софтАП.
Пример програма:
Сад кад смо разумели функције сваке наредбе у библиотеци, погледајмо мали програм са примерима. У овом програму ћемо проверити да ли је веза између ЕСП8266 и ПИЦ успешна, а затим ћемо створити ВИФИ мрежу (СофтАП) са жељеним именом и лозинком. Комплетни програм и симулација истог биће објашњени за ваше разумевање.
Опет, ако нисте прочитали наш ПИЦ интерфејс са водичем за ЛЦД и ПИЦ УСАРТ, прочитајте, пре него што наставите, јер ће вам само тада то имати смисла.
Будући да тек почињемо да повезујемо ПИЦ са ЕСП8266, користио сам ЛЦД како бих био сигуран да ствари раде исправно.
до {Лцд_Сет_Цурсор (1,1); Лцд_Принт_Стринг ("ЕСП није пронађен"); } вхиле (! есп8266_исСтартед ()); // сачекајте док ЕСП не пошаље „ОК“ Лцд_Сет_Цурсор (1,1); Лцд_Принт_Стринг („ЕСП је повезан“); __делаи_мс (1500); Лцд_Цлеар ();
Када пошаљемо „АТ“ модулу ЕСП8266, он одговара са „ОК“. То нам осигурава да је модул ЕСП8266 успешно повезан. За исто се користи функција есп8266_исСтартед (). Шаљемо сигнал АТ са ПИЦ-а и чекамо да модул ЕСП оживи и пошаље нам ОК. Ако добијемо ОК, на ЛЦД-у приказујемо да је „ЕСП повезан“.
есп8266_моде (2); Лцд_Сет_Цурсор (1,1); Лцд_Принт_Стринг ("ЕСП постављен као АП"); __делаи_мс (1500); Лцд_Цлеар ();
Горњи редови кода користе се за подешавање ЕСП модула да ради у режиму „меке АП“. Функција есп8266_моде (2); шаље АТ команде „АТ + ЦВМОДЕ = 3“ модулу и чека да модул одговори са „ОК“
/ * Конфигуришите име и лозинку за приступну тачку * / есп8266_цонфиг_софтАП ("ЦирцуитДигест", "619007123"); Лцд_Сет_Цурсор (1,1); Лцд_Принт_Стринг („АП конфигурисан“); __делаи_мс (1500); Лцд_Цлеар (); / * АП конфигурисан * /
Овај сегмент кода користи се за конфигурисање софтАП-а. Овде смо ССИД назвали „ЦирцуитДигест“, а лозинку као „619007123“. Да бисмо означили да је поступак завршен, сачекаћемо да модул одговори са „У реду“, а затим исписати АП конфигурисан на ЛЦД екран.
То је то, сада смо повезали модул ЕСП8266 са ПИЦ МЦУ-ом и конфигурисали софтАП са именом и лозинком по нашем избору. Као и обично, симулирамо овај код и видимо како он функционише.
Излаз симулације:
За симулацију резултата користимо софтвер Протеус. Датотека дизајна за исту налази се у прилогу.
Будући да у библиотеци Протеус немамо модул ЕСП8266, користимо серијски терминал и као корисник одговарамо на ПИЦ модул. По завршетку симулације екран ће изгледати доле
Излаз нашег кода приказан је у виртуелном терминалу. Комплетан рад симулације биће објашњен у видеу испод.
Излазна верификација:
Када се програм верификује помоћу симулације, избаците га у свој ПИЦ микроконтролер. Повежите везе као што је приказано у шемама изнад (одељак Хардвер). Требали бисте бити у могућности да пратите свој напредак путем ЛЦД екрана.
Једном када ЛЦД каже да је АП конфигурисан, то можемо проверити помоћу ВИФИ поставки у телефону или преносном рачунару. Мој лаптоп показује следећи сигнал према нашем програму.
То је то, момци, успешно смо повезали модул ЕСП8266 са ПИЦ микроконтролером. Ово је врло основни интерфејс и ако желите да радите било какве сложене пројекте користећи ЕСП8266, можда ћете морати да додате своје библиотеке или бар своје функције. Верујте ми да је то врло лако учинити, даћу кратак увид за исто.
Додавање функција у библиотеку ЕСП8266:
Додавање сопствене функције помоћи ће вам да пошаљете било коју наредбу „АТ“ модулу ЕСП8266. Да бисте наставили са овим, морате прочитати документацију скупа упутстава модула ЕСП8266. Можете директно послати било коју АТ команду која се налази у том приручнику за сет инструкција. Али увек не заборавите да додате „/ р / н“ на крају сваке АТ команде. На пример, ако желите да успоставите више веза са својим ЕСП модулом. Затим отворите документацију скупа упутстава и пронађите нашу која АТ команда ће обавити овај посао за вас. Овде ће вам наредба „АТ + ЦИПМУКС = 1“ омогућити успостављање вишеструких веза са вашим ЕСП модулом.
Сада све што треба да урадите је да пошаљете „АП + ЦИПМУКС = 1“ на свој ЕСП8266 модул помоћу серијског порта. Најтежи начин за то је једноставна употреба наредбе
_есп8266_принт ("АТ + ЦИПМУКС = 1 \ р \ н" ")
Ово ће успети, али то није најбољи начин за то. Морате поново прочитати шта ваш ЕСП8266 одговара на вашу наредбу. У нашем случају ће одговорити са „ОК“. Дакле, морате да прочитате долазне податке из модула ЕСП8266 и потврдите да је „У реду“. Такође можете направити ову функцију где се „1“ или „0“ могу проследити као аргументи.
Само напред и покушајте да направите сопствене функције за библиотеку. Али ако вам је потребна помоћ, слободно се послужите одељком за коментаре и ја ћу вам помоћи.