Обзор HMI-дисплеев Open Nextion на базе ESP32-S3 с Arduino IDE и ESP-IDF

ITEAD предоставил образцы HMI-дисплеев Open Nextion ONX3248G035 и ONX2432G028 на базе ESP32-S3 для обзора. Open Nextion — это новая линейка продуктов, которая отличается от оригинального семейства Nextion HMI , полагающегося на Nextion Editor для проектирования интерфейса и UART-коммуникацию для управления. Вместо этого, Open Nextion оснащены беспроводным микроконтроллером ESP32-S3, который обрабатывает логику, управляет дисплеем и обеспечивает беспроводную связь, всё в одном интегрированном корпусе.

ITEAD полностью поддерживает фреймворк ESP-IDF и Arduino IDE с поддержкой графической библиотеки LVGL. Модель ONX3248G035 оснащена 3.5-дюймовым экраном, а вариант ONX2432G028 имеет 2.8-дюймовый экран. Беспроводные HMI-дисплеи Open Nextion также поддерживают аксессуары, такие как массив из двух микрофонов, динамик и адаптер ввода-вывода.

Новая линейка продуктов Open Nextion особенно хорошо подходит для embedded-разработчиков и энтузиастов, которые хотят получить универсальную плату с HMI и беспроводными возможностями, для прототипирования IoT-терминалов и умных HMI-панелей, для студентов, интересующихся изучением LVGL и ESP32-S3, а также для промышленных применений, требующих беспроводного дисплея и датчиков.

Распаковка комплектов HMI-дисплеев Open Nextion

open nextion 01

ITEAD предоставил два дисплея и аксессуары. Сначала рассмотрим упаковки плат ONX3248G035 (3.5 дюйма) и ONX2432G028 (2.8 дюйма).

open nextion compare 01

Оба комплекта поставляются с кабелем USB-C, а платы, хотя и очень похожи, имеют несколько небольших отличий.

open nextion compare 02

Плата Nextion Dual MIC представляет собой массив из двух PDM-микрофонов для голосового ввода .

open nextion 02

Динамик Nextion BOX обеспечивает аудиовыход.

open nextion 04

Адаптер Nextion IO Adapter V2 выводит 20-пиновый GPIO-разъём с шагом 2.54 мм и подключается к HMI-плате через FPC-коннектор.

open nextion 03

Характеристики Open Nextion ONX2432G028 и ONX3248G035

Features ONX2432G028 (2.8″) ONX3248G035 (3.5″)
Display size 2.8″ 3.5″
Resolution 240×320 320×480
Number of colors 262K 262K
Brightness 300 nits 300 nits
Touchscreen type CTP (Capacitive) CTP (Capacitive)
Touch driver CST826 CST826
Panel driver ST7789 ST7796
MCU ESP32-S3R8 ESP32-S3R8
CPU Speed Up to 240 MHz Up to 240 MHz
Flash 16 MB 16 MB
PSRAM 8 MB 8 MB
ROM / SRAM 384 KB / 512 KB 384 KB / 512 KB
MicroSD slot Yes Yes
Wireless 2.4 GHz Wi-Fi + BT 5 (LE) 2.4 GHz Wi-Fi + BT 5 (LE)
USB Interface CH340K USB-to-UART (no USB OTG) CH340K USB-to-UART (no USB OTG)
Power Input DC 5V 1A (USB-C) DC 5V 1A (USB-C)
Battery Li-ion 3.7V + RTC 3V Li-ion 3.7V + RTC 3V
Temp. Range -20~70°C -20°C~70°C

В целом, характеристики практически идентичны, основное различие заключается в размере и разрешении экрана.

Дизайн и компоновка платы

Платы ONX2432G028 (2.8″) и ONX3248G035 (3.5″) отличаются удобной компоновкой и дизайном. Два особенно интересных момента — наличие микросхемы часов реального времени BLX8563-PARC, которую редко можно увидеть на других платах, а также микросхемы усилителя класса D NS4168, обеспечивающей выходную мощность до 2.5 Вт. Интерфейсы для ONX3248G035 описаны ниже. ONX2432G028 аналогична, за исключением того, что FPC-кабель дисплея и слот для карты microSD находятся на другой стороне PCB.

Open nextion pinout

Список портов и возможностей:

  • USB-C для питания и программирования
  • Кнопки BOOT и RESET
  • Переключатель ON/OFF
  • 4-пиновый коннектор UART0
  • Grove-коннекторы I2C и UART1
  • 4-пиновый FPC-коннектор для массива микрофонов
  • 14-пиновый GPIO FPC-коннектор
  • 24-пиновый коннектор для камеры (не используется в этом обзоре)
  • Слот для карты microSD
  • 2-пиновый коннектор для динамика
  • 2-пиновый коннектор для аккумулятора
  • 2-пиновый коннектор для батарейки RTC
  • IPEX-1 антенный коннектор для увеличения дальности Wi-Fi; примечание: пользователю также необходимо удалить резистор, чтобы переключиться на внешнюю антенну вместо PCB-антенны.

open nextion ipex 01

