尝试使用开源 MQTT 代理 EMQ 为我的 IoT 项目设置我的 MQTT 云服务

Posted

技术标签:

【中文标题】尝试使用开源 MQTT 代理 EMQ 为我的 IoT 项目设置我的 MQTT 云服务【英文标题】:Trying to setup my MQTT cloud service for my IoT project utilizing Open Source MQTT Broker EMQ 【发布时间】: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 是轻量级消息传递协议,因此当我们需要与设备通信时它会很有效。 【参考方案1】:

EMQ X Broker vs EMQ X Enterprise vs EMQ X Enterprise?

差异

    EMQ X Cloud 解决您的运维和管理工作。 Broker的安全、稳定、升级、迁移、扩容等操作无需您操作。

    EMQ X Broker 开源免费,包含大部分功能

    EMQ X Enterprise提供基于broker的消息存储(如Kafka、mysql timescaledb influxdb等数十种数据库和消息队列)和企业支持服务

如何选择?

    EMQ X Broker:如果你只是使用pub sub而不做数据处理,请免费使用EMQ X broker

    EMQ X Enterprise:如果你想存储消息数据,使用你的消息(数据分析、存储)和自己管理代理服务器,选择EMQ X 企业版

    EMQ X Cloud:如果你不想维护服务器,又想快速上手并接受价格,选择EMQ X Cloud

【讨论】:

【参考方案2】:

或许你可以使用 emqx public broker: broker.emqx.io:1883 进行测试

【讨论】:

以上是关于尝试使用开源 MQTT 代理 EMQ 为我的 IoT 项目设置我的 MQTT 云服务的主要内容,如果未能解决你的问题,请参考以下文章

EMQ 的共享订阅

[emqttd] (EMQ)

Windows安装EMQ服务器(mqtt)

使用 MQTTBox 接入 EMQ X Cloud

mqtt的Emq服务器的搭建

MQTT研究之EMQ:EMQX使用中的一些问题记录