О вай-фай "МК" ESP8266 и WeMos

Чип EPS8266 от китайской компании Espressif появился на рынке в 2014 году и сразу же привлек внимание общественности. С одной стороны, EPS8266 — чип максимально интегрировавший обвязку и позволяющий создавать очень простые платы с минимум элементов, да еще и со встроенным современным Wi-Fi. А с другой стороны, стоимость чипа неимоверно низкая (к 2016 году цена опустилась вдвое).

КУпить на Аилєкспресс ESP 01

Купить есп 8266 на Aliexpress на плате Esp 8266 with board


Купить на Алиэкспресс NodeMCU ESP-12E

Несмотря на то что EPS8266 можно использовать как самостоятельное изделие, многие производители наладили выпуск плат совместимых с линейкой Arduino. Что еще больше повысило популярность чипа, но уже среди энтузиастов сделать что-то своими руками да в единичном экземпляре. Возможность использования EPS8266 в Arduino-совместимых проектах стало возможным благодаря характеристикам чипа. Большой объем памяти, и внятная архитектура позволили не только сделать его совместимым с Arduino и NodeMCU , но и с множеством других программно-аппаратных экосистем. Компании и индивидуальные разработчики к настоящему моменту уже навыпускали великое множество прошивок, предназначенных для различных целей. Существуют даже варианты реализации, позволяющие программировать устройство через браузер . Согласитесь, что функционал богатый и устройство нашло широкий отклик среди масс.

Что же до компании WeMos . Получить внятную информацию о самой компании мне так и не удалось.

Кстати, многие называют чип EPS8266 именно так, но в спецификации он обзывается как EPS8266EX. Два это разные чипа или просто называются безалаберно непонятно. Ни поиск по форумам, ни чтение спецификаций производителя, не помогли мне разобраться в этом вопросе. Посему будем считать, что оба названия обозначают одно и то же.

Купить на Алиэкспресс Smart Electronics ESP-12F «Вемос» D1 WiFi

В моем распоряжении оказалась плата WeMos D1 R2. Приведу ее некоторые характеристики:

  • 80 MHz 32-bit процессор Tensilica Xtensa L106 . Возможен негарантированный разгон до 160 МГц.
  • IEEE 802.11 b/g/n Wi-Fi. Поддерживается WEPи WPA/WPA
  • 16 портов ввода/вывода, SPI, I2 C, I2 S, UART, 10-bit АЦП.
  • Питание 3,0–3,6 В. Среднее потребление 80 мА. Потребление до 170 мА в режиме передачи, 60 мА в режиме приема, пиковое потребление возможно до 500 мА. Присутствует режим пониженного потребления с сохранением соединения с точкой доступа ~1 мА.
  • Установлена Flash память объемом 4 Мб.

Дополнительно необходимо заметить, что сам чип работает при температурах от -40С и до +125С, что соответствуют лучшим технологическим стандартам. Хотя, я лично сомневаюсь, что готовая плата будет работать при температуре в 125 градусов, ведь все остальные элементы обвязки тоже нужно подбирать под столь высокие температурные стандарты, а на такой подвиг согласятся далеко не все производители.

Устанавливаем ПО для работы с WeMos на ПК под управлением Win10

Напомню, что чип EPS8266 способен работать одинаково хорошо с различными типами прошивок, в том числе и с Arduino. И именно под Arduino с его Arduino IDE я и попробую провернуть фокус, при котором плата WeMos D1 R2 будет подключаться к моей Wi-Fi сети, а я смогу обновлять прошивку без подключения платы к компьютеру шнурком и прямо из Arduino IDE. Все это под Windows 10 x64.

  1. Для начала необходимо установить более-менее современную версию Arduino IDE. Нужна версия не ниже 1.6.4.
  2. Устанавливаем Git (клиентское приложение для работы с онлайн-репозиторием контроля версий исходного кода) https://git-scm.com/download/win .
  3. Устанавливаем Python (среда для скриптового языка Python). Нужна версия из бранча 2.7 https://www.python.org/downloads/ . С более свежей, 3-й веткой, работать, скорее всего, не будет.
Установка Python

Установка Python

