LVGL项目实战之UI规划

LVGL项目实战之UI规划

**

实物购买:TB 南山府嵌入式

**

我们在在做项目之前,先需要确定项目的需求以及可能实现的功能,我们只有确定这些才能够对整体的框架进行把握。

本小结就说一下我们这个项目的一个整体的框架结构以及功能。

1-硬件构成

首先我们这是一个报警主机:
在我们的开发板上主要有以下组成:

涂鸦WiFi 433接收模块 eeprom
音频播放单元 LCD 按键
串口 STM32主控 LED
程序下载口

通过上面的功能构成了我们整个报警主机系统。

这些单元主要实现以下功能:

模块单元 功能
涂鸦WiFi 作用功能:提供联网通信(对接涂鸦平台,使手机端对接联网)
433接收 作用功能:接收从设备(门磁、遥控)信号
eeprom 作用功能:存储433接收到的数据(主要包括设备码、名称、类型等)
音频播放 作用功能:模拟人声播放提示音(报警音、布放、撤防等)
LCD 作用功能:显示图形界面内容数据(人机界面交互)
按键 作用功能:页面、菜单切换等状态
主控STM32F103 作用功能:主控制单元
串口 作用功能:显示调试信息
LED灯 作为状态指示灯

总体框架图如下:
在这里插入图片描述

2-软件UI构成

在上一结我们把硬件的总体框架进行了说明。这一节我们对UI的整体框架进行说明。

本项目有两个版本:一个是不带UI库的纯裸屏(界面有点丑);一个是使用UI库的LVGL(界面好看许多)

我们这里主要对LVGL界面进行说明,非UI库的这里不在说明。同时那个也有对应的视频大家可以去看一下。这里也不再讲述涂鸦WiFi的移植,只对LVGL的实现进行讲解,后面都是一样的。

首先在实现UI之前我们要知道,我们要实现什么样的UI,怎么实现,解决这两个就行了。

在这里呢,我们这个项目就涉及到两块,一个是桌面的设计,一个是系统设置的设计。接下来我们就来说说这些。

2.1 桌面UI

首先开始的是桌面上的显示和设计。在我们这个项目中,桌面显示一些主要的信息。

我们首先想一想,我们这个项目是一个报警主机,既然是报警主机,那么要有报警主机的状态显示。同时我们也有WiFi,WiFi的连接状态也要进行显示。还有你需要判断接收到的433信号是遥控还是门磁的这么一个状态。

这些基本的有了,那么我们需不需要在显示一些其他的内容呢?比如时间?天气?等等。

当然,因为我们这个屏幕较小且内存较小无法显示更多的东西,所以我们只要显示时间就可以了。当然我只是告诉你们一种思路。

也可以显示一些其他的,比如说开机动画、厂商logo等,大家可以顺着这个思路进行。这里我并没有实现,原因呢还是内存的问题,因为这个项目的初衷就是为了让大家有一个对项目的基本了解,这个项目也是一个剪切版本。实际的功能比这稍微复杂一点。

要点:

桌面的功能就这些,那么报警有几种功能呢?这个在设计之初就已经确立。四种嘛。

所以桌面总体功能如下:

在这里插入图片描述

2.2 设置页面UI

设置里面其实也简单,根据我们开发板上面的单元。首先我们各个单元功能你要知道是干啥的。

知道这些之后才好设计。

我们有433接收单元,这个主要就是对从机进行配对的,既然是配对,那么我们是不是需要一个设备配对的菜单项。有配对,那么你添加设备要知道你添加的设备是遥控设备还是门磁设备呢?如果添加失败呢?这个你是不是要进行设计。

所有就有下面的图结构:

在这里插入图片描述

既然我们已经添加设备了,那需不需要把整个设备都给他列举出来,列出的目的是什么,首先我们能第一个想到的,就是查看设备信息,比如设备名称、设备码等。然后就是我这个设备不要了,那么久把这个设备进行删除。当然也需要编辑之类的,主要是修改设备类型(其实这个不要也行,因为我们的遥控码和我们的门磁码按键值是不一样的)。

所以就有如下图示:
在这里插入图片描述

然后我们有一个WiFi。你有WiFi的总要联网,你不可能拿着WiFi放那他自己就联网了。我们想一下,我们这个WiFi主要是做什么同时怎么去连接的,连接我们怎么去实现呢?要如何去实现。所以在这里我们的WiFi要实现联网状态的显示。

如下图所示:
在这里插入图片描述

我们在想想,你平时买手机如果弄的比较乱是不是想恢复以下出厂。对不,恢复到原厂的设置。这个实现比较简单。

还有就是主机厂商等的信息,这个要有吧,你作为一个厂家,你不希望把你的东西有你的名字。我是希望我的东西有我的名字,就像小学生,新书发下来,先把名字写上,代表这就是我们东西了。
在这里插入图片描述

3-总体软件框架

通过上面的分析呢,我们知道了我们整个UI界面框架的搭建。这样更利于大家分析。

这里提供一个整体的软件UI框架大纲:
在这里插入图片描述

相关推荐

  1. <span style='color:red;'>LVGL</span>:

    LVGL

    2024-07-22 14:14:02      23 阅读
  2. Copier:定制化项目蓝图,简单规划创新

    2024-07-22 14:14:02       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 14:14:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 14:14:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 14:14:02       45 阅读
  4. Python语言-面向对象

    2024-07-22 14:14:02       55 阅读

热门阅读

  1. Linux常用命令

    2024-07-22 14:14:02       16 阅读
  2. 软件测试-测试用例设计方法(附实际项目用例)

    2024-07-22 14:14:02       18 阅读
  3. 【图像处理】不智能的目标识别

    2024-07-22 14:14:02       20 阅读
  4. Linux基础: 五. 文本编辑器vi和vim

    2024-07-22 14:14:02       15 阅读
  5. lua 实现 函数 判断两个时间戳是否在同一天

    2024-07-22 14:14:02       17 阅读
  6. (四)js前端开发中设计模式之简单工厂模式

    2024-07-22 14:14:02       18 阅读
  7. HOW - CSS 定义颜色值

    2024-07-22 14:14:02       16 阅读