Макетирование и программирование платы ESP-01 с помощью Arduino IDE

Добавлено 18 августа 2017 в 19:48

ESP8266 – микроконтроллер / микросхема с модулем Wi-Fi

Новый микроконтроллер привлек внимание профессиональных разработчиков и любителей, и он может стать потенциальным лидером в интернете вещей. Микросхема под названием "ESP8266" представляет собой 32-битный RISC процессор со всеми свистелками и перделками, которые вы могли бы ожидать от полнофункционального микроконтроллера, но это еще не всё. ESP8266 также включает в себя встроенную схему Wi-Fi 802.11 b/g/n, которая готова к непосредственному подключению к антенне.

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

ESP8266 в настоящее время доступен только в 32-выводном корпусе QFN, в данном семействе присутствует только одна микросхема. Разработчик, Espressif, Шанхай, Китай, решил в полной мере использовать эффективность масштабного производства и предложить одну микросхему, которая подходит для использования в различных сборках печатных плат. В настоящее время существует более десятка печатных плат модулей ESP, которые отличаются в основном типом антенн и количеством доступных входов/выходов. Из-за QFN корпуса ESP8266, большинство любителей довольны этим решением, тем более, что рыночные цены начинаются с менее 5 долларов США за модель младшего класса, получившей название ESP-01 и изображенной ниже.

Модуль ESP-01 (вид сверху и снизу)
Модуль ESP-01 (вид сверху и снизу)

Для ESP8266 существует форум поддержки очень активного сообщества, который является отличным источником идей и информации. Первоначально документация была доступна только на китайском языке, а информацию по прошивкам до сих пор бывает трудно найти. В настоящее время многие DIY проекты работают в режиме «проб и ошибок», но есть много поставщиков, которые продают платформы разработки и другие аксессуары. Однако, как вы увидите ниже в этой статье, запустить ESP8266 на макетной плате совсем не трудно.

Варианты программирования

От поставщика многие (возможно, все) модули ESP8266 загружаются с прошивкой "AT" и могут программироваться через простую программу консоли. Если вы используете модуль в первую очередь для использования его Wi-Fi возможностей и управления им с помощью другого микроконтроллера, это может быть всё, что вам нужно.

Более сложный вариант доступен от NodeLua, который предлагает прошивку с открытым исходным кодом на основе языка программирования Lua. NodeLua всё еще находится в разработке, но уже содержит обширные возможности. Другие варианты включают в себя Python, BASIC и Arduino IDE, которая представлена в данной статье.

Входы и выходы ESP-01

Модуль ESP-01 содержит микроконтроллер ESP8266 и чип флэш-памяти. На нем также есть два светодиода: красный (указывает наличие питания) и синий (указывает на наличие потока данных и может также управляться программно пользователем). Wi-Fi антенна – это дорожка на печатной плате на верхней части модуля; она носит название MIFA-антенна (Meandered Inverted-F Antenna), и, на удивление, она эффективна и только слегка направлена.

Расположение выводов модуля ESP-01
Расположение выводов модуля ESP-01

В нижней части модуля находятся восемь контактов; на рисунке выше указан их функционал. Обычно на задней части модуля установлены два 4-пиновых разъема, которые припаяны сверху. Это делает входы/выходы доступными, но не очень подходящими для макетной платы, и требует перемычек между ESP-01 и макетной платой. Альтернативный способ размещения разъемов показан ниже.

Размещение разъемов модуля ESP-01
Размещение разъемов модуля ESP-01

Разъем на передней части печатной платы использует стандартные прямоугольные выводы без каких-либо изменений. Разъем на задней части использует удлиненные выводы, которые были согнуты под прямым углом, чтобы выдержать корректное расстояние между рядами разъемов. Этот способ позволяет вставлять ESP-01 в беспаечную макетную плату в вертикальном положении над центральным зазором платы и делает все восемь контактов независимыми.

Собираем всё вместе

На приведенной ниже схеме показаны соединения, необходимые для ESP-01, а на фотографиях показан завершенный макет на беспаечной макетной плате. Цвета проводов на схеме соответствуют цветам проводов на фотографиях.

Соберите макет, как показано на рисунке, но не подключайте кабель USB-TTL конвертера к компьютеру, пока не установите перемычку на плате конвертера в положение 3,3В, и дважды перепроверьте правильность всех соединений. Использование 5В для питания ESP-01 может вывести модуль из строя, после чего тот не будет подлежать ремонту.

Более надежная схема прошивки приведена в этой статье.

Схема подключения модуля ESP-01 к компьютеру
Схема подключения модуля ESP-01 к компьютеру
Макет подключения модуля ESP-01 к компьютеру (вид сверху)
Макет подключения модуля ESP-01 к компьютеру (вид сверху)
Макет подключения модуля ESP-01 к компьютеру (вид спереди)
Макет подключения модуля ESP-01 к компьютеру (вид спереди)
Макет подключения модуля ESP-01 к компьютеру (вид сзади)
Макет подключения модуля ESP-01 к компьютеру (вид сзади)

