Esp8266 с чего начать

ESP8266 с чего начать или первый опыт

В этой статье я хочу поделиться опытом того, что делать, когда в руки впервые попадают платки ESP8266. Сразу оговорюсь, что ковыряние в таких железках, равно как и программирование, это моё хобби за мои деньги и в свободное от основной деятельности время. Поэтому прошу отнестись с определенной скидкой к степени критики данного материала.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Итак, приступим!

Я заказал себе 3 варианта плат на известном китайском сайте:

Во всех инструкциях по запуску пишут, что если Вы подключили питание и появилась WiFi сеть «AI-THINKER xxxxxxx», значит устройство работает. С моими устройствами так и вышло — они все создали WiFi сеть, к которой можно было подключиться. Ура! Заработало! Обрадовался я, но рано.

Для начала решил экспериментировать с Жёлтой платой. У продавца с лучшим показателем цена-рейтинг в описании товара были только картинки. И ни слова описания. На русскоязычных ресурсах были упоминания это платы, но конкретики именно про неё не нашёл. У некоторых продавцов я видел такую инструкцию:

1. Android phone installation IOT.APK, IOS client be released later
2. shorting cap connected to the power to enter the programming mode, enter the normal operating state removed
3. Replace the battery, mobile search network «AI-THINKER» router
4. join the router (the router module form) password is: ai-thinker
5. after the success can be added directly to the control module of the mobile phone.
6. Enter the home router «SSID» and «Password» in the «Configure Device», then click on the icon at the top of the router, wait a few moments after the jump to join the router, connect the phone router WiFi, again «discovered device» to achieve control in the LAN.

Мой вольный перевод:

1. На устройство с Wi-Fi работающим на ОС Андроид (не работает на версии 5.0 и старше!) установите IOT.APK, Клиент для IOS будет выпущен позже
2. На плате необходимо снять пермычку, активирующую режим прошивки.
3. Перезагрузите модуль (отключить и подключить питание) и через минуту ищите на андроид устройстве Wi-Fi сеть «AI-THINKER»
4. Подключитесь к этой сети с паролем «ai-thinker»
5. После этого запустите установленной приложение IOT и нажмите на лупу. Плата должна автоматически определиться. После этого перемещайте ползунки, щелкайте выключателями и наблюдайте светодиоды на плате.

Нестыковка была в том, что моя сеть «AI-THINKER хххххххх» не спрашивала пароль, а сразу телефон к ней подключался. И приложение в упор не «видело» ESP после подключения. RGB светодиод горел синим с установленной перемычкой или зеленым без неё.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Я догадывался, что, возможно, китайцы спаять — спаяли, а прошить забыли (или криво прошили). Поэтому решил шить сам. Для прошивки я использовал ESP8266 Flasher. И тут вылез второй сюрприз: ни одна программа плату не распознавала, на команды не отвечала, прошивка не заливалась. Подключал через Ардуино и через UART-конвертер — ничего. Две другие платы уже успел перепрошить и помигать светодиодом, а тут глухо. Пока не догадался прозвонить контакты.

На этой плате отдельно выведены три контакты для прошивки: TX, RX, GND. Так вот оказалось, что TX разведен на RX самой ESP-12, соответственно RX — на TX. Т.е. просто надо было поменять местами два провода: к отдельно вынесенным трём контактам подключаем UART-конвертер по схеме:

TX-TX
RX-RX
GND-GND
Или Ардуино:
TX-RX
RX-TX
GND-GND

После такого открытия модуль ожил, была найдена оригинальная прошивка для мигания светодиодами (AI-THINKER-IOT-2014-10-17 165528.bin) и прошита все тем же ESP8266 Flasher. Появился пароль на точку доступа, и приложение сразу увидело Жёлтую плату. Единственный нюанс: для перепрошивки надо установить перемычку, для всех остальных случаев снять. И не забывать перезагружать устройство после перепрошивки.

ESP8266 ESP-07 вместе с Adapter Plate

