2016-02-03 33 views
3

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

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

+0

你最终选择了哪一个?是否有更多您需要的反馈?如果不是,我建议您接受正确的答案,以便SO可以将此问题标记为已关闭,http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work。 –

回答

2

安东尼奥在Windows IoT Core上有几种可用的选项

如果您使用Node构建应用程序。JS有莫斯卡http://www.mosca.io

如果您正在构建使用Python的应用程序,你可以检查出hbmqtthttps://github.com/beerfactory/hbmqtt

当然,你可以搜索的NuGet .NET应用程序。 GnattMQ(www.nuget.org/packages/GnatMQ)似乎很流行.NET库

+0

我查看过GnatMQ,但找不到任何有关如何启动和运行的文档。或者我看错了地方? –

+1

它现在在https://m2mqtt.wordpress.com/ –

+1

我使用GnattMQ,它似乎是坚如磐石的。对于所有意图的目的是没有文档(Wiki中唯一的页面是......性能!真的吗?) 但是代码很容易遵循。每次发布消息时,我都会连线一个事件,并将其用作我应用程序其余部分的数据输入。经纪人类中还有一个发送方法,我已经公开。 我不知道这是否正确,但它确实为我服务好几个月。 –

2

的是被C#编写的,所以我想应当基于窗口的IoT

1

可能存在一些MQTT lib或其他协议的GnatMQTT。但我相信下面的情况,并会提出一个解决方案:

假设:

  • Rp 1是在系统的核心。
  • ESP工作,如卫星,传感器等
  • 所以ESP的报告数据RPI的
  • 他们(RPI和ESP)的全部都在同一个子网。

解决方案:

  • 在RPI的侧实现一个简单的UDP监听BCAST并听取广播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如何使用资源。

+2

我不明白为什么我想这样做,如果有标准的轻量级协议,如MQTT或CoAP可用。 –

-2

有一个ton of MQTT brokers可用。 ActiveMQ是使用Java构建的,可以安装在任何支持Java的平台上。 MosquittoRabbitMQ都有Windows的安装程序。

但是,如果你想要比MQTT更轻量级的东西,你可能也想看看CoAP

+0

我认为他们正在寻找基于c#的经纪人,所以这些经纪人不会帮忙。 CoCo很有意思,但是有很好的实现吗? –

+0

“他们正在寻找基于c#的经纪人” - 好吧,怎么会知道?这个问题并没有明确说明。 Windows IoT可以同时运行Python和Java。即使被接受的答案也提到了Node.js和Python经纪人。此外,OP还要求提供替代协议,为什么我提到了CoAP。 –