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

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

目录

 1.emqx也是一个mqtt broker

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

 3.真正的安装非常快

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

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


1.emqx也是一个mqtt broker

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

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

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

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

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

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

 敲入命令

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

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

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

ps -A|grep apt

然后运行命令

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

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

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

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

sudo apt-get install emqx

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

默认的情况如下图所示

 

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

然后就可以运行

sudo apt-get update

 接着需要安装curl

sudo apt install curl

 3.真正的安装非常快

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

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

 配置成功

 然后安装emqx最新版

sudo apt-get install emqx

 安装成功

然后运行启动的命令

sudo emqx start

 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。登陆后需要立即修改,还可以新增用户。

 

修改密码

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

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

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

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

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

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

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

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

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

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

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

 连接还是非常迅速的

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

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

 

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

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

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

 

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TMS320VC5257H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值