Инструкция подключения ESP-07 (ESP-12) через UART-конвертер:

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

HomesSmart сразу ставить не хотелось и выбор пал на такой вот пример. Не буду перепечатывать схему и код — они практически такие же. Заработало не сразу, но с гуглом и бубном завелось и полетели данные на Народный мониторинг.

Загружал скрипт через ESplorer.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Жду компактный модуль питания 220AC — 3,3DC чтобы оптимизировать количество проводов.

LoLin V3 NodeMcu (Лолин)

Эту плату советовали сразу прошить прошивкой NodeMcu, что и было сделано через программу NodeMcu flasher. Сама прошивка собирается конструктором, что позволяет включить только самое необходимое.

Далее предполагалось подключение и управление 2-хканальным реле и управлять двумя бра в спальне. Тут хочу остановиться на одном ньансе. У китайского варианта такого реле есть перемычка JD-VCC — VCC — GND. По умолчанию она установлена на контакты JD-VCC — VCC.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Так вот, пермычку никогда нельзя устанавливать на VCC — GND — устроите КЗ! Эти три контакта используются для дополнительного питания реле, в случаях, когда управляющее может быть недостаточным для срабатывания реле. Присутсвие перемычки обозначает, что питание идет от «управляющих» контактов.

Скрипт был использован такой:

Я не смог повторно найти ссылку на первоисточник. Но схема проста: К Лолин подключаем на выходы D3 и D4 реле 1 и реле 2 (led1 = 3 led2 = 4). Дальше заходим на выданный нашим роутером IP адресс и видим страничку:

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

К моему огромному сожалению, я пока не разобрался как наводить красоту, например подключить файл CSS-стиля. Вопрос именно в задействовании отдельных файлов при выводе странички, а не в задании стиля.

Очень надеюсь что эта информация пригодиться хотябы одному человеку. И не судите строго за первую статью.

Источник

Знакомство с недорогим и функциональным микроконтроллером ESP8266: прошивка и пример использования

Авторизуйтесь

Знакомство с недорогим и функциональным микроконтроллером ESP8266: прошивка и пример использования

ESP8266 — китайский микроконтроллер (далее МК) от производителя Espressif с поддержкой WiFi-интерфейса. Управлять всем этим можно не только с браузера, но и из приложений на Android/iOS/Desktop. Если МК будет применяться там, куда не достаёт WiFi-сеть, то ESP8266 может работать в режиме точки доступа.

Примечание В этой статье не будут рассмотрены практические примеры применения ESP8266. Речь пойдёт об основных преимуществах и возможностях этого МК.

Содержание:

Микроконтроллер ESP8266 работает с внешней flash-памятью по интерфейсу SPI. Её объём варьируется от 512 Кбайт до 4 Мбайт. При желании и умении микросхему памяти можно будет перепаять на версию до 32 Мбайт.

Разновидности МК серии ESP и их плат

Существует около полутора десятка версий МК серии ESP и огромное количество плат с ними. Рассмотрим самые популярные из них.

Микроконтроллеры ESP8266

ESP-01

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

ESP-03

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

ESP-07

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

ESP-12

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Разные варианты микроконтроллера ESP-12. Источник

В свою очередь, существует несколько вариантов этой версии: ESP-12S, ESP-12F, ESP-12E. Вторая и третья версии имеют на торце дополнительно 6 разведённых контактов.

Платы

WeMos D1 mini

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Плата WeMos D1 mini. Источник

NodeMCU v0.9/v1

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Первое поколение плат серии NodeMCU. На ней распаяны все 11 GPIO-портов. Некоторые из них обладают дополнительными функциями (UART, I2C, SPI, PWM, ADC). Хотя на плате впаяны контакты, она занимает всю ширину беспаечной макетной платы, что затрудняет работу на ней. МК имеет 4 Мбайт flash-памяти. Также имеется мост CH340.