При установке Python, стоит установить галочку, чтобы исполняемые файлы прописались в путь поиска. Иначе сию операцию придется делать вручную. А мало кто помнит, как это делается.

4. Устанавливаем драйвер http://www.wemos.cc/downloads/

Установка драйвера для плат WeMos

Установка драйвера для плат WeMos

Я не пробовал запускать плату без драйвера для обновления OTA. Без драйвера, но с установленными описаниями Arduino IDE видит плату и может загружать в плату новые прошивки. Возможно, что драйвер нужен как раз для беспроводного обновления.

5. Устанавливаем утилиты для компиляции исходных кодов для EPS8266 и описания платы для Arduino IDE. Важно установить все это в нужную директорию. Установка осуществляется путем вызова git clone https://github.com/esp8266/Arduino.git esp8266 в созданной директории esp8266com. Если git у вас не запускается их командной строки, то стоит проверить переменную path и попробовать перезайти в терминал.

Загруженные библиотеки, утилиты и описание для платы WeMos в директорию установки Arduino IDE

Загруженные библиотеки, утилиты и описание для платы WeMos в директорию установки Arduino IDE

Правильный путь установки в директорию туда, куда установлена Arduino IDE. Например, C:\Program Files (x86)\Arduino\hardware\esp8266com\.

Загрузка необходимых компонентов при помощи скрипта Python

Загрузка необходимых компонентов при помощи скрипта Python

Переходим в созданную поддиректорию tools. И в этой директории запускаем python get.py и все необходимые компоненты автоматически скачиваются в директорию esp8266.

6. Скачиваем примеры с сервера GitHub командой git clone https://github.com/wemos/D1_mini_Examples.git

Загрузка примеров с GitHub

Загрузка примеров с GitHub

Директорию для закачки примеров необходимо выбирать ту, где сами примеры и располагаются на вашем ПК. В моем случае, это оказалась директория в папке OneDrive.

7. После установки примеров перезаходим в Arduino IDE или просто его запускаем, открываем любой из примеров для WeMos, например, Hello World, выбираем требуемые параметры настройки платы через меню Tools Arduino IDE. Здесь выбираем плату WeMos D1 и запускаем его на исполнение.

Проверка работоспособности платы простейшим скетчем

Проверка работоспособности платы простейшим скетчем Fade

Прошу обратить внимание на то, что WeMos D1 R2 хоть и Arduino совместимая плата, но ожидать, что на ней будут нормально работать любые скетчи от Arduino не стоит. Как минимум впаянный светодиод тут привязан к совсем другому пину, нежели на платах Arduino, например, на Arduino UNO R3.

Вывод в SerialPort с WeMos D1 R2

Вывод в SerialPort с WeMos D1 R2

Еще одна особенность при работе с D1 и другими платами от WeMos, а скорее всего от всех реализованных на ESP8266 — вывод в терминал может осуществляться с мусором либо постоянно, либо при начале отображения. Иногда все начинает работать само по себе, иногда требуется поиграть со скоростями последовательного порта (в окне терминала и в скетче), дабы подобрать скорость, которая будет работать именно у вас.

Собственно, на этом настойка подключения WeMos платы к Arduino IDE завершена. Если что-то не работает или работает как-то не так, необходимо попробовать пройти все шаги еще раз, внимательно относясь к каждому из них.

Обновления Over The Air (OTA) для WeMos D1 R2

А теперь подбираемся к самому интересному. К тому, как обновлять прошивку у устройства по воздуху используя соединение Wi-Fi. Итак, у нас есть рабочая Arduino IDE с возможностью использования плат WeMos и чипов ESP8266.

В обновлении по воздуху нет ничего сверхъестественного. В модуль загружается скетч, который подключается к Wi-Fi сети и в цикле loop, при помощи функции, слушает на определенном порту сигналы от удаленного загрузчика. Как только поступает требуемый сигнал, то в память устройства закачивается свежая прошивка, которая и загружается после рестарта. Важно запомнить, что новая прошивка должна содержать тот же самый код по загрузке посредством OTA, что и в оригинальной, со всеми паролями, именами сетей и т.п., иначе устройство просто не сможет загрузить следующую прошивку по воздуху и придется подключить его к компьютеру кабелем.

