• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Обсуждение 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), а так же энергопотребление. В каких случаях лучше применять одну платформу, в каких - другую? Уважаемые гуру, специально зарегистрировался на форуме для прояснения данного вопроса. Приветствуется объективное мнение, реальные тесты и цифры, графики и таблицы :) Может быть я плохо искал? Тогда ткните носом.

Вот здесь есть обсуждение, но нет конкретики и выводов:
http://esp8266.ru/forum/threads/podskazhite-pozhalujsta-maksimalnye-vozmozhnosti-esp8266.619
http://esp8266.ru/forum/threads/stoit-li-programmirovanie-esp8266-v-arduino-ide.691/
 

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
У меня нормально работает ESP-07 в режиме Arduino. Для АЦП использую сборку с ebay - AS1115 (300 рублей, может работать в дифф.режиме, 16 бит, внутренний программируемый усилитель, I2C ) - непрерывно работает без единого сбоя около недели.
Применение - 4 канальный контроллер температуры с функциями защиты и передачи информации через интернет на облачное хранилище. Два DI, два DO.
Цикл проверки - порядка 100 мс. Вместе с Wifi и прочим.
Есть свои особенности - надо внимательно следить за ресурсоемкими операциями, чтобы wifi часть не отваливалась и за переполнением массивов. Во всем остальном удобство ардуины - рулит.
 

Dmitry P

New member
Dmitry P, а веб-сервер есть? А настройки Wi-Fi как реализованы?
Так как контроллер для промышленного применения - настройки через встроенный переходник COM TTL -> USB и терминальные команды вида SSID=TP-LINK, PASS=Qwerty123 и тому подобное. Так проще, ведь процедура настройки выполняется один раз, а алгоритм не меняется. Веб сервер - только нагрузка лишняя.
Ну вот, без дополнительного корпуса все равно не обошлось. А доп. микроконтроллер даже дешевле получится.
АЦП ардуины тяжело сравнивать с AS1115 - и разрядность другая, и опорник на ардуину надо внешний вешать и усилителя нет.
У меня есть реализация на и такой связке Arduino Nano + ESP-01. Работает, конечно, но медленно и коряво. Основной "затык" в ESP-01 - TCP сервер в AT командах, непонятные паузы после отправки пакетов.
 

aloika

Active member
Так как контроллер для промышленного применения - настройки через встроенный переходник COM TTL -> USB и терминальные команды вида SSID=TP-LINK, PASS=Qwerty123 и тому подобное. Так проще, ведь процедура настройки выполняется один раз, а алгоритм не меняется. Веб сервер - только нагрузка лишняя.
Ну вот, а хочется с сервером.

АЦП ардуины тяжело сравнивать с AS1115 - и разрядность другая, и опорник на ардуину надо внешний вешать и усилителя нет.
Разрядность - ну да, у Atmel (8 бит которые) - 10-разрядный АЦП. Но нужны ли 16 разрядов? сколько из них реально получаются значимые с учетом шумов? Опорник не нужен, там много вариантов есть. Усилитель есть, у разных чипов разные.
 

Dmitry P

New member
Каждый инструмент хорош для определенных задач. Если для Вашей задачи достаточно 10 бит, требований к точности измерения нет и есть время на Atmel Studio - можно и Atmel с транспортом ESP.
Для моей задачи по сочетанию "простота разработки, надежность, точность, стабильность, дешевизна" выиграло решение ESP на Arduino IDE + AS1115+релейный модуль с двумя реле с E-bay.
Разумеется, это моё личное мнение, вариантов может быть масса.
 
Сверху Снизу