Сравнение Nextion HMI и Open Nextion (серия Genius)

Features Nextion HMI Open Nextion (Genius Series)
UI design Nextion Editor (drag & drop) LVGL / SquareLine Studio
MCU control Support for external MCU boards (Arduino, STM32, ESP32, etc.) Build-in ESP32-S3
Wireless N/A (except Intelligent Series) Built-in Wi-Fi 4 + Bluetooth 5 LE
Programming Script in Nextion Editor ESP-IDF framework, Arduino IDE
USB OTG Via external MCU No
Open Source Closed-source software Open-source ESP-IDF and LVGL
Learning Curve Low (for UI design) Medium (knowledge of ESP32 development tools needed)
Price (3.5-inch model) ~$25–35 $34.90
Suitable for Quick UI development through no code tool More flexible UI development, wireless connectivity

В заключение, линейка продуктов Nextion HMI остаётся хорошим выбором для разработчиков, которые хотят готовый инструмент для проектирования интерфейса и предпочитают не писать код для своего UI. Однако для проектов, требующих встроенной беспроводной связи, открытой экосистемы или полного контроля над всем с одной платы, Open Nextion подходит гораздо лучше, и при схожей ценовой категории.

Тестирование Open Nextion с Arduino IDE и ESP-IDF

Настройка среды разработки для Open Nextion может быть выполнена двумя основными способами, в зависимости от уровня опыта разработчика и требований. Arduino лучше всего подходит для начинающих, а фреймворк ESP-IDF предлагает большую гибкость и улучшенную производительность для опытных разработчиков.

Использование Open Nextion с Arduino IDE

Её можно настроить и использовать напрямую как плату ESP32-S3 с дисплеем ST7789. Определения пинов и пример кода следующие:

#include <LovyanGFX.hpp>

#define LCD_SCLK_PIN GPIO_NUM_5
#define LCD_MOSI_PIN GPIO_NUM_1
#define LCD_MISO_PIN GPIO_NUM_2
#define LCD_RST_PIN  GPIO_NUM_NC
#define LCD_DC_PIN   GPIO_NUM_3
#define LCD_CS_PIN   LCD_MISO_PIN
#define LCD_BL_PIN   GPIO_NUM_6

class LGFX : public lgfx::LGFX_Device {
  lgfx::Panel_ST7789  _panel_instance;
  lgfx::Bus_SPI       _bus_instance;
  lgfx::Light_PWM     _light_instance;

public:
  LGFX(void) {
    {
      auto cfg = _bus_instance.config();
      cfg.spi_host    = SPI2_HOST;
      cfg.spi_mode    = 0;
      cfg.freq_write  = 40000000;
      cfg.freq_read   = 16000000;
      cfg.spi_3wire   = false;
      cfg.use_lock    = true;
      cfg.dma_channel = SPI_DMA_CH_AUTO;
      cfg.pin_sclk    = LCD_SCLK_PIN;
      cfg.pin_mosi    = LCD_MOSI_PIN;
      cfg.pin_miso    = LCD_MISO_PIN;
      cfg.pin_dc      = LCD_DC_PIN;
      _bus_instance.config(cfg);
      _panel_instance.setBus(&_bus_instance);
    }
    {
      auto cfg = _panel_instance.config();
      cfg.pin_cs           = LCD_CS_PIN;
      cfg.pin_rst          = LCD_RST_PIN;
      cfg.pin_busy         = GPIO_NUM_NC;
      cfg.panel_width      = 320;
      cfg.panel_height     = 480;
      cfg.offset_x         = 0;
      cfg.offset_y         = 0;
      cfg.offset_rotation  = 4;
      cfg.dummy_read_pixel = 8;
      cfg.dummy_read_bits  = 1;
      cfg.readable         = false;
      cfg.invert           = false;
      cfg.rgb_order        = false;
      cfg.dlen_16bit       = false;
      cfg.bus_shared       = false;
      _panel_instance.config(cfg);
    }
    {
      auto cfg = _light_instance.config();
      cfg.pin_bl      = LCD_BL_PIN;
      cfg.invert      = false;
      cfg.freq        = 44100;
      cfg.pwm_channel = 7;
      _light_instance.config(cfg);
      _panel_instance.setLight(&_light_instance);
    }
    setPanel(&_panel_instance);
  }
};

LGFX display;

void setup() {
  Serial.begin(115200);

  display.init();
  display.setRotation(1);
  display.setBrightness(200);

  display.fillScreen(TFT_WHITE);

  display.setTextDatum(middle_center);
  display.setTextColor(TFT_BLUE, TFT_WHITE);
  display.setFont(&fonts::FreeSansBold18pt7b);
  display.drawString("Open Nextion", display.width() / 2, display.height() / 2 - 30);

  display.drawString("Arduino Version", display.width() / 2, display.height() / 2 + 30);

  Serial.println("Display OK");
}

void loop() {
}

open nextion arduino

Также можно использовать другую графическую библиотеку для Arduino, такую как LVGL.

Использование HMI-дисплеев Open Nextion с ESP-IDF (профессиональная разработка)

