【发布时间】:2021-07-14 13:59:53
【问题描述】:
我在一家照明自动化公司工作,我们将设计和开发一个产品来实现 Yocto/Buildroot 嵌入式 linux 操作系统。 我们将在产品内部使用 Linux SoM,SoM 的规格是 ~:
- 1.2/1.5GHz 主控处理器
- 128/256MB 内存
- 4/8/16GB eMMC/SD
- 各种外设UART、SPI...
此时,Linux 端必须实现一个基于 Web 的应用程序,该应用程序可以监视和控制灯具等。通常,项目打算使用设备上运行的网络应用程序来控制建筑物/家庭的照明。前端应在页面上显示每个灯具,相关按钮和图标帮助客户控制和监控灯具。前端可能有几个不同的页面。总的来说,最多可以有 250 个发光体和每个发光体 10 字节的数据。
我将在旁边运行一个 MCU,它执行实时操作并使用 UART 连接到 Linux SoM。实时 MCU 与灯具通信,并通过 UART 将数据发送到 Linux,反之亦然。我猜网络应用程序应该启动一个网络服务器,以便客户端可以从他/她的 PC/智能手机浏览器连接到应用程序。我还认为我需要一个数据库,因为设备应该在重新启动或断电时保留数据。
此时我不确定我应该做什么样的设计。我不想创建复杂的应用程序。我不想做过度设计。我们目前有 2 名嵌入式人员,2 名软件人员将很快加入我们。我是一个嵌入式 C/C++ 人,虽然我知道 Vui.js、React.js 等一般意义上的东西是如何工作的。我不确定它们在具有受限资源(如 RAM)的嵌入式 linux 上的表现如何。
我脑子里有 3 种不同的设计:
第一个 ->
- 通过UART直接使用高层接收数据 Web 应用后端中的语言(Node.js、Flask 或 ???,如果可能)
- Web 应用后端(Node.js、Flask 等或???)要么写 将数据接收到数据库(SQLite ??)或直接在 正确的方式
- 前端通过 REST API 与后端通信 (Vue.js、React 或???)
第二个->
- 使用纯 C 可执行文件(循环缓冲区等)通过 UART 接收数据
- Web 应用后端(Node.js、Flask 或 ???)通过本地套接字从 C 文件并执行数据库操作等。
- 前端通过 REST API(Vue.js、React 或???)与后端通信
3rd -> 如果flask、vue.js 等使Linux 应用程序复杂化
- 使用纯 C 可执行文件(循环缓冲区等)通过 UART 接收数据
- 使用 lighttpd 或类似工具启动网络服务器并使用 fast-cgi ?
据我从网上了解到,以我将使用的 SoM 的规格,Node.js Vue.js 等技术可以轻松处理,应该没有问题。如果是这样,即使这是一个非常笼统的问题,如何以简单而现代的方式做到这一点?
【问题讨论】:
-
这个话题对于这个网站来说太宽泛了。但是,您应该关注产品应该做什么,而不是应该使用什么技术和工具……根据产品要求选择最合适的计算机、设计和工具。
标签: node.js linux vue.js web-applications embedded