四、MQTT服务器搭建教程

1、概述

EMQX 是一款大规模可弹性伸缩的云原生分布式物联网 MQTT 消息服务器。

作为全球最具扩展性的 MQTT 消息服务器,EMQX 提供了高效可靠海量物联网设备连接,能够高性能实时移动与处理消息和事件流数据,帮助您快速构建关键业务的物联网平台与应用。

下面为EMQX官方网址:

https://www.emqx.io/zh

EMQX 消息服务器每个版本会发布 CentOS、Ubuntu、Debian 平台程序包与 Docker 镜像。

下载地址: https://www.emqx.com/zh/downloads

因本人有公网IP且刚好有树莓派,下面就用以下结构方式进行安装EMQX服务器:

2、树莓派前期准备

备注:树莓派系统安装就略过了,网上有很多教程。

2.1、查看树莓派的系统信息:

lsb_release -a

uname -a

此时得到我们的系统版本为:Raspbian Linux 10 (buster)使用的指令集为arm v7(很重要备用)

2.2、更换阿里源地址:

https://developer.aliyun.com/mirror/raspbian?spm=a2c6h.13651102.0.0.6c6b1b113Z5rCQ

找到您的树莓派系统对应的版本,我这里就是debian 10.x(buster)

使用下面命令进入/etc/apt/sources.list文件进行修改:

sudo nano /etc/apt/sources.list

注释掉树莓派官方源地址,更换为阿里源地址(备注:Ctrl+O回车保存,Ctrl+X退出nano编辑器)

deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib

使用下面命令进入/etc/apt/sources.list.d/raspi.list文件进行修改:

sudo nano /etc/apt/sources.list.d/raspi.list

注释掉树莓派官方源地址,更换为阿里源地址(备注:Ctrl+O回车保存,Ctrl+X退出nano编辑器)

deb http://mirrors.aliyun.com/raspberrypi/ buster main ui

2.3、更新系统软件

使用下面命令进行更新操作,update是更新列表。

sudo apt-get update

使用下面命令进行更新操作,upgrade是更新所有已安装的app。

sudo apt-get upgrade

备注:这2个更新的时间大概在10分钟左右,请耐心等待更新完毕。

3、安装Docker

3.1、获取docker

 curl -fsSL https://get.docker.com -o get-docker.sh

3.2、执行安装脚本(备注:使用阿里镜像)

sudo sh get-docker.sh  --mirror Aliyun

3.3、启动docker

3.3.1、使能docker

sudo systemctl enable docker

3.3.2、启动docker

sudo systemctl start docker

3.4、查看docker版本

sudo docker version

3.5、配置国内镜像

sudo nano /etc/docker/daemon.json

3.5.1、加入下面的代码如下图所示(备注:Ctrl+O回车保存,Ctrl+X退出nano编辑器)

{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

3.6、重启docker生效

重新加载配置

sudo systemctl daemon-reload

重新启动docker

sudo systemctl restart docker

3.7、配置docker图形化界面

3.7.1、下载 Docker 图形化界面 portainer

sudo docker pull portainer/portainer

3.7.2、创建 portainer 容器

sudo docker volume create portainer_data

3.7.3、运行 portainer

sudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

3.7.4、运行之后在浏览器中输入树莓派IP:9000 进入界面。首次访问需要设定登录密码。

3.7.5、我们管理本地的镜像,选择第一个就可以 点击后结果如下图。(备注:到此为止docker就建立好了)

4、安装MQTT服务器

这里我选择EMQX,它是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。安装的方式选择使用Docker。

4.1、确认版本

在下面的链接中找到您系统版本对应的:Docker–EMQX镜像文件,我们之前已经查询过了,我们的系统为:Raspbian Linux 10 (buster)使用的指令集为arm v7(很重要备用)

https://hub.docker.com/r/emqx/emqx/tags

我的选择如下图:

第1步骤:找到带ARM V7指令的版本。(备注:其它版本也可以,只要有ARM V7能对应您当前的系统就行)

第2步骤:确认版本号为4.2.14。

4.2、安装EMQX服务器

4.2.1、拉取docker–emqx镜像(备注:下面的版本就为对应查询到的版本号)

sudo docker pull emqx/emqx:4.2.14

4.2.2、启动docker-emqx容器(备注:下面的版本就为对应查询到的版本号)

sudo docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:4.2.14

5、配置MQTT服务器

5.1、进入后台

树莓派IP:18083 进入EMQ X服务器后台

默认账号:admin
默认密码:public

5.2、设置语言

在设置中设置为中文

5.3、查看端口

我们常用的就是mqtt:tcp协议的1883端口。

6、简单测试

6.1、下载MQTTBOX测试软件:

直接在Micofosit Store中搜索MQTTBOX进行安装:

6.2、MQTTBOX软件简单配置:

6.2.1、创建MQTT客户端

6.2.2、配置截图

保存并返回。这里标绿则说明连接成功

6.2.3、测试截图

在右测观察到发送的内容即说明服务器的功能一切正常!