在树莓派3b+上运行Greengrass Core



我有两个greengrass内核,一个在AWS EC2实例上运行,另一个在Raspberry Pi上运行。

在我的项目中,我将视频帧从本地机器发送到RaspberryPi,然后我处理这些帧,在帧中找到一个带有二维码的标记,并将标记的坐标发送到Greengrass。然后我从笔记本电脑上读取这些坐标。

在第一个场景中,我的greengrass在EC2实例上运行(以前有(,为了提高性能,我决定在我的树莓派上运行另一个greengrass内核,并使用它。我的想法是,与其拥有一台三角形笔记本电脑->RBPi->EC2->Laptop我将从这个过程中删除EC2实例和云组件,从而提高我的性能。

问题是我看不出在表现上有什么不同。

在这两种情况下,如果我想连接到我的greengrass核心实例,我使用AWS端点作为我的";"联系人";点,唯一的区别是在核心的连接设置中,我在一个场景中使用我的Raspberry Pi的IP地址,在另一种场景中使用EC2实例的IP地址。我这样做错了吗,还有别的办法吗?

这种沟通在实践中是如何运作的?我的消息是否会发送到云中的AWS端点,然后发送到我的greengrass核心设备(Raspberry Pi或EC2(?

Greengrass是一种物联网服务,由于其用途,它使用快速、轻量级的MQTT协议进行通信。其通信模型基于";发布订阅"模型,MQTT代理在中间。

你说的对,消息到达AWS端点——那将是AWS物联网核心MQTT代理。当物联网设备(即RPI或EC2(运行Greengrass或实际上任何其他物联网MQTT客户端软件时,当它"发送"消息时,它会将消息发布给特定主题的代理。另一方面,还有另一个物联网设备,它反过来又通过同一个代理订阅了该主题。

代理就像一个集线器,设备在这里发布消息,并通过使用主题订阅接收这些消息,因此通信是可能的。

物联网设备需要该代理进行通信,因此,无论你是在EC2上运行Greengrass还是在RPI上运行,都无关紧要,因为两者都必须发布才能订阅AWS物联网代理上的主题。

最新更新