Меню

Esp8266 сравнение с arduino



Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Arduino-совместимый WiFi-модуль Oak – лучше, чем просто ESP8266

На сегодняшний день WiFi-модули ESP8266 являются, пожалуй, самым популярным среди радиолюбителей устройствами для организации Интернета вещей и беспроводной связи через WiFi. Эти модули очень дешевы по сравнению с аналогами, у них хорошие характеристики связи, в основе модуля лежит довольно мощный процессор с частотой 80 МГц, позволяющий использовать модуль автономно, и с ними довольно легко работать и программировать. Но разработчик по имени Эрик Кеттинбург (Erik Kettenburg) решил потеснить все популярные версии модуля ESP8266 различных китайских поставщиков, создав свой собственный.

Его модуль Digistump Oak также в своей основе использует чип ESP8266, имеет выводы GPIO и стоит не слишком дорого ($13), хотя конечно разница в цене по сравнению с обычным Wi-Fi модулем ESP8266, например, версии ESP-01 бросается в глаза. В отличие от большинства других ESP8266 данный прибор имеет больше флэш-памяти, а именно 4 МБ. У самой популярной версии ESP-01 flash-памяти всего лишь 512 КБ, и это не позволяет использовать ее в более серьезных приложениях, где необходимы объемные по коду программы. Для этого случая как раз-таки можно задействовать модуль Digistump Oak. 32-разрядный микроконтроллер с тактовой частотой 80 МГц (можно разогнать до 160 МГц) позволяет использовать модуль автономно. По сути, его устройство представляет собой полнофункциональную миниатюрную отладочную плату для ESP8266.

У Digistump Oak имеется 11 цифровых линий ввода/вывода, на 10 из которых могут генерироваться прерывания. Все 11 линий поддерживают ШИМ, но одновременно в режиме ШИМ могут работать только шесть из них. Также имеется один вывод для чтения аналоговых данных. Для мониторинга состояния батареи имеется возможность считывать значение напряжения источника питания.

Модуль Oak совместим с Arduino. Его можно программировать через Arduino IDE и задействовать различные доступные на сегодня библиотеки. Но помимо этого Oak можно программировать через облачную платформу RootCloud, которая существенно упрощает работу с модулем. Кстати, в сам модуль можно загружать прошивку не только через последовательный интерфейс, но и «по воздуху» через WiFi. А разъем USB, по словам разработчика, используется только для питания.

Проект на Kickstarter’е набрал нужную сумму, а значит недорогой WiFi модуль Oak скоро попадет на рынок. В успехе можно было и не сомневаться, поскольку Эрик Кеттинбург ранее разработал такую популярную миниатюрную Arduino-плату, как Digispark.

Источник

JavaScript для умного дома. Arduino устарел, да здравствует ESP32!

Содержание статьи

Какую плату выбрать?

Когда неофит от IoT полезет в интернет, одним из первых модулей, которые он найдет, будет ESP8266. И действительно, он обладает массой достоинств: дешевый, много различных плат на его основе, позволяющих использовать его как самостоятельное устройство и подключать к сложным Arduino-based проектам. Но ESP8266, выпущенный в 2014 году, довольно быстро перестал удовлетворять запросы пользователей, и в 2015 году компания-разработчик Espressif выпускает новый микроконтроллер — ESP32.

Различия между ESP8266 и ESP32

Точно так же, как и в случае с ESP8266, разработчики создали довольно много плат, базирующихся на новом микроконтроллере. В данной статье все примеры тестировались и проверялись на плате MH-ET LIVE ESP32 DevKit. Плата для обзора была любезно предоставлена интернет-магазином Amperkot.

Начинаем программирование

