首页 理论教育 物联网操作系统Contiki及MQTT-SN协议举例

物联网操作系统Contiki及MQTT-SN协议举例

时间:2023-11-20 理论教育 版权反馈
【摘要】:main_core.c 是应用MQTT-SN 协议的应用程序,以下是该应用程序中的几个重要模块:函数init_broker()初始化服务器,本例使用服务器RSMB。RSMB 是MQTT 和MQTT-SN 协议的服务器实现,实现该协议的任何客户程序可以使用该服务器发送和接收消息,在Mosquitto 代码库上使用RSMB 的主要原因是Mosquitto 当前不支持MQTT-SN 协议。

物联网操作系统Contiki及MQTT-SN协议举例

本节使用GitHub(https://github.com/aignacio/mqtt-sn-contiki_example)中实现的例子说明MQTT-SN 协议的应用,该例中的mqtt-sn.c 和mqtt-sn.h 定义了MQTT-SN 协议的实现。main_core.c 是应用MQTT-SN 协议的应用程序,以下是该应用程序中的几个重要模块:

函数init_broker()初始化服务器(broker),本例使用服务器RSMB(Really Small Message Broker)。RSMB 是MQTT 和MQTT-SN 协议的服务器实现,实现该协议的任何客户程序可以使用该服务器发送和接收消息,在Mosquitto 代码库上使用RSMB 的主要原因是Mosquitto 当前不支持MQTT-SN 协议。在Linux系统中RSMB简单易用,它是用C语言编写的轻量级代理,可以在任何嵌入式设备中运行。

仿真实现步骤如下:

步骤1:执行如下命令,下载MQTT-SN协议应用程序:

git clone https://github.com/aignacio/mqtt-sn-contiki_example mqtt-sn-contiki

步骤2:执行如下命令,下载MQTT-SN协议的实现RSMB:

cd mqtt-sn-contiki/tools/mosquitto.rsmb

git clone https://github.com/eclipse/mosquitto.rsmb

步骤3:编译RSMB:

cd mqtt-sn-contiki(www.xing528.com)

make all

步骤4:Cooja仿真器下建立如图15-17所示的网络拓扑,节点1承担边界路由器的角色,其上运行examples/ipv6/rpl-border-router/border-touter.c 程序,其他节点上运行MQTT-SN 协议应用程序mqtt-sn-contiki/main_core.c,在本例中的节点都使用z1微尘。

步骤5:用第12章的方法配置边界路由器节点1,然后使用如下命令启动RSMB代理服务器:

图15-17 网络拓扑

步骤6:运行仿真,MQTT-SN协议初始化过程如图15-18所示:

图15-18 MQTT-SN初始化

一旦所有配置完成,并且运行正常,就可以使用客户程序mosquit-clients观察MQTT 消息的传输,如订阅命令如下。关于这些命令的使用细节可参考相关文档。

mosquito_sub-t#-v

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