【问题标题】:Can cooja connect to mosquitto server in ubuntu?cooja可以连接到ubuntu中的mosquitto服务器吗?
【发布时间】:2016-12-31 09:01:26
【问题描述】:

我是 contiki os 的新手,我正在 contiki os 中尝试 mqtt。但是我在将 cooja 模拟器中的 mote 连接到我的 ubuntu 桌面上的 mosquitto 服务器时遇到了问题。那么有可能做到这一点吗?我正在尝试为此使用 IPv4,我的 mqtt 示例来自 https://github.com/esar/contiki-mqtt

谢谢

【问题讨论】:

  • 您可以使用tunslip在传感器网络的根节点和您的PC之间通过串口创建一个IP隧道(串口通信由Cooja导出)。
  • @kfx 感谢您的回复。为此,我需要使用border-router.c 和udp-server.c 来创建隧道?
  • 所有udp-server.c 示例均适用于 IPv6。如果您不需要 IPv4,则不应在问题中指定。
  • 感谢 kfx。我在想是否可以将其更改为与最初使用 IPv6 的 IPv4 一起使用。但正如 Felipe Lavratti 所说,它不适用于 IPv4,所以我将代码改回 IPv6。

标签: c mqtt mosquitto contiki


【解决方案1】:

是的,有可能。

您需要一个启用了 SLIP(串行线路 IP)的 RPL 边界路由器节点(我从未在 Cooja 的节点中模拟物理以太网端口)。

在您的 RPL 边界路由器中,打开“串行套接字(服务器)”并在 Linux 控制台中运行 tunslip6 以将 RPL 树连接到您的本地网络。

这是一个教程:http://anrg.usc.edu/contiki/index.php/RPL_Border_Router

tunslip6 运行后,与物理运行节点没有区别,设置相同。

现在您的节点将能够在您配置的静态 IPv6 地址中找到您的 mosquitto 服务器。我记得使用“aaaa::1”。为确保网络正常,请对您的 RPL 边界路由器执行 ping6 操作。

ps:如果是生产应用程序,您可能不想使用 MQTT。 RPL 中的 TCP 或数据包分段也不能很好地扩展,MQTT 也可以有大量的有效负载。使用 CoAP 或 MQTT-SN 使用 UDP。

【讨论】:

  • 嗨,费利佩·拉夫拉蒂。我的 mosquitto 服务器正在我的 ubuntu 桌面上运行。所以我应该用于我的 mote 连接到服务器的 ip 地址是我的 ubuntu 桌面的 ip 地址?
  • Felipe,他确实提到他正在使用 IPv4。我怀疑这个过程非常相似,但我自己只尝试过 IPv6。
  • 同意 CoAP 在这些网络中优于 MQTT。
  • Ipv4 不会路由。 RPL 仅使用 ipv6。 Tunslip6 创建一个虚拟网络接口并使用命令行选项设置一个本地 ip。那是您的节点应该寻找的 ip。按照链接中的教程进行操作。
  • 您好我已经尝试过您所说的,但我一直在输入 process_is_running 方法(在 mqtt-service 的 mqtt_connect 方法中)您能告诉我它是做什么用的吗?抱歉,我不确定它的作用。是否用于检查进程是否正在运行?因为如果是这样,为什么要返回 -1?
猜你喜欢
  • 2022-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
  • 2019-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多