- Какво е ESP8266?
- Основи на WiFi теорията:
- Видове програмиране с ESP8266:
- Хардуер за програмиране на модул ESP8266:
- Необходими материали:
- Обяснение на веригата:
- Сграда за програмиране на ESP8266:
Интернет на нещата и автоматизацията на дома наистина беше суета през последните дни. Изграждане на нещо самостоятелно, което може да комуникира с глобалната мрежа и да бъде достъпно от всяка точка на света, наистина звучи страхотно, нали?
Но почакай!!! Звучи и сложно ???….
Направих го за мен, мислех, че ще отнеме огромно време и умения за изграждане на неща, които могат да взаимодействат с интернет. НЕ, бях напълно погрешен, благодарение на този фантастичен модул, наречен ESP8266 от Espressif Systems. Сега можете лесно да отворите вратите си за IoT проекти с помощта на този модул. Този евтин, малък размер модул може да направи чудеса и е наистина прост и лесен за използване, при условие че следваме правилните стъпки.
Този урок има за цел да ви запознае с този модул ESP8266-01 и да ви помогне да започнете с него. Може би вече сте донесли модула си и сте останали при опит да го използвате. След това не сте сами, не се притеснявайте, много хора се затрудняват да започнат работа с модула, защото няма подходящи указания или документация за този модул. Това е причината да направите този урок. Следвайте инструкциите тук и бихте могли да стартирате и задействате модула си ESP8266-01 за нула време, тук ще използваме FTDI USB към TTL сериен адаптер за програмиране на ESP8266. Проверете подробното видео в края на урока.
Преди да влезем в темата, нека да разгледаме някои основни положения относно модула ESP8266-01.
Какво е ESP8266?
Повечето хора наричат ESP8266 като WIFI модул, но всъщност това е микроконтролер. ESP8266 е името на микроконтролера, разработен от Espressif Systems, която е компания, базирана извън Шанхай. Този микроконтролер има способността да изпълнява дейности, свързани с WIFI, поради което се използва широко като WIFI модул.
Налични са много видове модули ESP8266, вариращи от ESP8266-01 до ESP8266-12. Този, който използваме в урока, е ESP8266-01, защото е най-евтиният и лесно достъпен. Всички ESP модули обаче имат само един тип ESP процесор, а това, което се различава, е само използваният тип прекъсване. Пробивната платка на ESP8266-01 ще има само 2 GPIO щифта, докато при другите платки ще бъде по-висока.
Пълната спецификация на модула е дадена в таблицата по-долу
Волтаж |
3.3V |
Текущо потребление |
10uA-170mA |
Максимална консумация на ток по време на мигане |
800mA |
Флаш памет |
16MB (512K нормално) |
Процесор |
Тензилика L106 32 бита |
Скорост на процесора |
80-160MHz |
RAM |
32K + 80K |
GPIO |
17 (но повечето са мултиплексирани) |
Аналогово-цифров конвертор |
1 (10-битов) |
Максимални TCP връзки |
5 |
Добре, няколко неща, които биха могли да ви изненадат по отношение на спецификацията, са, че ДА модулът ESP8266 се предлага с преобразувател ADC и консумира много висок ток от 0,8 A по време на мигане на вашето устройство.
Също така проверете нашите различни ESP8266 базирани интересни IoT проекти.
Основи на WiFi теорията:
Протокол за управление на трансфера (TCP), Интернет протокол (IP), Протокол за потребителски дейтаграми (UDP), Точка за достъп (AP), Станция (Sta), Идентификатор на сервизен набор (SSID), Приложен програмен интерфейс (API), Уеб сървър…..
Всички тези условия имат ли смисъл за вас?
Ако отговорът е да. След това BINGO можете да прескочите тази част и да преминете към следващия раздел.
Ако не. Тогава вие трябва да сте един от многото ученици по електротехника, които просто премигнаха през повечето от тези термини, точно както аз, когато за първи път бях запознат с всички тези неща. И така, нека бързо прегледаме всички тези условия, защото само тогава можем да влезем в света на IOT.
Протокол за контрол на трансфера (TCP):
Повечето от нас биха знаели какво означава това. Да, това са набор от правила, въз основа на които работи интернет. Тъй като ESP8266 има възможност за настройка на WIFI връзки. На високо ниво Wi-Fi е възможността да участвате в TCP / IP връзките по безжична връзка. Можете да накарате вашия ESP да работи по протокола TCP / IP или UDP протокола.
Протокол за потребителски дейтаграми (UDP):
UDP също е друг вид интернет протокол. Този тип комуникация е по-бърза от TCP, но е по-малко точна. Причината е, че TCP използва потвърждение по време на комуникацията си, но UDP не. TCP се използва най-вече в мрежи, където има изискване за висока надеждност. UDP се използва на места, където скоростта има по-голям приоритет от надеждността. Например UDP се използва при видеоконференции, тъй като там дори някои пиксели да не се предават, това няма да повлияе толкова много на качеството на видеото, но скоростта е много важна.
Повечето проекти и кодове на ESP8266 работят около TCP / IP, UDP ще бъде най-малко притеснен.
Точка за достъп (AP) и станция (STA):
След като започнете да работите с модул ESP, ще срещнете тези два термина често. Да кажем, че вие и вашият приятел бихте искали да сърфирате в интернет на вашите смартфони, но тъй като той няма активна интернет връзка, вие решавате да включите вашата гореща точка и вашият приятел се свързва с нея. Тук вашият телефон, който осигурява интернет връзка, е точката за достъп (AP), а телефонът на вашия приятел, който използва интернет, се нарича станция (STA).
Модулът ESP8266 може да се използва в три режима, AP режим, STA режим или както STA, така и AP режим (комбиниран).
Идентификатор на сервизен набор (SSID):
Това е доста прост термин. Почти всички от нас са използвали WIFI. Името на Wi-Fi мрежата се нарича SSID. Когато имаме множество точки за достъп за станция, към която да се свърже, станцията трябва да знае коя точка за достъп трябва да се свърже, следователно на всяка точка за достъп (AP) се дава идентичност, която се нарича SSID.
Интерфейс за приложно програмиране (API):
Казано по-просто, API е пратеник, който приема вашите заявки, обработва ги и връща на вашата система желания резултат. Повечето дейности, които правим в интернет, използват API, като например когато резервирате полет, правите онлайн покупка и т.н. Всеки уебсайт ви свързва с API, където част от работата като регистрация, извършване на плащане и т.н. се извършва за вас там.
ESP8266 използва API, за да говори със света на Интернет. Например, ако иска да знае времето, климата или каквото и да поиска под формата на API за съответния уебсайт. Този уебсайт ще получи заявката и ще даде желания резултат обратно към нашия ESP модул.
Уеб сървър:
Уеб сървърът е нещо, което е отговорно за показване на съдържанието на уебсайт. Цялото съдържание на този конкретен уебсайт ще бъде заредено в неговия уеб сървър. Има специализирани компютри, чиято работа е да действа само като уеб сървър. Също така можем да програмираме нашия ESP8266 да работи като уеб сървър и да се свързваме с него от всяка точка на света.
Добре, това е достатъчно, за да започнем. Сега нека се докопаме до хардуера.
Видове програмиране с ESP8266:
Има два начина за работа с вашия модул ESP8266. Този урок ще ви помогне да започнете и с двете. Единият начин е чрез използване на AT команди. Другият начин е чрез използване на Arduino IDE. Нека разберем какво означава това.
Всички модули ESP8266, доставени от фабриката, ще имат зареден фърмуер по подразбиране (SDK + API). Този фърмуер ще ви помогне да програмирате модула ESP8266 чрез AT команди.
Другият начин е чрез директно програмиране на модула ESP8266 с помощта на Arduino IDE (борда не е необходим) и неговите библиотеки. Всички проекти могат да бъдат изпълнени и по двата метода. Но ако започнете да използвате Arduino IDE за програмиране на вашия ESP8266, може да не сте в състояние да използвате AT команди, защото SDK по подразбиране може да е повреден. В този случай трябва да мигате вашия ESP с настройки по подразбиране. Ще разгледаме това в друг урок.
Хардуер за програмиране на модул ESP8266:
ESP8266 е 8 терминален модул. Пинът от същия е показан по-долу.
За съжаление този модул не е удобен за макет и следователно не можем да го монтираме директно върху нашия макет. Също за разлика от Arduino, той няма вграден USB към сериен драйвер; следователно трябва да използваме „FTDI USB към TTL сериен адаптерен модул“, за да комуникираме с него. Уверете се, че FTDI платката може да работи и на 3.3V; този, който използваме в този урок, е показан по-долу.
Сега, както знаем, трябва да включим ESP8266 с 3.3V. Но текущата консумация е 0,8А, така че може да не работи както се очаква, ако се захранва от нашата FTDI платка. Следователно трябва да изградим собствена електрическа верига. Тук използвахме LM317 за захранване; подробностите за изработката на пълния хардуер са дадени в следващите раздели.
Необходими материали:
- Perf Board
- ESP8266-01
- Съвет за пробив на FTDI
- LM317
- 0.1uf кондензатор
- 10uf кондензатор
- Барел Джак
- Бергстик Мъж и жена
- Натисни бутона
- Свързващи проводници
- 12V адаптер за захранване на платката.
Обяснение на веригата:
Схемите на дъската са показани по-долу
Някои може да са опитали да захранват вашия ESP директно от вашия FTDI и да го задействат, но следните са причините да изградите своя собствена платка с няколко допълнителни компонента:
- Само няколко FTDI платки могат да осигурят достатъчно ток за ESP модула. Малко ESP модули могат да консумират по-голям ток от другия по време на мигане. Следователно винаги е безопасно да имате собствен източник на захранване и ще бъде по-лесно да интегрирате захранващата верига на Dot Board вместо макет.
- Винаги трябва да нулираме ESP модула, преди да качим кода, изграждането на собствена дъска ще ни помогне да рестартираме модула лесно. Използвахме бутон за нулиране на ESP8266.
- ПИН-то GPIO0 трябва да бъде заземен при програмиране с помощта на Arduino и трябва да бъде оставен свободен при използване на AT команди, това лесно може да се превключва, ако изградим собствена дъска. Използвали сме джъмпер за превключване между режим AT команди и режим Arduino IDE програмиране.
- Цялото програмиране се извършва с помощта на серийна комуникация , ако използвате макет, някои свободни терминали могат да доведат до грешка по средата и да ни принудят отново да работим с модула.
Като се има предвид това, можете да избирате между използване на макет и създаване на собствена дъска за програмиране на модула. Ако все пак искате да използвате макет, същата схема, показана по-горе, може да бъде изградена с помощта на вашата макет. Само външният вид ще бъде различен, всички останали инструкции в този урок ще прилагат същото.
Сграда за програмиране на ESP8266:
И така, тук изграждаме платката за програмиране на модул ESP8266, който има собствена схема за захранване за захранване на ESP8266.
Както казахме, нашият модул ще изисква около 800mA, докато го програмира. Следователно ние сме конструирали свой собствен захранващ модул, като използваме регулатор на променливо напрежение LM317, тъй като токът на източника на LM317 е почти 1,2A. Входното напрежение на LM317 ще бъде 12V, което ще се дава с помощта на адаптер за стенен монтаж 12V 2A. Изходът на LM317 ще бъде регулиран до 3.3V постоянно чрез използване на резистори от 220ohm и 360ohm. Също така проверете нашата схема на зарядно устройство за батерии, използвайки LM317, за да научите повече за LM317.
Формулите за изчисляване на изходното напрежение на LM317 са дадени по-долу:
Vout = 1,25 * (1+ (R2 / R1))
Където R1 е 220ohm, а R2 е 360ohms.
Модулът ESP8266 е свързан според изводите, показани в таблицата по-долу.
ПИН No. |
Име на ESP щифт |
Свързан с |
1 |
Земя |
Основание на модула FTDI |
2 |
GPIO2 |
Оставено безплатно или свързано към berg stick за бъдеща употреба |
3 |
GPIO0 |
Превключете за превключване между режимите на програмиране |
4 |
Rx |
Tx на FTDI модул |
5 |
Tx |
Rx на FTDI модула |
6 |
CH_PH |
3.3V от LM317 |
7 |
Нулиране |
Бутон за нулиране на модула |
8 |
Vcc |
3.3V от LM317 |
За да превключвате лесно между режима на командване AT и режима на програмиране Arduino, поставих превключвател (джъмпер), който ще дръпне GPIO 0 на земята при използване на Arduino IDE и ще го остави да плава при използване на командите AT.
Има бутон, който при натискане ще нулира ESP модула. Това се прави чрез просто свързване на RST щифта на модула ESP към земната шина чрез бутона. Всеки път, преди да програмираме нашия ESP модул, трябва да го нулираме.
След като сглобите веригата, тя трябва да изглежда по следния начин.
Използвал съм дъска Perf, но можете да използвате и макет, ако се интересувате (както е обсъдено по-горе). Пълното изграждане и обяснение е показано във видеото по-долу.
След като приключите с връзките. Включете платката без платките ESP & FTDI и проверете дали получаваме правилно 3.3V на клемите Vcc и Ground на позицията на модулите ESP. Сега се уверете, че вашата FTDI платка е в режим 3.3V и свържете вашите FTDI и ESP модули към вашата платка.
Включете вашия адаптер и го свържете към вашата платка, модулът ESP трябва да светне с червен цвят.
След това свържете вашата FTDI платка към вашия компютър с помощта на мини-USB към USB кабел и отидете до Device manager на вашия компютър и трябва да намерите FTDI платката, свързана към вашия COM порт, както е показано по-долу:
Сега е време да се докоснем до програмирането на нашия модул ESP8266. Можете да започнете с използване на AT-команди и след това да преминете към използване на Arduino IDE. Не забравяйте да проверите и другите ни проекти, базирани на ESP8266.