好吧,正如标题所说,我需要一些关于我正在开发的新项目的建议。
我正在为我们公司构建一个新产品,它将使用树莓派嵌入到我们的产品中。我已经使用 python/flask/html/css 环境为树莓派编写了一个工作应用程序,我正在考虑编写一个用户可以安装在 pc 或手机上的命令/控制应用程序。
概述我拥有/正在构建/尝试构建的内容。
我正在构建一个带有触摸屏的信息亭控制设备,它控制 16 个继电器,这些继电器连接到 8 个 LED 设备。
控制设备 pi/app 具有允许停止/启动功能的计时器。它还具有设置各个继电器的控件,以实现所需的 LED 设置。程序最初加载继电器以在“关闭”状态下显示 LED。当点击定时器时,继电器启动到所需的 LED 设置。当计时器结束时,LED 将返回“OFF”状态。
我目前可以使用烧瓶网络应用程序来控制继电器的状态并存储变量,例如当前时间、定时器运行/停止状态以及每个 LED 设备的设置。
我可以通过从网络上的另一台计算机加载 pi 的 IP 地址来远程控制设备并读取其当前状态。但是,如果我在计算机上按开始/停止,启动/停止功能不会停止设备上的计时器,因为计时器被编码为在 javascript 中工作。我不能简单地每隔一段时间刷新页面,因为它很笨重而且效果不好。(试图通过 API 调用解决这个问题)
我正在尝试从计算机和/或 Web 界面创建一个控制应用程序,该应用程序将查看网络上的设备数量/已连接到互联网的设备数量。它能够查看这些设备的当前状态并控制这些设备,并提醒服务员计时器运行时间不足。
我还希望能够从世界任何地方控制这些设备/跟踪它们的使用情况并更新它们托管的应用程序。
如果未连接到互联网,单个控制设备仍需要按照当前编码的方式运行。
我将将此设备与来自第三方网络应用程序的 API 集成,以便在安排客户进行会话时为 LED 设备设置当前的“首选设置”。
我知道我可以使用 API 调用来实现这一点,但我不确定构建架构的最佳方式是什么,这样我最终就不必因为简单的功能无法正常工作而重新编码某些东西/所有东西。
我需要一些建议是:我应该编写一个在树莓派上使用的 python 应用程序并在 PyQt 设计器中设计界面,还是应该坚持使用我当前的 html/css/js 版本?
编写更新应用程序的功能会更容易吗,或者我应该发布一个自定义发行版或软件包,通过在打开设备/打开应用程序时运行检查/更新命令来自动更新?
我应该编写一个 Web 界面来使用纯粹的 API 调用远程控制树莓派的功能(如果是这样,我应该用 HTML 或 python 应用程序对 PI 进行编程)还是应该创建一个桌面版本和 Web 界面来减少服务器/网络流量?(请注意,我们将有 1000 台这样的设备发出请求并保存计时器/计时器时间的数据/当前状态)
我目前对如何编码的思考过程如下。Raspberry PI - 程序运行时每秒钟发送一次 API 调用,定时器运行时将定时器的当前时间状态和当前 LED 设备设置发送到运行在树莓派上的服务器/应用程序,并将重复的 API 调用发送到外部服务器(我们公司的服务器)。
除此之外,我想将命令推送到树莓派以更新其状态或创建一个侦听器以每隔一秒循环一次,以检查服务器变量/数据库值的当前状态,并在更改时重新加载页面。
我将如何设置对树莓派的“推送”调用?我是否指示托管在 pi 上的服务器监听来自公司网络服务器的任何打开的 api 调用?
计算机上的 Web 应用程序 - 从我们公司的服务器中检索计时器、时间和 LED 设备设置的当前状态,并使用 api 调用提供功能。当计时器即将用完以处理客户时,还会提醒服务员/用户。
或者除了 Web 应用程序之外。
桌面应用程序 - 在网络主机上查找当前 Rpi,Pis index.html 的 iframe 允许控制等或从 pis 数据库存储值中提取 api 调用并将它们呈现在桌面应用程序中。
我真的在寻找最佳实践/这样做的最佳方法是什么。
我有 HTML css javascript PHP 背景,但可以轻松地拿起 python 或任何其他编码平台,只需要对这个项目的一些建议,非常感谢您的帮助!