感知多个并发输入——概念方法

物联网 系统架构
2021-06-15 09:38:03

这个问题并不完全适合一个类别,但物联网似乎是最合适的。

从概念上讲,您将采取什么方法来解决以下问题?

我正在寻找构建一个需要能够:

  • 接受来自多个传感器的 IR 输入。几乎任何时候都可以是任何传感器。

  • 密切关注通过 Wi-Fi 从服务器接收到的任何指令,方法是每隔几秒轮询一次服务器或允许服务器直接向设备发送数据包。

  • 当检测到 IR 信号时,转换代码并通过 Wi-Fi 向服务器报告 + 执行本地操作。

  • 运行轻量级显示器。RGB更好。

  • 对本地用户按钮输入做出反应

我面临的概念性问题既围绕着编程策略,也围绕着硬件。如果我要使用像 Arduino 这样的东西,那么我只能使用一个核心,而且我不确定如何同时完成所有这些事情。但网络和红外观察很重要。循环式调度器存在丢失这些输入的风险。使用 Raspberry Pi(或变体,即 Orange Pi Zero)可以打开四核处理,这意味着线程变得可用,但这是否可以解决可能同时发生多个输入/输出并导致冲突的问题?

您建议我考虑使用哪些方法来解决这个问题?这里的问题是我有一些编程能力,但这是我第一次玩更小的硬件,我不知道我还不知道什么。

1个回答

我将假设您在这里为传感器购买分线板,因为您所提出的硬件设计可以有多种形式,需要不同的技能水平。也就是说,这个假设需要一个多阶段解决方案,并且确实涉及到我以前见过的典型物联网用例,所以我们开始:

  1. 接受来自多个传感器的 IR 输入。几乎任何时候都可以是任何传感器。
  2. 密切关注通过 wifi 从服务器接收到的任何指令,方法是每隔几秒轮询一次服务器或允许服务器直接向设备发送数据包。
  3. 当检测到 IR 信号时,翻译代码并通过 wifi 报告回服务器 + 执行本地操作。
    • 这也是一个简单的解决方案。根据您使用的红外传感器,IC 可能有一个中断端口,您可以访问该端口以触发您正在使用的 MCU,以开始一个过程,该过程在中断时转换传入数据并将其发送到您的后端服务。如果没有,您可以创建一个 case 语句或对照已知的传感器读数进行检查,以确定 IR 传感器是否“看到”了某些东西。不同的传感器将具有不同的刷新率,因此我会阅读您的可用选项并选择符合您规格的传感器。
  4. 运行轻量级显示器。RGB更好。
  5. 对本地用户按钮输入做出反应
    • 我会将此按钮捆绑到您正在使用的显示器中。一举两得。

鉴于所有这些问题和建议的解决方案,我建议使用 Raspberry Pi 来利用多核处理器、Linux 操作系统和 Python。如果您发现需要 FPGA 来运行您的传感器,则可以使用现成的 Spartan 6 FPGA 适配器,它们不仅能满足您的外围驱动/监控需求。这里有几个链接:

我希望这是有用的和快乐的原型制作!