基于嵌入式 linux 的 Web 应用程序设计

阿尔达30

我在一家照明自动化公司工作,我们将设计和开发一个产品,该产品将实现 Yocto/Buildroot 嵌入式 linux 操作系统。我们将在产品内部使用 Linux SoM,该 SoM 的规格为~:

  • 1.2/1.5GHz 主控板
  • 128/256MB 内存
  • 4/8/16GB eMMC/SD
  • 各种外设UART、SPI...

此时,Linux 端必须实现一个基于 Web 的应用程序,该应用程序可以监控和控制灯具等。通常,项目旨在使用运行在设备上的 Web 应用程序来控制建筑物/家庭的照明。前端会在页面上显示每个灯具,相关的按钮和图标帮助客户控制和监控灯具。前端可能有几个不同的页面。总的来说,每个灯具最多可以有 250 个灯具和 10 字节的数据。

我将在旁边运行一个 MCU,它执行实时操作并使用 UART 连接到 Linux SoM。实时 MCU 与灯具通信,并通过 UART 将其数据发送到 Linux,反之亦然。我猜网络应用程序应该启动一个网络服务器,以便客户端可以从他/她的 PC/智能手机浏览器连接到该应用程序。我还认为我需要一个数据库,因为设备在重新启动或断电后应该保留数据。

在这一点上,我不确定我应该做什么样的设计。我不想创建复杂的应用程序。我不想做过度工程。我们目前有 2 个嵌入式人员,2 个软件人员将很快加入我们。我是一个嵌入式 C/C++ 人,虽然我知道 Vui.js、React.js 等一般意义上的东西是如何工作的。我不确定它们在具有受限资源(如 RAM)的嵌入式 linux 上的表现如何。

我脑子里有3种不同的设计:

第一个 ->

  1. 使用高级语言在 Web 应用后端(Node.js、Flask 或 ???,如果可能)直接通过 UART 接收数据
  2. Web 应用后端(Node.js、Flask 等或 ???)要么将接收到的数据写入数据库(SQLite ??)或以适当的方式直接执行它
  3. 前端通过 REST API(Vue.js、React 或 ???)与后端通信

第二个 ->

  1. 使用普通的 C 可执行文件(循环缓冲区等)通过 UART 接收数据
  2. Web 应用后端(Node.js、Flask 或 ???)通过本地套接字从 C 文件接收数据并执行数据库操作等。
  3. 前端通过 REST API(Vue.js、React 或 ???)与后端通信

3rd -> 如果flask、vue.js 等使Linux 应用程序复杂化

  1. 使用普通的 C 可执行文件(循环缓冲区等)通过 UART 接收数据
  2. 使用 lighttpd 或类似工具启动网络服务器并使用 fast-cgi 吗?

就我从网上了解到的,根据我将使用的 SoM 的规格,Node.js Vue.js 等技术可以轻松处理,应该没有任何问题。如果是这样,即使这是一个非常普遍的问题,如何以简单而现代的方式做到这一点?

维克·佩格林斯

我认为最好的方法是第一种。通过这种方式,您可以使用模块构建所有系统,以便将来更容易更改某些内容。您将使用的所有框架都由大公司维护,因此寿命更长

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基于OpenCV的程序优化嵌入式Linux OS

Java Web应用程序中的嵌入式Derby

具有独立应用程序的嵌入式Linux

基于Web的设计模式应用程序

Django Web应用程序设计指南

具有嵌入式 Web 视图的 Teams 消息传递扩展 - Web 应用程序的结构

使用嵌入式 Tomcat 的 Web 应用程序仅适用于 IDE

在嵌入式Tomcat上从Spring-Boot Web应用程序运行Python脚本

拒绝在我的 Web 应用程序中构建嵌入式网站

使用嵌入式Jetty和jersey建立Web应用程序,并进行请求分派

嵌入式Java Web服务器隐藏应用程序界面

在嵌入式Linux设备(Beaglebone Black)上启动时启动QT应用程序

在嵌入式Linux部署中将应用程序文件放置在哪里?

在Linux的嵌入式Tomcat服务器中运行Spring Boot应用程序

Bursty写入SD / USB使我的时间紧迫的应用程序停滞在嵌入式Linux上

在嵌入式Linux启动时启动Qt应用程序

在嵌入式 Linux 上禁用 QtQuick2 应用程序的 HDMI 输出

Qt应用程序在嵌入式Linux上自动运行-“ xcb”错误

在嵌入式Linux上启动后自动在后台启动Java应用程序

如何在 iPhone 上预览 Web 应用程序设计并使其看起来像本机应用程序?

如何设置Silverlight浏览器应用程序与嵌入式Web浏览器控件之间的通信

基于buildroot的嵌入式系统上扭曲的Winform Mono应用程序

基于debian为嵌入式设备编写小型Web服务

如何在基于ARM的嵌入式Linux系统上省电?

QML模块未安装错误:在嵌入式Linux上运行Qt应用

用于嵌入式Linux手臂的交叉编译FTDI VCP驱动程序

嵌入式Linux上缺少TUN / TAP驱动程序

如何使用适用于Linux和Windows的嵌入式Firebird SQL分发Python程序

Windows上的哪个IDE和工具链可为嵌入式Arm Linux生成程序?