Как и у любой платы, основанной на ESP32, у MH-ET LIVE ESP32 DevKit есть достаточно большой набор языков программирования. Во-первых, это Arduino C, во-вторых, Lua, а в-третьих и в-четвертых — MicroPython и Espruino. Про Espruino — сборку JS для программирования микроконтроллеров — уже рассказывалось в ][, но в той статье разбиралась работа только на плате Espruino Pico, заточенной под Espruino.

К сожалению, портирование Espruino на ESP32 еще не до конца завершено. Часть возможностей, например обновление по воздуху и Bluetooth, недоступна. Но так как Espruino — open source проект, любой может добавить свою функциональность.

Установка

Скачиваем на официальном сайте свежую сборку Espruino. А если не доверяешь готовым сборкам, то можно собрать прошивку самостоятельно:

Несмотря на то что мы будем программировать на JS, для установки все равно нужен Python, а конкретно esptool.py . Повторяя свою предыдущую статью, скажу, что для его установки, при условии, что Python уже установлен, достаточно набрать в консоли/терминале: pip install esptool .

Запускаем процесс прошивки, не забыв изменить порт, указанный в данном примере, на свой, а также при необходимости указать другое имя прошивки. Здесь она называется espruino_esp32.bin .

Процесс прошивки

Разработчики Espruino создали свою IDE, Espruino Web IDE . Эта программа распространяется через Chrome Web Store, также существуют нативные приложения для Windows (32 и 64).

Espruino Web IDE

Перед первым запуском нужно залезть в настройки, вкладка COMMUNICATIONS, и убедиться, что скорость общения выставлена на 115200, а также изменить поле Save on Send с No на Yes, иначе все программы после перезапуска слетят.

Теперь достаточно запустить IDE, подключиться к плате и набрать в консоли 1+2 : если ты получил 3 , значит, все настроено правильно и можно начинать полноценную работу.

Hello world

Во всех языках программирования, предназначенных или модифицированных для программирования микроконтроллеров, самая простая программа — так называемый Blink , мигание встроенным светодиодом. Но это как-то скучно. Поэтому нашей первой программой станет программа для управления светодиодом с помощью веб-страницы. И действительно, JS — это же язык веба.

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

  • var wifi = require(«Wifi») — для начала мы подгрузили необходимый нам модуль для работы с Wi-Fi. Логично будет задаться вопросом: а откуда мы его взяли? Допустим, есть встроенные в прошивку модули. А если нам нужно загрузить с какого-нибудь внешнего сайта? Функция require поддерживает синтаксис вида require(«https://github.com/espruino/EspruinoDocs/blob/master/devices/PCD8544.js»); , а WebIDE для поиска модулей онлайн, по умолчанию используется https://www.espruino.com/modules .
  • Следующий блок кода отвечает за поднятие точки доступа с именем EspruinoAP и паролем 0123456789. В случае успешного запуска в консоль выводится соответствующее сообщение.
  • Функция onPageRequest — собственно сам веб-сервер. В этой функции разбирается адрес и проверяется, что нужно сделать, в зависимости от запроса:
    • если загружается первая страница — / , то вернуть 200-й заголовок и сообщение типа text/html «Hello, ][aker!», в обрамлении HTML-тегов;
    • если загружается страница включения — /on , то вернуть 200-й заголовок и сообщение Enable, а также включить светодиод. Заметим, что используется привычная Arduin’щикам функция digitalWrite(pin, value) ;
    • небольшое отличие в случае страницы выключения — /off , для выключения светодиода используется не функция digitalWrite(pin, value) , а метод write(value) ;
    • во всех остальных случаях возвращаем ошибку «404 — Page Not Found».
  • А последняя строка собственно поднимает сервер, с внутренней функцией onPageRequest , на 80-м порте.
Читайте также:  Прилагательные степени сравнения прилагательных примеры

Важно заметить, что мы можем возвращать различный контент: обычный текст, HTML, XML и так далее.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Источник

Обсуждение ESP8266 vs Arduino — сравнение, основные отличия

DarkDaemon

New member

Я сам использовал только Arduino, с ESP8266 знаком по статьям и форумам. Гуглил в рунете и на англоязычных ресурсах, но нигде не нашел какого-либо обзора или сравнения платформ ESP8266 (допустим, ESP-12) и Arduino (допустим, с ATMega328P), обе стоят около $2. Везде темы про совместное использование, но почему используют Arduino, когда ESP8266 довольно самодостаточен и имеет более быстрый процессор и больше памяти, имеет АЦП, вводы-выводы, UART, I2C, SPI и, конечно же, Wi-Fi? И хотелось бы сравнить программную среду разработки (знаю, что через Arduino IDE можно кодить и под ATMega, и под ESP8266), а так же энергопотребление. В каких случаях лучше применять одну платформу, в каких — другую? Уважаемые гуру, специально зарегистрировался на форуме для прояснения данного вопроса. Приветствуется объективное мнение, реальные тесты и цифры, графики и таблицы Может быть я плохо искал? Тогда ткните носом.

aloika

Active member

На объективность нисколько не претендую:

0. Зачем вообще Arduino? Для Atmel есть та же ее родная Atmel Studio.
1. Писать для ESP8266, используя Arduino IDE — на данный момент плохая идея. Все очень сыро там и нестабильно. Более-менее нормальный проект написать невозможно. Только что-нибудь совсем простое и нестабильно работающее. Для ESP нужно ставить UDK и за основу брать «Библиотеку малого веб-сервера» (опять же, зависит от того, что вы разрабатываете).
2. Как вариант — писать для Atmel части, работающие в реальном времени, для ESP — интерфейсные части. Если нужно просто чем-нить помигать или считать значение с датчика — достаточно будет ESP.

Например, мне надо было:
— дифференциальный АЦП — у ESP нет;
— почти в реальном времени считывать и анализировать сигнал и по результату анализа выдавать воздействие — как это сделать на ESP и совместить это всё по времени с работой Wi-Fi? Проще поставить дополнительный маленький микроконтроллер.

Dmitry P

New member

aloika

Active member

Dmitry P, а веб-сервер есть? А настройки Wi-Fi как реализованы?

Источник

iОнлайн

Не ардуино единым. Обзор альтернативных микроконтроллеров и плат для разработки

Всем доброго времени суток, дорогие друзья. Практически каждый радиолюбитель знает что такое Ардуино и с чем его едят. На сегодняшний день платформа Arduino стала таким же нарицательным именем, как в свое время стал копировальный аппарат от фирмы Ксерокс (Xerox). Все мы помним эти времена, когда нужно было что-то отксерить. Так и Arduino как учебная платформа по конструированию и обучению программированию стала именем нарицательным. Однако, стоит отметить, что не смотря на то что на платформе ардуино разработано много полезных устройств (а сколько таких еще будет…) возможности этой платформы ограничены и увы не полетом фантазии. Стоит признать, что сетевые коммуникационные возможности микроконтроллеров Atmega оставляют желать лучшего, а низкая производительность, 8ми битная платформа и малый объем памяти сильно ограничивают применение ардуино. Но конкуренты не дремлют. В этой статье я хочу предложить вашему вниманию несколько альтернативных микроконтроллеров, которые дружат с Arduino IDE и при этом обладают большими возможностями по сравнению с Arduino на базе микроконтроллеров Atmega.

STM32 (STM32F103C8T6)

Данная отладочная плата известна также под названием проект “Blue pill”. Опенсорсное решение на базе ARM процессора. Плата призвана заменить собой платформу Arduino Nano и имеет следующие характеристики:

  • Архитектура Микроконтроллера ARM Cotrex M3
  • Разрядность 32 Бит
  • Максимальная частота 72 Мгц
  • Объем памяти программ (FLASH): 64 / 128 кБайт
  • Объем памяти данных (RAM): 20 кБайт
  • Выводы: 37
  • UART: 3
  • SPI: 2
  • I2C: 2
  • CAN: 1
  • USB: 1
  • АЦП: 2 АЦП, 10 каналов, время преобразования 1 мкс
  • Напряжение питания микроконтроллера 2 … 3,6 В
  • Напряжение питания платы 5 В
  • Ток потребления до 50 мА
Читайте также:  Как сравнить два репозитория

По сравнению с основным конкурентом — Arduino Nano, характеристики более чем впечатляющие. Да и зона применения этого микроконтроллера гораздо шире. Однако без нюансов не обходится. Стоит учитывать, что напряжение питания у микроконтроллера на этой плате составляет в среднем 3,3 вольта, соответственно и логика работы микроконтроллера трехвольтовая. У Arduino Nano напряжение питания 5 Вольт и логика соответствующая.

Для тех кто не в теме. Если микроконтроллер использует 5ти вольтовую логику, то при выдаче на цифровой пин логической 1 напряжение на выводе составляет 5 вольт. У микроконтроллера с 3,3-вольтовой логикой напряжение логической 1 равно 3,3 вольта, что в определенных случаях может доставить определенные сложности. Также не стоит забывать, что далеко не все устройства с логикой 3,3В толерантны (совместимы) с логикой 5В. Напряжение в 5В, поданное на цифровой вход устройства с логикой 3,3В, может привести к поломке.

Однако, не все так печально. Разработчики предусмотрели такой вариант и ряд выходов платы сделали толерантными к 5ти вольтовой логике. Данная информация представлена на изображении ниже:

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

На китайских торговых площадках мне встречались преобразователи на 4 и 8 каналов, стоят копейки, но позволяют избавиться от головной боли :). Вот ссылка на 4х канальный преобразователь:

Устройства на базе STM32 в последние годы все больше и больше набирают популярность. На них строят как примитивные устройства, так и квадрокоптеры. А с выходом marlin 2.0 количество 3Д принтеров на подобной платформе значительно увеличится.

Свои модули STM32 (STM32F103C8T6) я заказывал вот тут:

Ну а теперь поговорим о модулях на микроконтроллерах с WIFI.

Так или иначе рано или поздно любому радиолюбителю или инженеру становится скучно и не интересно разрабатывать автономные устройства, либо обстоятельства вынуждают разрабатывать устройства взаимодействующие друг с другом или через интернет. У Адруино есть шилды, которые позволяют подружить микроконтроллер с сетью, но прогресс не стоит на месте и был разработан новый микроконтроллер уже имеющий у себя на борту интерфейс wifi. Представляю Вашему вниманию микроконтроллер ESP8266.

Основные характеристики ESP8266 следующие:

  • Тактовая частота 80 МГц с возможностью разгона до 160 МГц без гарантии стабильности работы
  • Платформа 32 Бит
  • Поддержка Wifi стандартов b/g/n
  • Количество портов GPIO 14, из них доступно 11
  • Количество аналоговых входов 1
  • АЦП 10 Бит
  • Питания от 2,6 до 3,6 В
  • Потребляемая мощность до 215 мА в режиме передачи, 100 мА в режиме приема, 70 мА в режиме ожидания.
  • Поддерживаются три режима пониженного потребления, все без сохранения соединения с точкой доступа: Modem sleep (15 мА), Light sleep (0.4 мА), Deep sleep (15 мкА)

Имеются следующие интерфейсы:

Вот основные особенности данного микроконтроллера. Как видим, есть свои достоинства и недостатки. К достоинствам можно отнести:

  • Производительная платформа
  • Наличие Wifi
  • Наличие поддержки самых востребованных интерфейсов
  • Наличие режимов низкого энергопотребления
  • Совместимость со средой Arduino IDE

К недостаткам можно отнести следующее:

  • Мало количество портов GPIO
  • Только один аналоговый вход
  • Высокое энергопотребление в режиме передачи

Однако, недостатки не такие уж и критичные и для ряда проектов просто несущественные.

За счет своей функциональности микроконтроллер ESP8266 приобрел широкую популярность в среде разработчиков устройств и модулей для умного дома и интернета вещей. О чем свидетельствует популярность модулей Sonoff, обзоры которых я делал ранее. (Обзоры модулей Sonoff). Также данные микроконтроллеры используются во всяких устройствах с Wifi на борту, таких как кондиционеры, роботы-пылесосы и т.д.

Модули на базе ESP8266

Согласитесь, что сам по себе голый чип нам мало интересен, а раз мы любим ардуино, а не сам микроконтроллер atmуga, то нам интересны готовые модули на базе чипа ESP8266. Итак приступим.

На базе данного микроконтроллера разработан ряд модулей с маркировками от ESP-01 до ESP-13. В большинстве модули похожи друг на друга. Я же коснусь в своем рассказе только тех модулей, с которыми имел дело 🙂

Итак, самый младший представитель линейки – ESP-01.

Этот модуль знаком тем, кто пытался прикрутить к своему проекту на Arduino Wifi. Забавно, что зачастую проект мог бы и без ардуино обойтись 🙂

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

Приобрести такой модуль можно по ссылкам ниже:

И там и там модули хорошего качества.

Ну а мы пойдем дальше. На очереди довольно интересный и необычный модуль ESP-07

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

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

Модуль считается не первой свежести, но в большинстве проектов не теряет своей актуальности.

Приобрести данный модуль на Али можно по ссылке ниже:

Стоит признать, что некоторые считают, модуль ESP-07 несколько устаревшим, так как ему на смену пришли модули ESP-12

Плата модуля рассчитана под пайку, либо установку на гребенку с шагом контактов 2 мм, однако из существенных отличий – наличие выводов шины SPI.

Читайте также:  Dark образуйте степени сравнения следующих прилагательных

Широкое распространение получили модули ESP-12E и ESP-12F, отличающиеся друг от друга объемом FLASH памяти.

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

Распиновка у модулей ESP-12 одинакова.

Приобрести данные модули можно по ссылке ниже:

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

Учтите, что для прошивки и заливки скетчей в модули ESP-01 … ESP-12 необходим программатор. Подробнее о программаторах вы можете почитать в статье “Программаторы для Arduino, 3Д принтеров и не только”

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

Готовые модули на базе платы ESP-12

И так, как я уже говорил ранее, выход в свет модуля ESP-12 породил целую серию различных ARDUINO совместимых плат яркими представителями среди которых стали платы Wemos и платы Nocemcu (Lolin).

Первые известны под названием Wemos D1 и по форм фактору являются совместимыми с платами на базе Arduino UNO. Однако в виду того, что такой форм-фактор мне был мало интересен за счет своих больших габаритов, меня заинтересовала разновидность Wemos D1 Mini.

Это упрощенная миниатюрная версия модуля, построенная на базе сборки ESP-01 или ESP-12. В зависимости от производителя поставляется в двух вариантах:

  • На плате распаян модуль ESP-12 с USB-TTL преобразователем, а также имеет минимальную необходимую обвязку для работы модуля
  • На плате распаяна микросхема ESP8266 с USB-TTL преобразователем и минимальной обвязкой.

Как правило, в обоих вариантах на борту имеется DC-DC преобразователь, понижающий напряжение до 3,3 вольт. Имеется возможность питания как напряжением 5 В так и напряжением 3,3 вольта.

Выглядят модули следующим образом. Ху из ху отличить проблемы не составит.

Wemos D1 Mini Robotdyn

Еще, модули могут отличаться объемом памяти и моделью микросхемы USB-TTL преобразователя.

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

Но для ряда проектов этого вполне достаточно 🙂

В качестве примера могу представить Вашему вниманию метеостанцию собранную на указанном модуле.

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

Как я уже упоминал выше, кроме Wemos D1 mini существуют модули NodeMCU или как их еще называют Lolin. Насколько я понимаю, изначально они разрабатывались для написания прошивок на Lua скриптах, однако, они прекрасно прошиваются и с помощью Arduino IDE, причем без лишних телодвижений. Т.е. хочешь пиши прошивку на LUA и заливай в микроконтроллер, хочешь на Arduino IDE. На сегодняшний день в продаже имеются модули под маркировкой NodeMCU v3. Выглядят платы следующим образом:

Как и Wemos D1 mini модули отличаются схемотехникой, объемом памяти, а также моделью микросхемы USB-TTL преобразователя. Однако, от модулей D1 NODEMCU имеют полный набор GPIO выводов с разведенной SPI шиной и как следствие – плата у NodMCU значительно больше (этак раза в два).

В остальном, по функционалу модули ни чем не отличаются.

Выводы делайте сами 🙂

Ну а купить такие платы можно по следующим ссылкам:

Ну и как Вишенка на торте, пара слов о гораздо более мощном 32х битном двухъядерном микроконтроллере, который называется ESP-32.

Ну а теперь давайте поговорим о характеристиках данных модулей.

  • Процессор Tensilica Xtensa LX6 двухъядерный (или одноядерный) 32-разрядный процессор, с тактовой частотой 160 или 240 МГц и производительностью до 600 DMIPS (Dhrystone MIPS)
  • Сопроцессор с ультранизким энергопотреблением
  • Память: 520 КБ памяти SRAM, до 64 мб FLASH памяти
  • Wi-Fi: 802.11 b / g / N
  • Bluetooth: v4.2 BR/EDR and BLE
  • 12-разрядный АЦП до 18 каналов
  • 2 × 8 бит ЦАПа
  • 10 × портов для подключения емкостных датчиков (измеряющие ёмкость GPIO)
  • Датчик температуры[источник не указан 282 дня]
  • 4 × SPI мастер-интерфейса (ведущие устройства)
  • 2 × I²S мастер-интерфейса
  • 2 × I²C мастер-интерфейса
  • 3 × UART интерфейса
  • SD/SDIO/CE-ATA/MMC/ eMMC хост-контроллер
  • SDIO/SPI слейв-контроллеры (ведомые устройства)
  • Ethernet MAC interface с выделенным DMA и IEEE 1588 Precision Time Protocol support
  • CAN bus 2.0
  • ИК дистанционное управление (передатчик/приемник, до 8 каналов)
  • Возможность подключения двигателей и светодиодов через ШИМ-выход
  • Датчик Холла
  • Аналоговый пред усилитель низкого энергопотребления

Таким образом, пользователю доступно до 34 GPIO портов различного назначения. В купе с кучей плюшек и специфических портов, а также наличием большого набора различных интерфейсов, модуль обладает большим потенциалом для практического применения.

Уже сейчас на базе ESP-32 китайцы предлагают огромный набор готовых модулей различных компоновок. Тут и модули с возможностью подключения различных аккумуляторов, модулей с экранами, модулей с LORA, да и много еще с чем. Перечисленные модули я видел в продаже. Вообщем, кому интересно, можете посмотреть вот тут.

Базовые модули можно приобрести вот тут:

Модули ESP-32 без обвязки:

Готовые платы с модулем ESP-32

Вот такие вот современные замены ардуино существуют в мире. Возможно, есть и другие варианты на других микроконтроллерах. Я описал те, о которых знал и которые покупал сам. Ссылки опубликованы на проверенных продавцов. Буду рад, если статья оказалась вам интересной. Инженерных и творческих успехов 🙂

Источник