基于Ixxat CAN@net NT420下如何配置MQTT Broker

浏览:1467来源:本站时间:2019-05-17
MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。
MQTT工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件,即Broker。
本篇文章使用的MQTT Broker是ActiveMQ公司的ActiveMQ Apollo,Apollo是一个更快,更可靠,更容易维护的消息代理。它使用完全不同的线程和消息调度体系结构来完成这个任务 。像ActiveMQ一样,Apollo是一个多协议代理,支持STOMP,AMQP,MQTT,Openwire,SSL和WebSockets。

本次使用的测试Broker端是Apache Apollo,就是在服务器端创建一个唯一订阅号,发送者可以向这个订阅号中发东西,然后接受者都会收到这个订阅号发出来的消息。以此来完成消息的推送。服务器其实是一个消息中转站。
本次使用的测试客户端是mqtt-spy与Ixxat CAN@net NT420网关


Mqtt-spy是一个用java开发的开源MQTT客户端软件,可以到他们的GitHub上下载,本次实验使用mqtt-spy作为订阅者客户端,用起来方便直观。运行环境依赖JAVA。


Ixxat CAN@net NT420是一款CAN转以太网网关,可以将CAN或CAN FD系统进行耦合,也可以将以使用以太网的设备连接到CAN系统,同时具备使用MQTT协议实现与MQTT Broker连接的功能。此次使用CAN@net NT420作为实验的发布者客户端。

如果您想要获取本文中使用的测试工具ActiveMQ Apollo与mqtt-spy,关注"麦克泰技术"微信公众号后在对话框内回复“Apollo”即可获取下载链接!

一、ActiveMQ Apollo服务器的安装

01、下载安装以及解压ActiveMQ Apollo

ActiveMQ Apollo依赖JAVA,首先要安装并配置好JAVA环境变量,其次下载以及安装ActiveMQ Apollo。
下载地址:http://activemq.apache.org/apollo/
我们下载的是apache-apollo-1.7.1.rar,先把压缩包解压得到的文件如下图。注意这里的解压路径不能有中文或者空格,否则后面会出现不知名错误,我这里直接将文件解压到了本地H盘目录下(H:\)


02、配置ActiveMQ Apollo

打开CMD窗口,进入Apollo目录:H:\apache-apollo-1.7.1\bin,在CMD窗口执行apollo.cmd,就可以看到如下信息,可以看到Apollo的基础命令。


在CMD窗口中输入apollo create mybroker H:\mybroker即可在H盘mybroker目录下创建一个名为mybroker的实例,当然mybroker这个名字可以随便起。


进入资源管理器打开mybroker文件夹可以发现里面包含有很多信息,其中etc\apollo.xml文件下是配置服务器信息的文件,etc\users.properties文件包含连接MQTT服务器时用到的用户名和密码,可以修改原始的admin=password,可以接着换行添加新的用户名密码。


● bin:保存与该实例关联的执行脚本
● etc:保存实例配置文件
● data:保存用于存储持久消息的数据文件
● log:保存日志文件
● tmp:保存在代理运行之间安全删除的临时文件

打开CMD窗口,进入实例目录(H:\mybroker\bin),输入apollo-broker.cmd run开启服务器,如下图所示。
这里可以看到管理员接口是https://127.0.0.1:61681/或http://127.0.0.1:61680/,tcp的接入端口是61613。


03、测试

打开浏览器,在地址栏输入https://127.0.0.1:61681/或http://127.0.0.1:61680/进入Apollo Console窗口,默认登陆ID与密码是admin和password,登陆成功如图,到此ActiveMQ Apollo服务器配置开启成功。



二、订阅者/发布者客户端配置

打开mqtt-spy,新建一个连接,填入Apollo的配置信息,并订阅好测试主题

配置Ixxat CAN@net NT420做为发布者客户端很简单,只需在CAN@net NT420的MQTT配置页面中填入服务器信息,然后配置相应的触发条件即可。

首先通过配置工具连接CAN@net设备,工作在Local CAN Bridge模式,开启一个CAN端口作为控制窗口。


其他配置选择默认,之后再MQTT配置树下按照下图提示填入服务器信息,其中客户端ID可以随便起。


通过配置触发条件来控制CAN@net NT420发送MQTT消息。其他不需要的功能都可以选择默认,这样一个MQTT发布者客户端就搭建好了。


三、通讯测试

开启ActiveMQ Apollo服务器后,连接客户端到服务器,这里要注意的是,连接CAN@net NT420到服务器上后,需要暂时关闭服务器的防火墙才能通讯。

通过触发条件使发布者客户端CAN@net NT420发送两条规定的MQTT消息,查看订阅客户端是否能够正常接收。



在mqtt-spy订阅者客户端成功接收到CAN@net NT420发送的MQTT消息,服务器通讯测试成功。
不论您是开发MQTT客户端系统还是开发服务端系统,这套简单MQTT服务器搭建方法都能够帮助您快速的完成功能的验证与测试。
本文章中所使用的ActiveMQ Apollo与mqtt-spy都是开源软件可以免费使用。


发布者客户端使用的硬件产品是Ixxat品牌的CAN@net NT420,CAN@net NT系列是强大的CAN以太网网关,并且支持将您的CAN系统连接到MQTT云。他的主要特点是:

● 最多4个独立的CAN通道(2个CAN FD通道)
● 强大的过滤,ID翻译,数据映射和多路复用功能
● 通过支持MQTT简单进行云连接
● 针对眼科环境设计的高性能
● 提升系统的可靠性
● 通过电气隔离实现线路保护







京ICP备:京ICP备05011254号-1 版权归北京麦克泰软件技术有限公司所有
北京麦克泰软件技术有限公司