摘要: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服务器的步骤相关推荐

  1. 在Ubuntu 15下搭建V/P/N服务器pptpd安装和配置

    在Ubuntu 15下搭建VPN服务器pptpd安装和配置 在ubuntu下配置vpn的方式有很多种,其中比较常见的是pptpd,它配置简单,但是安全性不高,不过对于一般使用来说足够了,我按照程搭建了 ...

  2. 如何在Ubuntu系统下搭建Android开发环境

    本文记录了如何在Ubuntu 12.04(64bit)系统下搭建Andriod(安卓)开发环境. 1.安装jdk 首先是下载和安装jdk.可以直接去http://java.sun.com下载.我当时下 ...

  3. Ubuntu Linux系统下搭建自己的Web服务器

    经常被拿来当服务器的有CentOS.Ubuntu......考虑到自己只有Ubuntu的镜像并且只是自己做一些简单的测试使用,所以选择的版本是Ubuntu 14.04 LTS.在这个平台上搭建自己的W ...

  4. 详细Ubuntu系统下搭建Hadoop完全分布式

    1.Hadoop的运行环境介绍 hadoop主要有三种运行模式:单机模式.伪分布模式.完全分布模式. 其中在单机模式下所有3个XML文件均为空,当配置文件为空时,Hadoop会完全运行在本地,因为不需 ...

  5. Ubuntu系统下搭建Redmine项目管理系统详细说明(包括配置apache服务器)(一)搭建本地Redmine

    1. 下载Redmine源代码 Remine下载地址:redmine-3.3.3.tar.gz 2. 安装配置MySQL 执行下面的命令安装Mysql: sudo apt-get install my ...

  6. Ubuntu系统下搭建svn服务器(及设置SVN提交必须输入注释)

    1.查看是否安装 安装SVN服务器之前 查看一下是否已经安装了 查看命令 svn 如下图 是已经安装了SVN 如下图是没有安装SVN 安装了的话 可以用如下命令删除 apt-get remove -- ...

  7. Ubuntu系统下创建本地源

    1.清理apt缓存 apt-get clean 2.下载需要的apt包(这里如果环境中已经存在了,好像下载不下来,先卸载再下) sudo apt-get -d install sshpass 包默认存 ...

  8. linux系统我的世界开服,Ubuntu Linux下搭建Minecraft我的世界服务器

    总结一下在Ubuntu Linux下搭建Minecraft我的世界服务器的方法,其实非常简单直接. (1).把当前的软件都更新到最新 sudo apt-get update Minecraft服务器需 ...

  9. boa服务器 系统设置,boa服务器在linux系统下搭建

    boa服务器在linux系统下搭建 内容精选 换一换 制作Docker镜像,有以下两种方法.快照方式制作镜像(偶尔制作的镜像):在基础镜像上,比如Ubuntu,先登录镜像系统并安装Docker软件,然 ...

  10. [Ubuntu]在Ubuntu系统下连接远程Ubuntu服务器并传输文件:安装putty, filezilla

    转载自:[Ubuntu]在Ubuntu系统下连接远程Ubuntu服务器并传输文件_北望花村-CSDN博客_ubuntu上传文件到服务器 本篇文章介绍,如何在Ubuntu系统下连接远程Ubuntu系统并 ...

最新文章

  1. 红帽子RedHat Linux 9.0安装图解(图)
  2. android 锁屏应用,创建一个Android锁屏应用。
  3. s域到c语言离散化方法,离散化方法研究.docx
  4. 在ashx中使用Session
  5. Android studio .gitignore 文件的内容
  6. SpringCloud工作笔记041---com.fasterxml.jackson.databind.ObjectMapper的使用
  7. 辨异 —— Python 的深拷贝与浅拷贝
  8. 新店铺怎么做?淘宝店铺如何引流做好基础销量?
  9. matlab 指定ccs编译器,在CCS5.5中导入CCS3.3工程——指定编译器和修改prj文件
  10. UVA - 10099 The Tourist Guide kruskal算法
  11. ubuntu20.04 bundlefusion
  12. gwipr70驱动天空_win7 kmplayer plus设置_gwi pr2 pluswin7驱动_kmplayerplus官方下载
  13. python数据分析案例简单实战项目(二)--疫情数据分析
  14. 虚拟摄像头之DirectShow虚拟摄像头开发
  15. JQuery 实现文件下载的常用方法分析
  16. 分布式监控系统WGCLOUD故障自愈能力说明
  17. win32 透明窗口无边框模版
  18. Win10系统打开photoshop提示错误16 如何解决?
  19. 【抓包教程】- 微信视频号下载教程,使用charles抓包工具,如何设置charles抓包工具,以及具体在某一个视频上如何抓包
  20. 有苦有乐的算法 --- 可能有环也可能无环的两个单链表,判断这两个链表是否相交,如果相交返回相交的第一个节点

热门文章

  1. 中国省市JSON列表
  2. POSIX和CMSIS接口
  3. 使用Python实战反欺诈模型
  4. RK3399 Android7.1 AP6212蓝牙可发文件,但收不到文件
  5. pdf拆分成一页一页
  6. 一篇讲完Java链表(单链表、循环链表和双向链表)
  7. 卸载驱动精灵后重启蓝屏
  8. JVM上篇:内存与垃圾回收
  9. 河南省公安机关户政服务管理工作规范(试行)
  10. java支付方法_java实现微信H5支付方法详解