- Компоненте потребне
- ЕСП8266 Ви-Фи модул
- Повезивање ЛПЦ2148 са ЕСП8266 за серијску комуникацију
- Кружни дијаграм и везе
- Кораци укључени у програмирање УАРТ0 у ЛПЦ2148 за повезивање са ЕСП8266
- Управљање ЛЕД помоћу ЕСП8266 ИоТ веб сервера са ЛПЦ2148
ЕСП8266 Ви-Фи примопредајник пружа начин повезивања микроконтролера са мрежом. Широко се користи у ИоТ пројектима, јер је јефтин, мален и лак за употребу. Раније смо га користили за креирање веб сервера помоћу веб сервера Распберри и Ардуино.
У овом упутству ћемо повезати Ви-Фи модул ЕСП8266 са микроконтролером АРМ7-ЛПЦ2148 и створити веб сервер за управљање ЛЕД диодом повезаном на ЛПЦ2148. Ток посла ће ићи овако:
- Пошаљите АТ команде са ЛПЦ2148 на ЕСП8266 да бисте конфигурисали ЕСП8266 у АП режиму
- Повежите Ви-Фи лаптоп или рачунар са приступном тачком ЕСП8266
- Направите ХТМЛ веб страницу на рачунару са ИП адресом приступне тачке веб сервера ЕСП8266
- Направите програм за ЛПЦ2148 за контролу ЛЕД-а према вредности примљеној од ЕСП8266
Ако је ваш потпуно нови ЕСП8266 Ви-Фи модул, посетите доње линкове да бисте се упознали са ЕСП8266 Ви-Фи модулом.
- Први кораци са ЕСП8266 Ви-Фи примопредајником (1. део)
- Први кораци са ЕСП8266 (2. део): Коришћење АТ команди
- Први кораци са ЕСП8266 (3. део): Програмирање ЕСП8266 са Ардуино ИДЕ и флеширање његове меморије
Компоненте потребне
Хардвер:
- АРМ7-ЛПЦ2148
- ЕСП8266 Ви-Фи модул
- ФТДИ (УСБ на УАРТ ТТЛ)
- ЛЕД
- 3.3В регулатор напона ИЦ
- Бреадбоард
Софтвер:
- КЕИЛ уВисион
- Фласх Магиц Тоол
- Кит
ЕСП8266 Ви-Фи модул
ЕСП8266 је јефтини широко коришћени Ви-Фи модул за уграђене пројекте који захтева малу снагу од 3,3 В. Користи само две жице ТКС и РКС за серијску комуникацију и пренос података између ЕСП8266 и било ког микроконтролера који има УАРТ порт.
Шема пин-а за ЕСП8266 Ви-Фи модул
- ГНД, уземљење (0 В)
- ТКС, Пренеси бит података Кс
- ГПИО 2, Улаз / излаз опште намене бр. 2
- ЦХ_ПД, Искључивање чипа
- ГПИО 0, Улаз / излаз опште намене бр. 0
- РСТ, Ресетуј
- РКС, пријем података бит Кс
- ВЦЦ, напон (+3,3 В)
Постављање ЕСП8266 плочице
ЕСП8266 захтева стално напајање од 3,3 В и није прихватљив за плочу. Дакле, у нашем претходном упутству о ЕСП8266, направили смо плочицу за ЕСП8266 са регулатором напона од 3,3 В, дугметом РЕСЕТ и подешавањем краткоспојника за пребацивање режима (АТ команда или режим блица). Такође се може подесити на плочи без употребе перф плоче.
Овде смо залепили све компоненте на плочи да направимо сопствену ЕСП8266 Ви-Фи плочу
Научите повезивање ЕСП8266 са разним микроконтролерима следећи доње линкове:
- Први кораци са ЕСП8266 (3. део): Програмирање ЕСП8266 са Ардуино ИДЕ и флеширање његове меморије
- Повезивање ЕСП8266 са СТМ32Ф103Ц8: Креирање веб сервера
- Слање е-поште помоћу МСП430 Лаунцхпад и ЕСП8266
- Повезивање ЕСП8266 са микроконтролером ПИЦ16Ф877А
- Надзор смећа на основу ИОТ-а користећи Ардуино и ЕСП8266
Све пројекте засноване на ЕСП8266 можете пронаћи овде.
Повезивање ЛПЦ2148 са ЕСП8266 за серијску комуникацију
Да бисмо повезали ЕСП8266 са ЛПЦ2148, морамо успоставити УАРТ серијску комуникацију између ова два уређаја за слање АТ наредби са ЛПЦ2148 на ЕСП8266 за конфигурисање ЕСП8266 Ви-Фи модула. Да бисте сазнали више о ЕСП8266 АТ командама, следите везу.
Дакле, да бисмо користили УАРТ комуникацију у ЛПЦ2148, морамо иницијализовати УАРТ порт у ЛПЦ2148. ЛПЦ2148 има два уграђена УАРТ порта (УАРТ0 и УАРТ1).
УАРТ пинови у ЛПЦ2148
УАРТ_Порт |
ТКС_ПИН |
РКС_ПИН |
УАРТ0 |
П0.0 |
П0.1 |
УАРТ1 |
П0.8 |
П0.9 |
Иницијализација УАРТ0 у ЛПЦ2148
Као што знамо да су пинови ЛПЦ2148 пинови опште намене, зато морамо да користимо ПИНСЕЛ0 регистар за употребу УАРТ0. Пре иницијализације УАРТ0 обавестите нас о овим УАРТ регистрима који се користе у ЛПЦ2148 за употребу УАРТ функције.
УАРТ регистри у ЛПЦ2148
Табела испод приказује неке важне регистре који се користе у програмирању. У нашим будућим водичима видећемо укратко о другим регистрима који се користе за УАРТ у ЛПЦ2148.
к-0 за УАРТ0 и к-1 за УАРТ1:
РЕГИСТРОВАТИ |
РЕГИСТРУЈ ИМЕ |
УСЕ |
УкРБР |
Примите регистар бафера |
Садржи недавно примљену вредност |
УкТХР |
Регистар преноса холдинга |
Садржи податке за пренос |
УкЛЦР |
Регистар за линијску контролу |
Садржи УАРТ формат оквира (број битова података, зауставни бит) |
УкДЛЛ |
Дијелни засун ЛСБ |
ЛСБ од вредности генератора брзине преноса података УАРТ |
УкДЛМ |
Дијелни засун МСБ |
МСБ од вредности генератора брзине преноса података УАРТ |
УкИЕР |
Омогући регистрацију прекида |
Користи се за омогућавање УАРТ0 или УАРТ1 извора прекида |
УкИИР |
Регистар идентификације прекида |
Садржи статусни код који има приоритет и извор прекида на чекању |
Кружни дијаграм и везе
Везе између ЛПЦ2148, ЕСП8266 и ФТДИ приказане су у наставку
ЛПЦ2148 |
ЕСП8266 |
ФТДИ |
ТКС (П0.0) |
РКС |
НЦ |
РКС (П0.1) |
ТКС |
РКС |
ЕСП8266 се напаја преко регулатора напона од 3,3 В, а ФТДИ и ЛПЦ2148 напајају се преко УСБ-а.
Зашто је ФТДИ овде?У овом упутству смо повезали РКС пин ФТДИ (УСБ на УАРТ ТТЛ) са ЕСП8266 ТКС пином који је даље повезан са ЛПЦ2148 РКС пином, тако да можемо видети одговор модула ЕСП8266 користећи било који терминални софтвер попут кита, Ардуино ИДЕ. Али за то подесите брзину преноса у складу са брзином преноса ЕСП8266 Ви-Фи модула. (Моја брзина преноса је 9600).
Кораци укључени у програмирање УАРТ0 у ЛПЦ2148 за повезивање са ЕСП8266
Испод су програмски кораци за повезивање ЕСП8266 са ЛПЦ2148, што ће га учинити ИоТ компатибилним.
Корак 1: - Прво морамо да иницијализујемо УАРТ0 ТКС & РКС пинове у регистру ПИНСЕЛ0.
(П0.0 као ТКС и П0.1 као РКС) ПИНСЕЛ0 = ПИНСЕЛ0 - 0к00000005;
Корак 2: - Следеће у У0ЛЦР (Регистар за контролу линије), подесите ДЛАБ (Дијелни приступни бит за дељење) на 1 како им то омогућава, а затим поставите број зауставних битова као 1 и дужину оквира података од 8-бита.
У0ЛЦР = 0к83;
Корак 3: - Сада је важан корак који треба забележити је подешавање вредности У0ДЛЛ и У0ДЛМ у зависности од вредности ПЦЛК и жељене брзине преноса. Обично за ЕСП8266 користимо брзину преноса од 9600. Дакле, хајде да видимо како да подесимо 9600 преноса за УАРТ0.
Формула за израчунавање брзине преноса:
Где, ПЛЦК: Фреквенција периферног сата (МХз)
У0ДЛМ, У0ДЛЛ: Регистри разделника генератора брзине преноса
МУЛВАЛ, ДИВАДДВАЛ: Ови регистри су вредности генератора фракција
За брзину преноса 9600 са ПЦЛК = 15 МХз
МУЛВАЛ = 1 & ДИВАДДВАЛ = 0
256 * У0ДЛМ + У0ДЛЛ = 97,65
Дакле У0ДЛМ = 0 и добијамо У0ДЛЛ = 97 (разломак није дозвољен)
Дакле, користимо следећи код:
У0ДЛМ = 0к00; У0ДЛЛ = 0к61; (Хексадецимална вредност 97)
Корак 4: - Коначно, морамо онемогућити ДЛА (Дивисор Латцх Аццесс) онемогућити на ЛЦР.
Дакле имамо
У0ЛЦР & = 0к0Ф;
Корак 5: - За пренос карактера, учитајте бајт који се шаље у У0ТХР и сачекајте док се бајт не пренесе, што је назначено ТРОЈИЦОМ која постаје ВИСОКА.
воид УАРТ0_ТкЦхар (цхар цх) { У0ТХР = цх; вхиле ((У0ЛСР & 0к40) == 0); }
Корак 6: - За пренос низа користи се доња функција. За слање стринг података један по један користили смо функцију карактера из горњег корака.
воид УАРТ0_СендСтринг (цхар * стр) { уинт8_т и = 0; вхиле (стр ! = '\ 0') { УАРТ0_ТкЦхар (стр); и ++; } }
Корак 7: - За примање низа овде се користи функција рутинске услуге прекида, јер ће ЕСП8266 Ви-Фи модул преносити податке натраг на РКС пин ЛПЦ2148 кад год пошаљемо АТ команду или кад год ЕСП8266 пошаље податке ЛПЦ2148, као што ми шаљемо податке веб серверу ЕСП8266.
Пример: Када пошаљемо АТ команду на ЕСП8266 са ЛПЦ2148 („АТ \ р \ н“), тада добијамо одговор „ОК“ од Ви-Фи модула.
Дакле, овде користимо прекид да бисмо проверили вредност примљену од ЕСП8266 Ви-Фи модула, јер рутина ИСР услуга прекида има највећи приоритет.
Дакле, кад год ЕСП8266 пошаље податке на РКС пин ЛПЦ2148, прекида се поставља и извршава се функција ИСР.
Корак 8: - Да бисте омогућили прекиде за УАРТ0, користите следећи код
ВИЦинтЕнабле је векторски прекид омогућити Региструј се користи да омогући прекид за УАРТ0.
ВИЦИнтЕнабле - = (1 << 6);
ВИЦВецЦнт10 је векторски прекид регистар контроле која издваја слот за УАРТ0.
ВИЦВецтЦнтл0 = (1 << 5) - 6;
Даље је ВИЦВецтаддр0 векторски регистар адреса прекида који има ИСР адресу рутине услуге прекида.
ВИЦВецтАддр0 = (непотписано) УАРТ0_ИСР;
Тада морамо доделити прекид за регистар ме успремника РБР Рецеиве. Тако смо у регистру за омогућавање прекида (У0ИЕР) поставили за РБР. Дакле, позива се рутина услуге прекида (ИСР) када примимо податке.
У0ИЕР = ИЕР_РБР;
Коначно, имамо функцију ИСР која треба да обави одређени задатак када примимо податке од ЕСП8266 Ви-Фи модула. Овде само читамо примљену вредност са ЕСП8266 која је присутна у У0РБР и складиштимо ту вредност у УАРТ0_БУФФЕР. Коначно, на крају ИСР ВИЦВецтАддр треба поставити са нултом или лажном вредношћу.
воид УАРТ0_ИСР () __ирк { непотписани знак ИИРВалуе; ИИРВалуе = У0ИИР; ИИРВалуе >> = 1; ИИРВалуе & = 0к02; ако (ИИРВалуе == ИИР_РДА) { УАРТ_БУФФЕР = У0РБР; уарт0_цоунт ++; иф (уарт0_цоунт == БУФФЕР_СИЗЕ) { уарт0_цоунт = 0; } } ВИЦВецтАддр = 0к0; }
Корак 9: - Како би ЕСП8266 Ви-Фи модул требало да буде подешен у режиму АП, морамо да пошаљемо поштоване АТ команде из ЛПЦ2148 помоћу функције УАРТ0_СендСтринг () .
У АТ команде које се шаљу ЕСП8266 од ЛПЦ2148 су наведени у наставку. Након слања сваке АТ команде ЕСП8266 одговара са „ОК“
1. Шаље АТ на ЕСП8266
УАРТ0_СендСтринг ("АТ \ р \ н"); делаи_мс (3000);
2. Шаље АТ + ЦВМОДЕ = 2 (подешавање ЕСП8266 у режиму АП).
УАРТ0_СендСтринг ("АТ + ЦВМОДЕ = 2 \ р \ н"); делаи_мс (3000);
3. шаље АТ + ЦИФСР (за добијање ИП-а АП)
УАРТ0_СендСтринг ("АТ + ЦИФСР \ р \ н"); делаи_мс (3000);
4. Шаље АТ + ЦИПМУКС = 1 (за вишеструке везе)
УАРТ0_СендСтринг ("АТ + ЦИПМУКС = 1 \ р \ н"); делаи_мс (3000);
5. Шаље АТ + ЦИПСЕРВЕР = 1,80 (ЗА УКЉУЧИВАЊЕ ЕСП8266 СЕРВЕРА СА ОТВОРЕНИМ ПОРТОМ)
УАРТ0_СендСтринг ("АТ + ЦИПСЕРВЕР = 1,80 \ р \ н"); делаи_мс (3000);
Програмирање и трептање хексадецималне датотеке на ЛПЦ2148
За програмирање АРМ7-ЛПЦ2148 потребан нам је алат за уВисион и Фласх Магиц. Овде се користи УСБ кабл за програмирање АРМ7 Стицк преко микро УСБ порта. Код пишемо помоћу Кеила и креирамо хек датотеку, а затим се ХЕКС датотека флешира на АРМ7 стицк користећи Фласх Магиц. Да бисте сазнали више о инсталирању кеил уВисион и Фласх Магиц, и како их користити, следите везу Први кораци са АРМ7 ЛПЦ2148 микроконтролером и програмирајте га помоћу Кеил уВисион.
Комплетан програм дат је на крају водича.
Напомена: Приликом отпремања ХЕКС датотеке на ЛПЦ2148 не смете напајати ЕСП8266 Ви-Фи модул и ФТДИ модул који је повезан са ЛПЦ2148.
Управљање ЛЕД помоћу ЕСП8266 ИоТ веб сервера са ЛПЦ2148
Корак 1: - Након отпремања ХЕКС датотеке на ЛПЦ2148, повежите ФТДИ модул са рачунаром путем УСБ кабла и отворите софтвер терминала за китове.
Изаберите Сериал, а затим одаберите ЦОМ порт према вашем ПЦ-у или ЛАПТОП-у (ЦОМ3). Брзина преноса је 9600.
Корак 2: - Сада ресетујте ЕСП8266 Ви-Фи модул или само ИСКЉУЧИТЕ И УКЉУЧИТЕ ПОВЕР ОН, терминал за китове ће показати одговор ЕСП8266 Ви-Фи модула како је приказано доле. \
Корак 3: - Сада притисните дугме РЕСЕТ на ЛПЦ2148. Након тога ЛПЦ2148 почиње да шаље АТ команде на ЕСП8266. Одговор тога можемо видети на терминалу за китове.
Корак 4: - Као што видите на слици изнад, ЕСП8266 је подешен у МОДЕ 2 који је АП режим, а адреса АПИП-а је 192.168.4.1. Обратите пажњу на ову адресу јер ће ова адреса бити тешко кодирана у ХТМЛ коду веб странице за контролу ЛЕД диоде повезане на ЛПЦ2148.
Важно : Када је ЕСП8266 у режиму АП, морате повезати свој рачунар са ЕСП8266 АП. Погледајте слику испод мог ЕСП8266 модула приказује АП у имену ЕСП_06217Б (Отворен је и нема лозинку).
Корак 5: - Након повезивања рачунара са ЕСП8266 АП, отворите бележницу и копирајте-налепите следећу веб страницу ХТМЛ програма. Обавезно промените АПИП адресу у складу са Ви-Фи модулом ЕСП8266
Добродошли у Цирцуит Дигест
ЕСП8266 Повезивање са ЛПЦ2148: Креирање веб сервера за контролу ЛЕД диоде
ЛЕД УКЉ. ЛЕД ИСКЉНа овој ХТМЛ страници створили смо два хипервезана дугмета за укључивање и искључивање ЛЕД-а са веб странице.
На крају сачувајте документ бележнице као.хтмл екстензију
Веб страница ће бити приказана као доле у веб прегледачу.
Овде је адреса АП ИП адреса 192.168.4.1 и шаљемо вредности @ и% да УКЉУЧИМО и ИСКЉУЧИМО ЛЕД користећи ову доњу логику у ЛПЦ2148.
вхиле (1) { иф (уарт0_цоунт! = 0) { ЦОММАНД = УАРТ0_БУФФЕР; иф (ЦОММАНД == ЛЕДОН) // Логика за подешавање ЛЕД-а УКЉУЧЕНО или ИСКЉУЧЕНО у зависности од примљене вредности из ЕСП8266 { ИОСЕТ1 = (1 << 20); // Поставља ОУТПУТ ХИГХ делаи_мс (100); } иначе иф (ЦОММАНД == ЛЕДОФФ) { ИОЦЛР1 = (1 << 20); // Поставља ОУТПУТ ЛОВ делаи_мс (100); } } }
На овај начин се уређајем може даљински управљати помоћу микроконтролера ЕСП8266 и АРМ7 ЛПЦ2148. Комплетни код и видео са објашњењима дати су у наставку.