Arduino uno R4 против платы разработчика ESP32

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

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

  • могу ли я загрузить исходный файл вместе с изображениями и html-файлами в новый uno, как я это сделал с ESP32 (поскольку, насколько я понимаю, вы не могли сделать это в предыдущих версиях uno)?
  • Могу ли я использовать контакты ESP32 GPIO Uno R4 вместе с теми, которые уже есть в Uno?
  • есть ли какое-либо реальное преимущество uno R4 перед платой разработчика ESP32 для описанного мной приложения? Заранее спасибо и извините, если вопрос некорректен, я не совсем разбираюсь в некоторых аппаратных концепциях!

, 👍1

Обсуждение

Прежде всего, Uno R4 имеет микроконтроллер с напряжением 5 В, а esp32 — процессор с напряжением 3,3 В. Uno R4 WiFi имеет esp32-s3 в качестве второго MCU, но только как адаптер WiFi с прошивкой AT. (У Uno R4 Minima нет Wi-Fi.), @Juraj


1 ответ


1

Я еще не тестировал UNO R4, поэтому все полностью основано на технической документации.

Для безупречного веб-интерфейса вам понадобится место для сохранения всех данных. Помните, что вам также нужно немного места для кода, поэтому эти цифры являются верхней границей, а свободного места для HTML, CSS и изображений значительно меньше.

  • Стандартная плата разработчика ESP32: обычно флэш-ПЗУ объемом 4 МБ (но может быть 8 или 16).
  • UNO R4: 256 КБ флэш-ПЗУ на основном чипе, 384 КБ ПЗУ на ESP32-S3-Mini-1-N8, который используется для Wi-Fi.

Это говорит о том, что у вас гораздо больше места на ESP32 DevBoard, что делает его более перспективным.

Еще один момент, который может представлять интерес, — это прерывания. Wi-Fi не любит, когда его блокируют обработчики прерываний, поэтому, если ваш код использует прерывания, вам может понравиться несколько ядер: таким образом, ваш код не будет мешать передаче веб-сайта.

  • У ESP32 два ядра, но вам, возможно, придется следить за тем, какие потоки на каких ядрах выполняются. (Иногда у меня возникают проблемы с критичными по времени приложениями, например с обновлением ряда светодиодов WS2812b при загрузке веб-сайта управления.)
  • У UNO R4 совершенно отдельные чипы для вашего скетча и стека WiFi, но чтобы полностью запустить веб-интерфейс с его ESP32-S3-Mini-1-N8, я предполагаю, что вам придется его перепрошить на свой скетч. Вероятно, это (опять же, я интерполирую данные из таблиц) означает, что вы запрограммировали UNO R4 так, как если бы на нем было два совершенно отдельных чипа; и вам придется самостоятельно создать протокол связи.

Для ваших нужд это звучит так, как будто вам лучше использовать ESP32 DevBoards; может быть, два, если вы столкнетесь с той же проблемой, что и я.

Теперь, чтобы напрямую ответить на ваши вопросы:

  • Для подачи файлов через веб-сервер из Arduino UNO R4 я особо не нашел. Предположительно файловая система LittleFS работает на Arduino UNO; и «просто обслуживаю файлы»; на ESP8266/ESP32 требуется, чтобы они находились в SPIFFS или LittleFS (насколько мне известно). Возможно, поддержка библиотеки для этого варианта использования улучшится с выпуском UNO R4, но на данный момент, похоже, ESP32 — ваш лучший выбор.
  • Возможно, вы сможете использовать GPIO ESP на UNO R4, но я предполагаю, что вам придется предоставить свой собственный скетч/прошивку для ESP. Кроме того, имейте в виду, что сам UNO имеет GPIO 5 В, а ESP — GPIO 3,3 В и вы не должны смешивать эти напряжения.
  • Единственное преимущество UNO R4 перед ESP32, которое я вижу для вас: GPIO имеют напряжение 5 В, и вы можете запускать плату от 7–24 В или USB. Это делает плату более совместимой со многими модулями, продаваемыми «для Arduino».

В конце концов, я бы, вероятно, выбрал ESP32 и спроектировал всю периферию на 3,3 В или с переключателями уровня; и добавьте второй ESP32, если вы столкнетесь с проблемой, когда веб-интерфейс мешает вашей основной работе.

,