Готовность платы WeMos D1 R2 к загрузке новой прошивки через Wi-Fi

Готовность платы WeMos D1 R2 к загрузке новой прошивки через Wi-Fi (выбираем сетевой порт)

Для того чтобы настроить загрузку прошивок OTA, необходимо открыть скетч BasicOTA из примеров для Arduino от WeMos. Затем настроить параметры для подключения к сети Wi-Fi, а именно имя сети и пароль доступа. Далее, загружаем скетч в устройство, отключаем его от компьютера и подключаем к внешнему источнику питания. После того как устройство с прошивкой загрузится и подключится к вашей Wi-Fi сети, то оно появится в виде сетевого устройства в меню выбора портов для взаимодействия с устройством. Дополнительно можно настроить такие параметры, как пароль доступа к устройству для обновления, номер порта и прочее.

Ну и собственно все. В дальнейшем можно встроить функциональность OTA в ваш код или же нарастить свой код используя BasicOTA как материнский контейнер. Обновление по воздуху будет работать в том случае, если будет вызываться соответствующий метод ArduinoOTA в цикле loop. Если ваша прошивка слишком сложная, содержит длительные циклы или занята какими-то сложными расчетами, то есть риск того, что обновление не будет подхватываться с первого раза. Поэтому стоит соблюдать баланс интересов в вашей прошивке.

  • О вай-фай "МК"  ESP8266 и WeMos

Похожие статьи

Обмен данными между двумя Arduino при помощи программного UART

Обмен данными между двумя Arduino при помощи программного UART

Коммуникация по последовательному порту, по умному называемая как универсальный асинхронный прием / передача (UART), как правило, используется для программирования и отладки Arduino через порт USB. Существуют разные датчики и приборы, которые используют UART как метод основной связи, и иногда нам нужно объединять два и больше Arduino между собой для обмена информацией.

Обзор плат ардуино \ Arduino

Обзор плат ардуино \ Arduino

Оригинальный Arduino был разработан для одной специфической задачи, и справился с этой задачей в совершенстве. С успехом первой оригинальной платы Arduino, компания решила создать больше проектов, некоторые из них для очень специфических задач. Кроме того, поскольку оригинальный дизайн Arduino был под открытой лицензией, несколько компаний и частных лиц разработали свои собственные Arduino совместимые платы расширений, или следуя принципам открытого исходного кода, предложили свои изменения в Arduino. Arduino начал программу сертификации для обеспечения совместимости с бордами, которые используют различные процессоры, и Intel Galileo был первым, кто получил подобный сертификат. Любой может сделать свой собственный Arduino-совместимый прибор, но наименование и логотип Arduino зарезервирован как торговая марка. Таким образом, вы найдете множество плат с именами, заканчивающимися на "uino", подразумевающие совместимость.

Arduino сделал дизайн платы с открытым исходным кодом, но они по-прежнему производят платы самостоятельно. Эти платы известны как официальные. Другие компании также делают Arduino совместимые платы.

Обзор плат ардуино часть 2

Обзор плат ардуино часть 2

LilyPad Arduino

LilyPad Arduino - довольно интересное устройство. Оно выпадает из привычных стереотипов об обычном Arduino, потому что имеет не прямоугольную, а круглую форму. Во-вторых, оно не поддерживает механические соединения с шилдами. Оно предназначено для, небольших автономных устройство. Круглая форма продиктовала то, что разъемы равномерно распределены по окружности, и его небольшой размер (2 дюйма в диаметре) делает его идеальным для переносных устройств. Это устройство легко спрятать, и несколько производителей разработали устройства, специально для LilyPad: экраны, датчики света, даже коробки для батарей питания, которые могут быть зашиты в ткань. Для того, чтобы сделать LilyPad как можно меньше и как можно легче, на сколько возможно, были принесены некоторые жертвы. У LilyPad нет регулятора напряжения на борту, так что ему для питания будет необходимо обеспечить по крайней мере 2,7 вольт, и не более 5,5 вольт; в противном случае, будет пшик.

Теги: О вай-фай "МК" ESP8266 и WeMos