将处理过的数据从 RFID + 传感器推送到平台

物联网 传感器 系统架构 网页服务 射频识别 网络套接字
2021-06-04 08:56:02

我有一些传感器节点(博世 XDK)将信息发送到 MQTT 代理,应用程序读取信息并将其存储到 InfluxDB 中。同时,我有 RFID 阅读器,可以扫描一些标签并将信息发送到 MongoDB。基于某些逻辑,我希望将来自 InfluxDB 和 MongoDB 的数据合并在一起,并希望发送到一个自定义平台,该平台将拥有自己的数据库,其中将存储棒状信息以进行可视化。

基本理念

  • 信息流来自数据源是单向的(即从传感器和 RFID 仅到数据库)

  • 组合服务可以查询数据库,并结合信息,并将其发送到平台

要求

  • 我想把实时信息送到平台上。即每当 MongoDB 实例更新时,使用一些参数从 InfluxDB 中查询信息,合并并推送到平台。

我无法理解的是是否使用webhookswebsockets用于Combine App,以及如何知道MongoDB是否更新了一些新信息?

我阅读了一个很好的 Webhooks v/s Websockets 的 SE Query并发现该场景更server-to-server倾向于(webhooks)的方向,其中客户端仅通过其内部服务与平台交互,而不是通过两个数据库直接交互,但我不确定如果是这种情况。

我认为这是物联网实时数据应用程序的一个非常相关的用法,并且正在为上述案例寻找一些清晰的架构和实现答案。

是否有存储库以某种方式提供有关如何创建满足我的要求的 webhooks/websockets 的帮助?

2个回答

如果有人需要此查询的答案/解决方案,我创建了一个存储库登录页面,该页面提供了应用程序原型的完整端到端解决方案。直接来自传感器的 Arduino Sketch,以及后端 API。

登陆页面:iotfablab/TrackNTrace

我也为此写了一篇科学论文:

IEEE 探索

如果您没有访问权限,请在ResearchGate上索取论文

祝贺你写了一篇关于它的研究论文。

这可以通过 kafka 或 AWS KDA(运动数据分析)等流媒体平台来完成。KDA(我认为也是在 KSQL 中)的查询语言中有一些子句,它们允许您将发生的事件联系在一起。

https://aws.amazon.com/kinesis/data-analytics/ https://docs.aws.amazon.com/kinesisanalytics/latest/dev/windowed-sql.html

如果您只想在读取 RFID 时获取最后已知的传感器值,那么您可以仅在 AWS IoT 规则中轻松完成。让传感器写入 dynamodb 表(使用 IoT 规则),让 RFID 阅读器从 dynamodb 中获取值。您只需要一种将两者联系在一起的方法。这可能只是另一个 dynamodb 表,该表首先在获取 rfid 读数(连同读取器 ID)并使用读取器 ID 查找相关传感器的规则中查看。然后,执行第二条规则,从这些传感器获取最后的已知值。然后可以使用最终结果写入队列等。