简介

  MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。

  当下,物联网大热,各种硬件/传感器,连接上互联网之后,随即成为智能硬件、智能家居的相关产品。而其中大多数传感器/硬件都以MQTT协议与服务器进行通讯,它的发布/订阅功能(publish/subscribe)非常适合物联网硬件,可以说:当今市面上的绝大多数,甚至所有的物联网硬件,都是基于MQTT协议的。


目标

  去年,我做了个树莓派魔镜(虽然教程没更完,但是作品还是做出来了的23333)。魔镜的项目用到了外置的DHT11温湿度传感器,和红外传感器,当时的项目里,所用的也是MQTT的主题发布/订阅功能,但那时候用的是别人的MQTT服务器。自己对这一块也还不太了解,基本上照葫芦画瓢。

  但是今天,我要从头开始搭建一台自己的MQTT服务器,并且将自己做的几个硬件(有自动浇花装置,智能台灯,和电饭煲插座),逐步接入MQTT服务器,可能会打算写个网页,挂在自己的网站上,这样可以远程看到家里的情况,并且实现简单的控制。想想就觉得激动2333


步骤

服务器

创建(购买)腾讯云主机,这一步自行实施。系统本文以Centos6 为例

下载&安装MQTT

SSH登陆到主机,注意要以root 身份,

下载MQTT
输入
wget http://emqtt.com/downloads/2313/centos6

QQ截图20180404150007.png

因为下载的是.zip格式安装包,所以你还得安装unzip软件
输入
yum install unzip -y

QQ截图20180404150114.png

解压MQTT安装包:输入
unzip emqttd-centos6.8-v2.3.6.zip
如果这一步报错,请输入ls回车,查看一下当前目录下都有哪些文件,找到安装包并输入unzip emqttd-centos6。x.x.x(版本号).zip 解压它就行。

安装MQTT
解压完了,开始安装。先ls罗列目录下的文件和目录,然后输入
cd emqttd 进入安装文件所在目录;
./bin/emqttd console 执行安装程序;

QQ截图20180404150548.png

如果有下图提示,则表是安装完成;

QQ截图20180404150720.png

放行端口

因为腾讯云&阿里云等国内IDC 服务商都会对服务器加一层安全策略,默认不开放相关端口,所以在使用前需要放行相关的端口,在管理控制台=》云主机=》安全组=》修改安全策略。
MQTT默认端口列表

端口协议
1883MQTT 协议端口
8883MQTT/SSL 端口
8083MQTT/WebSocket 端口
8084MQTT/WebSocket/SSL 端口
18083WebClient后台

登陆后台

修改完成之后,就可以登陆了
打开浏览器输入your IP address:18083
就可以打开EMQTT后台了

QQ截图20180404213053.png

一进入默认是英文界面,可以更改成中文,有黑/白两种底色可选,可以说UI界面还是做得很不错的。

QQ截图20180404212916.png

在控制台主页面上,MQTT服务器内存的大小,可以通过配置/centos6/emqttd/etc/emq.conf 文件进行更改

QQ截图20180404213316.png

同时,默认的端口以及连接的客户端最大数量也能通过上述文件进行配置更改;

QQ截图20180404213449.png

至此,MQTT服务器的安装已经完成,更多功能操作,请关注后续文章。


总结

  搭建MQTT服务器的目的,是为了让更多的硬件能够连入服务器,进行集群化管理与控制。本文以腾讯云主机为例,讲解了如何搭建一台能够与多种终端通讯的MQTT服务器。

接下来将会更新将多种智能硬件设备接入MQTT 的教程,敬请关注!欢迎点赞评论转发打赏~~~

最后修改:2019 年 09 月 20 日
您的支持就是我持续更新的动力!