Для тех, кто хочет максимальной производительности или низкоуровневого контроля, можно использовать ESP-IDF через Windows PowerShell или расширение VSCode. ITEAD подготовила всего девять примеров программ для ESP-IDF, которые можно загрузить из zip-файлов для ONX3248G035 (3.5″) и ONX2432G028 (2.8″) .

После первого включения плат (перед тестированием части с Arduino), экран сразу же отображает демо виджетов LVGL. Как 3.5-дюймовая, так и 2.8-дюймовая версии нормально отображают интерфейсы, с хорошим уровнем цвета и яркости, которые чётко видны под большинством углов обзора. Ёмкостное касание реагирует хорошо, проблем не наблюдается. Однако при сравнении цветов явно заметно, что ONX2432G028 (2.8″) имеет заметно более яркие и насыщенные цвета по сравнению с 3.5-дюймовой моделью.

open nextion color compare 01

open nextion color compare 02

open nextion color compare 03

Теперь подключим один из дисплеев к Wi-Fi. Можем просканировать сети Wi-Fi 2.4 ГГц и успешно подключиться к нашему SSID примерно за 5 секунд.

open nextion wifi scan 01

Теперь протестируем ёмкостную сенсорную панель с помощью соответствующего демо. При проведении пальцем по экрану, отклик плавный. Красная точка точно следует за пальцем без заметной задержки. Однако при тестировании путём перетаскивания к краям на ONX2432G028 (2.8″), одна сторона экрана имеет краевую область, где касание у самой границы не регистрируется совсем. В отличие от этого, ONX3248G035 (3.5″) не показывает такой проблемы и регистрирует касания прямо у краёв без проблем.

open nextion CTP 01

Также можно загружать изображения с карты microSD. Они загружаются быстро, цвета выглядят точно, без искажений или цветовых сдвигов под любым углом обзора. Скорость обновления экрана и рендеринга изображений очень высокая, во время обновлений не видно подтормаживаний или разрывов.

open nextion image

Далее воспроизведём музыку, сохранённую на карте microSD, используя динамик для аудиовыхода. Качество звука не слишком плохое, в чём можно убедиться самостоятельно на видео ниже.

Наконец, протестируем запись аудио и воспроизведение через динамик. Воспроизводимое аудио чёткое, с хорошим общим качеством записи.

Заключение

Платы для разработки HMI Open Nextion ONX3248G035 и ONX2432G028 отлично подходят для embedded-разработчиков, желающих получить готовое решение «дисплей + беспроводная связь» на одной плате. Оснащённые 240-МГц микроконтроллером ESP32-S3 с 8 МБ PSRAM, 16 МБ Flash и встроенными Wi-Fi & Bluetooth 5 LE, они позволяют разрабатывать полностью автономные IoT HMI-терминалы без необходимости во внешнем MCU. Ёмкостный сенсорный экран также обеспечивает лучший пользовательский опыт по сравнению с резистивным сенсорным экраном, обычно встречающимся в HMI-платах схожей цены.

В следующей части обзора будут эксперименты с созданием полнофункционального IoT-приложения.

Достоинства

  • ESP32-S3 управляет всем на одной плате, нет необходимости во внешней плате с MCU
  • Поддерживает популярные фреймворк ESP-IDF, Arduino IDE и библиотеку LVGL
  • 8 МБ PSRAM + 16 МБ Flash готовы для сложных HMI-приложений
  • Отзывчивый ёмкостный сенсорный экран
  • Встроенные Wi-Fi + Bluetooth 5 LE для IoT-возможностей
  • Мультимедийная поддержка со слотом для карты microSD, опциональной камерой, массивом микрофонов и динамиком
  • Полный набор примеров программ и постоянно обновляемая wiki

Замечания/Недостатки

  • Отсутствует функциональность USB OTG. Хотя ESP32-S3 имеет два USB-интерфейса (USB Serial/JTAG и USB OTG), эта плата использует микросхему CH340K (USB-to-UART) вместо этого, поэтому разъём USB OTG не выведен. Проектам, требующим USB-периферии (например, USB-клавиатуры) или необходимости работать в качестве USB HID-устройства, следует рассмотреть другие платы.
  • Мультиплексирование GPIO — 24 GPIO-пина разделены между интерфейсами UART1, PDM микрофона и камеры, поэтому требуется тщательное планирование использования интерфейсов. Кроме того, USB_UART и UART0 используют общие линии TXD/RXD и не могут использоваться одновременно.
  • Требует твёрдых знаний в embedded-разработке — не plug-and-play, как классический Nextion HMI.

Благодарим ITEAD за предоставление 3.5-дюймовых и 2.8-дюймовых плат Open Nextion вместе с аксессуарами для этого обзора. Их можно приобрести в официальном магазине ITEAD за $22.90 (ONX3248G035) и за $19.44 (ONX2432G028), и даже дешевле с 10% скидкой по промокоду CNXSOFTSONOFF. Отметим, что эти цены являются промо, а обычные цены составляют $34.90 и $29.90.

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments