ubuntu系统下搭建本地物联网mqtt服务器的步骤

首页 » 物联网 » ubuntu系统下搭建本地物联网mqtt服务器的步骤

摘要:mqtt broker(服务器)是物联网通信的核心,网上有很多种开源的服务器可供选择,本文介绍如何在ubuntu系统下安装emqx服务器,让大家可以在局域网环境下搭建“云服务器”,体验物联网的乐趣。本文还分享了安装时遇到的错误解决方法,以及使用mqtt.fx模拟一台物联网设备与服务器通信。

ubuntu系统下搭建本地物联网mqtt服务器的步骤

目录

 1.emqx也是一个mqtt broker

 2.实际上安装前还会遇到问题

 3.真正的安装非常快

 4.想不想图形化管理自己的服务器

 5.使用mqtt.fx模拟一个物联网设备订阅和发布主题


1.emqx也是一个mqtt broker

要想在本地体验”云服务器“,那么mqtt borker必不可少。它就像是物联网通信的“中转站”,所有的信息“发布”在这个broker里面,订阅“主题”的客户端,也从这里获取“主题”的数据。

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 能实现broker功能的软件有很多,本文以emqx为例。

请参考中文版官网的详细介绍。这里不再详细介绍它的功能了。

EMQX: 大规模分布式物联网 MQTT 消息服务器

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 2.实际上安装前还会遇到问题

下面开始安装。好多文章上说,首先应该用apt安装,一条指令就可以搞定。但实际上,有可能apt运行不起来,这并不是说帮助文档的错误,而是ubuntu系统自身设置所需(并非问题)。

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 敲入命令

curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 输入密码后,提示无法下载。

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 然后根据错误提示,输入命令查apt被哪些占用

ps -A|grep apt

然后运行命令

sudo fuser -vki /var/lib/dpkg/lock

 多运行两次,就可以运行apt了

ubuntu系统下搭建本地物联网mqtt服务器的步骤

现在的问题是连curl都运行不起来,需要首先安装curl。

ubuntu系统下搭建本地物联网mqtt服务器的步骤

然后遇到新的问题了,还是无法使用命令下载

sudo apt-get install emqx

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 出现问题的原因是ubuntu系统默认的软件库是老美的,如果需要apt命令行install一些常用软件,网络太慢,或无法访问。

ubuntu系统下搭建本地物联网mqtt服务器的步骤

默认的情况如下图所示

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 

 解决的方法是设置为清华大学等站点。

ubuntu系统下搭建本地物联网mqtt服务器的步骤

然后就可以运行

sudo apt-get update

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 接着需要安装curl

sudo apt install curl

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 3.真正的安装非常快

接下来才刚刚开始安装,首先配置curl数据源

curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 配置成功

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 然后安装emqx最新版

sudo apt-get install emqx

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 安装成功

ubuntu系统下搭建本地物联网mqtt服务器的步骤

然后运行启动的命令

sudo emqx start

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 4.想不想图形化管理自己的服务器

到此,emqx服务器就安装并启动成功了。可以提供主题的订阅和发布服务了。

但是现在它只是一个服务器,提供这些功能,操作起来还不是特别方便。

别着急,emqx提供了图形化的界面dashboard。用起来像是阿里云物联网平台一样方便。

输入您的ip地址,然后冒号18083端口即可访问。例如用另一台电脑浏览器输入。EMQX Dashboard 是一个 Web 应用程序,默认监听 18083 端口。

http://192.168.10.123:18083

在不启用 Dashboard 情况下仍然可以使用 EMQX,但这可能大大影响服务的可操作性:Dashboard 可以以表单方式配置很多功能,相比手动编辑配置文件更容易上手使用。

# 配置 Dashboard

Dashboard 默认监听 HTTP 端口,你可以为 Dashboard 启用 HTTPS 或更改监听器端口,更多配置可以参考配置文档。

登陆界面如下图所示。用户名是admin,初始密码是public。登陆后需要立即修改,还可以新增用户。

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 

修改密码

ubuntu系统下搭建本地物联网mqtt服务器的步骤

可以测试本地连接。相当于将服务器同时作为一个客户端,测试一下发布和订阅功能。

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 界面可以通过设置功能修改为中文

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 使用websocket测试订阅和发布主题

ubuntu系统下搭建本地物联网mqtt服务器的步骤

5.使用mqtt.fx模拟一个物联网设备订阅和发布主题

在本机上测试不太过瘾,必须用一个真正的客户端测试才来劲。

如果用电脑测试,那么推荐mqtt.fx软件

模拟设备连接阿里云物联网平台软件MQTT.fx1.7.1.zip_MQTT.FX-硬件开发文档类资源-CSDN下载

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 这个软件安装后,可以在电脑上实现mqtt通信。

详细的使用方法请参考下面这篇文章。与阿里云物联网平台不同的是,连接mqtx服务器,用不着那么复杂的数字签名。—-这也是局域网服务器存在的弊端,有条件,还是建议用阿里云物联网平台,本文仅用于学习使用。

使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(五)—MQTT.fx模拟设备连接阿里云_TMS320VC5257H的博客-CSDN博客_arduino如何接入云平台

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 请记住broker port这里填写1883,而不是18083。用户名和密码,就是您在dashboard里面创建的用户名。

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 连接还是非常迅速的

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 和服务器dahsboard内置的测试程序差不多,用客户端也可以订阅

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 但是请注意,mqtt.fx客户端的client id一定不要和服务器上的那个id重复,这是因为在物联网的世界中,只有服务器和客户端之分,而每一个客户端是唯一的,如果重名,那么这个登陆上,另一个必然被下线。起码名字不能一样,您说对不?

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 ubuntu系统下搭建本地物联网mqtt服务器的步骤

 我们可以使用服务器端模拟的客户端发布一个主题

ubuntu系统下搭建本地物联网mqtt服务器的步骤

然后观察到另一台电脑上的mqtt.fx客户端成功获取了这个主题的变化

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 未来,我们会发现更多的客户端(例如传感器)连上互联网,通过物联网的方式通信、管理和为人类服务。在实现万物互联的路上,希望能留下您宝贵的足迹。

ubuntu系统下搭建本地物联网mqtt服务器的步骤

 

本文章来源于互联网,如有侵权,请联系删除!原文地址:ubuntu系统下搭建本地物联网mqtt服务器的步骤

相关推荐: 物联网常见协议技术汇总

zigbee(3.0):ZigBee,也称紫蜂,是一种低速短距离传输的无线网上协议,底层是采用[IEEE 802.15.4](https://baike.baidu.com/item/IEEE 802.15.4)标准规范的媒体访问层与物理层。主要特色有低速、低…