NodeMCU v3

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Финальная версия платы этой серии. Существует и v2 «Amica», которая меньше по габаритам. v3 носит название «LoLin» и отличается от предыдущей версии только размерами и незначительными деталями (например дополнительной распайкой шины питания). Кроме традиционного моста CH340/CH341 на платы ставят чип CP2102, так что внимательней с выбором драйвера на них.

Характеристики

Все эти (и не только эти) платы выполнены на чипсете микроконтроллера ESP8266EX, а следовательно, характеристики у них одинаковые:

Как работать с микроконтроллером ESP8266?

Есть два способа работы с ним:

Прошивка

В большинстве случаев намного удобней прошивать МК и работать с ним со своей прошивкой. Однако тут тоже есть свои нюансы. Вот 3 варианта событий:

В чём прошивается?

Например NodeMCU Flasher (которая подходит не только для плат NodeMCU) или ESPTool (необходим Python).

Однако в этой статье работа с МК и процесс прошивки будут рассмотрены в Arduino IDE.

Изначально среда Arduino IDE не предназначена для работы с МК серии ESP. Чтобы это исправить, идём в Файл → Настройки и в поле Дополнительные ссылки для Менеджера плат вставляем эту ссылку:

Потом открываем Инструменты → Плата → Менеджер плат и в открывшемся списке в самом низу находим плату «esp8266 by ESP8266 Community» (если с этим возникли трудности — используем поиск вверху окна). Устанавливаем последнюю версию платы (около 150 Мбайт).

17–19 декабря, Онлайн, Беcплатно

После установки в списке плат появится немалое количество плат. Если не нашли свою плату или не знаете её названия — выбирайте Generic ESP8266 Module. Теперь можно выбрать свой МК в списке COM-портов.

У ESP8266 две скорости передачи: основная — её вы указываете при инициализации последовательного порта, и скорость, на которой передаётся отладочная информация. Она передаётся сразу после подачи питания на МК. Обычно это скорости 115200 бод и 74800 бод 0 соответственно.

Основы

Если вы не владеете базовыми знаниями работы с платформой Arduino, наверстать упущенное можно в нашей статье про основы использования Arduino.

После скачивания платы ESP8266 с помощью менеджера, в примерах появится большое количество скетчей. Рассмотрим один из них (Файл → Примеры → ESP8266WebServer → HelloServer):

Ознакомиться с API МК можно в их официальном репозитории.

Распределение памяти

Внешняя память распределена на следующие разделы:

Файловая система SPIFFS

Один из плюсов внешней flash-памяти — файловая система. В неё можно с лёгкостью записать файлы (веб-странички, медиа-файлы и прочее) на микроконтроллеры ESP8266. На аппаратном уровне это можно было бы реализовать подключив к МК модуль SD-карт. Однако это решение требует свободных портов.

Размер файловой системы (от 32 Кбайт до 15 Мбайт) зависит от самого объема flash-памяти и от конфигурации, выставленной в Инстурменты → Flash size. Например, конфигурация 4M (2M SPIFFS) предназначена для МК с общим объёмом flash-памяти 4 Мбайт, 2 Мбайт из которых будут выделены под файловую систему.

SPIFFS не работает с папками — она содержит только список файлов. Соответственно, если загрузить в неё папку style, в которой будет файл header.css, то в файловую систему систему запишется файл с именем /style/header.css. Об этом стоит помнить, потому что длина файлового имени не должна превышать 31 символ (читается 32, но символ с кодом 0 отведён под завершение строки).

Для загрузки файлов потребуется инструмент ESP8266FS, интегрирующийся в Arduino IDE. Инструкция по установке:

Как работать с SPIFFS и файлами в ней, можно узнать в этой статье.

Энергонезависимая память EEPROM

Работа с внешней памятью немного отличается от стандартной.

Прошивка «по воздуху» OTA-Update

Для этого вам потребуется установленный Python.

Прошиваем МК по проводу. В случае успешной загрузки в списке портов появится новый хост с именем «esp8266-xxxxxx», где esp8266 — указанное выше имя хоста, а xxxxxx — локальный IP-адрес МК. Выбираем его.