Для сборки макета вам может понадобиться дополнительная информация:

  • USB-TTL конвертер, показанный на фотографиях, использует UART микросхему FTDI232 и хорошо работает с операционными системами Windows, Mac и Linux. Он также предоставляет напряжение 3,3В для питания ESP-01. Убедитесь, что перемычка на печатной плате преобразователя установлена в положение 3,3В; что обеспечит как напряжение питания 3,3В, так и правильное напряжение на линии TxD. Использование более высокого напряжения может повредить ESP-01.
  • Независимо от того, какой USB-TTL конвертер вы решите использовать, он должен быть проверен перед использованием с ESP-01. Драйвера устройств на FTDI можно найти на сайте FTDI.
  • Величина тока, необходимого для ESP-01 во время работы Wi-Fi, варьируется от 250 мА до 750 мА. Ток, поставляемый USB-TTL преобразователем, должен быть достаточным для программирования ESP-01, но может оказаться недостаточным для длительного использования. Лучшим выбором является стабилизированный источник постоянного напряжения 3,3В, рассчитанный на ток 1 А и выше.
  • Выводы DTR и CTS USB-TTL конвертера остаются неподключенными.
  • Две коммутатора на схеме – это нормально разомкнутые однополюсные кнопки.
  • Одним из расхождений в доступных источниках информации об ESP-01 является то, должен ли CH_PD быть подключен к +3,3В напрямую или через подтягивающий резистор 10 кОм. Автор протестировал оба способа, и оба они работают. После того, как вы собрали и проверили схему, как показано здесь (с CH_PD, подключенным к +3,3В напрямую), попробуйте использовать подключение через резистор 10 кОм. Если схема работает с подтягивающим резистором 10 кОм, то оставьте его в схеме.

Как видите на приведенных выше фотографиях, использование свободных проводов от USB-TTL конвертера не оптимально. Лучшим вариантом является замена шести загнутых выводов разъема конвертера на шесть прямых выводов на нижней части печатной платы. Эта модификация позволит устанавливать преобразователь USB-TTL непосредственно в беспаечную макетную плату, что приведет к значительно более аккуратной и менее хрупкой сборке макета, как показано на фотографии ниже.

Альтернативная сборка макета подключения ESP-01 к компьютеру
Альтернативная сборка макета подключения ESP-01 к компьютеру

Включение питания

Перед подключением USB-TTL конвертера к компьютеру убедитесь, что перемычка выбора напряжения находится в положении 3,3В, и что все провода в макете установлены правильно и надежно. Затем подключите USB кабель; красный светодиод на ESP-01 должен загореться и продолжать гореть, а синий светодиод должен мигать каждый раз, когда между ESP-01 и компьютером происходит обмен данными. Затем проверьте кнопку сброса, нажав и удерживая ее. Посмотрите на ESP-01, когда вы отпустите кнопку, синий светодиод должен мигнуть два раза. Если всё прошло хорошо, отключите схему от компьютера и перейдите к следующему разделу.

Arduino IDE

Для использования совместно с ESP8266 рекомендуется использовать Arduino IDE версии 1.6.5. Если у вас более ранняя версия, то можете попробовать и её или обновить IDE до версии 1.6.5.

  • Как только у вас будет установлена подходящая версия Arduino IDE, запустите программу, перейдите в меню File (Файл) → Preferences (Настройки) и найдите в диалоговом окне поле ввода Additional Board Manager URLs (Дополнительные ссылки для Менеджера плат). Введите следующий URL точно, как он написан, и нажмите OK:
    • http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Затем нажмите Tools (Инструменты) → Board Manager (Менеджер плат) и прокрутите список вниз, чтобы найти "esp8266 by ESP8266 Community". Выберите эту запись и нажмите кнопку Install (Установка); загрузка и установка начнутся и будут продолжаться несколько минут. Пока дополнение устанавливается, взгляните на поддерживаемые платформы. В дополнение к базовому модулю ESP826 обеспечивается поддержка NodeMCU, Huzzah и SweetPea. К тому моменту, когда вы будете читать данную статью, этот список возможно расширится.
  • Когда установка закончится, нажмите кнопку Close (Закрыть).
  • Теперь нажмите Tools (Инструменты), перейдите в список плат и выберите "Generic ESP8266 Module".
  • Снова нажмите Tools (Инструменты) и убедитесь, что выбран Generic ESP8266 Module.
  • Нажмите File (Файл), Examples (Примеры) и прокрутите список вниз, пока не дойдете до ESP8266WiFi, а затем выберите WiFiScan. После этого должно будет открыться новое окно IDE со кодом примера WiFiScan.

Снова подключите схему к компьютеру и убедитесь, что на ESP-01 горит красный светодиод. Нажмите Tools (Инструменты), Port (Порт) и выберите порт, к которому подключен ESP-01. Наконец, вы готовы запрограммировать ESP-01.

Нажмите и удерживайте кнопку Reset, а затем нажмите и удерживайте кнопку Flash. Отпустите кнопку Reset и, удерживая нажатой кнопку Flash, нажмите кнопку со стрелкой Загрузка в Arduino IDE. Скетч должен скомпилироваться и загрузиться примерно за минуту, и когда компилирование будет завершено, отпустите кнопку Flash. Скомпилированный код будет отправлен в ESP-01; когда отправка будет завершена, на ESP-01 замигает синий светодиод.

Чтобы посмотреть результаты всех этих нажатий и выбираний, нажмите Tools (Инструменты), Serial Monitor (Монитор порта) и установите скорость передачи в правом нижнем углу окна монитора порта на 115200. Если у вас более ранняя версия ESP-01 (возможно на синей печатной плате), скорость передачи данных, скорее всего, равна 9600.

ESP-01 должен сканировать Wi-Fi сети и сообщать о результатах в окне монитора порта, как показано на примере ниже.

Результаты сканирования Wi-Fi сетей модулем ESP-01
Результаты сканирования Wi-Fi сетей модулем ESP-01

Среди сообщений вы должны увидеть свою собственную сеть и все остальные сети, которые сумел поймать ESP-01. Числа в скобках показывают уровень сигнала сети (обратите внимание, что эти числа отрицательные; следовательно, уровень сигнала -41 выше, чем -92).

Двери открыты

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


На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.


Сообщить об ошибке