【发布时间】:2020-06-01 04:54:36
【问题描述】:
我正在开发一个智能控制风扇的应用程序。智能风扇控制电路包括 Node MCU。将有两种风扇控制模式,智能和自动。在智能模式下,风扇的速度可以从通过机器学习预测算法获得的预测值改变。预测值由服务器上的 python 脚本生成,移动应用程序需要从服务器获取。我需要在这个通信周期之间有一个 MQTT 代理,其中应用程序将通过 MQTT 协议从服务器获取数据,类似地,节点 MCU 和移动应用程序将通过该 MQTT 代理进行通信。我正在使用一个开源的 EMQ MQTT 代理。 EMQ MQTT 代理有两种选择:一种是 EMQx,一种是 EMQ 云,其服务相当昂贵。我需要开发我的 MQTT 云服务,其中 MQTT 代理软件将是开源的 EMQ 代理,将部署在我自己的云上,以便它可以连接到服务器和不同的客户端(节点 MCU 和移动应用程序),因此我不需要使用 EMQ 云提供的 MQTT 云服务。
我是物联网的新手。在互联网上进行研究后,我获得了这个见解来开发这个项目。请指导我如何设置此 MQTT 云服务,以便不同的客户端可以通过 Internet 连接到 MQTT 代理。
感谢您的技术帮助。
【问题讨论】:
-
很抱歉,这个问题太宽泛了。在安全性、用户管理、冗余等方面,只有您可以做出太多选择。所有这些都取决于您选择如何运行您的服务 Nd Stack Overflow 并不是讨论它们的正确场所
-
EMQx 在 AWS Marketplace aws.amazon.com/marketplace/pp/B07N2ZFVLX?qid=1591022907049 上是免费的,但您必须支付 EC2 和传输费用。我们测试了 1000 个传感器到一个 EMQx 实例youtube.com/watch?v=JUu6nvW6pcE&hd=1
-
为什么必须使用基于云的 MQTT 代理?为什么不直接在本地运行 Mosquitto 之类的东西并跳过云成本呢?就此而言,如果“移动应用程序”和 Node MCU 正在与同一台服务器通信,为什么还要使用 MQTT? Web 套接字可能更容易。
-
我最初在本地运行 Mosquito。要使用 Paho 客户端将其与移动应用程序连接,我需要拥有可以通过 Internet 访问的 IP。我可以通过在本地托管它来获得该 IP 吗?另外,我认为 websocket 只会使它能够连接到浏览器。此外,我正在使用 MQTT 来限制服务器上的 HTTP 请求。由于 MQTT 是轻量级消息传递协议,因此当我们需要与设备通信时它会很有效。
标签: cloud cluster-computing mqtt iot emq