- Что такое ESP8266?
- Основы теории WiFi:
- Типы программирования с ESP8266:
- Оборудование для программирования модуля ESP8266:
- Необходимые материалы:
- Описание схемы:
- Строительная плата для программирования ESP8266:
Интернет вещей и домашняя автоматизация в последнее время стали очень популярной темой. Самостоятельная разработка чего-то, что может взаимодействовать с World Wide Web и к которому можно получить доступ из любой точки мира, действительно звучит круто, не так ли?
Но ждать!!! Это тоже звучит сложно ???….
То же самое и со мной, я думал, что потребуется огромное количество времени и навыков, чтобы создать вещи, которые могут взаимодействовать с Интернетом. НЕТ, я был совершенно неправ, благодаря этому фантастическому модулю ESP8266 от Espressif Systems. Теперь вы можете легко открыть свои двери для проектов Интернета вещей с помощью этого модуля. Этот недорогой модуль небольшого размера может творить чудеса, он действительно прост и удобен в использовании, если мы будем следовать правильным шагам.
Цель данного руководства - познакомить вас с этим модулем 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,3 В |
Потребление тока |
10 мкА-170 мА |
Максимальное потребление тока при прошивке |
800 мА |
Флэш-память |
16 МБ (512 КБ нормально) |
Процессор |
Tensilica L106 32 бит |
Скорость процессора |
80-160 МГц |
баран |
32 000 + 80 000 |
GPIO |
17 (но большинство из них мультиплексированы) |
Аналого-цифровой преобразователь |
1 (10 бит) |
Максимальное количество TCP-соединений |
5 |
Ладно, некоторые вещи, которые могли бы вас удивить в спецификации, заключаются в том, что ДА, модуль ESP8266 поставляется с преобразователем АЦП и потребляет очень высокий ток 0,8 А во время перепрограммирования вашего устройства.
Также ознакомьтесь с нашими различными интересными проектами Интернета вещей на базе ESP8266.
Основы теории 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-команды. Другой способ - использовать IDE Arduino. Давайте разберемся, что это значит.
Во все модули ESP8266, поставляемые с завода, будет загружена прошивка по умолчанию (SDK + API). Эта прошивка поможет вам запрограммировать модуль ESP8266 с помощью AT-команд.
Другой способ - напрямую запрограммировать модуль ESP8266 с помощью Arduino IDE (плата не требуется) и его библиотек. Все проекты могут быть выполнены обоими методами. Но если вы начнете использовать Arduino IDE для программирования ESP8266, возможно, вы не сможете использовать AT-команды, потому что SDK по умолчанию мог быть поврежден. В этом случае вам нужно прошить ESP с настройками по умолчанию. Мы рассмотрим это в другом уроке.
Оборудование для программирования модуля ESP8266:
ESP8266 - это 8-контактный модуль. Вывод такой же показан ниже.
К сожалению, этот модуль не подходит для макетов, поэтому мы не можем установить его непосредственно на макетную плату. Также, в отличие от Arduino, он не имеет встроенного драйвера USB to Serial; следовательно, мы должны использовать «FTDI USB to TTL Serial Adapter Module» для связи с ним. Убедитесь, что плата FTDI может работать и от 3,3 В; тот, который мы используем в этом уроке, показан ниже.
Теперь, как мы знаем, мы должны включить ESP8266 с напряжением 3,3 В. Но потребление тока составляет 0,8 А, поэтому при питании от нашей коммутационной платы FTDI он может работать не так, как ожидалось. Следовательно, мы должны построить свою собственную схему питания. Здесь мы использовали LM317 для питания; подробности изготовления всего оборудования приведены в последующих разделах.
Необходимые материалы:
- Perf Board
- ESP8266-01
- Коммутационная плата FTDI
- LM317
- Конденсатор 0,1 мкФ
- Конденсатор 10 мкФ
- Бочка Джек
- Бергстик мужской и женский
- Нажать кнопку
- Соединительные провода
- Адаптер 12 В для питания платы.
Описание схемы:
Схема платы показана ниже.
Кто-то, возможно, попытался запитать ваш ESP напрямую от FTDI и заставить его работать, но следующие причины для создания вашей собственной платы с несколькими дополнительными компонентами:
- Только несколько плат FTDI могут обеспечить ток, достаточный для модуля ESP. Некоторые модули ESP могут потреблять больший ток, чем другие, во время прошивки. Следовательно, всегда безопасно иметь собственный источник питания, и будет проще интегрировать схему питания на Dot Board вместо макета.
- Мы всегда должны сбрасывать модуль ESP перед загрузкой кода, создание собственной платы поможет нам легко сбросить модуль. Мы использовали кнопку для сброса ESP8266.
- Вывод GPIO0 должен быть заземлен при программировании с использованием Arduino и должен оставаться свободным при использовании AT-команд, это можно легко переключить, если мы построим нашу собственную плату. Мы использовали перемычку для переключения между режимом AT-команд и режимом программирования Arduino IDE.
- Все программирование выполняется с использованием последовательной связи , если вы используете макетную плату, некоторые незакрепленные терминалы могут вызвать ошибку на полпути и вынудить нас перепрограммировать модуль для повторной работы.
При этом вы можете выбирать между использованием макета и созданием собственной платы для программирования модуля. Если вы все еще хотите использовать макетную плату, ту же схему, показанную выше, можно построить с помощью вашей макетной платы. Будет отличаться только внешний вид, все остальные инструкции в этом руководстве будут применяться так же.
Строительная плата для программирования ESP8266:
Итак, здесь мы создаем плату для программирования модуля ESP8266, у которого есть собственная цепь питания для питания ESP8266.
Как уже говорилось, нашему модулю потребуется около 800 мА при программировании. Поэтому мы сконструировали собственный силовой модуль с помощью регулятора переменного напряжения LM317, поскольку ток источника LM317 составляет почти 1,2 А. Входное напряжение LM317 будет составлять 12 В, которое будет подаваться с помощью адаптера для настенного монтажа 12 В 2 А. Выход LM317 будет постоянно регулироваться до 3,3 В с помощью резисторов 220 Ом и 360 Ом. Также проверьте нашу схему зарядного устройства с использованием LM317, чтобы узнать больше о LM317.
Формулы для расчета выходного напряжения LM317 приведены ниже:
Vout = 1,25 * (1+ (R2 / R1))
Где R1 - 220 Ом, а R2 - 360 Ом.
Модуль ESP8266 подключается в соответствии с контактами, указанными в таблице ниже.
№ контакта |
Имя вывода ESP |
Соединен с |
1 |
Земля |
Земля модуля FTDI |
2 |
GPIO2 |
Оставлен свободным или подключен к палке Berg для использования в будущем |
3 |
GPIO0 |
Переключение между режимами программирования |
4 |
Rx |
Tx модуля FTDI |
5 |
Tx |
Rx модуля FTDI |
6 |
CH_PH |
3,3 В от LM317 |
7 |
Сброс |
Кнопка для сброса модуля |
8 |
Vcc |
3,3 В от LM317 |
Чтобы легко переключаться между режимом AT-команд и режимом программирования Arduino, я поместил переключатель (перемычку), который потянет GPIO 0 на землю при использовании Arduino IDE и оставит его плавающим при использовании AT-команд.
Есть кнопка, при нажатии которой происходит сброс модуля ESP. Это можно сделать, просто подключив контакт RST модуля ESP к шине заземления с помощью кнопки. Каждый раз перед тем, как программировать наш модуль ESP, мы должны сбрасывать его.
После того, как вы собрали схему, она должна выглядеть примерно так, как показано ниже.
Я использовал плату Perf, но вы также можете использовать макетную плату, если вам интересно (как обсуждалось выше). Полная сборка и объяснение показаны на видео ниже.
После того, как закончили с подключениями. Включите плату без плат ESP и FTDI и проверьте, правильно ли мы получаем 3,3 В на клеммах Vcc и Ground модуля ESP. Теперь убедитесь, что ваша плата FTDI находится в режиме 3,3 В, и подключите к ней модули FTDI и ESP.
Включите адаптер и подключите его к плате, модуль ESP должен загореться красным цветом.
Затем подключите плату FTDI к компьютеру с помощью кабеля mini-USB - USB и перейдите в Диспетчер устройств на своем компьютере, и вы должны найти плату FTDI, подключенную к вашему COM-порту, как показано ниже:
А теперь пора заняться программированием нашего модуля ESP8266. Вы можете начать с использования AT-команд, а затем перейти к использованию Arduino IDE. Не забудьте проверить наши другие проекты на базе ESP8266.