使用 RBP 作为门锁和网络服务器之间的代理

物联网 树莓派 系统架构
2021-06-09 08:57:54

我对 RBP3 及其能做什么比较陌生,但我会尝试总结我想做的事情,也许我可以在正确的方向上获得一些指示。

因此,我们的想法是在连接到常规数据库的 PHP 服务器上运行一个 Web 应用程序。RBP 充当中间人。当用户在网站上输入代码时,RBP(存储在异地)向开关继电器发送信号,继电器又会触发特定门的解锁机制(基于用户输入的代码)。

我已经提供了流程应该如何进行的图像。 流动

我有点困惑从哪端开始。但想法是 Web 服务器向 RBP 发送请求。为此 - 我是否需要在 RBP 上运行的 Web 服务器,或者是否可以接受/发送来自单个 IP 地址的请求而无需在 Pi 上配置整个 apache Web 服务器?

正如您可能会说我对拉哪个字符串有点迷茫,那么您对处理传入请求和发送请求的可能性有什么建议?

编辑:我将尝试在这方面提供更多清晰度。门连接到 WAGO 耦合器,后者又通过 VPN 连接到 RBP。

RBP 的作用是接收来自 PHP Server 的请求,检查门是开着还是关着,如果是关着的,它会向耦合器发送信号来开门。然后,RBP 将向服务器发送一条消息,说明门现在已打开。

从您的回复中,我意识到 HTTP 可能不是最好的协议,我将转而研究 MQTT 和该项目的其他协议。我可能会咬得比我在这里咀嚼的多,但我真的需要让它发挥作用,这就是我寻找一些指导的原因。

谢谢

2个回答

与 Web 服务器向 RBP 发出 HTTP 请求不同,从 RBP 连接到 MQTT Broker 并订阅某个主题要容易得多。一旦 Web 服务器收到一些请求,它就可以向 Broker 发布消息,RBP 将收到它。因此,它将消除 RBP 拥有公共 IP 的需要。

您可以在与 Web 服务器相同的主机上安装自己的 MQTT Broker 或查看任何云/公共代理

为了从 PHP 发送消息,您可以使用mosquitto_pub或者对于某些代理,您可以使用 REST API,如本示例中所示

似乎您的问题可能以稍微奇怪的方式排列,除非有问题中未描述的细节。

您展示了连接到“现场”某物的门,但这不是您的 SBC。所以也许你在这里的架构中有一些不必要的东西。

您还暗示连接是由云/端点发起的,而不是您的中央设备。更正常的方法是将 SBC 移动到“集线器”位置,并从这里直接启动到您的 Web 服务器的连接。

要回答这个问题,是的,如果您想要一个 Web 服务器,我相信您确实需要一个 Web 服务器。

如果您想要的只是通过 IP 连接的机器对机器信令,您可能需要查看类似 CoAP 协议的内容。还要记住,您的架构中已经有一个 Web 服务器,您可能不需要另一个。