【问题标题】:Using MQTT between Raspberry Pi, Arduino and JavaScript在 Raspberry Pi、Arduino 和 JavaScript 之间使用 MQTT
【发布时间】:2014-08-28 04:27:46
【问题描述】:

我和一个伙伴目前正在做一个项目,该项目在树莓派上托管一个网页,我想通过 MQTT 向 arduino 发送一条消息,arduino 读取传感器,然后将值发送回 pi 以显示在网页上。

我希望在 pi 上使用 Mosquito 作为代理,并将 arduino 和网页视为客户端。

我只是在弄清楚它们如何组合在一起时遇到了很多麻烦。

我见过很多使用 web sockets 和 node.js 和 MQTT.io 的例子,我只是很困惑..

有人可以帮我把它们拼凑起来,并解释一下它们是如何配合的以及它的作用吗?

提前致谢!

【问题讨论】:

    标签: arduino raspberry-pi mqtt mosquitto


    【解决方案1】:

    Websockets 允许网络浏览器打开到服务器的双向通信管道。

    要使 websockets 工作,您需要启用 websocket 的 mqtt 代理。目前你必须单独安装它,一些例子是here。 Mosquitto 将在下一个版本中启用 websockets,1.4,如果你愿意,可以compile

    一个可以做什么的例子,以及我用 mqtt 和 websockets 做的 atm 是;

    1. 从 arduino 将 temperature 数据发布到 mqtt 代理。
    2. 订阅 arduino 发布的主题,并使用 python scripts 将数据填充到 mysql 数据库中。
    3. 有一个实时网站订阅该主题并将current temperature 显示为折线图。

    【讨论】:

    • 谢谢马特!那么所有 web-sockets 所做的只是为浏览器提供一种与 MQTT 代理通信的方式吗?我曾想过用 mySQL 来做,但如果可能的话,我真的很想尝试纯粹用 MQTT 来做。我可以使用 node.js 来替换 Web 套接字吗?是不是类似的东西?
    • 差不多,它充当可以订阅/发布主题的客户端。我只是将mysql用于历史数据。 Node.js,对此不太了解,但我已经看过这个例子,尽管这可能会有所帮助blog.hekkers.net/2012/10/13/…
    【解决方案2】:

    过去我们做过关于使用 MQTT 和 websockets 构建应用程序的教程。幻灯片(+ 代码)可以在 Slideshare 上找到。

    如果您对 MQTT over websockets 的详细工作原理感兴趣,this blog post 可能会对您有所帮助。另外,可以在this blog post 找到完整的示例 websockets/MQTT 应用教程。

    【讨论】:

    • hivemq 是否在树莓派上运行?
    • 嗨!感谢您的回复!我非常感激!尽管 HiveMQ 真的很酷,但我们真的很想使用蚊子作为代理!我认为现在蚊子有 websockets 支持,我会那样做!这些教程真的帮助我理解了:-)
    • @马特。 HiveMQ 在 Raspberry Pi 上完美运行。不过,它是为多核服务器设计的,但对于连接数少于 1000 个的简单安装,Raspberry Pi 工作得很好。确保在安装 HiveMQ 之前安装当前的 JDK 以获得最佳体验。
    • 如果支持,Thx dominik 不是 100%。 @LeeWiggins 你去吧,在你的 pi 上安装 hivemq,你将拥有 mqtt/websockets 合二为一,hivemq 很容易安装。
    猜你喜欢
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多