reTerminal E 系列电子纸显示屏搭配 SquareLine Vision 使用

介绍
当你想要打造自己的智能终端时,一定希望这台设备拥有一个美观优雅的用户界面。 LVGL 可以实现这一点。它是目前最流行的免费开源嵌入式图形库,可为任意 MCU、MPU 和显示类型创建精美的 UI。借助该库,你可以创建大量漂亮的嵌入式用户界面。尤其是在使用我们的 reTerminal E 系列电子纸产品时,一个吸引人的界面是不可或缺的组成部分。然而,编写 LVGL 库代码本身也是一项非常复杂的工作。因此,本教程主要介绍一款编辑器,它允许你通过拖拽控件的方式简单地绘制 UI。所见即所得(WYSIWYG,What You See Is What You Get)的创作方式可以更好地把握最终呈现效果,并且在绘制完 UI 后,你可以将其导出为 LVGL 的 UI 文件,从而大大简化开发者的开发流程。这款工具的名称是 SquareLine Vision,是一款面向 LVGL 的可视化前端工具。
SquareLine Vision 是一个基于浏览器(Web)或 Web 兼容环境的 UI 开发环境,专注于为嵌入式系统(如带屏幕的设备)快速设计用户界面(UI)。 它同时也是一款设计 + 导出代码工具:你在平台上完成界面设计,然后即可将设计导出为在嵌入式设备上运行的代码或资源。
SquareLine Vision 的特性
- 可视化 UI 设计 – 通过拖拽式编辑器直观地设计美观、交互式界面,无需手动编写 LVGL 代码。
- 快速嵌入式原型开发 – 可在桌面或目标硬件上即时预览和验证 UI,大幅缩短从设计到设备的迭代时间。
- 基于 LVGL 的导出 – 将你的设计无缝导出为干净的、基于 LVGL 的源代码,可直接在嵌入式设备、微控制器或仿真环境中编译运行。
借助 SquareLine Vision,你可以在几分钟内从概念走到可交互的嵌入式 UI 原型——将设计灵活性、实时预览以及可量产的 LVGL 输出结合起来,加速整个产品开发周期。
所需材料
要完成本教程,请准备以下 reTerminal E 系列设备之一,E1001 为黑白屏,E1002 为全彩屏:
SquareLine Vision 入门

组件介绍
整个 SquareLine Vision 平台可以分为两部分:Launcher 和 应用界面(Application Interface)。 在 Launcher 界面上,我们可以看到以下三个主要功能:
- 项目管理
- 处理导入
- 控制账户设置
当你开始绘制 UI 时,你将会接触到五个工具:
- 层级系统
- 屏幕管理
- 样式选项
- 各种组件类型
- 如何利用事件、触发器和动作
当你对平台的整体组织结构和工具有清晰的理解后,将对你制作个人项目非常有帮助。接下来,我将基于我们的 reTerminal E1002 创建一个项目。
创建项目
启动一个新的 LVGL 项目
在 SquareLine Vision Launcher 界面的顶部,点击 Create new 按钮。然后选择 Seeed Studio 来查看我们的产品。选择 reTerminal E1002 来创建一个项目。
该项目的固定设置为:
Resolution: 800x480Offset: 0(x), 0(y)Rotation: 0°Shape: RectangleColor Depth: 32 bitLVGL version: 9.1Theme: Light

我们已经支持 SenseCAP Watcher 以及 reTerminal E1001 和 E1002 设备。未来,我们还将支持 Seeed Studio 的更多产品。
导入已有的 .slvp 项目
如果你已经有一个 .slvp 文件,可以直接将其导入为项目。我们提供了两个与天气相关的仪表盘,你可以在下方直接下载。

项目参数设置与 UI 界面设计
进入工程界面后,你可以看到四个主要区域:
- 区域 1 为 Hierarchy,主要用于管理 UI 元素的结构。
- 区域 2 为 Simulator,用于显示 UI,并查看各个 UI 的呈现效果。
- 区域 3 为 Inspector,为当前选中的元素提供详细的控制选项。
- 区域 4 为 Toolbar,位于应用界面的顶部,可方便地访问许多工具和功能。

UI 界面设计
UI(用户界面)设计在嵌入式产品开发中至关重要,它直接决定了用户体验。一个美观、直观且响应迅速的界面,不仅能提升产品的易用性,还能增强整体吸引力。
在 SquareLine Vision 中,你可以通过拖拽组件快速搭建界面。利用 Styles、Fonts、Bitmaps 和 Themes 等工具精细控制视觉效果,打造专业且独特的用户体验。
本教程只涵盖本项目中出现的控件。然而,SquareLine Vision 还提供了许多其他功能,例如动画、事件以及不同的字体。如果你想进一步探索这款工具,请参考官方教程。
Hierarchy 介绍
在这里,你可以将组件相互嵌套,创建父子关系,其中容器组件成为父组件,而其中的元素则成为子组件。可以看出,这张图片是由各种容器、图像和文本组成的。这三种控件都可以在工具栏中找到。

Inspector 简介
此面板允许你查看和修改屏幕、容器、小部件以及其他 UI 元素的属性。此外,不同类型的小部件还可能有各自的特殊设置。当我选择“background img”时,我可以在 Inspector 中看到与该 img 相关的所有组件。