Теперь микроконтроллер ESP8266 можно прошивать «по воздуху».

Источник

ESP8266 Урок 1 Первое знакомство с контроллером ESP8266

Наконец-то, по многочисленным просьбам мы начинаем знакомство, а впоследствии, как я думаю, и полноценную работу по программированию микроконтроллера ESP8266.

Данный контроллер является собственностью китайского производителя Espressif, и основную свою популярность среди программистов он снискал благодаря наличию беспроводного интерфейса Wi-Fi. Также немаловажным фактором является его очень низкая стоимость и также наличие на сегодняшний момент многочисленной документации, а также программного обеспечения, позволяющего самостоятельно писать для него программы на различных языках. О сфере использования данного контроллера в различных устройствах я вообще даже боюсь и говорить. Она очень многообразна: интернет вещей, сбор информации с различных датчиков и приборов, передача на другие устройства, где нет возможности протянуть к ним провода и т.д.

Поставляется данный контроллер в основном в виде различных модулей, многообразие которых не может не удивлять.

Вот это лишь некоторая часть из них

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

У меня также имеется в наличии ряд таких модулей, так как мне также небезразлично развитие данных технологий, ну и, повлияли также и ваши многочисленные просьбы.

Также я много думал о том, с чего начать рубрику по данному контроллеру. Вообще, честно говоря, хотелось приступить сразу к написанию программ и их прошивке в модуль. Но, так как в данных модулях сразу имеется определённое прошитое ПО, позволяющее уже с ним работать по интерфейсу UART посредством AT-команд, и, так как просьб по работе с AT-командами данного контроллера было тоже немалое количество, то начнём мы именно с них. А дальше уже покажет обстановка.

Прежде чем приступить к практической работе с модулем, мы познакомимся поначалу с контроллером, а затем уже будем знакомиться с модулями, а вернее с самым простым из них – ESP-01.

Практически во всех модулях, построенных на контроллере ESP8266 имеется в наличии внешняя микросхема FLASH-памяти, так как у контроллера, к сожалению, внутренней FLASH-памяти на борту нет. Но зато в этом есть и плюсы, позволяющие установить данную память различного размера.

Поначалу с архитектурой контроллера ESP8266 мы познакомимся очень кратко, так как сразу со всеми его многочисленными регистрами памяти мы работать не будем, и поэтому если мы их изучим сразу, то когда уже приступим к их использованию на практике, мы всё непременно забудем.

Основные технические характеристики контроллера ESP8266 (а точнее ESP8266EX), касающиеся передачи данных по Wi-FI:

Это лишь некоторые самые интересные характеристики по передаче данных.

Также приведу некоторые остальные характеристики:

3.6V (стабильная работа контроллера, как подтвердила практика, наблюдается при стабилизированном напряжении 3.3V).

Токи потребления контроллером в активном режиме при определённых режимах и скоростях передачи данных

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

А это токи потребления контроллером в различных режимах пониженного энергопотребления, а также что остаётся в данных режимах в работе

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Находится микроконтроллер ESP8266 в 32-пинном QFN корпусе.

Вот основное назначение ножек (возможен REMAP)

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

А вот это блок-схема

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

То, что там нарисован FLASH вовсе не свидетельствует о его наличии, поэтому он него идёт соединительная линия к интерфейсам, подчёркивающая его подключение через внешний интерфейс.

Также об этом свидетельствует и вот этот пункт, в котором обозначены параметры подключаемого внешнего FLASH

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Оперативной памяти в контроллере около 50 килобайт.

Процессор в контроллер ESP8266 встроен Xtensa L106 от компании Tensilica. Работает он на частоте до 80 мегагерц, возможен также негарантированный разгон до 160 МГц.

