摘要: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客户端成功获取了这个主题的变化
未来,我们会发现更多的客户端(例如传感器)连上互联网,通过物联网的方式通信、管理和为人类服务。在实现万物互联的路上,希望能留下您宝贵的足迹。
本文章来源于互联网,如有侵权,请联系删除!原文地址:ubuntu系统下搭建本地物联网mqtt服务器的步骤
zigbee(3.0):ZigBee,也称紫蜂,是一种低速短距离传输的无线网上协议,底层是采用[IEEE 802.15.4](https://baike.baidu.com/item/IEEE 802.15.4)标准规范的媒体访问层与物理层。主要特色有低速、低…