5

我有一个运行 Windows IOT Core 的 Raspberry Pi,它正在运行我的家庭自动化应用程序。现在我需要在 RB pie 和 ESP8266 之间建立通信。

我一直在考虑 MQTT 协议,但我不想让外部服务器运行 MQTT 代理,而且我找不到 Win IOT 的代理。Windows IOT Core 是否存在 MQTT 代理?如果不是,您会为此目的推荐什么通信协议?

4

4 回答 4

3

Antonio 在 Windows IoT Core 上为您提供了一些选项

如果您正在使用 Node.js 构建应用程序,则可以使用Mosca ( http://www.mosca.io )

如果您正在使用 Python 构建应用程序,您可以查看hbmqtt ( https://github.com/beerfactory/hbmqtt )

当然,对于 .NET 应用程序,您可以搜索 Nuget。GnattMQ (www.nuget.org/packages/GnatMQ) 似乎是非常流行的 .NET 库

于 2016-02-09T21:16:54.273 回答
2

这是用 C# 编写的GnatMQTT,所以我想应该建立在 Window IoT 上

于 2016-02-03T20:44:40.280 回答
1

可能存在一些 MQTT 库或其他协议。但我假设以下情况并提出解决方案:

假设:

  • Rpi 是系统的核心。
  • ESP 像卫星、传感器等一样工作。
  • 所以 ESP 正在向 Rpi 报告数据
  • 它们(Rpi 和 ESP)都在同一个子网中。

解决方案:

  • 在 Rpi 端实现一个简单的 UDP bcast 监听器并监听 BROADCAST ip 上的某个特定端口。(例如:8889)
  • 在 ESP 端实现一个 UDP 客户端将数据发送到 BROADCAST ip 和特定端口。(例如:8889)
  • 实现消息格式并让 ESP 发送它并让 Rpi 解析它。

示例消息格式:

消息可以是字符串(ASCII 编码)。

ABBBEEECCCDDDD.....DDD
A: Start Header
BBB: Sender ID
EEE: Receiver ID
CCC: Payload Byte Count
D..: Payload

OR

A|BBB|EEE|DDDDD..DDDDDD|F
A: Start Header
|: Seperator
BBB: Sender ID
EEE: Receiver ID
D..: DATA payload
F: End Header.

此配置将允许您使用 DHCP,而不是记录客户端的任何 IP 地址,并且实施起来很便宜(根据资源 ram、cpu 等)。注意:我不知道 MQTT 是如何使用资源的。

于 2016-02-04T13:58:58.103 回答
-2

大量可用的 MQTT 代理ActiveMQ是用 Java 构建的,可以安装在任何支持 Java 的平台上。MosquittoRabbitMQ有适用于 Windows 的安装程序。

但是,如果您想要比 MQTT 更轻量级的东西,您可能还想研究CoAP

于 2016-02-04T21:00:33.897 回答