Вообщем, это пока всё, что я хотел сказать вам о контроллере ESP8266. В дальнейших уроках мы уже начнём знакомство с отдельными модулями, научимся управлять их работой сначала с помощью команд AT, а затем уже напишем свои прошивки, позволяющие работать с модулем самостоятельно и более гибко, а также впоследствии мы обязательно подключим данный контроллер к другому контроллеру общего назначения, в частности к STM32, к которому мы с вами уже так привыкли, что позволит ещё более профессионально организовать процессы передачи данных между устройствами без использования проводов.

Всем спасибо за внимание!

Различные модули ЕSP8266 можно приобрести здесь Модули ЕSP8266

Смотреть ВИДЕОУРОК (нажмите на картинку)

Источник

Работа с ESP8266: Собираем компилятор и пишем первую прошивку

В прошлой статье мы рассмотрели первоначальную настройку и работу модуля ESP-01 с базовой AT-прошивкой. Возможности данной прошивки достаточно ограничены и использовать её для каких-то повседневных задач достаточно сложно. Как я писал в первой статье, для ESP8266 можно написать свою прошивку с нужным функционалом и тем самым сделать плату ESP-01 самодостаточным устройством. Всем кому это интересно, прошу под хабракат.

Как известно, SoC ESP8266 построен на базе процессора Xtensa LX106 фирмы Tensilica, если кому-то интересно, то в сети есть статья про конфигурируемые процессоры этой фирмы. Компания Espressif предоставляет полную документацию, а так же компилятор и среду разработки для SoC ESP8266 только после подписания партнерского соглашения и не со всеми подряд, на мое письмо они так и не ответили. Немного погуглив можно найти утекший в сеть официальный компилятор, среду разработки, основанную на Eclipse, множество документации и лицензии, но это не наш путь. Мы будем использовать неофициальный компилятор на основе Crosstool-NG

В этой статье я расскажу как собрать компилятор под Ubuntu Linux, а так же мы попробуем написать простейшую прошивку. Основной упор я сделаю на работу с компилятором под Windows, а так же настройку среды Eclipse для написания прошивок для ESP8266.

Часть 1: Сборка компилятора под Ubuntu Linux, настройка SDK, сборка стандартных примеров и прошивок.

Установка среды сборки

Для 32-разрядной Debian (Linux) выполняем:
Для 64-разрядной Debian (Linux) выполняем:
Далее:
USER меняем на логин текущего пользователя.

После этого можно откинуться на спинку кресла минут на 40-50 и попить кофе. Если все завершится без ошибок, то можно двигаться дальше.

Добавляем библиотеки libc, libhal и заголовочные файлы в SDK

Установка ESP image tool

ESP tool можно собрать из исходников,
для Linux можно скачать здесь
для Debian/Ubuntu здесь
Готовый пакет для Ubuntu качаем отсюда

Установка ESP upload tool

Сборка примеров прошивок

Для начала откройте файл /opt/Espressif/ESP8266_SDK/include/osapi.h и закомментируйте строку #include «user_config.h»

Скачиваем и собираем примеры blinky и basic_example:
Если все шаги были сделаны правильно, то сборка пройдет без ошибок и в каталоге firmware появятся 2 файла прошивки 0x00000.bin и 0x40000.bin

Скачиваем и собираем пример базовой прошивки AT:

Для правильной сборки AT прошивки необходимо отредактировать базовый Makefile в строке
LIBS = c gcc hal pp phy net80211 lwip wpa main
добавить линковку библиотеки upgrade, итоговая строка будет выглядеть так
LIBS = c gcc hal pp phy net80211 lwip wpa upgrade main
после этого прошивку можно собрать командой make

Cобираем пример прошивки IoT:

Так же как и для AT прошивки, для правильной сборки IoT прошивки необходимо отредактировать базовый Makefile в строку
MODULES = driver user
нужно добавить дополнительные модули, итоговая строка будет выглядеть так
MODULES = driver user json ssl upgrade lwip
а в строку
LIBS = c gcc hal pp phy net80211 lwip wpa main
добавить линковку библиотеки json, итоговая строка будет выглядеть так
LIBS = c gcc hal pp phy net80211 lwip wpa main json
после этого прошивку можно собрать командой make