Toolbar 简介
Toolbar 包含项目配置、保存项目、访问帮助、报告问题、修改项目视图、下载项目代码以及在 SquareLine Vision 中直接以播放模式启动项目等选项。
- Menu:在这里,你可以访问保存工作、导出项目、调整项目设置以及返回启动器界面的功能。
- Project name:显示当前项目的名称。
- Plan:显示用户当前的订阅计划。
- Editor / Animation mode:在两种不同的工作环境之间切换。
- Widgets:通过三个下拉菜单访问 UI 元素,这些菜单按逻辑对组件进行分组,便于你为项目快速找到合适的小部件。
- Undo / Redo:允许在设计更改中向后和向前回退,支持无风险的试验。
- Play mode:启动预览并测试 UI 模拟。
- Send bug report:提供直接访问错误报告系统的入口。
- User(s):显示当前在你的项目中活动的所有用户,以支持协同设计。
- View options:你可以切换小地图显示,并在专用输入框中输入精确的缩放百分比。
- Version:显示你的项目当前运行的 SquareLine Vision 版本,确保你了解自己的软件环境。

代码生成与项目结构
SquareLine Vision 导出器会生成基于 LVGL 的 GUI 代码,并以结构化的方式进行组织,以实现关注点分离并提高代码的可维护性。导出的代码遵循模块化架构,在 GUI 初始化、屏幕管理、事件、样式和动画之间有清晰的分离。
项目结构
exported_project/
├── GUI/ # Main GUI folder (or 'ui' for Studio format)
│ ├── Content/ # GUI content files
│ │ ├── screens/ # Individual screen source files
│ │ ├── images/ # Generated image source files
│ │ └── fonts/ # Font source files
│ ├── Behavior/ # Event and animation related files
│ │ ├── GUI_Events.c # Event handler implementations
│ │ └── GUI_Animations.c # Animation and timeline definitions
│ ├── Framework/ # GUI framework files
│ │ └── LVGL/ # LVGL library files
│ ├── GUI.c # Main GUI implementation
│ ├── GUI.h # Main GUI header
│ ├── GUI_variables.c # GUI object declarations
│ ├── GUI_GlobalStyles.c # Global style definitions
│ ├── CMakeLists.txt # CMake build configuration
│ └── filelist.txt # List of all GUI source files
├── lv_conf.h # LVGL configuration file
├── main.c # Application entry point
├── HAL.c # Hardware abstraction layer
├── CMakeLists.txt # Main CMake configuration
├── build.sh # Build script
└── run.sh # Run script
关键组件
GUI 子系统的主接口。提供以下高级功能:
GUI_load(): Complete GUI initialization including HAL and LVGLGUI_init(): Basic GUI initializationGUI_refresh(): Updates GUI state (calls LVGL handlerGUI_initContent(): Initializes screens and widgetsGUI_initTheme(): Sets up the GUI themeGUI_loadFirstScreen(): Loads the initial screen
程序烧录
E1002 的主控模块是 ESP32-S3。如果你想使用 PlatformIO 为 reTerminal E 系列电子纸显示屏进行编程,你需要在 .ini 文件中设置支持 ESP32 的选项。
如果这是你第一次使用 PlatformIO,我们强烈建议你参考Getting Started with PlatformIO。
使用示例
PlatformIO 设置
- Step 1:在官网下载并安装 PlatformIO。如果你还没有安装 PlatformIO 软件,可以点击上方链接进行下载。

-
Step 2:在 VScode 的扩展中搜索
platformio。第一个出现的图标就是你需要的。只需点击Install即可开始下载。
-
Step 3:依次打开 PlatformIO 插件。然后点击
Open按钮,通过点击Open Project选择本地的 PlatformIO 项目并将其打开。
参考示例
我们提供了三个现成的模板,每个模板都有不同的 UI 界面,可以显示实时天气仪表盘。它们还集成了 OpenWeather(这是一个提供全球天气数据的服务平台),用于获取实时气候变化。你只需要从 OpenWeather 获取 API KEY,并连接 WIFI 即可正常使用它们。
-
Step 1:在 VScode 中打开该文件夹,并等待相关依赖全部下载完成。打开项目后,打开
.ini文件并按下Ctrl+S。此时,项目的依赖会自动开始下载。当你看到Project has been successfully updated时,表示下载过程已经完成。当出现successful这个单词时,就说明安装已经成功完成。
-
Step 2:打开 OpenWeather 并获取你自己的 API KEY


-
Step 3:在
main.cpp中修改你的WIFI_SSID、WIFI_PASSWORD和OW_API_KEY。
-
Step 4:使用 USB 数据线将 reTerminal 连接到电脑,并选择合适的串口进行烧录。然后点击
upload按钮执行烧录过程。
当终端出现如下内容时,表示烧录过程已经成功。随后,reTerminal 会自动更新屏幕图像。

结果展示
| 单色天气 | 全彩天气 | 全彩天气 2 |
|---|---|---|
![]() | ![]() | ![]() |
技术支持与产品讨论
感谢您选择我们的产品!我们将为您提供多种支持,确保您在使用我们产品的过程中尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。