Для того чтобы прошить плату ESP-01 нужно использовать команду make flash
Не забываем, что для переключения в режим обновления прошивки нужно подать низкий уровень на GPIO0 и высокий на CH_PD.
Чтобы понять, что делает make flash стоит открыть любой Makefile и найти строку flash:
после подстановки всех аргументов получаем команду прошивки SoC:

Формат файла прошивки, собственно и как протокол обмена можно почитать тут на русском или здесь на английском языках.
На этом рассмотрение сборки компилятора и SDK под Linux закончено.

Часть 2: Установка компилятора под Windows, настройка SDK, сборка стандартных примеров и прошивок.

Т.к. моя основная ОС под которой я работаю 90% времени это Windows, то разработка в Linux меня не сильно интересовала.
Ниже я расскажу, как установить и настроить компилятор и SDK в Windows, а так же как настроить среду разработки Eclipse для комфортной разработки прошивок в ней.
Рассматривать процесс сборки компилятора под Windows я не буду, т.к. это довольно сложная процедура, она намного сложнее сборки в Linux.
Дабы избавить Вас от всех тонкостей и нюансов, я подготовил рабочий комплект Espressif DevKit, включающий в себя компилятор, последнюю версию SDK, стандартные примеры прошивок, а так же мои собственные примеры прошивок.

Источник

Начало работы с ESP8266: руководство для начинающих

Интернет вещей (Internet of Things) и автоматизация дома (Home Automation) в настоящее время стали одними из ведущих трендов в развитии микроэлектроники. Для начинающих радиолюбителей особенно волнительным является процесс создания какого либо устройства, способного подключаться к мировой всемирной паутине интернета (World Wide Web). Доступ к таким устройствам можно получить из любой точки земного шара, в которой есть подключение к сети Интернет.

Некоторые могут подумать, что создание своими руками электронного устройства с подключением к сети Интернет является достаточно сложной задачей. Отчасти да. Но с появлением таким замечательных (и при этом сравнительно недорогих) модулей как ESP8266 от компании Espressif Systems эта задача значительно упростилась.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

В данной статье мы рассмотрим основы работы с модулем ESP8266-01. Для программирования данного модуля вам понадобится программатор (адаптер) FTDI USB to TTL. Более подробно все эти процессы вы можете посмотреть на видео, представленном в конце статьи.

Что такое ESP8266?

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Существует множество типов модулей ESP8266, доступных в диапазоне от ESP8266-01 до ESP8266-12. В данной статье мы будем использовать модуль ESP8266-01 в связи с тем, что он самый дешевый.

Однако все модули ESP имеют только один тип процессора ESP и отличаются только типом используемого интерфейсного модуля. Интерфейсный модуль микроконтроллера ESP8266-01 имеет только 2 вывода GPIO, а другие модули ESP могут иметь большее количество выводов.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Технические характеристики микроконтроллера ESP8266-01 приведены в следующей таблице.

Напряжение питания3.3V
Потребление тока10uA-170mA
Максимальный потребляемый ток во время программирования (прошивки) модуля800mA
Флэш-память16MB (512K normal)
Тип процессораTensilica L106 32 bit
Тактовая частота процессора80-160MHz
ОЗУ (RAM)32K+80K
Число контактов GPIO17 (большинство из них могут выполнять несколько функций)
АЦП1 (с разрешением 10 бит)
Максимальное число соединений TCP5

Основы технологии Wi-Fi

Протокол управления передачей (Transfer Control Protocol, TCP), интернет-протокол (Internet Protocol, IP), протокол пользовательских дейтаграмм (User Datagram Protocol, UDP), точка доступа (Access Point, AP), станция (Station, Sta), идентификатор набора служб (Service Set Identifier, SSID), интерфейс прикладного программирования (Application Programming Interface, API), веб-сервер (Webserver). Знакомы ли вам эти термины? Если да, то можете пропустить данный раздел статьи и переходить сразу к следующему ее разделу. Если же нет – то желательно все же кратко познакомиться с этими терминами в данном разделе статьи.

Протокол управления передачей (TCP)

Протокол транспортного управления стека протоколов TCP/IP. Фактически, это набор правил, на основе которых работает Интернет. Wi-Fi – это технология, описывающая 1-й и 2-й уровни эталонной семиуровневой модели взаимодействия открытых систем (ЭМ ВОС), а чтобы выходить в сеть Интернет данная технология на более высоких уровнях ЭМ ВОС использует протокол IP (3-й уровень) и протоколы TCP или UDP на 4-м уровне. Вы можете настроить свой модуль 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)

Это достаточно простой термин. Наверняка все из вас пользовались Wi-Fi связью. Имя сети Wi-Fi называется ее SSID. Когда у нас есть несколько точек доступа для подключения станции, станция должна знать, к какой точке доступа она должна подключиться, поэтому каждой точке доступа (AP) присваивается идентификатор, который называется SSID.

Интерфейс прикладного программирования (API)

Проще говоря, API – это мессенджер, который принимает ваши запросы, обрабатывает их и возвращает вашей системе желаемый результат. Большинство действий, которые мы выполняем в сети Интернет, использует API, например, когда вы бронируете рейс, совершаете онлайн-покупку и т.д. Каждый веб-сайт связывает вас с API, где для вас выполняется определенная часть работы, такая как регистрация, оплата и т. д.

Микроконтроллер ESP8266 использует API для общения с миром Интернета. Например, если он хочет узнать время, погоду или что-то еще, то он должен запросить это в форме API на соответствующем веб-сайте. Этот веб-сайт получит запрос и вернет желаемый результат нашему модулю ESP.

Веб-сервер

Веб-сервер – это то, что отвечает за отображение содержимого веб-сайта. Все содержимое этого конкретного веб-сайта будет загружено на его веб-сервер. Существуют выделенные компьютеры, работа которых заключается только в том, чтобы выполнять функции веб-сервера. Мы также можем запрограммировать наш ESP8266 для работы в качестве веб-сервера и подключиться к нему из любой точки мира.

Способы программирования ESP8266

Все модули ESP8266 поставляются с завода с заранее загруженной в них прошивкой (default firmware). Фактически, прошивка модуля – это набор SDK+API. Эта прошивка (встроенная программа) и позволяет производить программирование модуля ESP8266 с помощью AT команд.

Второй способ непосредственного программирования модуля ESP8266 – это использование интегрированной среды Arduino IDE (сама плата Arduino при этом не нужна) со всеми ее библиотеками.

Любой проект на ESP8266 можно реализовать с помощью любого из этих двух методов. Но если вы будете использовать Arduino IDE для программирования модуля ESP8266 вы, скорее всего, уже не сможете использовать AT команды потому что исходный SDK (software development kit, набор инструментальных средств разработки программного обеспечения) модуля может быть поврежден. В этом случае вы должны будете во время прошивки модуля ESP использовать настройки по умолчанию.

Аппаратное обеспечение для программирования модуля ESP8266

Модуль ESP8266 имеет 8 контактов. Его внешний вид и распиновка показаны на следующих рисунках.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Назначение контактов модуля ESP8266:

К сожалению, модуль ESP8266 не является «дружественным» к макетной плате (breadboard friendly) и поэтому его нельзя на ней непосредственно закрепить. Также, в отличие от платы Arduino у него нет собственного драйвера для преобразования интерфейса USB в интерфейс последовательного порта (USB to Serial driver), следовательно, нам необходимо будет использовать FTDI USB to TTL Serial Adapter Module (модуль адаптера FTDI для преобразования USB в логику TTL) чтобы взаимодействовать с данным модулем. Прежде чем собирать схему нашего проекта убедитесь в том, что используемая вами плата FTDI может работать при напряжении 3.3V.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Итак, как мы знаем, наш модуль ESP8266 мы должны запитывать от напряжения 3.3V. Но поскольку во время загрузки программного обеспечения (прошивки) модуль может потреблять ток до 0.8A, то он может работать некорректно если мы запитаем его от платы адаптера FTDI, поэтому мы соберем отдельную цепь для его питания на основе регулятора напряжения LM317.

Необходимые компоненты

Схема проекта

Схема для программирования модуля ESP8266 представлена на следующем рисунке.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начатьНекоторые из вас, возможно, пытались запитывать ваш модуль ESP напрямую с вашей платы FTDI и заставить его работать (в частности, сейчас достаточно часто используется программирование модулей ESP с помощью использования платы Arduino в качестве платы FTDI как, например, продемонстрировано в данной статье), но ниже приведены причины для создания собственной схемы питания модуля ESP:

Мы использовали в нашем проекте точечную плату для сборки отдельной схемы для питания и программирования модуля ESP, однако вы при желании можете использовать и макетную плату, но при этом следите за хорошим закреплением на ней соединительных проводов.

Создание платы для программирования ESP8266

Итак, мы занимаемся созданием платы для программирования модуля ESP8266, которая имеет свою собственную схему питания ESP8266.

Как уже отмечалось, наш модуль потребляет ток примерно 800mA во время его программирования. Наш собственный блок для питания модуля мы собрали на основе микросхемы регулятора напряжения LM317, которая выдерживает ток до 1.2A. Входное напряжение на микросхему LM317 в нашем проекте подается 12V, его можно обеспечить с помощью простого адаптера 12V 2A. На выходе микросхемы LM317 мы получаем стабилизированное напряжение 3.3V с помощью резисторов сопротивлением 220 и 360 Ом.

Формула для расчета выходного напряжения микросхемы LM317 выглядит следующим образом:

В нашем случае, R1= 220 Ом, R2= 360 Ом.

Схема подключения модуля ESP8266 к остальным элементам схемы нашего проекта представлена в следующей таблице.

Номер контактаНазвание контакта ESP8266Куда подключен
1Groundземля платы FTDI
2GPIO2оставлен не подключенным
3GPIO0переключение между режимами программирования
4RxTx платы FTDI
5TxRx платы FTDI
6CH_PH3.3V от LM317
7Resetк кнопке сброса
8Vcc3.3V от LM317

Для быстрого переключения между режимами AT команд и программирования с помощью Arduino IDE мы использовали в схеме переключатель (jumper), который на подает на GPIO 0 модуля землю (ground) во время использования Arduino IDE и оставляет его «свободно висящим в воздухе» во время использования AT команд.

Кнопка в схеме используется для сброса модуля ESP – во время ее нажатия происходит замыкание контакта сброса модуля (RST pin) на землю. Каждый раз перед программированием модуля ESP мы должны сбрасывать его.

После сборки схемы проекта на перфорированной плате у нас получилась следующая конструкция проекта.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

Вместо перфорированной платы вы можете использовать макетную плату.

После сборки схемы подайте на нее питание без подключения модуля ESP и платы FTDI и проверьте точно ли мы вы получаете напряжение 3.3V на выходе микросхемы LM317. Проверьте то, что ваша плата FTDI может работать от 3.3V, и после этого подключайте плату FTDI и модуль ESP в схему.

Когда на модуль ESP будет подано питание, на нем должен загореться светодиод красного цвета.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

После этого подключите вашу плату FTDI к компьютеру используя кабель mini-USB to USB, откройте диспетчер устройств на компьютере и в нем вы должны обнаружить к какому COM порту компьютера подключилась ваша плата FTDI, как показано на следующем рисунке.

Esp8266 с чего начать. Смотреть фото Esp8266 с чего начать. Смотреть картинку Esp8266 с чего начать. Картинка про Esp8266 с чего начать. Фото Esp8266 с чего начать

После этого можно приступать к программированию вашего модуля ESP8266. Можно начать с AT команд, а потом перейти к его программированию с помощью Arduino IDE.

Видео, демонстрирующее работу проекта

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *